CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/FastSimulation/ShowerDevelopment/interface/HDRShower.h

Go to the documentation of this file.
00001 #ifndef HDRShower_H
00002 #define HDRShower_H
00003 
00004 //FastSimulation Headers
00005 #include "FastSimulation/ShowerDevelopment/interface/HDShowerParametrization.h"
00006 
00007 #include <vector>
00008 
00014 #define NEnergyScan  7
00015 // 7 lambda
00016 #define R_range 100 
00017 
00018 class EcalHitMaker;
00019 class HcalHitMaker;
00020 class RandomEngine;
00021 
00022 class HDRShower 
00023 {
00024  public:
00025 
00026   HDRShower(const RandomEngine* engine,
00027             HDShowerParametrization* myParam,
00028             EcalHitMaker* myGrid, 
00029             HcalHitMaker* myHcalHitMaker,
00030             int onECAL, 
00031             double epart);
00032 
00033   virtual ~HDRShower() {;}
00034 
00035   bool computeShower();
00036   bool setHit(float espot, float theta);
00037   void thetaFunction(int nthetaStep);
00038   float getR();
00039   void setFuncParam();
00040 
00041  private:
00042   // Input 
00043   HDShowerParametrization* theParam;
00044   EcalHitMaker * theGrid;
00045   HcalHitMaker * theHcalHitMaker;
00046   int onEcal;
00047   double e;    // Input energy to distribute
00048 
00049  private:
00050   //  const ECALProperties* theECALproperties;
00051   //  const HCALProperties* theHCALproperties;
00052 
00053   double lambdaEM, lambdaHD, x0EM, x0HD;
00054   double depthStart;
00055   float eHDspot;
00056   float EsCut;
00057   float EcalShift;
00058   int nthetaStep;
00059 
00060   float thetaStep;
00061   float depthECAL, depthGAP, maxDepth;
00062   std::vector<int>  thetaSpots;
00063   std::vector<float> elastspot;
00064   float rpdf[R_range];
00065   bool qstatus;
00066   float decal;
00067 
00068   float EgridTable[NEnergyScan];
00069   float Theta1amp[NEnergyScan];
00070   float Theta1ampSig[NEnergyScan]; 
00071   float Theta1Lambda[NEnergyScan];
00072   float Theta1LambdaSig[NEnergyScan];
00073   float ThetaLam21[NEnergyScan];
00074   float ThetaLam21Sig[NEnergyScan];
00075 
00076   // The famos random engine
00077   const RandomEngine* random;
00078 
00079 };
00080 
00081 #endif