File indexing completed on 2024-04-06 12:32:13
0001
0002 #ifndef MaterialBudgetData_h
0003 #define MaterialBudgetData_h 1
0004
0005 #include "Validation/Geometry/interface/MaterialBudgetCategorizer.h"
0006
0007 #include "G4ThreeVector.hh"
0008
0009 #include <CLHEP/Vector/LorentzVector.h>
0010
0011 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0012
0013 #include <memory>
0014 #include <array>
0015
0016 class MaterialBudgetData;
0017 class G4Step;
0018 class G4Track;
0019
0020 typedef std::map<std::string, float> msf;
0021
0022 class MaterialBudgetData {
0023 public:
0024 MaterialBudgetData();
0025 ~MaterialBudgetData();
0026
0027 void dataStartTrack(const G4Track* aTrack);
0028 void dataEndTrack(const G4Track* aTrack);
0029 void dataPerStep(const G4Step* aStep);
0030
0031 void SetAllStepsToTree();
0032
0033 public:
0034 float getTotalMB() const { return theTotalMB; }
0035
0036 float getSupportFractionMB() const { return theSupportFractionMB; }
0037 float getSensitiveFractionMB() const { return theSensitiveFractionMB; }
0038 float getCablesFractionMB() const { return theCablesFractionMB; }
0039 float getCoolingFractionMB() const { return theCoolingFractionMB; }
0040 float getElectronicsFractionMB() const { return theElectronicsFractionMB; }
0041 float getOtherFractionMB() const { return theOtherFractionMB; }
0042 float getAirFractionMB() const { return theAirFractionMB; }
0043
0044 float getCopperFractionMB() const { return theCopperFractionMB; }
0045 float getH_ScintillatorFractionMB() const { return theH_ScintillatorFractionMB; }
0046 float getLeadFractionMB() const { return theLeadFractionMB; }
0047 float getEpoxyFractionMB() const { return theEpoxyFractionMB; }
0048 float getKaptonFractionMB() const { return theKaptonFractionMB; }
0049 float getAluminiumFractionMB() const { return theAluminiumFractionMB; }
0050 float getHGC_G10_FR4FractionMB() const { return theHGC_G10_FR4FractionMB; }
0051 float getSiliconFractionMB() const { return theSiliconFractionMB; }
0052 float getStainlessSteelFractionMB() const { return theStainlessSteelFractionMB; }
0053 float getWCuFractionMB() const { return theWCuFractionMB; }
0054 float getPolystyreneFractionMB() const { return thePolystyreneFractionMB; }
0055 float getHGC_EEConnectorFractionMB() const { return theHGC_EEConnectorFractionMB; }
0056 float getHGC_HEConnectorFractionMB() const { return theHGC_HEConnectorFractionMB; }
0057
0058 float getSupportMB() const { return theSupportMB; }
0059 float getSensitiveMB() const { return theSensitiveMB; }
0060 float getCablesMB() const { return theCablesMB; }
0061 float getCoolingMB() const { return theCoolingMB; }
0062 float getElectronicsMB() const { return theElectronicsMB; }
0063 float getOtherMB() const { return theOtherMB; }
0064 float getAirMB() const { return theAirMB; }
0065
0066 float getCopperMB() const { return theCopperMB; }
0067 float getH_ScintillatorMB() const { return theH_ScintillatorMB; }
0068 float getLeadMB() const { return theLeadMB; }
0069 float getEpoxyMB() const { return theEpoxyMB; }
0070 float getKaptonMB() const { return theKaptonMB; }
0071 float getAluminiumMB() const { return theAluminiumMB; }
0072 float getHGC_G10_FR4MB() const { return theHGC_G10_FR4MB; }
0073 float getSiliconMB() const { return theSiliconMB; }
0074 float getStainlessSteelMB() const { return theStainlessSteelMB; }
0075 float getWCuMB() const { return theWCuMB; }
0076 float getPolystyreneMB() const { return thePolystyreneMB; }
0077 float getHGC_EEConnectorMB() const { return theHGC_EEConnectorMB; }
0078 float getHGC_HEConnectorMB() const { return theHGC_HEConnectorMB; }
0079
0080 float getSupportFractionIL() const { return theSupportFractionIL; }
0081 float getSensitiveFractionIL() const { return theSensitiveFractionIL; }
0082 float getCablesFractionIL() const { return theCablesFractionIL; }
0083 float getCoolingFractionIL() const { return theCoolingFractionIL; }
0084 float getElectronicsFractionIL() const { return theElectronicsFractionIL; }
0085 float getOtherFractionIL() const { return theOtherFractionIL; }
0086 float getAirFractionIL() const { return theAirFractionIL; }
0087 float getCopperFractionIL() const { return theCopperFractionIL; }
0088 float getH_ScintillatorFractionIL() const { return theH_ScintillatorFractionIL; }
0089 float getLeadFractionIL() const { return theLeadFractionIL; }
0090 float getEpoxyFractionIL() const { return theEpoxyFractionIL; }
0091 float getKaptonFractionIL() const { return theKaptonFractionIL; }
0092 float getAluminiumFractionIL() const { return theAluminiumFractionIL; }
0093 float getHGC_G10_FR4FractionIL() const { return theHGC_G10_FR4FractionIL; }
0094 float getSiliconFractionIL() const { return theSiliconFractionIL; }
0095 float getStainlessSteelFractionIL() const { return theStainlessSteelFractionIL; }
0096 float getWCuFractionIL() const { return theWCuFractionIL; }
0097 float getPolystyreneFractionIL() const { return thePolystyreneFractionIL; }
0098 float getHGC_EEConnectorFractionIL() const { return theHGC_EEConnectorFractionIL; }
0099 float getHGC_HEConnectorFractionIL() const { return theHGC_HEConnectorFractionIL; }
0100
0101 float getTotalIL() const { return theTotalIL; }
0102 float getSupportIL() const { return theSupportIL; }
0103 float getSensitiveIL() const { return theSensitiveIL; }
0104 float getCablesIL() const { return theCablesIL; }
0105 float getCoolingIL() const { return theCoolingIL; }
0106 float getElectronicsIL() const { return theElectronicsIL; }
0107 float getOtherIL() const { return theOtherIL; }
0108 float getAirIL() const { return theAirIL; }
0109 float getCopperIL() const { return theCopperIL; }
0110 float getH_ScintillatorIL() const { return theH_ScintillatorIL; }
0111 float getLeadIL() const { return theLeadIL; }
0112 float getEpoxyIL() const { return theEpoxyIL; }
0113 float getKaptonIL() const { return theKaptonIL; }
0114 float getAluminiumIL() const { return theAluminiumIL; }
0115 float getHGC_G10_FR4IL() const { return theHGC_G10_FR4IL; }
0116 float getSiliconIL() const { return theSiliconIL; }
0117 float getStainlessSteelIL() const { return theStainlessSteelIL; }
0118 float getWCuIL() const { return theWCuIL; }
0119 float getPolystyreneIL() const { return thePolystyreneIL; }
0120 float getHGC_EEConnectorIL() const { return theHGC_EEConnectorIL; }
0121 float getHGC_HEConnectorIL() const { return theHGC_HEConnectorIL; }
0122
0123 float getEta() const { return theEta; }
0124 float getPhi() const { return thePhi; }
0125
0126 int getID() const { return theID; }
0127 float getPt() const { return thePt; }
0128 float getEnergy() const { return theEnergy; }
0129 float getMass() const { return theMass; }
0130
0131 int getNumberOfSteps() const { return theStepN; }
0132
0133 float getTrkLen() const { return theTrkLen; }
0134 std::string getPVname() const { return thePVname; }
0135 int getPVcopyNo() const { return thePVcopyNo; }
0136 float getRadLen() const { return theRadLen; }
0137 float getIntLen() const { return theIntLen; }
0138
0139 float getStepDmb(int is) { return theDmb[is]; }
0140 float getSupportDmb(int is) const { return theSupportDmb[is]; }
0141 float getSensitiveDmb(int is) const { return theSensitiveDmb[is]; }
0142 float getCablesDmb(int is) const { return theCablesDmb[is]; }
0143 float getCoolingDmb(int is) const { return theCoolingDmb[is]; }
0144 float getElectronicsDmb(int is) const { return theElectronicsDmb[is]; }
0145 float getOtherDmb(int is) const { return theOtherDmb[is]; }
0146 float getAirDmb(int is) const { return theAirDmb[is]; }
0147 float getCopperDmb(int is) const { return theCopperDmb[is]; }
0148 float getH_ScintillatorDmb(int is) const { return theH_ScintillatorDmb[is]; }
0149 float getLeadDmb(int is) const { return theLeadDmb[is]; }
0150 float getEpoxyDmb(int is) const { return theEpoxyDmb[is]; }
0151 float getKaptonDmb(int is) const { return theKaptonDmb[is]; }
0152 float getAluminiumDmb(int is) const { return theAluminiumDmb[is]; }
0153 float getHGC_G10_FR4Dmb(int is) const { return theHGC_G10_FR4Dmb[is]; }
0154 float getSiliconDmb(int is) const { return theSiliconDmb[is]; }
0155 float getStainlessSteelDmb(int is) const { return theStainlessSteelDmb[is]; }
0156 float getWCuDmb(int is) const { return theWCuDmb[is]; }
0157 float getPolystyreneDmb(int is) const { return thePolystyreneDmb[is]; }
0158 float getHGC_EEConnectorDmb(int is) const { return theHGC_EEConnectorDmb[is]; }
0159 float getHGC_HEConnectorDmb(int is) const { return theHGC_HEConnectorDmb[is]; }
0160
0161 float getStepDil(int is) { return theDil[is]; }
0162 float getSupportDil(int is) const { return theSupportDil[is]; }
0163 float getSensitiveDil(int is) const { return theSensitiveDil[is]; }
0164 float getCablesDil(int is) const { return theCablesDil[is]; }
0165 float getCoolingDil(int is) const { return theCoolingDil[is]; }
0166 float getElectronicsDil(int is) const { return theElectronicsDil[is]; }
0167 float getOtherDil(int is) const { return theOtherDil[is]; }
0168 float getAirDil(int is) const { return theAirDil[is]; }
0169 float getCopperDil(int is) const { return theCopperDil[is]; }
0170 float getH_ScintillatorDil(int is) const { return theH_ScintillatorDil[is]; }
0171 float getLeadDil(int is) const { return theLeadDil[is]; }
0172 float getEpoxyDil(int is) const { return theEpoxyDil[is]; }
0173 float getKaptonDil(int is) const { return theKaptonDil[is]; }
0174 float getAluminiumDil(int is) const { return theAluminiumDil[is]; }
0175 float getHGC_G10_FR4Dil(int is) const { return theHGC_G10_FR4Dil[is]; }
0176 float getSiliconDil(int is) const { return theSiliconDil[is]; }
0177 float getStainlessSteelDil(int is) const { return theStainlessSteelDil[is]; }
0178 float getWCuDil(int is) const { return theWCuDil[is]; }
0179 float getPolystyreneDil(int is) const { return thePolystyreneDil[is]; }
0180 float getHGC_EEConnectorDil(int is) const { return theHGC_EEConnectorDil[is]; }
0181 float getHGC_HEConnectorDil(int is) const { return theHGC_HEConnectorDil[is]; }
0182
0183 double getStepInitialX(int is) { return theInitialX[is]; }
0184 double getStepInitialY(int is) { return theInitialY[is]; }
0185 double getStepInitialZ(int is) { return theInitialZ[is]; }
0186 double getStepFinalX(int is) { return theFinalX[is]; }
0187 double getStepFinalY(int is) { return theFinalY[is]; }
0188 double getStepFinalZ(int is) { return theFinalZ[is]; }
0189 int getStepID(int is) { return theStepID[is]; }
0190 float getStepInitialPt(int is) { return theStepInitialPt[is]; }
0191 float getStepInitialEta(int is) { return theStepInitialEta[is]; }
0192 float getStepInitialPhi(int is) { return theStepInitialPhi[is]; }
0193 float getStepInitialEnergy(int is) { return theStepInitialEnergy[is]; }
0194 float getStepInitialPx(int is) { return theStepInitialPx[is]; }
0195 float getStepInitialPy(int is) { return theStepInitialPy[is]; }
0196 float getStepInitialPz(int is) { return theStepInitialPz[is]; }
0197 float getStepInitialBeta(int is) { return theStepInitialBeta[is]; }
0198 float getStepInitialGamma(int is) { return theStepInitialGamma[is]; }
0199 float getStepInitialMass(int is) { return theStepInitialMass[is]; }
0200 float getStepFinalPt(int is) { return theStepFinalPt[is]; }
0201 float getStepFinalEta(int is) { return theStepFinalEta[is]; }
0202 float getStepFinalPhi(int is) { return theStepFinalPhi[is]; }
0203 float getStepFinalEnergy(int is) { return theStepFinalEnergy[is]; }
0204 float getStepFinalPx(int is) { return theStepFinalPx[is]; }
0205 float getStepFinalPy(int is) { return theStepFinalPy[is]; }
0206 float getStepFinalPz(int is) { return theStepFinalPz[is]; }
0207 float getStepFinalBeta(int is) { return theStepFinalBeta[is]; }
0208 float getStepFinalGamma(int is) { return theStepFinalGamma[is]; }
0209 float getStepFinalMass(int is) { return theStepFinalMass[is]; }
0210 int getStepPreProcess(int is) { return theStepPreProcess[is]; }
0211 int getStepPostProcess(int is) { return theStepPostProcess[is]; }
0212
0213 int getStepVolumeID(int is) { return theVolumeID[is]; }
0214 std::string getStepVolumeName(int is) { return theVolumeName[is]; }
0215 int getStepVolumeCopy(int is) { return theVolumeCopy[is]; }
0216 float getStepVolumeX(int is) { return theVolumeX[is]; }
0217 float getStepVolumeY(int is) { return theVolumeY[is]; }
0218 float getStepVolumeZ(int is) { return theVolumeZ[is]; }
0219 CLHEP::HepLorentzVector getStepVolumeXaxis(int is) {
0220 return CLHEP::HepLorentzVector(theVolumeXaxis1[is], theVolumeXaxis2[is], theVolumeXaxis3[is]);
0221 }
0222 CLHEP::HepLorentzVector getStepVolumeYaxis(int is) {
0223 return CLHEP::HepLorentzVector(theVolumeYaxis1[is], theVolumeYaxis2[is], theVolumeYaxis3[is]);
0224 }
0225 CLHEP::HepLorentzVector getStepVolumeZaxis(int is) {
0226 return CLHEP::HepLorentzVector(theVolumeZaxis1[is], theVolumeZaxis2[is], theVolumeZaxis3[is]);
0227 }
0228 int getStepMaterialID(int is) { return theMaterialID[is]; }
0229 std::string getStepMaterialName(int is) { return theMaterialName[is]; }
0230 float getStepMaterialX0(int is) { return theMaterialX0[is]; }
0231 float getStepMaterialLambda0(int is) { return theMaterialLambda0[is]; }
0232 float getStepMaterialDensity(int is) { return theMaterialDensity[is]; }
0233
0234 bool allStepsON() { return allStepsToTree; }
0235
0236 inline bool getHGCalmode(void) { return isHGCal; }
0237 inline void setHGCalmode(bool t) { isHGCal = t; }
0238 inline void setMtdmode(bool t) { isMtd = t; }
0239
0240 private:
0241 static constexpr int MAXNUMBERSTEPS = 10000;
0242
0243 float theTotalMB;
0244 float theEta;
0245 float thePhi;
0246
0247 float thePt;
0248 int theID;
0249 float theEnergy;
0250 float theMass;
0251 float theSupportFractionMB;
0252 float theSensitiveFractionMB;
0253 float theCablesFractionMB;
0254 float theCoolingFractionMB;
0255 float theElectronicsFractionMB;
0256 float theOtherFractionMB;
0257 float theAirFractionMB;
0258 float theSupportFractionIL;
0259 float theSensitiveFractionIL;
0260 float theCablesFractionIL;
0261 float theCoolingFractionIL;
0262 float theElectronicsFractionIL;
0263 float theOtherFractionIL;
0264 float theAirFractionIL;
0265 float theSupportMB;
0266 float theSensitiveMB;
0267 float theCablesMB;
0268 float theCoolingMB;
0269 float theElectronicsMB;
0270 float theOtherMB;
0271 float theAirMB;
0272
0273
0274 float theCopperFractionMB;
0275 float theH_ScintillatorFractionMB;
0276 float theLeadFractionMB;
0277 float theEpoxyFractionMB;
0278 float theKaptonFractionMB;
0279 float theAluminiumFractionMB;
0280 float theHGC_G10_FR4FractionMB;
0281 float theSiliconFractionMB;
0282 float theStainlessSteelFractionMB;
0283 float theWCuFractionMB;
0284 float thePolystyreneFractionMB;
0285 float theHGC_EEConnectorFractionMB;
0286 float theHGC_HEConnectorFractionMB;
0287 float theCopperMB;
0288 float theH_ScintillatorMB;
0289 float theLeadMB;
0290 float theEpoxyMB;
0291 float theKaptonMB;
0292 float theAluminiumMB;
0293 float theHGC_G10_FR4MB;
0294 float theSiliconMB;
0295 float theStainlessSteelMB;
0296 float theWCuMB;
0297 float thePolystyreneMB;
0298 float theHGC_EEConnectorMB;
0299 float theHGC_HEConnectorMB;
0300 float theTotalIL;
0301 float theSupportIL;
0302 float theSensitiveIL;
0303 float theCablesIL;
0304 float theCoolingIL;
0305 float theElectronicsIL;
0306 float theOtherIL;
0307 float theAirIL;
0308
0309
0310 float theCopperFractionIL;
0311 float theH_ScintillatorFractionIL;
0312 float theLeadFractionIL;
0313 float theEpoxyFractionIL;
0314 float theKaptonFractionIL;
0315 float theAluminiumFractionIL;
0316 float theHGC_G10_FR4FractionIL;
0317 float theSiliconFractionIL;
0318 float theStainlessSteelFractionIL;
0319 float theWCuFractionIL;
0320 float thePolystyreneFractionIL;
0321 float theHGC_EEConnectorFractionIL;
0322 float theHGC_HEConnectorFractionIL;
0323 float theCopperIL;
0324 float theH_ScintillatorIL;
0325 float theLeadIL;
0326 float theEpoxyIL;
0327 float theKaptonIL;
0328 float theAluminiumIL;
0329 float theHGC_G10_FR4IL;
0330 float theSiliconIL;
0331 float theStainlessSteelIL;
0332 float theWCuIL;
0333 float thePolystyreneIL;
0334 float theHGC_EEConnectorIL;
0335 float theHGC_HEConnectorIL;
0336
0337 int theStepN;
0338 std::array<double, MAXNUMBERSTEPS> theInitialX;
0339 std::array<double, MAXNUMBERSTEPS> theInitialY;
0340 std::array<double, MAXNUMBERSTEPS> theInitialZ;
0341
0342 std::array<double, MAXNUMBERSTEPS> theFinalX;
0343 std::array<double, MAXNUMBERSTEPS> theFinalY;
0344 std::array<double, MAXNUMBERSTEPS> theFinalZ;
0345
0346 std::array<float, MAXNUMBERSTEPS> theDmb;
0347 std::array<float, MAXNUMBERSTEPS> theSupportDmb;
0348 std::array<float, MAXNUMBERSTEPS> theSensitiveDmb;
0349 std::array<float, MAXNUMBERSTEPS> theCablesDmb;
0350 std::array<float, MAXNUMBERSTEPS> theCoolingDmb;
0351 std::array<float, MAXNUMBERSTEPS> theElectronicsDmb;
0352 std::array<float, MAXNUMBERSTEPS> theOtherDmb;
0353 std::array<float, MAXNUMBERSTEPS> theAirDmb;
0354 std::array<float, MAXNUMBERSTEPS> theCopperDmb;
0355 std::array<float, MAXNUMBERSTEPS> theH_ScintillatorDmb;
0356 std::array<float, MAXNUMBERSTEPS> theLeadDmb;
0357 std::array<float, MAXNUMBERSTEPS> theEpoxyDmb;
0358 std::array<float, MAXNUMBERSTEPS> theKaptonDmb;
0359 std::array<float, MAXNUMBERSTEPS> theAluminiumDmb;
0360 std::array<float, MAXNUMBERSTEPS> theHGC_G10_FR4Dmb;
0361 std::array<float, MAXNUMBERSTEPS> theSiliconDmb;
0362 std::array<float, MAXNUMBERSTEPS> theStainlessSteelDmb;
0363 std::array<float, MAXNUMBERSTEPS> theWCuDmb;
0364 std::array<float, MAXNUMBERSTEPS> thePolystyreneDmb;
0365 std::array<float, MAXNUMBERSTEPS> theHGC_EEConnectorDmb;
0366 std::array<float, MAXNUMBERSTEPS> theHGC_HEConnectorDmb;
0367
0368 std::array<float, MAXNUMBERSTEPS> theDil;
0369 std::array<float, MAXNUMBERSTEPS> theSupportDil;
0370 std::array<float, MAXNUMBERSTEPS> theSensitiveDil;
0371 std::array<float, MAXNUMBERSTEPS> theCablesDil;
0372 std::array<float, MAXNUMBERSTEPS> theCoolingDil;
0373 std::array<float, MAXNUMBERSTEPS> theElectronicsDil;
0374 std::array<float, MAXNUMBERSTEPS> theOtherDil;
0375 std::array<float, MAXNUMBERSTEPS> theAirDil;
0376 std::array<float, MAXNUMBERSTEPS> theCopperDil;
0377 std::array<float, MAXNUMBERSTEPS> theH_ScintillatorDil;
0378 std::array<float, MAXNUMBERSTEPS> theLeadDil;
0379 std::array<float, MAXNUMBERSTEPS> theEpoxyDil;
0380 std::array<float, MAXNUMBERSTEPS> theKaptonDil;
0381 std::array<float, MAXNUMBERSTEPS> theAluminiumDil;
0382 std::array<float, MAXNUMBERSTEPS> theHGC_G10_FR4Dil;
0383 std::array<float, MAXNUMBERSTEPS> theSiliconDil;
0384 std::array<float, MAXNUMBERSTEPS> theStainlessSteelDil;
0385 std::array<float, MAXNUMBERSTEPS> theWCuDil;
0386 std::array<float, MAXNUMBERSTEPS> thePolystyreneDil;
0387 std::array<float, MAXNUMBERSTEPS> theHGC_EEConnectorDil;
0388 std::array<float, MAXNUMBERSTEPS> theHGC_HEConnectorDil;
0389
0390 std::array<int, MAXNUMBERSTEPS> theVolumeID;
0391 std::array<std::string, MAXNUMBERSTEPS> theVolumeName;
0392 std::array<int, MAXNUMBERSTEPS> theVolumeCopy;
0393 std::array<float, MAXNUMBERSTEPS> theVolumeX;
0394 std::array<float, MAXNUMBERSTEPS> theVolumeY;
0395 std::array<float, MAXNUMBERSTEPS> theVolumeZ;
0396 std::array<float, MAXNUMBERSTEPS> theVolumeXaxis1;
0397 std::array<float, MAXNUMBERSTEPS> theVolumeXaxis2;
0398 std::array<float, MAXNUMBERSTEPS> theVolumeXaxis3;
0399 std::array<float, MAXNUMBERSTEPS> theVolumeYaxis1;
0400 std::array<float, MAXNUMBERSTEPS> theVolumeYaxis2;
0401 std::array<float, MAXNUMBERSTEPS> theVolumeYaxis3;
0402 std::array<float, MAXNUMBERSTEPS> theVolumeZaxis1;
0403 std::array<float, MAXNUMBERSTEPS> theVolumeZaxis2;
0404 std::array<float, MAXNUMBERSTEPS> theVolumeZaxis3;
0405
0406 std::array<int, MAXNUMBERSTEPS> theMaterialID;
0407 std::array<std::string, MAXNUMBERSTEPS> theMaterialName;
0408 std::array<float, MAXNUMBERSTEPS> theMaterialX0;
0409 std::array<float, MAXNUMBERSTEPS> theMaterialLambda0;
0410 std::array<float, MAXNUMBERSTEPS> theMaterialDensity;
0411
0412 std::array<int, MAXNUMBERSTEPS> theStepID;
0413 std::array<float, MAXNUMBERSTEPS> theStepInitialPt;
0414 std::array<float, MAXNUMBERSTEPS> theStepInitialEta;
0415 std::array<float, MAXNUMBERSTEPS> theStepInitialPhi;
0416 std::array<float, MAXNUMBERSTEPS> theStepInitialEnergy;
0417 std::array<float, MAXNUMBERSTEPS> theStepInitialPx;
0418 std::array<float, MAXNUMBERSTEPS> theStepInitialPy;
0419 std::array<float, MAXNUMBERSTEPS> theStepInitialPz;
0420 std::array<float, MAXNUMBERSTEPS> theStepInitialBeta;
0421 std::array<float, MAXNUMBERSTEPS> theStepInitialGamma;
0422 std::array<float, MAXNUMBERSTEPS> theStepInitialMass;
0423 std::array<float, MAXNUMBERSTEPS> theStepFinalPt;
0424 std::array<float, MAXNUMBERSTEPS> theStepFinalEta;
0425 std::array<float, MAXNUMBERSTEPS> theStepFinalPhi;
0426 std::array<float, MAXNUMBERSTEPS> theStepFinalEnergy;
0427 std::array<float, MAXNUMBERSTEPS> theStepFinalPx;
0428 std::array<float, MAXNUMBERSTEPS> theStepFinalPy;
0429 std::array<float, MAXNUMBERSTEPS> theStepFinalPz;
0430 std::array<float, MAXNUMBERSTEPS> theStepFinalBeta;
0431 std::array<float, MAXNUMBERSTEPS> theStepFinalGamma;
0432 std::array<float, MAXNUMBERSTEPS> theStepFinalMass;
0433 std::array<int, MAXNUMBERSTEPS> theStepPreProcess;
0434 std::array<int, MAXNUMBERSTEPS> theStepPostProcess;
0435
0436 float theTrkLen;
0437
0438 std::string thePVname;
0439
0440 int thePVcopyNo;
0441
0442 std::unique_ptr<MaterialBudgetCategorizer> myMaterialBudgetCategorizer;
0443
0444 float theRadLen;
0445 float theIntLen;
0446 int stepN;
0447 bool allStepsToTree;
0448 bool isHGCal;
0449 bool isMtd;
0450
0451 double densityConvertionFactor;
0452 };
0453
0454 #endif