Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
MCGIDI::Sampling::Upscatter Namespace Reference

Classes

class  ModelDBRC_data

Enumerations

enum class  Model {
  none , A , B , BSnLimits ,
  DBRC
}

Functions

LUPI_HOST_DEVICE ModelDBRC_dataserializeModelDBRC_data (LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode, ModelDBRC_data *a_modelDBRC_data)

Enumeration Type Documentation

◆ Model

Enumerator
none 
BSnLimits 
DBRC 

Definition at line 64 of file MCGIDI_sampling.hpp.

Function Documentation

◆ serializeModelDBRC_data()

LUPI_HOST_DEVICE ModelDBRC_data * MCGIDI::Sampling::Upscatter::serializeModelDBRC_data ( LUPI::DataBuffer & a_buffer,
LUPI::DataBuffer::Mode a_mode,
ModelDBRC_data * a_modelDBRC_data )

This method serializes data for a ModelDBRC_data instance.

Parameters
a_modelDBRC_data[in/out] A pointer to the ModelDBRC_data instance to serialize.
a_buffer[in] The buffer to read or write data to depending on a_mode.
a_mode[in] Specifies the action of this method.
Returns
A pointer the serialized ModelDBRC_data instance.

Definition at line 217 of file MCGIDI_sampling.cc.

217 {
218
219 bool haveDBRC = a_modelDBRC_data != nullptr;
220 DATA_MEMBER_CAST( haveDBRC, a_buffer, a_mode, bool );
221
222 if( haveDBRC ) {
223 if( a_mode == LUPI::DataBuffer::Mode::Unpack ) {
224 if (a_buffer.m_placement != nullptr) {
225 a_modelDBRC_data = new(a_buffer.m_placement) ModelDBRC_data;
226 a_buffer.incrementPlacement( sizeof( ModelDBRC_data ) ); }
227 else {
228 a_modelDBRC_data = new ModelDBRC_data;
229 }
230 }
231
232 if( a_mode == LUPI::DataBuffer::Mode::Memory ) {
233 a_buffer.incrementPlacement( sizeof( ModelDBRC_data ) );
234 }
235
236 a_modelDBRC_data->serialize( a_buffer, a_mode );
237 }
238
239 return( a_modelDBRC_data );
240}
#define DATA_MEMBER_CAST(member, buf, mode, someType)
LUPI_HOST_DEVICE void incrementPlacement(std::size_t a_delta)
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)