Back to home page

Project CMSSW displayed by LXR

 
 

    


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   // Constructor, destructor
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   // fixed at the shower starting point
0053   int theShowerType;
0054   double theEnergy;
0055   Gflash3Vector thePositionAtShower;
0056   double thePathLengthAtShower;
0057   double thePathLengthOnEcal;
0058   double theStepLengthToHcal;
0059   double theStepLengthToOut;
0060 
0061   // updated along the showino trajectory line
0062   double thePathLength;
0063   double theGlobalTime;
0064   Gflash3Vector thePosition;
0065   double theEnergyDeposited;
0066 
0067   GflashTrajectory *theHelix;
0068   GflashTrajectoryPoint theTrajectoryPoint;
0069 };
0070 
0071 #endif