File indexing completed on 2024-04-06 12:30:35
0001 #ifndef GflashShowino_H
0002 #define GflashShowino_H
0003
0004 #include "SimGeneral/GFlash/interface/Gflash3Vector.h"
0005 #include "SimGeneral/GFlash/interface/GflashNameSpace.h"
0006 #include "SimGeneral/GFlash/interface/GflashTrajectory.h"
0007
0008 class GflashShowino {
0009 public:
0010
0011
0012
0013 GflashShowino();
0014 ~GflashShowino();
0015
0016 void initialize(int showerType,
0017 double energy,
0018 double globalTime,
0019 double charge,
0020 Gflash3Vector &position,
0021 Gflash3Vector &momentum,
0022 double magneticField);
0023
0024 void updateShowino(double deltaStep);
0025
0026 int getShowerType() { return theShowerType; }
0027 double getEnergy() { return theEnergy; }
0028 double getPathLengthOnEcal() { return thePathLengthOnEcal; }
0029 double getPathLengthAtShower() { return thePathLengthAtShower; }
0030 Gflash3Vector &getPositionAtShower() { return thePositionAtShower; }
0031 double getStepLengthToHcal() { return theStepLengthToHcal; }
0032 double getStepLengthToOut() { return theStepLengthToOut; }
0033 GflashTrajectory *getHelix() { return theHelix; }
0034
0035 double getGlobalTime() { return theGlobalTime; }
0036 double getPathLength() { return thePathLength; }
0037 Gflash3Vector &getPosition() { return thePosition; }
0038 double getEnergyDeposited() { return theEnergyDeposited; }
0039 double getDepth() { return (thePathLength - thePathLengthAtShower); }
0040
0041 void setGlobalTime(double globalTime) { theGlobalTime = globalTime; }
0042 void setPathLength(double pathLength) { thePathLength = pathLength; }
0043 void setPosition(const Gflash3Vector &position) { thePosition = position; }
0044 void addEnergyDeposited(double energy) { theEnergyDeposited += energy; }
0045
0046 private:
0047 Gflash3Vector &simulateFirstInteractionPoint(int showType, Gflash3Vector &pos);
0048 int convertShowerType(int fastSimShowerType, const Gflash3Vector &pos);
0049 void evaluateLengths();
0050
0051 private:
0052
0053 int theShowerType;
0054 double theEnergy;
0055 Gflash3Vector thePositionAtShower;
0056 double thePathLengthAtShower;
0057 double thePathLengthOnEcal;
0058 double theStepLengthToHcal;
0059 double theStepLengthToOut;
0060
0061
0062 double thePathLength;
0063 double theGlobalTime;
0064 Gflash3Vector thePosition;
0065 double theEnergyDeposited;
0066
0067 GflashTrajectory *theHelix;
0068 GflashTrajectoryPoint theTrajectoryPoint;
0069 };
0070
0071 #endif