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 ()
 
G4Run * UnPack ()
 
- 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 Run * myrun
 

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: