Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:11:19

0001 #ifndef HDRShower_H
0002 #define HDRShower_H
0003 
0004 //FastSimulation Headers
0005 #include "FastSimulation/ShowerDevelopment/interface/HDShowerParametrization.h"
0006 
0007 #include <vector>
0008 
0009 /** 
0010  * \date: 09-Feb-2005
0011  * new hadronic shower simulation by V.Popov
0012  */
0013 
0014 #define NEnergyScan 7
0015 // 7 lambda
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   // Input
0041   HDShowerParametrization* theParam;
0042   EcalHitMaker* theGrid;
0043   HcalHitMaker* theHcalHitMaker;
0044   int onEcal;
0045   double e;  // Input energy to distribute
0046 
0047 private:
0048   //  const ECALProperties* theECALproperties;
0049   //  const HCALProperties* theHCALproperties;
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   // The famos random engine
0075   const RandomEngineAndDistribution* random;
0076 };
0077 
0078 #endif