CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_8_patch3/src/SimG4CMS/Calo/interface/HFShowerParam.h

Go to the documentation of this file.
00001 #ifndef SimG4CMS_HFShowerParam_h
00002 #define SimG4CMS_HFShowerParam_h
00003 
00004 // File: HFShowerParam.h
00005 // Description: Generates hits for HF with some parametrized information
00007 
00008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00009 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00010 #include "DetectorDescription/Core/interface/DDsvalues.h"
00011 #include "SimG4CMS/Calo/interface/HFShowerLibrary.h"
00012 #include "SimG4CMS/Calo/interface/HFFibre.h"
00013 #include "SimG4CMS/Calo/interface/HFGflash.h"
00014 
00015 #include "G4ParticleTable.hh"
00016 #include "G4ThreeVector.hh"
00017 
00018 class DDCompactView;
00019 class G4Step;
00020 
00021 #include <TH1F.h>
00022 #include <TH2F.h>
00023 #include <string>
00024 #include <vector>
00025  
00026 class HFShowerParam {
00027 
00028 public:    
00029 
00030   HFShowerParam(std::string & name, const DDCompactView & cpv, 
00031                 edm::ParameterSet const & p);
00032   virtual ~HFShowerParam();
00033 
00034 public:    
00035 
00036   struct Hit {
00037     Hit() {}
00038     G4ThreeVector       position;
00039     int                 depth;
00040     double              time;
00041     double              edep;
00042   };
00043 
00044   void                  initRun(G4ParticleTable *);
00045   std::vector<Hit>      getHits(G4Step * aStep);
00046   
00047 private:    
00048 
00049   std::vector<double>   getDDDArray(const std::string&, const DDsvalues_type&);
00050 
00051   HFShowerLibrary*      showerLibrary;
00052   HFFibre*              fibre;
00053   HFGflash*             gflash;
00054   double                pePerGeV, edMin, ref_index, attLMeanInv;
00055   bool                  trackEM, onlyLong, applyFidCut, parametrizeLast;
00056   G4int                 emPDG, epPDG, gammaPDG;
00057   std::vector<double>   gpar;
00058   bool                  fillHisto;
00059   TH1F                  *em_long_1, *em_lateral_1, *em_long_2, *em_lateral_2;
00060   TH1F                  *hzv, *em_long_1_tuned, *em_long_gflash, *em_long_sl;
00061   TH2F                  *em_2d_1, *em_2d_2;
00062 };
00063 
00064 
00065 #endif // HFShowerParam_h