File indexing completed on 2024-04-06 12:11:19
0001 #ifndef HDRShower_H
0002 #define HDRShower_H
0003
0004
0005 #include "FastSimulation/ShowerDevelopment/interface/HDShowerParametrization.h"
0006
0007 #include <vector>
0008
0009
0010
0011
0012
0013
0014 #define NEnergyScan 7
0015
0016 #define R_range 100
0017
0018 class EcalHitMaker;
0019 class HcalHitMaker;
0020 class RandomEngineAndDistribution;
0021
0022 class HDRShower {
0023 public:
0024 HDRShower(const RandomEngineAndDistribution* engine,
0025 HDShowerParametrization* myParam,
0026 EcalHitMaker* myGrid,
0027 HcalHitMaker* myHcalHitMaker,
0028 int onECAL,
0029 double epart);
0030
0031 virtual ~HDRShower() { ; }
0032
0033 bool computeShower();
0034 bool setHit(float espot, float theta);
0035 void thetaFunction(int nthetaStep);
0036 float getR();
0037 void setFuncParam();
0038
0039 private:
0040
0041 HDShowerParametrization* theParam;
0042 EcalHitMaker* theGrid;
0043 HcalHitMaker* theHcalHitMaker;
0044 int onEcal;
0045 double e;
0046
0047 private:
0048
0049
0050
0051 double lambdaEM, lambdaHD, x0EM, x0HD;
0052 double depthStart;
0053 float eHDspot;
0054 float EsCut;
0055 float EcalShift;
0056 int nthetaStep;
0057
0058 float thetaStep;
0059 float depthECAL, depthGAP, maxDepth;
0060 std::vector<int> thetaSpots;
0061 std::vector<float> elastspot;
0062 float rpdf[R_range];
0063 bool qstatus;
0064 float decal;
0065
0066 float EgridTable[NEnergyScan];
0067 float Theta1amp[NEnergyScan];
0068 float Theta1ampSig[NEnergyScan];
0069 float Theta1Lambda[NEnergyScan];
0070 float Theta1LambdaSig[NEnergyScan];
0071 float ThetaLam21[NEnergyScan];
0072 float ThetaLam21Sig[NEnergyScan];
0073
0074
0075 const RandomEngineAndDistribution* random;
0076 };
0077
0078 #endif