CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/SimGeneral/GFlash/interface/GflashShowino.h

Go to the documentation of this file.
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