Geant4  10.02.p03
RunMerger Class Reference

#include <RunMerger.hh>

Inheritance diagram for RunMerger:
Collaboration diagram for RunMerger:

Public Member Functions

 RunMerger (const Run *arun, G4int destination=G4MPImanager::kRANK_MASTER, G4int verb=0)
 
- Public Member Functions inherited from G4VUserMPIrunMerger
 G4VUserMPIrunMerger ()
 
 G4VUserMPIrunMerger (const G4Run *aRun, G4int destination=G4MPImanager::kRANK_MASTER, G4int verbosity=0)
 
virtual ~G4VUserMPIrunMerger ()
 
void SetRun (G4Run *r)
 
void SetDestinationRank (G4int i)
 
void SetVerbosity (G4int ver)
 
virtual void Merge ()
 

Protected Member Functions

void Pack ()
 
G4RunUnPack ()
 
- Protected Member Functions inherited from G4VUserMPIrunMerger
void InputUserData (void *input_data, const MPI::Datatype &dt, int count)
 
void OutputUserData (void *input_data, const MPI::Datatype &dt, int count)
 
void SetupOutputBuffer (char *buff, G4int size, G4int position)
 
void DestroyBuffer ()
 
G4int GetPosition () const
 
char * GetBuffer () const
 
G4int GetBufferSize () const
 
void Send (const unsigned int destination)
 
void Receive (const unsigned int source)
 

Private Attributes

const Runmyrun
 

Detailed Description

Definition at line 32 of file RunMerger.hh.

Constructor & Destructor Documentation

◆ RunMerger()

RunMerger::RunMerger ( const Run arun,
G4int  destination = G4MPImanager::kRANK_MASTER,
G4int  verb = 0 
)
inline

Definition at line 34 of file RunMerger.hh.

36  : G4VUserMPIrunMerger(arun,destination,verb ) , myrun(arun) {}
const Run * myrun
Definition: RunMerger.hh:41
Here is the call graph for this function:

Member Function Documentation

◆ Pack()

void RunMerger::Pack ( )
protectedvirtual

Implements G4VUserMPIrunMerger.

Definition at line 29 of file RunMerger.cc.

29  {
30  //Very imporant, here myrun is const!
31  //Register a user-data in the user Run class with MPI merger
32  InputUserData(const_cast<int*>(&(myrun->aDummyCounter)),MPI::INT,1);
33 }
const Run * myrun
Definition: RunMerger.hh:41
void InputUserData(void *input_data, const MPI::Datatype &dt, int count)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ UnPack()

G4Run * RunMerger::UnPack ( )
protectedvirtual

Implements G4VUserMPIrunMerger.

Definition at line 35 of file RunMerger.cc.

35  {
36  //Create a dummy user-Run, used to contain data received via MPI
37  Run* aDummyRun = new Run;
38  OutputUserData(&(aDummyRun->aDummyCounter),MPI::INT,1);
39  return aDummyRun;
40 }
void OutputUserData(void *input_data, const MPI::Datatype &dt, int count)
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ myrun

const Run* RunMerger::myrun
private

Definition at line 41 of file RunMerger.hh.


The documentation for this class was generated from the following files: