00001 #ifndef GflashEMShowerProfile_H 00002 #define GflashEMShowerProfile_H 00003 00004 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00005 00006 #include "SimGeneral/GFlash/interface/GflashNameSpace.h" 00007 #include "SimGeneral/GFlash/interface/GflashTrajectory.h" 00008 00009 #include <vector> 00010 00011 class GflashHit; 00012 class GflashShowino; 00013 class GflashHistogram; 00014 00015 class GflashEMShowerProfile 00016 { 00017 public: 00018 //------------------------- 00019 // Constructor, destructor 00020 //------------------------- 00021 GflashEMShowerProfile (edm::ParameterSet parSet); 00022 ~GflashEMShowerProfile (); 00023 00024 void initialize(int showerType, double energy, 00025 double globalTime, double charge, 00026 Gflash3Vector &position,Gflash3Vector &momentum); 00027 00028 void parameterization(); 00029 GflashShowino* getGflashShowino() { return theShowino; } 00030 std::vector<GflashHit>& getGflashHitList() {return theGflashHitList;}; 00031 00032 private: 00033 double getDistanceToOut(Gflash::CalorimeterNumber kCalor); 00034 Gflash3Vector locateHitPosition(GflashTrajectoryPoint& point, 00035 double rCore, double rTail, 00036 double probability, double &rShower); 00037 00038 private: 00039 Gflash::CalorimeterNumber jCalorimeter; 00040 00041 edm::ParameterSet theParSet; 00042 double theBField; 00043 double theEnergyScaleEB; 00044 double theEnergyScaleEE; 00045 00046 GflashShowino *theShowino; 00047 GflashHistogram* theHisto; 00048 std::vector<GflashHit> theGflashHitList; 00049 00050 }; 00051 00052 #endif 00053 00054 00055 00056