Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
RE06Run Class Reference

#include <Doxymodules_runAndEvent.h>

Inheritance diagram for RE06Run:
G4Run

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
 

Private Member Functions

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

Private Attributes

G4THitsMap< G4double > fMapSum [6][6]
 
G4int fColIDSum [6][6]
 
G4THitsMap< G4double > fMapMin [6][3]
 
G4int fColIDMin [6][3]
 
G4THitsMap< G4double > fMapPara [3][6]
 
G4int fColIDPara [3][6]
 

Detailed Description

Definition at line 142 of file Doxymodules_runAndEvent.h.

Constructor & Destructor Documentation

◆ RE06Run()

RE06Run::RE06Run ( )

Definition at line 38 of file RE06Run.cc.

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

◆ ~RE06Run()

RE06Run::~RE06Run ( )
virtual

Definition at line 84 of file RE06Run.cc.

85{;}

Member Function Documentation

◆ RecordEvent()

void RE06Run::RecordEvent ( const G4Event evt)
virtual

Definition at line 89 of file RE06Run.cc.

90{
91 G4HCofThisEvent* HCE = evt->GetHCofThisEvent();
92 if(!HCE) return;
93 numberOfEvent++;
94 size_t i,j;
95 for(i=0;i<6;i++)
96 {
97 for(j=0;j<6;j++)
98 {
100 = (G4THitsMap<G4double>*)(HCE->GetHC(fColIDSum[i][j]));
101 fMapSum[i][j] += *evtMap;
102 }
103
104 for(j=0;j<3;j++)
105 {
106 G4THitsMap<G4double>* evtMap
107 = (G4THitsMap<G4double>*)(HCE->GetHC(fColIDMin[i][j]));
108 std::map<G4int,G4double*>::iterator itr = evtMap->GetMap()->begin();
109 for(; itr != evtMap->GetMap()->end(); itr++)
110 {
111 G4int key = (itr->first);
112 G4double val = *(itr->second);
113 G4double* mapP = fMapMin[i][j][key];
114 if( mapP && (val>*mapP) ) continue;
115 fMapMin[i][j].set(key,val);
116 }
117 }
118
119 }
120 for(i=0;i<3;i++)
121 {
122 for(j=0;j<6;j++)
123 {
124 G4THitsMap<G4double>* evtMap
125 = (G4THitsMap<G4double>*)(HCE->GetHC(fColIDPara[i][j]));
126 fMapPara[i][j] += *evtMap;
127 }
128 }
129}
G4THitsMap< G4double > fMapPara[3][6]
Definition RE06Run.hh:101
G4THitsMap< G4double > fMapSum[6][6]
Definition RE06Run.hh:80
G4THitsMap< G4double > fMapMin[6][3]
Definition RE06Run.hh:90

◆ Merge()

void RE06Run::Merge ( const G4Run aRun)
virtual

Definition at line 132 of file RE06Run.cc.

132 {
133 const RE06Run * localRun = static_cast<const RE06Run *>(aRun);
134
135 for(G4int i = 0; i < 6; i++) {
136 for(G4int j = 0; j < 6; j++) {
137 fMapSum[i][j] += localRun->fMapSum[i][j];
138 }
139
140 for(G4int j = 0; j < 3; j++) {
141 std::map<G4int, G4double*>::iterator itr = localRun->fMapMin[i][j].GetMap()->begin();
142 for(; itr != localRun->fMapMin[i][j].GetMap()->end(); itr++) {
143 G4int key = itr->first;
144 G4double val = *(itr->second);
145 G4double * mapP = fMapMin[i][j][key];
146 if(!mapP || val < *mapP) fMapMin[i][j].set(key, val);
147 }
148 }
149 }
150
151 for(G4int i = 0; i < 3; i++) {
152 for(G4int j = 0; j < 6; j++) {
153 fMapPara[i][j] += localRun->fMapPara[i][j];
154 }
155 }
156
157 G4Run::Merge(aRun);
158}

◆ GetTotalE()

G4double RE06Run::GetTotalE ( G4int  i) const
inline

Definition at line 50 of file RE06Run.hh.

50{ return GetTotal(fMapSum[i][0]); }
G4double GetTotal(const G4THitsMap< G4double > &map) const
Definition RE06Run.cc:161

◆ GetNGamma()

G4double RE06Run::GetNGamma ( G4int  i) const
inline

Definition at line 51 of file RE06Run.hh.

51{ return GetTotal(fMapSum[i][1]); }

◆ GetNElectron()

G4double RE06Run::GetNElectron ( G4int  i) const
inline

Definition at line 52 of file RE06Run.hh.

52{ return GetTotal(fMapSum[i][2]); }

◆ GetNPositron()

G4double RE06Run::GetNPositron ( G4int  i) const
inline

Definition at line 53 of file RE06Run.hh.

53{ return GetTotal(fMapSum[i][3]); }

◆ GetTotalL()

G4double RE06Run::GetTotalL ( G4int  i) const
inline

Definition at line 54 of file RE06Run.hh.

54{ return GetTotal(fMapSum[i][4]); }

◆ GetNStep()

G4double RE06Run::GetNStep ( G4int  i) const
inline

Definition at line 55 of file RE06Run.hh.

55{ return GetTotal(fMapSum[i][5]); }

◆ GetEMinGamma()

G4double RE06Run::GetEMinGamma ( G4int  i) const
inline

Definition at line 57 of file RE06Run.hh.

57{ return FindMinimum(fMapMin[i][0]);}
G4double FindMinimum(const G4THitsMap< G4double > &map) const
Definition RE06Run.cc:173

◆ GetEMinElectron()

G4double RE06Run::GetEMinElectron ( G4int  i) const
inline

Definition at line 58 of file RE06Run.hh.

58{ return FindMinimum(fMapMin[i][1]);}

◆ GetEMinPositron()

G4double RE06Run::GetEMinPositron ( G4int  i) const
inline

Definition at line 59 of file RE06Run.hh.

59{ return FindMinimum(fMapMin[i][2]);}

◆ GetParaValue()

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

Definition at line 61 of file RE06Run.hh.

62 {
63 G4double* p = fMapPara[i][j][k];
64 if(p) return *p;
65 return 0.;
66 }

◆ GetTotal()

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

Definition at line 161 of file RE06Run.cc.

162{
163 G4double tot = 0.;
164 if(map.GetSize()==0) return tot;
165 std::map<G4int,G4double*>::iterator itr = map.GetMap()->begin();
166 for(; itr != map.GetMap()->end(); itr++)
167 { tot += *(itr->second); }
168 return tot;
169}

◆ FindMinimum()

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

Definition at line 173 of file RE06Run.cc.

174{
175 G4double val = DBL_MAX;
176
177 if(map.GetSize()==0) return val;
178 std::map<G4int,G4double*>::iterator itr = map.GetMap()->begin();
179 for(; itr != map.GetMap()->end(); itr++)
180 { if(val>*(itr->second)) val = *(itr->second); }
181 return val;
182}

Member Data Documentation

◆ fMapSum

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

Definition at line 80 of file RE06Run.hh.

◆ fColIDSum

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

Definition at line 81 of file RE06Run.hh.

◆ fMapMin

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

Definition at line 90 of file RE06Run.hh.

◆ fColIDMin

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

Definition at line 91 of file RE06Run.hh.

◆ fMapPara

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

Definition at line 101 of file RE06Run.hh.

◆ fColIDPara

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

Definition at line 102 of file RE06Run.hh.


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

Applications | User Support | Publications | Collaboration