CMS 3D CMS Logo

MaterialBudgetData.h
Go to the documentation of this file.
1 #ifndef MaterialBudgetData_h
2 #define MaterialBudgetData_h 1
3 
5 #include "G4ThreeVector.hh"
6 
7 // rr
8 #include <CLHEP/Vector/LorentzVector.h>
9 // rr
10 
11 class MaterialBudgetData;
12 class G4Step;
13 class G4Track;
14 
15 
16 typedef std::map< std::string, float > msf;
17 
19 public:
20 
23 
24  void dataStartTrack( const G4Track* aTrack );
25  void dataEndTrack( const G4Track* aTrack );
26  void dataPerStep( const G4Step* aStep );
27 
28  void SetAllStepsToTree();
29  public:
30  float getTotalMB() const {
31  return theTotalMB; }
32  // rr
33  float getSupportFractionMB() const {
34  return theSupportFractionMB; }
35  float getSensitiveFractionMB() const {
36  return theSensitiveFractionMB; }
37  float getCablesFractionMB() const {
38  return theCablesFractionMB; }
39  float getCoolingFractionMB() const {
40  return theCoolingFractionMB; }
41  float getElectronicsFractionMB() const {
42  return theElectronicsFractionMB; }
43  float getOtherFractionMB() const {
44  return theOtherFractionMB; }
45  float getAirFractionMB() const {
46  return theAirFractionMB; }
47  //HGCal
48  float getCopperFractionMB() const {
49  return theCopperFractionMB; }
50  float getH_ScintillatorFractionMB() const {
52  float getLeadFractionMB() const {
53  return theLeadFractionMB; }
56  float getSiliconFractionMB() const {
57  return theSiliconFractionMB; }
58  float getStainlessSteelFractionMB() const {
60  float getWCuFractionMB() const {
61  return theWCuFractionMB; }
62 
63  float getSupportMB() const {
64  return theSupportMB; }
65  float getSensitiveMB() const {
66  return theSensitiveMB; }
67  float getCablesMB() const {
68  return theCablesMB; }
69  float getCoolingMB() const {
70  return theCoolingMB; }
71  float getElectronicsMB() const {
72  return theElectronicsMB; }
73  float getOtherMB() const {
74  return theOtherMB; }
75  float getAirMB() const {
76  return theAirMB; }
77  //HGCal
78  float getCopperMB() const {
79  return theCopperMB; }
80  float getH_ScintillatorMB() const {
81  return theH_ScintillatorMB; }
82  float getLeadMB() const {
83  return theLeadMB; }
84  float getM_NEMA_FR4_plateMB() const {
85  return theM_NEMA_FR4_plateMB; }
86  float getSiliconMB() const {
87  return theSiliconMB; }
88  float getStainlessSteelMB() const {
89  return theStainlessSteelMB; }
90  float getWCuMB() const {
91  return theWCuMB; }
92 
93  float getSupportFractionIL() const {
94  return theSupportFractionIL; }
95  float getSensitiveFractionIL() const {
96  return theSensitiveFractionIL; }
97  float getCablesFractionIL() const {
98  return theCablesFractionIL; }
99  float getCoolingFractionIL() const {
100  return theCoolingFractionIL; }
101  float getElectronicsFractionIL() const {
102  return theElectronicsFractionIL; }
103  float getOtherFractionIL() const {
104  return theOtherFractionIL; }
105  float getAirFractionIL() const {
106  return theAirFractionIL; }
107  float getCopperFractionIL() const {
108  return theCopperFractionIL; }
111  float getLeadFractionIL() const {
112  return theLeadFractionIL; }
115  float getSiliconFractionIL() const {
116  return theSiliconFractionIL; }
119  float getWCuFractionIL() const {
120  return theWCuFractionIL; }
121  float getTotalIL() const {
122  return theTotalIL; }
123  float getSupportIL() const {
124  return theSupportIL; }
125  float getSensitiveIL() const {
126  return theSensitiveIL; }
127  float getCablesIL() const {
128  return theCablesIL; }
129  float getCoolingIL() const {
130  return theCoolingIL; }
131  float getElectronicsIL() const {
132  return theElectronicsIL; }
133  float getOtherIL() const {
134  return theOtherIL; }
135  float getAirIL() const {
136  return theAirIL; }
137  float getCopperIL() const {
138  return theCopperIL; }
139  float getH_ScintillatorIL() const {
140  return theH_ScintillatorIL; }
141  float getLeadIL() const {
142  return theLeadIL; }
143  float getM_NEMA_FR4_plateIL() const {
144  return theM_NEMA_FR4_plateIL; }
145  float getSiliconIL() const {
146  return theSiliconIL; }
147  float getStainlessSteelIL() const {
148  return theStainlessSteelIL; }
149  float getWCuIL() const {
150  return theWCuIL; }
151 
152  // rr
153  float getEta() const {
154  return theEta; }
155  float getPhi() const {
156  return thePhi; }
157  // rr
158  int getID() const {
159  return theID; }
160  float getPt() const {
161  return thePt; }
162  float getEnergy() const {
163  return theEnergy; }
164  float getMass() const {
165  return theMass; }
166  // rr
167 
168  int getNumberOfSteps() const {
169  return theStepN; }
170 
171  float getTrkLen() const {
172  return theTrkLen; }
174  return thePVname; }
175  int getPVcopyNo() const {
176  return thePVcopyNo; }
177  float getRadLen() const {
178  return theRadLen; }
179  float getIntLen() const {
180  return theIntLen; }
181 
182  float getStepDmb( int is ) {
183  return theDmb[is];
184  }
185  float getSupportDmb( int is ) const {
186  return theSupportDmb[is]; }
187  float getSensitiveDmb( int is ) const {
188  return theSensitiveDmb[is]; }
189  float getCablesDmb( int is ) const {
190  return theCablesDmb[is]; }
191  float getCoolingDmb( int is ) const {
192  return theCoolingDmb[is]; }
193  float getElectronicsDmb( int is ) const {
194  return theElectronicsDmb[is]; }
195  float getOtherDmb( int is ) const {
196  return theOtherDmb[is]; }
197  float getAirDmb( int is ) const {
198  return theAirDmb[is]; }
199  float getCopperDmb( int is ) const {
200  return theCopperDmb[is]; }
201  float getH_ScintillatorDmb( int is ) const {
202  return theH_ScintillatorDmb[is]; }
203  float getLeadDmb( int is ) const {
204  return theLeadDmb[is]; }
205  float getM_NEMA_FR4_plateDmb( int is ) const {
206  return theM_NEMA_FR4_plateDmb[is]; }
207  float getSiliconDmb( int is ) const {
208  return theSiliconDmb[is]; }
209  float getStainlessSteelDmb( int is ) const {
210  return theStainlessSteelDmb[is]; }
211  float getWCuDmb( int is ) const {
212  return theWCuDmb[is]; }
213 
214 
215  float getStepDil( int is ) {
216  return theDil[is];
217  }
218  float getSupportDil( int is ) const {
219  return theSupportDil[is]; }
220  float getSensitiveDil( int is ) const {
221  return theSensitiveDil[is]; }
222  float getCablesDil( int is ) const {
223  return theCablesDil[is]; }
224  float getCoolingDil( int is ) const {
225  return theCoolingDil[is]; }
226  float getElectronicsDil( int is ) const {
227  return theElectronicsDil[is]; }
228  float getOtherDil( int is ) const {
229  return theOtherDil[is]; }
230  float getAirDil( int is ) const {
231  return theAirDil[is]; }
232  float getCopperDil( int is ) const {
233  return theCopperDil[is]; }
234  float getH_ScintillatorDil( int is ) const {
235  return theH_ScintillatorDil[is]; }
236  float getLeadDil( int is ) const {
237  return theLeadDil[is]; }
238  float getM_NEMA_FR4_plateDil( int is ) const {
239  return theM_NEMA_FR4_plateDil[is]; }
240  float getSiliconDil( int is ) const {
241  return theSiliconDil[is]; }
242  float getStainlessSteelDil( int is ) const {
243  return theStainlessSteelDil[is]; }
244  float getWCuDil( int is ) const {
245  return theWCuDil[is]; }
246 
247  double getStepInitialX( int is ) {
248  return theInitialX[is];
249  }
250  double getStepInitialY( int is ) {
251  return theInitialY[is];
252  }
253  double getStepInitialZ( int is ) {
254  return theInitialZ[is];
255  }
256  double getStepFinalX( int is ) {
257  return theFinalX[is];
258  }
259  double getStepFinalY( int is ) {
260  return theFinalY[is];
261  }
262  double getStepFinalZ( int is ) {
263  return theFinalZ[is];
264  }
265  int getStepID( int is) {
266  return theStepID[is];
267  }
268  float getStepInitialPt( int is) {
269  return theStepInitialPt[is];
270  }
271  float getStepInitialEta( int is) {
272  return theStepInitialEta[is];
273  }
274  float getStepInitialPhi( int is) {
275  return theStepInitialPhi[is];
276  }
277  float getStepInitialEnergy( int is) {
278  return theStepInitialEnergy[is];
279  }
280  float getStepInitialPx( int is) {
281  return theStepInitialPx[is];
282  }
283  float getStepInitialPy( int is) {
284  return theStepInitialPy[is];
285  }
286  float getStepInitialPz( int is) {
287  return theStepInitialPz[is];
288  }
289  float getStepInitialBeta( int is) {
290  return theStepInitialBeta[is];
291  }
292  float getStepInitialGamma( int is) {
293  return theStepInitialGamma[is];
294  }
295  float getStepInitialMass( int is) {
296  return theStepInitialMass[is];
297  }
298  float getStepFinalPt( int is) {
299  return theStepFinalPt[is];
300  }
301  float getStepFinalEta( int is) {
302  return theStepFinalEta[is];
303  }
304  float getStepFinalPhi( int is) {
305  return theStepFinalPhi[is];
306  }
307  float getStepFinalEnergy( int is) {
308  return theStepFinalEnergy[is];
309  }
310  float getStepFinalPx( int is) {
311  return theStepFinalPx[is];
312  }
313  float getStepFinalPy( int is) {
314  return theStepFinalPy[is];
315  }
316  float getStepFinalPz( int is) {
317  return theStepFinalPz[is];
318  }
319  float getStepFinalBeta( int is) {
320  return theStepFinalBeta[is];
321  }
322  float getStepFinalGamma( int is) {
323  return theStepFinalGamma[is];
324  }
325  float getStepFinalMass( int is) {
326  return theStepFinalMass[is];
327  }
328  int getStepPreProcess( int is) {
329  return theStepPreProcess[is];
330  }
331  int getStepPostProcess( int is) {
332  return theStepPostProcess[is];
333  }
334  // rr
335  int getStepVolumeID( int is ) {
336  return theVolumeID[is];
337  }
339  return theVolumeName[is];
340  }
341  int getStepVolumeCopy( int is ) {
342  return theVolumeCopy[is];
343  }
344  float getStepVolumeX( int is ) {
345  return theVolumeX[is];
346  }
347  float getStepVolumeY( int is ) {
348  return theVolumeY[is];
349  }
350  float getStepVolumeZ( int is ) {
351  return theVolumeZ[is];
352  }
353  CLHEP::HepLorentzVector getStepVolumeXaxis( int is ) {
354  return CLHEP::HepLorentzVector(theVolumeXaxis1[is],theVolumeXaxis2[is],theVolumeXaxis3[is]);
355  }
356  CLHEP::HepLorentzVector getStepVolumeYaxis( int is ) {
357  return CLHEP::HepLorentzVector(theVolumeYaxis1[is],theVolumeYaxis2[is],theVolumeYaxis3[is]);
358  }
359  CLHEP::HepLorentzVector getStepVolumeZaxis( int is ) {
360  return CLHEP::HepLorentzVector(theVolumeZaxis1[is],theVolumeZaxis2[is],theVolumeZaxis3[is]);
361  }
362  int getStepMaterialID( int is ) {
363  return theMaterialID[is];
364  }
366  return theMaterialName[is];
367  }
368  float getStepMaterialX0( int is ) {
369  return theMaterialX0[is];
370  }
371  float getStepMaterialLambda0( int is ) {
372  return theMaterialLambda0[is];
373  }
374  float getStepMaterialDensity( int is ) {
375  return theMaterialDensity[is];
376  }
377  // rr
378 
379  bool allStepsON() {
380  return allStepsToTree;
381  }
382 
383  inline bool getHGCalmode(void) {return isHGCal;}
384  inline void setHGCalmode(bool t) {isHGCal=t;}
385 
386  private:
388  // rr
389  float thePt;
390  int theID;
391  float theEnergy;
392  float theMass;
398  //HGCal
401  float theTotalIL;
403  //HGCal
406  // rr
407  int theStepN;
410  float *theDmb;
413  float *theDil;
416  // int *theVoluId;
417  // int *theMateId;
418  // rr
422  float* theVolumeX;
423  float* theVolumeY;
424  float* theVolumeZ;
439  int* theStepID;
462  // rr
463  float theTrkLen;
466 
468 
469  float theRadLen;
470  float theIntLen;
471  int stepN;
474  //HGCal mode
475  bool isHGCal;
476 
478 };
479 
480 #endif
float getTotalMB() const
float getH_ScintillatorIL() const
CLHEP::HepLorentzVector getStepVolumeYaxis(int is)
float getStepInitialEnergy(int is)
float getCopperFractionIL() const
float getM_NEMA_FR4_plateDil(int is) const
float getAirDmb(int is) const
float getStepMaterialLambda0(int is)
double getStepFinalX(int is)
float getStepFinalEnergy(int is)
float getH_ScintillatorFractionMB() const
float getOtherDil(int is) const
float getSupportDil(int is) const
float getStepInitialGamma(int is)
float getSensitiveFractionMB() const
float getSupportFractionIL() const
float getSiliconFractionIL() const
int getStepVolumeCopy(int is)
float getSensitiveDmb(int is) const
float getStainlessSteelDil(int is) const
float getStepVolumeZ(int is)
float getSensitiveMB() const
float getStainlessSteelFractionMB() const
float getStepInitialPhi(int is)
float getSiliconMB() const
float getStepFinalPhi(int is)
float getElectronicsFractionIL() const
float getStepMaterialX0(int is)
float getCoolingIL() const
float getCopperDmb(int is) const
float getAirMB() const
float getElectronicsDil(int is) const
std::string getPVname() const
float getLeadDil(int is) const
float getWCuDmb(int is) const
float getSiliconFractionMB() const
float getStepInitialBeta(int is)
float getCopperIL() const
std::string * theMaterialName
float getH_ScintillatorDil(int is) const
float getM_NEMA_FR4_plateFractionMB() const
float getStepInitialMass(int is)
float getLeadFractionMB() const
float getOtherIL() const
float getElectronicsFractionMB() const
double getStepInitialZ(int is)
float getSiliconDmb(int is) const
float getStepInitialPy(int is)
float getStepInitialPt(int is)
float getStepFinalMass(int is)
float getCopperDil(int is) const
float getAirFractionMB() const
float getStepFinalPt(int is)
float getM_NEMA_FR4_plateMB() const
double getStepFinalY(int is)
void dataEndTrack(const G4Track *aTrack)
float getSupportMB() const
int getStepMaterialID(int is)
void dataPerStep(const G4Step *aStep)
float getCoolingDmb(int is) const
std::string getStepMaterialName(int is)
float getCoolingDil(int is) const
float getM_NEMA_FR4_plateFractionIL() const
float getOtherMB() const
float getStepFinalPy(int is)
float getM_NEMA_FR4_plateIL() const
float getSupportDmb(int is) const
float getStainlessSteelFractionIL() const
float getStainlessSteelDmb(int is) const
float getStepDmb(int is)
std::string getStepVolumeName(int is)
MaterialBudgetCategorizer * myMaterialBudgetCategorizer
float getLeadFractionIL() const
float getLeadMB() const
double getStepFinalZ(int is)
float getStepVolumeY(int is)
float getEnergy() const
float getCablesIL() const
float getIntLen() const
float getWCuDil(int is) const
float getStepFinalEta(int is)
float getCoolingMB() const
float getCablesFractionMB() const
float getStainlessSteelMB() const
float getElectronicsMB() const
double getStepInitialY(int is)
float getCoolingFractionIL() const
float getWCuFractionIL() const
float getM_NEMA_FR4_plateDmb(int is) const
double getStepInitialX(int is)
float getMass() const
float getOtherFractionIL() const
float getSensitiveFractionIL() const
float getWCuFractionMB() const
int getNumberOfSteps() const
float getLeadIL() const
float getStepFinalGamma(int is)
float getH_ScintillatorDmb(int is) const
void dataStartTrack(const G4Track *aTrack)
std::map< std::string, float > msf
float getCopperMB() const
float getSensitiveDil(int is) const
CLHEP::HepLorentzVector getStepVolumeXaxis(int is)
float getAirIL() const
float getCopperFractionMB() const
float getH_ScintillatorFractionIL() const
float getStepFinalPx(int is)
float getAirDil(int is) const
std::string * theVolumeName
float getSensitiveIL() const
float getCablesDil(int is) const
float getCablesFractionIL() const
float getRadLen() const
float getTrkLen() const
float getStepMaterialDensity(int is)
float getOtherFractionMB() const
float getCoolingFractionMB() const
float getSiliconDil(int is) const
float getStepVolumeX(int is)
float getSupportIL() const
float getAirFractionIL() const
float getSiliconIL() const
float getLeadDmb(int is) const
int getStepPostProcess(int is)
float getStepFinalBeta(int is)
float getCablesDmb(int is) const
float getStepFinalPz(int is)
float getOtherDmb(int is) const
float getStepDil(int is)
float getWCuIL() const
float getWCuMB() const
float getTotalIL() const
float getStepInitialPx(int is)
float getElectronicsIL() const
float getStepInitialEta(int is)
float getStainlessSteelIL() const
float getElectronicsDmb(int is) const
float getH_ScintillatorMB() const
CLHEP::HepLorentzVector getStepVolumeZaxis(int is)
float getCablesMB() const
float getStepInitialPz(int is)
float getSupportFractionMB() const
int getStepPreProcess(int is)