File indexing completed on 2023-03-17 11:00:51
0001 #ifndef FastHFShowerLibrary_H
0002 #define FastHFShowerLibrary_H
0003
0004
0005
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
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
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