Geant4  10.02.p03
RE06Run Class Reference

#include <RE06Run.hh>

Inheritance diagram for RE06Run:
Collaboration diagram for RE06Run:

Public Member Functions

 RE06Run ()
 
virtual ~RE06Run ()
 
virtual void RecordEvent (const G4Event *)
 
virtual void Merge (const G4Run *)
 
G4double GetTotalE (G4int i) const
 
G4double GetNGamma (G4int i) const
 
G4double GetNElectron (G4int i) const
 
G4double GetNPositron (G4int i) const
 
G4double GetTotalL (G4int i) const
 
G4double GetNStep (G4int i) const
 
G4double GetEMinGamma (G4int i) const
 
G4double GetEMinElectron (G4int i) const
 
G4double GetEMinPositron (G4int i) const
 
G4double GetParaValue (G4int i, G4int j, G4int k) const
 
- Public Member Functions inherited from G4Run
 G4Run ()
 
virtual ~G4Run ()
 
G4int GetRunID () const
 
G4int GetNumberOfEvent () const
 
G4int GetNumberOfEventToBeProcessed () const
 
const G4HCtableGetHCtable () const
 
const G4DCtableGetDCtable () const
 
const G4StringGetRandomNumberStatus () const
 
void SetRunID (G4int id)
 
void SetNumberOfEventToBeProcessed (G4int n_ev)
 
void SetHCtable (G4HCtable *HCtbl)
 
void SetDCtable (G4DCtable *DCtbl)
 
void SetRandomNumberStatus (G4String &st)
 
void StoreEvent (G4Event *evt)
 
const std::vector< const G4Event * > * GetEventVector () const
 

Private Member Functions

G4double GetTotal (const G4THitsMap< G4double > &map) const
 
G4double FindMinimum (const G4THitsMap< G4double > &map) const
 

Private Attributes

G4THitsMap< G4doublefMapSum [6][6]
 
G4int fColIDSum [6][6]
 
G4THitsMap< G4doublefMapMin [6][3]
 
G4int fColIDMin [6][3]
 
G4THitsMap< G4doublefMapPara [3][6]
 
G4int fColIDPara [3][6]
 

Additional Inherited Members

- Protected Attributes inherited from G4Run
G4int runID
 
G4int numberOfEvent
 
G4int numberOfEventToBeProcessed
 
G4HCtableHCtable
 
G4DCtableDCtable
 
G4String randomNumberStatus
 
std::vector< const G4Event * > * eventVector
 

Detailed Description

Definition at line 42 of file RE06Run.hh.

Constructor & Destructor Documentation

◆ RE06Run()

RE06Run::RE06Run ( )

Definition at line 39 of file RE06Run.cc.

40  : G4Run()
41 {
42  G4String detName[6]
43  = {"Calor-A_abs","Calor-A_gap",
44  "Calor-B_abs","Calor-B_gap",
45  "Calor-C_abs","Calor-C_gap"};
46 
47  G4String primNameSum[6]
48  = {"eDep","nGamma","nElectron","nPositron","trackLength","nStep"};
49 
50  G4String primNameMin[3]
51  = {"minEkinGamma","minEkinElectron","minEkinPositron"};
52 
53  G4String paraName[3]
54  = {"Calor-AP_para","Calor-BP_para","Calor-CP_para"};
55 
57  G4String fullName;
58  size_t i,j;
59  for(i=0;i<6;i++)
60  {
61  for(j=0;j<6;j++)
62  {
63  fullName = detName[i]+"/"+primNameSum[j];
64  fColIDSum[i][j] = SDMan->GetCollectionID(fullName);
65  }
66  for(j=0;j<3;j++)
67  {
68  fullName = detName[i]+"/"+primNameMin[j];
69  fColIDMin[i][j] = SDMan->GetCollectionID(fullName);
70  }
71  }
72  for(i=0;i<3;i++)
73  {
74  for(j=0;j<6;j++)
75  {
76  fullName = paraName[i]+"/"+primNameSum[j];
77  fColIDPara[i][j] = SDMan->GetCollectionID(fullName);
78  }
79  }
80 
81 }
G4int fColIDPara[3][6]
Definition: RE06Run.hh:103
G4int GetCollectionID(G4String colName)
Definition: G4SDManager.cc:135
G4Run()
Definition: G4Run.cc:34
G4int fColIDSum[6][6]
Definition: RE06Run.hh:82
static G4SDManager * GetSDMpointer()
Definition: G4SDManager.cc:40
G4int fColIDMin[6][3]
Definition: RE06Run.hh:92
Here is the call graph for this function:

◆ ~RE06Run()

RE06Run::~RE06Run ( )
virtual

Definition at line 85 of file RE06Run.cc.

86 {;}

Member Function Documentation

◆ FindMinimum()

G4double RE06Run::FindMinimum ( const G4THitsMap< G4double > &  map) const
private

Definition at line 174 of file RE06Run.cc.

175 {
176  G4double val = DBL_MAX;
177 
178  if(map.GetSize()==0) return val;
179  std::map<G4int,G4double*>::iterator itr = map.GetMap()->begin();
180  for(; itr != map.GetMap()->end(); itr++)
181  { if(val>*(itr->second)) val = *(itr->second); }
182  return val;
183 }
std::map< G4int, T * > * GetMap() const
Definition: G4THitsMap.hh:68
virtual size_t GetSize() const
Definition: G4THitsMap.hh:86
double G4double
Definition: G4Types.hh:76
#define DBL_MAX
Definition: templates.hh:83
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetEMinElectron()

G4double RE06Run::GetEMinElectron ( G4int  i) const
inline

Definition at line 59 of file RE06Run.hh.

59 { return FindMinimum(fMapMin[i][1]);}
G4double FindMinimum(const G4THitsMap< G4double > &map) const
Definition: RE06Run.cc:174
G4THitsMap< G4double > fMapMin[6][3]
Definition: RE06Run.hh:91
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetEMinGamma()

G4double RE06Run::GetEMinGamma ( G4int  i) const
inline

Definition at line 58 of file RE06Run.hh.

58 { return FindMinimum(fMapMin[i][0]);}
G4double FindMinimum(const G4THitsMap< G4double > &map) const
Definition: RE06Run.cc:174
G4THitsMap< G4double > fMapMin[6][3]
Definition: RE06Run.hh:91
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetEMinPositron()

G4double RE06Run::GetEMinPositron ( G4int  i) const
inline

Definition at line 60 of file RE06Run.hh.

60 { return FindMinimum(fMapMin[i][2]);}
G4double FindMinimum(const G4THitsMap< G4double > &map) const
Definition: RE06Run.cc:174
G4THitsMap< G4double > fMapMin[6][3]
Definition: RE06Run.hh:91
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetNElectron()

G4double RE06Run::GetNElectron ( G4int  i) const
inline

Definition at line 53 of file RE06Run.hh.

53 { return GetTotal(fMapSum[i][2]); }
G4THitsMap< G4double > fMapSum[6][6]
Definition: RE06Run.hh:81
G4double GetTotal(const G4THitsMap< G4double > &map) const
Definition: RE06Run.cc:162
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetNGamma()

G4double RE06Run::GetNGamma ( G4int  i) const
inline

Definition at line 52 of file RE06Run.hh.

52 { return GetTotal(fMapSum[i][1]); }
G4THitsMap< G4double > fMapSum[6][6]
Definition: RE06Run.hh:81
G4double GetTotal(const G4THitsMap< G4double > &map) const
Definition: RE06Run.cc:162
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetNPositron()

G4double RE06Run::GetNPositron ( G4int  i) const
inline

Definition at line 54 of file RE06Run.hh.

54 { return GetTotal(fMapSum[i][3]); }
G4THitsMap< G4double > fMapSum[6][6]
Definition: RE06Run.hh:81
G4double GetTotal(const G4THitsMap< G4double > &map) const
Definition: RE06Run.cc:162
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetNStep()

G4double RE06Run::GetNStep ( G4int  i) const
inline

Definition at line 56 of file RE06Run.hh.

56 { return GetTotal(fMapSum[i][5]); }
G4THitsMap< G4double > fMapSum[6][6]
Definition: RE06Run.hh:81
G4double GetTotal(const G4THitsMap< G4double > &map) const
Definition: RE06Run.cc:162
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetParaValue()

G4double RE06Run::GetParaValue ( G4int  i,
G4int  j,
G4int  k 
) const
inline

Definition at line 62 of file RE06Run.hh.

63  {
64  G4double* p = fMapPara[i][j][k];
65  if(p) return *p;
66  return 0.;
67  }
G4THitsMap< G4double > fMapPara[3][6]
Definition: RE06Run.hh:102
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetTotal()

G4double RE06Run::GetTotal ( const G4THitsMap< G4double > &  map) const
private

Definition at line 162 of file RE06Run.cc.

163 {
164  G4double tot = 0.;
165  if(map.GetSize()==0) return tot;
166  std::map<G4int,G4double*>::iterator itr = map.GetMap()->begin();
167  for(; itr != map.GetMap()->end(); itr++)
168  { tot += *(itr->second); }
169  return tot;
170 }
std::map< G4int, T * > * GetMap() const
Definition: G4THitsMap.hh:68
virtual size_t GetSize() const
Definition: G4THitsMap.hh:86
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetTotalE()

G4double RE06Run::GetTotalE ( G4int  i) const
inline

Definition at line 51 of file RE06Run.hh.

51 { return GetTotal(fMapSum[i][0]); }
G4THitsMap< G4double > fMapSum[6][6]
Definition: RE06Run.hh:81
G4double GetTotal(const G4THitsMap< G4double > &map) const
Definition: RE06Run.cc:162
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetTotalL()

G4double RE06Run::GetTotalL ( G4int  i) const
inline

Definition at line 55 of file RE06Run.hh.

55 { return GetTotal(fMapSum[i][4]); }
G4THitsMap< G4double > fMapSum[6][6]
Definition: RE06Run.hh:81
G4double GetTotal(const G4THitsMap< G4double > &map) const
Definition: RE06Run.cc:162
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Merge()

void RE06Run::Merge ( const G4Run aRun)
virtual

Reimplemented from G4Run.

Definition at line 133 of file RE06Run.cc.

133  {
134  const RE06Run * localRun = static_cast<const RE06Run *>(aRun);
135 
136  for(G4int i = 0; i < 6; i++) {
137  for(G4int j = 0; j < 6; j++) {
138  fMapSum[i][j] += localRun->fMapSum[i][j];
139  }
140 
141  for(G4int j = 0; j < 3; j++) {
142  std::map<G4int, G4double*>::iterator itr = localRun->fMapMin[i][j].GetMap()->begin();
143  for(; itr != localRun->fMapMin[i][j].GetMap()->end(); itr++) {
144  G4int key = itr->first;
145  G4double val = *(itr->second);
146  G4double * mapP = fMapMin[i][j][key];
147  if(!mapP || val < *mapP) fMapMin[i][j].set(key, val);
148  }
149  }
150  }
151 
152  for(G4int i = 0; i < 3; i++) {
153  for(G4int j = 0; j < 6; j++) {
154  fMapPara[i][j] += localRun->fMapPara[i][j];
155  }
156  }
157 
158  G4Run::Merge(aRun);
159 }
virtual void Merge(const G4Run *)
Definition: G4Run.cc:54
std::map< G4int, T * > * GetMap() const
Definition: G4THitsMap.hh:68
int G4int
Definition: G4Types.hh:78
G4int set(const G4int &key, T *&aHit) const
Definition: G4THitsMap.hh:165
G4THitsMap< G4double > fMapSum[6][6]
Definition: RE06Run.hh:81
G4THitsMap< G4double > fMapPara[3][6]
Definition: RE06Run.hh:102
G4THitsMap< G4double > fMapMin[6][3]
Definition: RE06Run.hh:91
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:

◆ RecordEvent()

void RE06Run::RecordEvent ( const G4Event evt)
virtual

Reimplemented from G4Run.

Definition at line 90 of file RE06Run.cc.

91 {
92  G4HCofThisEvent* HCE = evt->GetHCofThisEvent();
93  if(!HCE) return;
94  numberOfEvent++;
95  size_t i,j;
96  for(i=0;i<6;i++)
97  {
98  for(j=0;j<6;j++)
99  {
100  G4THitsMap<G4double>* evtMap
101  = (G4THitsMap<G4double>*)(HCE->GetHC(fColIDSum[i][j]));
102  fMapSum[i][j] += *evtMap;
103  }
104 
105  for(j=0;j<3;j++)
106  {
107  G4THitsMap<G4double>* evtMap
108  = (G4THitsMap<G4double>*)(HCE->GetHC(fColIDMin[i][j]));
109  std::map<G4int,G4double*>::iterator itr = evtMap->GetMap()->begin();
110  for(; itr != evtMap->GetMap()->end(); itr++)
111  {
112  G4int key = (itr->first);
113  G4double val = *(itr->second);
114  G4double* mapP = fMapMin[i][j][key];
115  if( mapP && (val>*mapP) ) continue;
116  fMapMin[i][j].set(key,val);
117  }
118  }
119 
120  }
121  for(i=0;i<3;i++)
122  {
123  for(j=0;j<6;j++)
124  {
125  G4THitsMap<G4double>* evtMap
126  = (G4THitsMap<G4double>*)(HCE->GetHC(fColIDPara[i][j]));
127  fMapPara[i][j] += *evtMap;
128  }
129  }
130 }
G4int fColIDPara[3][6]
Definition: RE06Run.hh:103
G4int numberOfEvent
Definition: G4Run.hh:59
std::map< G4int, T * > * GetMap() const
Definition: G4THitsMap.hh:68
int G4int
Definition: G4Types.hh:78
G4int set(const G4int &key, T *&aHit) const
Definition: G4THitsMap.hh:165
G4int fColIDSum[6][6]
Definition: RE06Run.hh:82
G4THitsMap< G4double > fMapSum[6][6]
Definition: RE06Run.hh:81
G4HCofThisEvent * GetHCofThisEvent() const
Definition: G4Event.hh:185
G4THitsMap< G4double > fMapPara[3][6]
Definition: RE06Run.hh:102
G4THitsMap< G4double > fMapMin[6][3]
Definition: RE06Run.hh:91
double G4double
Definition: G4Types.hh:76
G4int fColIDMin[6][3]
Definition: RE06Run.hh:92
Here is the call graph for this function:

Member Data Documentation

◆ fColIDMin

G4int RE06Run::fColIDMin[6][3]
private

Definition at line 92 of file RE06Run.hh.

◆ fColIDPara

G4int RE06Run::fColIDPara[3][6]
private

Definition at line 103 of file RE06Run.hh.

◆ fColIDSum

G4int RE06Run::fColIDSum[6][6]
private

Definition at line 82 of file RE06Run.hh.

◆ fMapMin

G4THitsMap<G4double> RE06Run::fMapMin[6][3]
private

Definition at line 91 of file RE06Run.hh.

◆ fMapPara

G4THitsMap<G4double> RE06Run::fMapPara[3][6]
private

Definition at line 102 of file RE06Run.hh.

◆ fMapSum

G4THitsMap<G4double> RE06Run::fMapSum[6][6]
private

Definition at line 81 of file RE06Run.hh.


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