Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-09-14 02:33:49

0001 #ifndef FastHFShowerLibrary_H
0002 #define FastHFShowerLibrary_H
0003 ///////////////////////////////////////////////////////////////////////////////
0004 // File: FastHFShowerLibrary.h
0005 // Description: Gets information from a shower library
0006 ///////////////////////////////////////////////////////////////////////////////
0007 
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009 #include "FWCore/Framework/interface/FrameworkfwdMostUsed.h"
0010 #include "FWCore/Utilities/interface/ESGetToken.h"
0011 
0012 #include "FastSimulation/Utilities/interface/FamosDebug.h"
0013 
0014 #include "DataFormats/Math/interface/Vector3D.h"
0015 
0016 #include "SimG4CMS/Calo/interface/HFShowerLibrary.h"
0017 #include "SimG4CMS/Calo/interface/CaloHitID.h"
0018 #include "Geometry/HcalCommonData/interface/HcalNumberingFromDDD.h"
0019 #include "Geometry/HcalCommonData/interface/HcalDDDSimConstants.h"
0020 #include "Geometry/HcalCommonData/interface/HcalSimulationConstants.h"
0021 #include "Geometry/Records/interface/HcalSimNumberingRecord.h"
0022 #include "SimG4CMS/Calo/interface/HcalNumberingScheme.h"
0023 #include "G4ThreeVector.hh"
0024 
0025 //ROOT
0026 #include "TROOT.h"
0027 #include "TFile.h"
0028 #include "TTree.h"
0029 
0030 #include <string>
0031 #include <memory>
0032 #include <map>
0033 
0034 class FSimEvent;
0035 class FSimTrack;
0036 class HFShowerLibrary;
0037 class RandomEngineAndDistribution;
0038 
0039 class FastHFShowerLibrary {
0040 public:
0041   // Constructor and Destructor
0042   FastHFShowerLibrary(edm::ParameterSet const&, edm::ConsumesCollector&&);
0043   ~FastHFShowerLibrary() {}
0044 
0045 public:
0046   void const initHFShowerLibrary(const edm::EventSetup&);
0047   void recoHFShowerLibrary(const FSimTrack& myTrack);
0048   void modifyDepth(HcalNumberingFromDDD::HcalID& id);
0049   const std::map<CaloHitID, float>& getHitsMap() { return hitMap; };
0050 
0051   void SetRandom(const RandomEngineAndDistribution*);
0052 
0053 private:
0054   const edm::ParameterSet fast;
0055   std::unique_ptr<HFShowerLibrary> hfshower;
0056   std::unique_ptr<HcalNumberingFromDDD> numberingFromDDD;
0057   const HcalDDDSimConstants* hcalConstants;
0058   HcalNumberingScheme numberingScheme;
0059 
0060   std::map<CaloHitID, float> hitMap;
0061 
0062   bool applyFidCut;
0063   std::string name;
0064 
0065   const edm::ESGetToken<HcalDDDSimConstants, HcalSimNumberingRecord> hcalDDDSimConstantsESToken_;
0066   const edm::ESGetToken<HcalSimulationConstants, HcalSimNumberingRecord> hcalSimulationConstantsESToken_;
0067 };
0068 #endif