Go to the documentation of this file.00001 #ifndef HDRShower_H
00002 #define HDRShower_H
00003
00004
00005 #include "FastSimulation/ShowerDevelopment/interface/HDShowerParametrization.h"
00006
00007 #include <vector>
00008
00014 #define NEnergyScan 7
00015
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
00043 HDShowerParametrization* theParam;
00044 EcalHitMaker * theGrid;
00045 HcalHitMaker * theHcalHitMaker;
00046 int onEcal;
00047 double e;
00048
00049 private:
00050
00051
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
00077 const RandomEngine* random;
00078
00079 };
00080
00081 #endif