![]() |
![]() |
00001 #ifndef GflashShowino_H 00002 #define GflashShowino_H 00003 00004 #include "SimGeneral/GFlash/interface/Gflash3Vector.h" 00005 #include "SimGeneral/GFlash/interface/GflashNameSpace.h" 00006 #include "SimGeneral/GFlash/interface/GflashTrajectory.h" 00007 00008 class GflashShowino { 00009 00010 public: 00011 //------------------------- 00012 // Constructor, destructor 00013 //------------------------- 00014 GflashShowino(); 00015 ~GflashShowino(); 00016 00017 void initialize(int showerType, double energy, double globalTime,double charge, 00018 Gflash3Vector &position,Gflash3Vector &momentum, 00019 double magneticField); 00020 00021 void updateShowino(double deltaStep); 00022 00023 int getShowerType() { return theShowerType; } 00024 double getEnergy() { return theEnergy; } 00025 double getPathLengthOnEcal() { return thePathLengthOnEcal; } 00026 double getPathLengthAtShower() { return thePathLengthAtShower; } 00027 Gflash3Vector& getPositionAtShower() { return thePositionAtShower; } 00028 double getStepLengthToHcal() { return theStepLengthToHcal; } 00029 double getStepLengthToOut() { return theStepLengthToOut; } 00030 GflashTrajectory* getHelix() { return theHelix; } 00031 00032 double getGlobalTime() { return theGlobalTime; } 00033 double getPathLength() { return thePathLength; } 00034 Gflash3Vector& getPosition() { return thePosition; } 00035 double getEnergyDeposited() { return theEnergyDeposited ; } 00036 double getDepth() { return (thePathLength-thePathLengthAtShower); } 00037 00038 void setGlobalTime(double globalTime) { theGlobalTime = globalTime; } 00039 void setPathLength(double pathLength) { thePathLength = pathLength; } 00040 void setPosition(Gflash3Vector position) { thePosition = position; } 00041 void addEnergyDeposited(double energy ) { theEnergyDeposited += energy; } 00042 00043 private: 00044 Gflash3Vector& simulateFirstInteractionPoint(int showType, Gflash3Vector& pos); 00045 int convertShowerType(int fastSimShowerType, const Gflash3Vector& pos); 00046 void evaluateLengths(); 00047 00048 private: 00049 00050 //fixed at the shower starting point 00051 int theShowerType ; 00052 double theEnergy; 00053 Gflash3Vector thePositionAtShower; 00054 double thePathLengthAtShower; 00055 double thePathLengthOnEcal; 00056 double theStepLengthToHcal; 00057 double theStepLengthToOut; 00058 00059 //updated along the showino trajectory line 00060 double thePathLength; 00061 double theGlobalTime; 00062 Gflash3Vector thePosition; 00063 double theEnergyDeposited; 00064 00065 GflashTrajectory* theHelix; 00066 }; 00067 00068 #endif 00069 00070