CMS 3D CMS Logo

MaterialBudgetData.h
Go to the documentation of this file.
1 
2 #ifndef MaterialBudgetData_h
3 #define MaterialBudgetData_h 1
4 
5 
7 
8 #include "G4ThreeVector.hh"
9 
10 #include <CLHEP/Vector/LorentzVector.h>
11 
13 
14 #include <memory>
15 
16 class MaterialBudgetData;
17 class G4Step;
18 class G4Track;
19 
20 
21 typedef std::map< std::string, float > msf;
22 
24 public:
25 
28 
29  void dataStartTrack( const G4Track* aTrack );
30  void dataEndTrack( const G4Track* aTrack );
31  void dataPerStep( const G4Step* aStep );
32 
33  void SetAllStepsToTree();
34  public:
35  float getTotalMB() const {
36  return theTotalMB; }
37 
38  float getSupportFractionMB() const {
39  return theSupportFractionMB; }
40  float getSensitiveFractionMB() const {
41  return theSensitiveFractionMB; }
42  float getCablesFractionMB() const {
43  return theCablesFractionMB; }
44  float getCoolingFractionMB() const {
45  return theCoolingFractionMB; }
46  float getElectronicsFractionMB() const {
47  return theElectronicsFractionMB; }
48  float getOtherFractionMB() const {
49  return theOtherFractionMB; }
50  float getAirFractionMB() const {
51  return theAirFractionMB; }
52  //HGCal
53  float getCopperFractionMB() const {
54  return theCopperFractionMB; }
55  float getH_ScintillatorFractionMB() const {
57  float getLeadFractionMB() const {
58  return theLeadFractionMB; }
59  float getEpoxyFractionMB() const {
60  return theEpoxyFractionMB; }
61  float getKaptonFractionMB() const {
62  return theKaptonFractionMB; }
63  float getAluminiumFractionMB() const {
64  return theAluminiumFractionMB; }
65  float getHGC_G10_FR4FractionMB() const {
66  return theHGC_G10_FR4FractionMB; }
67  float getSiliconFractionMB() const {
68  return theSiliconFractionMB; }
69  float getStainlessSteelFractionMB() const {
71  float getWCuFractionMB() const {
72  return theWCuFractionMB; }
73 
74  float getSupportMB() const {
75  return theSupportMB; }
76  float getSensitiveMB() const {
77  return theSensitiveMB; }
78  float getCablesMB() const {
79  return theCablesMB; }
80  float getCoolingMB() const {
81  return theCoolingMB; }
82  float getElectronicsMB() const {
83  return theElectronicsMB; }
84  float getOtherMB() const {
85  return theOtherMB; }
86  float getAirMB() const {
87  return theAirMB; }
88  //HGCal
89  float getCopperMB() const {
90  return theCopperMB; }
91  float getH_ScintillatorMB() const {
92  return theH_ScintillatorMB; }
93  float getLeadMB() const {
94  return theLeadMB; }
95  float getEpoxyMB() const {
96  return theEpoxyMB; }
97  float getKaptonMB() const {
98  return theKaptonMB; }
99  float getAluminiumMB() const {
100  return theAluminiumMB; }
101  float getHGC_G10_FR4MB() const {
102  return theHGC_G10_FR4MB; }
103  float getSiliconMB() const {
104  return theSiliconMB; }
105  float getStainlessSteelMB() const {
106  return theStainlessSteelMB; }
107  float getWCuMB() const {
108  return theWCuMB; }
109 
110  float getSupportFractionIL() const {
111  return theSupportFractionIL; }
112  float getSensitiveFractionIL() const {
113  return theSensitiveFractionIL; }
114  float getCablesFractionIL() const {
115  return theCablesFractionIL; }
116  float getCoolingFractionIL() const {
117  return theCoolingFractionIL; }
118  float getElectronicsFractionIL() const {
119  return theElectronicsFractionIL; }
120  float getOtherFractionIL() const {
121  return theOtherFractionIL; }
122  float getAirFractionIL() const {
123  return theAirFractionIL; }
124  float getCopperFractionIL() const {
125  return theCopperFractionIL; }
128  float getLeadFractionIL() const {
129  return theLeadFractionIL; }
130  float getEpoxyFractionIL() const {
131  return theEpoxyFractionIL; }
132  float getKaptonFractionIL() const {
133  return theKaptonFractionIL; }
134  float getAluminiumFractionIL() const {
135  return theAluminiumFractionIL; }
136  float getHGC_G10_FR4FractionIL() const {
137  return theHGC_G10_FR4FractionIL; }
138  float getSiliconFractionIL() const {
139  return theSiliconFractionIL; }
142  float getWCuFractionIL() const {
143  return theWCuFractionIL; }
144  float getTotalIL() const {
145  return theTotalIL; }
146  float getSupportIL() const {
147  return theSupportIL; }
148  float getSensitiveIL() const {
149  return theSensitiveIL; }
150  float getCablesIL() const {
151  return theCablesIL; }
152  float getCoolingIL() const {
153  return theCoolingIL; }
154  float getElectronicsIL() const {
155  return theElectronicsIL; }
156  float getOtherIL() const {
157  return theOtherIL; }
158  float getAirIL() const {
159  return theAirIL; }
160  float getCopperIL() const {
161  return theCopperIL; }
162  float getH_ScintillatorIL() const {
163  return theH_ScintillatorIL; }
164  float getLeadIL() const {
165  return theLeadIL; }
166  float getEpoxyIL() const {
167  return theEpoxyIL; }
168  float getKaptonIL() const {
169  return theKaptonIL; }
170  float getAluminiumIL() const {
171  return theAluminiumIL; }
172  float getHGC_G10_FR4IL() const {
173  return theHGC_G10_FR4IL; }
174  float getSiliconIL() const {
175  return theSiliconIL; }
176  float getStainlessSteelIL() const {
177  return theStainlessSteelIL; }
178  float getWCuIL() const {
179  return theWCuIL; }
180 
181 
182  float getEta() const {
183  return theEta; }
184  float getPhi() const {
185  return thePhi; }
186 
187  int getID() const {
188  return theID; }
189  float getPt() const {
190  return thePt; }
191  float getEnergy() const {
192  return theEnergy; }
193  float getMass() const {
194  return theMass; }
195 
196 
197  int getNumberOfSteps() const {
198  return theStepN; }
199 
200  float getTrkLen() const {
201  return theTrkLen; }
203  return thePVname; }
204  int getPVcopyNo() const {
205  return thePVcopyNo; }
206  float getRadLen() const {
207  return theRadLen; }
208  float getIntLen() const {
209  return theIntLen; }
210 
211  float getStepDmb( int is ) {
212  return theDmb[is];
213  }
214  float getSupportDmb( int is ) const {
215  return theSupportDmb[is]; }
216  float getSensitiveDmb( int is ) const {
217  return theSensitiveDmb[is]; }
218  float getCablesDmb( int is ) const {
219  return theCablesDmb[is]; }
220  float getCoolingDmb( int is ) const {
221  return theCoolingDmb[is]; }
222  float getElectronicsDmb( int is ) const {
223  return theElectronicsDmb[is]; }
224  float getOtherDmb( int is ) const {
225  return theOtherDmb[is]; }
226  float getAirDmb( int is ) const {
227  return theAirDmb[is]; }
228  float getCopperDmb( int is ) const {
229  return theCopperDmb[is]; }
230  float getH_ScintillatorDmb( int is ) const {
231  return theH_ScintillatorDmb[is]; }
232  float getLeadDmb( int is ) const {
233  return theLeadDmb[is]; }
234  float getEpoxyDmb( int is ) const {
235  return theEpoxyDmb[is]; }
236  float getKaptonDmb( int is ) const {
237  return theKaptonDmb[is]; }
238  float getAluminiumDmb( int is ) const {
239  return theAluminiumDmb[is]; }
240  float getHGC_G10_FR4Dmb( int is ) const {
241  return theHGC_G10_FR4Dmb[is]; }
242  float getSiliconDmb( int is ) const {
243  return theSiliconDmb[is]; }
244  float getStainlessSteelDmb( int is ) const {
245  return theStainlessSteelDmb[is]; }
246  float getWCuDmb( int is ) const {
247  return theWCuDmb[is]; }
248 
249 
250  float getStepDil( int is ) {
251  return theDil[is];
252  }
253  float getSupportDil( int is ) const {
254  return theSupportDil[is]; }
255  float getSensitiveDil( int is ) const {
256  return theSensitiveDil[is]; }
257  float getCablesDil( int is ) const {
258  return theCablesDil[is]; }
259  float getCoolingDil( int is ) const {
260  return theCoolingDil[is]; }
261  float getElectronicsDil( int is ) const {
262  return theElectronicsDil[is]; }
263  float getOtherDil( int is ) const {
264  return theOtherDil[is]; }
265  float getAirDil( int is ) const {
266  return theAirDil[is]; }
267  float getCopperDil( int is ) const {
268  return theCopperDil[is]; }
269  float getH_ScintillatorDil( int is ) const {
270  return theH_ScintillatorDil[is]; }
271  float getLeadDil( int is ) const {
272  return theLeadDil[is]; }
273  float getEpoxyDil( int is ) const {
274  return theEpoxyDil[is]; }
275  float getKaptonDil( int is ) const {
276  return theKaptonDil[is]; }
277  float getAluminiumDil( int is ) const {
278  return theAluminiumDil[is]; }
279  float getHGC_G10_FR4Dil( int is ) const {
280  return theHGC_G10_FR4Dil[is]; }
281  float getSiliconDil( int is ) const {
282  return theSiliconDil[is]; }
283  float getStainlessSteelDil( int is ) const {
284  return theStainlessSteelDil[is]; }
285  float getWCuDil( int is ) const {
286  return theWCuDil[is]; }
287 
288  double getStepInitialX( int is ) {
289  return theInitialX[is];
290  }
291  double getStepInitialY( int is ) {
292  return theInitialY[is];
293  }
294  double getStepInitialZ( int is ) {
295  return theInitialZ[is];
296  }
297  double getStepFinalX( int is ) {
298  return theFinalX[is];
299  }
300  double getStepFinalY( int is ) {
301  return theFinalY[is];
302  }
303  double getStepFinalZ( int is ) {
304  return theFinalZ[is];
305  }
306  int getStepID( int is) {
307  return theStepID[is];
308  }
309  float getStepInitialPt( int is) {
310  return theStepInitialPt[is];
311  }
312  float getStepInitialEta( int is) {
313  return theStepInitialEta[is];
314  }
315  float getStepInitialPhi( int is) {
316  return theStepInitialPhi[is];
317  }
318  float getStepInitialEnergy( int is) {
319  return theStepInitialEnergy[is];
320  }
321  float getStepInitialPx( int is) {
322  return theStepInitialPx[is];
323  }
324  float getStepInitialPy( int is) {
325  return theStepInitialPy[is];
326  }
327  float getStepInitialPz( int is) {
328  return theStepInitialPz[is];
329  }
330  float getStepInitialBeta( int is) {
331  return theStepInitialBeta[is];
332  }
333  float getStepInitialGamma( int is) {
334  return theStepInitialGamma[is];
335  }
336  float getStepInitialMass( int is) {
337  return theStepInitialMass[is];
338  }
339  float getStepFinalPt( int is) {
340  return theStepFinalPt[is];
341  }
342  float getStepFinalEta( int is) {
343  return theStepFinalEta[is];
344  }
345  float getStepFinalPhi( int is) {
346  return theStepFinalPhi[is];
347  }
348  float getStepFinalEnergy( int is) {
349  return theStepFinalEnergy[is];
350  }
351  float getStepFinalPx( int is) {
352  return theStepFinalPx[is];
353  }
354  float getStepFinalPy( int is) {
355  return theStepFinalPy[is];
356  }
357  float getStepFinalPz( int is) {
358  return theStepFinalPz[is];
359  }
360  float getStepFinalBeta( int is) {
361  return theStepFinalBeta[is];
362  }
363  float getStepFinalGamma( int is) {
364  return theStepFinalGamma[is];
365  }
366  float getStepFinalMass( int is) {
367  return theStepFinalMass[is];
368  }
369  int getStepPreProcess( int is) {
370  return theStepPreProcess[is];
371  }
372  int getStepPostProcess( int is) {
373  return theStepPostProcess[is];
374  }
375 
376  int getStepVolumeID( int is ) {
377  return theVolumeID[is];
378  }
380  return theVolumeName[is];
381  }
382  int getStepVolumeCopy( int is ) {
383  return theVolumeCopy[is];
384  }
385  float getStepVolumeX( int is ) {
386  return theVolumeX[is];
387  }
388  float getStepVolumeY( int is ) {
389  return theVolumeY[is];
390  }
391  float getStepVolumeZ( int is ) {
392  return theVolumeZ[is];
393  }
394  CLHEP::HepLorentzVector getStepVolumeXaxis( int is ) {
395  return CLHEP::HepLorentzVector(theVolumeXaxis1[is],theVolumeXaxis2[is],theVolumeXaxis3[is]);
396  }
397  CLHEP::HepLorentzVector getStepVolumeYaxis( int is ) {
398  return CLHEP::HepLorentzVector(theVolumeYaxis1[is],theVolumeYaxis2[is],theVolumeYaxis3[is]);
399  }
400  CLHEP::HepLorentzVector getStepVolumeZaxis( int is ) {
401  return CLHEP::HepLorentzVector(theVolumeZaxis1[is],theVolumeZaxis2[is],theVolumeZaxis3[is]);
402  }
403  int getStepMaterialID( int is ) {
404  return theMaterialID[is];
405  }
407  return theMaterialName[is];
408  }
409  float getStepMaterialX0( int is ) {
410  return theMaterialX0[is];
411  }
412  float getStepMaterialLambda0( int is ) {
413  return theMaterialLambda0[is];
414  }
415  float getStepMaterialDensity( int is ) {
416  return theMaterialDensity[is];
417  }
418 
419  bool allStepsON() {
420  return allStepsToTree;
421  }
422 
423  inline bool getHGCalmode(void) {return isHGCal;}
424  inline void setHGCalmode(bool t) {isHGCal=t;}
425 
426  private:
427 
428  static constexpr int MAXNUMBERSTEPS = 10000;
429 
430  float theTotalMB;
431  float theEta;
432  float thePhi;
433 
434  float thePt;
435  int theID;
436  float theEnergy;
437  float theMass;
454  float theCablesMB;
457  float theOtherMB;
458  float theAirMB;
459 
460  //HGCal MB
471  float theCopperMB;
473  float theLeadMB;
474  float theEpoxyMB;
475  float theKaptonMB;
480  float theWCuMB;
481  float theTotalIL;
484  float theCablesIL;
487  float theOtherIL;
488  float theAirIL;
489 
490  //HGCal IL
501  float theCopperIL;
503  float theLeadIL;
504  float theEpoxyIL;
505  float theKaptonIL;
510  float theWCuIL;
511 
512  int theStepN;
513  std::array<double,MAXNUMBERSTEPS> theInitialX;
514  std::array<double,MAXNUMBERSTEPS> theInitialY;
515  std::array<double,MAXNUMBERSTEPS> theInitialZ;
516 
517  std::array<double,MAXNUMBERSTEPS> theFinalX;
518  std::array<double,MAXNUMBERSTEPS> theFinalY;
519  std::array<double,MAXNUMBERSTEPS> theFinalZ;
520 
521  std::array<float,MAXNUMBERSTEPS> theDmb;
522  std::array<float,MAXNUMBERSTEPS> theSupportDmb;
523  std::array<float,MAXNUMBERSTEPS> theSensitiveDmb;
524  std::array<float,MAXNUMBERSTEPS> theCablesDmb;
525  std::array<float,MAXNUMBERSTEPS> theCoolingDmb;
526  std::array<float,MAXNUMBERSTEPS> theElectronicsDmb;
527  std::array<float,MAXNUMBERSTEPS> theOtherDmb;
528  std::array<float,MAXNUMBERSTEPS> theAirDmb;
529  std::array<float,MAXNUMBERSTEPS> theCopperDmb;
530  std::array<float,MAXNUMBERSTEPS> theH_ScintillatorDmb;
531  std::array<float,MAXNUMBERSTEPS> theLeadDmb;
532  std::array<float,MAXNUMBERSTEPS> theEpoxyDmb;
533  std::array<float,MAXNUMBERSTEPS> theKaptonDmb;
534  std::array<float,MAXNUMBERSTEPS> theAluminiumDmb;
535  std::array<float,MAXNUMBERSTEPS> theHGC_G10_FR4Dmb;
536  std::array<float,MAXNUMBERSTEPS> theSiliconDmb;
537  std::array<float,MAXNUMBERSTEPS> theStainlessSteelDmb;
538  std::array<float,MAXNUMBERSTEPS> theWCuDmb;
539 
540  std::array<float,MAXNUMBERSTEPS> theDil;
541  std::array<float,MAXNUMBERSTEPS> theSupportDil;
542  std::array<float,MAXNUMBERSTEPS> theSensitiveDil;
543  std::array<float,MAXNUMBERSTEPS> theCablesDil;
544  std::array<float,MAXNUMBERSTEPS> theCoolingDil;
545  std::array<float,MAXNUMBERSTEPS> theElectronicsDil;
546  std::array<float,MAXNUMBERSTEPS> theOtherDil;
547  std::array<float,MAXNUMBERSTEPS> theAirDil;
548  std::array<float,MAXNUMBERSTEPS> theCopperDil;
549  std::array<float,MAXNUMBERSTEPS> theH_ScintillatorDil;
550  std::array<float,MAXNUMBERSTEPS> theLeadDil;
551  std::array<float,MAXNUMBERSTEPS> theEpoxyDil;
552  std::array<float,MAXNUMBERSTEPS> theKaptonDil;
553  std::array<float,MAXNUMBERSTEPS> theAluminiumDil;
554  std::array<float,MAXNUMBERSTEPS> theHGC_G10_FR4Dil;
555  std::array<float,MAXNUMBERSTEPS> theSiliconDil;
556  std::array<float,MAXNUMBERSTEPS> theStainlessSteelDil;
557  std::array<float,MAXNUMBERSTEPS> theWCuDil;
558 
559  std::array<int,MAXNUMBERSTEPS> theVolumeID;
560  std::array<std::string,MAXNUMBERSTEPS> theVolumeName;
561  std::array<int,MAXNUMBERSTEPS> theVolumeCopy;
562  std::array<float,MAXNUMBERSTEPS> theVolumeX;
563  std::array<float,MAXNUMBERSTEPS> theVolumeY;
564  std::array<float,MAXNUMBERSTEPS> theVolumeZ;
565  std::array<float,MAXNUMBERSTEPS> theVolumeXaxis1;
566  std::array<float,MAXNUMBERSTEPS> theVolumeXaxis2;
567  std::array<float,MAXNUMBERSTEPS> theVolumeXaxis3;
568  std::array<float,MAXNUMBERSTEPS> theVolumeYaxis1;
569  std::array<float,MAXNUMBERSTEPS> theVolumeYaxis2;
570  std::array<float,MAXNUMBERSTEPS> theVolumeYaxis3;
571  std::array<float,MAXNUMBERSTEPS> theVolumeZaxis1;
572  std::array<float,MAXNUMBERSTEPS> theVolumeZaxis2;
573  std::array<float,MAXNUMBERSTEPS> theVolumeZaxis3;
574 
575  std::array<int,MAXNUMBERSTEPS> theMaterialID;
576  std::array<std::string,MAXNUMBERSTEPS> theMaterialName;
577  std::array<float,MAXNUMBERSTEPS> theMaterialX0;
578  std::array<float,MAXNUMBERSTEPS> theMaterialLambda0;
579  std::array<float,MAXNUMBERSTEPS> theMaterialDensity;
580 
581  std::array<int,MAXNUMBERSTEPS> theStepID;
582  std::array<float,MAXNUMBERSTEPS> theStepInitialPt;
583  std::array<float,MAXNUMBERSTEPS> theStepInitialEta;
584  std::array<float,MAXNUMBERSTEPS> theStepInitialPhi;
585  std::array<float,MAXNUMBERSTEPS> theStepInitialEnergy;
586  std::array<float,MAXNUMBERSTEPS> theStepInitialPx;
587  std::array<float,MAXNUMBERSTEPS> theStepInitialPy;
588  std::array<float,MAXNUMBERSTEPS> theStepInitialPz;
589  std::array<float,MAXNUMBERSTEPS> theStepInitialBeta;
590  std::array<float,MAXNUMBERSTEPS> theStepInitialGamma;
591  std::array<float,MAXNUMBERSTEPS> theStepInitialMass;
592  std::array<float,MAXNUMBERSTEPS> theStepFinalPt;
593  std::array<float,MAXNUMBERSTEPS> theStepFinalEta;
594  std::array<float,MAXNUMBERSTEPS> theStepFinalPhi;
595  std::array<float,MAXNUMBERSTEPS> theStepFinalEnergy;
596  std::array<float,MAXNUMBERSTEPS> theStepFinalPx;
597  std::array<float,MAXNUMBERSTEPS> theStepFinalPy;
598  std::array<float,MAXNUMBERSTEPS> theStepFinalPz;
599  std::array<float,MAXNUMBERSTEPS> theStepFinalBeta;
600  std::array<float,MAXNUMBERSTEPS> theStepFinalGamma;
601  std::array<float,MAXNUMBERSTEPS> theStepFinalMass;
602  std::array<int,MAXNUMBERSTEPS> theStepPreProcess;
603  std::array<int,MAXNUMBERSTEPS> theStepPostProcess;
604 
605  float theTrkLen;
606 
608 
610 
611  std::unique_ptr<MaterialBudgetCategorizer> myMaterialBudgetCategorizer;
612 
613  float theRadLen;
614  float theIntLen;
615  int stepN;
617  bool isHGCal; //HGCal mode
618 
620 };
621 
622 #endif
float getTotalMB() const
float getH_ScintillatorIL() const
std::array< float, MAXNUMBERSTEPS > theStepInitialMass
std::array< float, MAXNUMBERSTEPS > theWCuDil
std::array< float, MAXNUMBERSTEPS > theMaterialX0
float getKaptonDil(int is) const
std::array< float, MAXNUMBERSTEPS > theVolumeZaxis1
std::array< float, MAXNUMBERSTEPS > theAirDil
CLHEP::HepLorentzVector getStepVolumeYaxis(int is)
float getStepInitialEnergy(int is)
float getCopperFractionIL() const
float getAirDmb(int is) const
float getKaptonDmb(int is) const
float getStepMaterialLambda0(int is)
double getStepFinalX(int is)
float getStepFinalEnergy(int is)
std::array< float, MAXNUMBERSTEPS > theStepInitialBeta
float getH_ScintillatorFractionMB() const
float getOtherDil(int is) const
std::array< float, MAXNUMBERSTEPS > theSupportDmb
float getSupportDil(int is) const
float getStepInitialGamma(int is)
std::array< float, MAXNUMBERSTEPS > theStepFinalEta
float getSensitiveFractionMB() const
float getSupportFractionIL() const
float getSiliconFractionIL() const
std::array< float, MAXNUMBERSTEPS > theKaptonDil
std::array< int, MAXNUMBERSTEPS > theStepPreProcess
std::array< float, MAXNUMBERSTEPS > theStainlessSteelDil
int getStepVolumeCopy(int is)
std::array< int, MAXNUMBERSTEPS > theStepPostProcess
float getSensitiveDmb(int is) const
float getStainlessSteelDil(int is) const
std::array< float, MAXNUMBERSTEPS > theSiliconDil
float getStepVolumeZ(int is)
std::array< float, MAXNUMBERSTEPS > theKaptonDmb
float getSensitiveMB() const
float getStainlessSteelFractionMB() const
std::array< float, MAXNUMBERSTEPS > theCopperDmb
float getStepInitialPhi(int is)
std::array< double, MAXNUMBERSTEPS > theFinalX
float getSiliconMB() const
float getStepFinalPhi(int is)
float getElectronicsFractionIL() const
float getStepMaterialX0(int is)
std::array< float, MAXNUMBERSTEPS > theStepFinalBeta
float getCoolingIL() const
float getCopperDmb(int is) const
float getAirMB() const
std::array< float, MAXNUMBERSTEPS > theAirDmb
float getElectronicsDil(int is) const
std::array< float, MAXNUMBERSTEPS > theStepInitialPt
std::array< float, MAXNUMBERSTEPS > theWCuDmb
std::array< float, MAXNUMBERSTEPS > theEpoxyDmb
float getEpoxyFractionIL() const
std::array< float, MAXNUMBERSTEPS > theStepInitialPz
std::string getPVname() const
std::array< float, MAXNUMBERSTEPS > theStepInitialPx
std::array< float, MAXNUMBERSTEPS > theStepFinalPhi
std::array< float, MAXNUMBERSTEPS > theVolumeYaxis1
float getLeadDil(int is) const
float getWCuDmb(int is) const
std::array< double, MAXNUMBERSTEPS > theInitialY
float getSiliconFractionMB() const
float getHGC_G10_FR4FractionMB() const
float getStepInitialBeta(int is)
std::array< float, MAXNUMBERSTEPS > theHGC_G10_FR4Dil
std::array< float, MAXNUMBERSTEPS > theStepFinalGamma
std::array< float, MAXNUMBERSTEPS > theVolumeZaxis2
std::array< float, MAXNUMBERSTEPS > theStepFinalMass
float getAluminiumFractionMB() const
float getCopperIL() const
float getH_ScintillatorDil(int is) const
float getAluminiumIL() const
float getAluminiumFractionIL() const
float getStepInitialMass(int is)
std::array< float, MAXNUMBERSTEPS > theHGC_G10_FR4Dmb
float getLeadFractionMB() const
std::unique_ptr< MaterialBudgetCategorizer > myMaterialBudgetCategorizer
float getOtherIL() const
float getElectronicsFractionMB() const
double getStepInitialZ(int is)
std::array< float, MAXNUMBERSTEPS > theSiliconDmb
float getSiliconDmb(int is) const
float getStepInitialPy(int is)
float getStepInitialPt(int is)
std::array< int, MAXNUMBERSTEPS > theVolumeCopy
float getStepFinalMass(int is)
std::array< float, MAXNUMBERSTEPS > theLeadDmb
std::array< double, MAXNUMBERSTEPS > theInitialZ
float getCopperDil(int is) const
float getAirFractionMB() const
float getEpoxyFractionMB() const
std::array< float, MAXNUMBERSTEPS > theMaterialDensity
float getStepFinalPt(int is)
std::array< float, MAXNUMBERSTEPS > theVolumeXaxis1
std::array< float, MAXNUMBERSTEPS > theOtherDmb
std::array< int, MAXNUMBERSTEPS > theStepID
double getStepFinalY(int is)
void dataEndTrack(const G4Track *aTrack)
float getEpoxyMB() const
std::array< float, MAXNUMBERSTEPS > theSensitiveDil
float getSupportMB() const
int getStepMaterialID(int is)
std::array< double, MAXNUMBERSTEPS > theFinalY
float getKaptonFractionMB() const
void dataPerStep(const G4Step *aStep)
float getCoolingDmb(int is) const
std::string getStepMaterialName(int is)
float getCoolingDil(int is) const
float getOtherMB() const
float getStepFinalPy(int is)
float getSupportDmb(int is) const
float getAluminiumMB() const
float getStainlessSteelFractionIL() const
float getEpoxyDil(int is) const
float getStainlessSteelDmb(int is) const
std::array< float, MAXNUMBERSTEPS > theStepFinalPx
std::array< float, MAXNUMBERSTEPS > theStepInitialEta
float getHGC_G10_FR4Dmb(int is) const
std::array< float, MAXNUMBERSTEPS > theStepInitialPhi
std::array< float, MAXNUMBERSTEPS > theCoolingDmb
float getStepDmb(int is)
std::string getStepVolumeName(int is)
float getEpoxyDmb(int is) const
std::array< float, MAXNUMBERSTEPS > theVolumeX
float getKaptonFractionIL() const
float getLeadFractionIL() const
float getLeadMB() const
double getStepFinalZ(int is)
float getStepVolumeY(int is)
float getEnergy() const
float getHGC_G10_FR4Dil(int is) const
float getCablesIL() const
float getIntLen() const
float getWCuDil(int is) const
std::array< float, MAXNUMBERSTEPS > theLeadDil
std::array< float, MAXNUMBERSTEPS > theCablesDil
float getStepFinalEta(int is)
float getCoolingMB() const
float getCablesFractionMB() const
float getStainlessSteelMB() const
float getElectronicsMB() const
float getKaptonMB() const
float getKaptonIL() const
double getStepInitialY(int is)
std::array< float, MAXNUMBERSTEPS > theVolumeXaxis2
float getCoolingFractionIL() const
float getWCuFractionIL() const
std::array< float, MAXNUMBERSTEPS > theSupportDil
double getStepInitialX(int is)
std::array< float, MAXNUMBERSTEPS > theVolumeXaxis3
float getHGC_G10_FR4IL() const
std::array< float, MAXNUMBERSTEPS > theStepFinalPt
std::array< float, MAXNUMBERSTEPS > theStepFinalPy
float getHGC_G10_FR4FractionIL() const
std::array< float, MAXNUMBERSTEPS > theDil
std::array< float, MAXNUMBERSTEPS > theMaterialLambda0
float getMass() const
std::array< double, MAXNUMBERSTEPS > theFinalZ
float getOtherFractionIL() const
float getSensitiveFractionIL() const
float getWCuFractionMB() const
std::array< float, MAXNUMBERSTEPS > theVolumeZ
int getNumberOfSteps() const
std::array< int, MAXNUMBERSTEPS > theVolumeID
std::array< float, MAXNUMBERSTEPS > theVolumeY
float getLeadIL() const
float getStepFinalGamma(int is)
std::array< float, MAXNUMBERSTEPS > theDmb
std::array< std::string, MAXNUMBERSTEPS > theVolumeName
float getH_ScintillatorDmb(int is) const
void dataStartTrack(const G4Track *aTrack)
std::map< std::string, float > msf
std::array< float, MAXNUMBERSTEPS > theStepFinalEnergy
float getCopperMB() const
float getSensitiveDil(int is) const
CLHEP::HepLorentzVector getStepVolumeXaxis(int is)
float getAirIL() const
std::array< float, MAXNUMBERSTEPS > theH_ScintillatorDmb
float getCopperFractionMB() const
float getH_ScintillatorFractionIL() const
float getStepFinalPx(int is)
std::array< float, MAXNUMBERSTEPS > theStepInitialGamma
float getAirDil(int is) const
std::array< float, MAXNUMBERSTEPS > theSensitiveDmb
float getEpoxyIL() const
float getSensitiveIL() const
float getHGC_G10_FR4MB() const
std::array< int, MAXNUMBERSTEPS > theMaterialID
std::array< float, MAXNUMBERSTEPS > theEpoxyDil
float getCablesDil(int is) const
float getCablesFractionIL() const
std::array< float, MAXNUMBERSTEPS > theElectronicsDmb
float getRadLen() const
std::array< float, MAXNUMBERSTEPS > theVolumeYaxis3
float getTrkLen() const
float getStepMaterialDensity(int is)
std::array< float, MAXNUMBERSTEPS > theVolumeYaxis2
float getOtherFractionMB() const
float getCoolingFractionMB() const
std::array< float, MAXNUMBERSTEPS > theCoolingDil
float getSiliconDil(int is) const
std::array< float, MAXNUMBERSTEPS > theH_ScintillatorDil
std::array< float, MAXNUMBERSTEPS > theOtherDil
float getStepVolumeX(int is)
std::array< float, MAXNUMBERSTEPS > theStepInitialEnergy
std::array< float, MAXNUMBERSTEPS > theElectronicsDil
float getSupportIL() const
float getAirFractionIL() const
float getAluminiumDil(int is) const
float getSiliconIL() const
float getLeadDmb(int is) const
std::array< float, MAXNUMBERSTEPS > theStainlessSteelDmb
int getStepPostProcess(int is)
float getStepFinalBeta(int is)
float getCablesDmb(int is) const
std::array< float, MAXNUMBERSTEPS > theCablesDmb
float getStepFinalPz(int is)
float getOtherDmb(int is) const
std::array< float, MAXNUMBERSTEPS > theCopperDil
float getStepDil(int is)
std::array< std::string, MAXNUMBERSTEPS > theMaterialName
std::array< float, MAXNUMBERSTEPS > theAluminiumDil
std::array< float, MAXNUMBERSTEPS > theVolumeZaxis3
std::array< float, MAXNUMBERSTEPS > theStepInitialPy
float getWCuIL() const
float getWCuMB() const
float getAluminiumDmb(int is) const
float getTotalIL() const
float getStepInitialPx(int is)
std::array< float, MAXNUMBERSTEPS > theAluminiumDmb
float getElectronicsIL() const
float getStepInitialEta(int is)
#define constexpr
float getStainlessSteelIL() const
float getElectronicsDmb(int is) const
std::array< float, MAXNUMBERSTEPS > theStepFinalPz
float getH_ScintillatorMB() const
CLHEP::HepLorentzVector getStepVolumeZaxis(int is)
float getCablesMB() const
float getStepInitialPz(int is)
float getSupportFractionMB() const
std::array< double, MAXNUMBERSTEPS > theInitialX
int getStepPreProcess(int is)