CMS 3D CMS Logo

HcalTBDigiProducer.h
Go to the documentation of this file.
1 #ifndef SimCalorimetry_HcalTestBeam_HcalTBDigiProducer_h
2 #define SimCalorimetry_HcalTestBeam_HcalTBDigiProducer_h
3 
25 
26 #include <memory>
27 #include <string>
28 #include <vector>
29 
30 class PEcalTBInfo;
31 
32 namespace CLHEP {
33  class HepRandomEngine;
34 }
35 
37 public:
39  ~HcalTBDigiProducer() override;
40 
41  void initializeEvent(edm::Event const &e, edm::EventSetup const &c) override;
42  void accumulate(edm::Event const &e, edm::EventSetup const &c) override;
43  void accumulate(PileUpEventPrincipal const &e, edm::EventSetup const &c, edm::StreamID const &) override;
44  void finalizeEvent(edm::Event &e, edm::EventSetup const &c) override;
45 
46 private:
47  void accumulateCaloHits(edm::Handle<std::vector<PCaloHit>> const &hits, int bunchCrossing);
48 
54  void updateGeometry();
55 
56  void setPhaseShift(const DetId &detId);
57 
59 
60 private:
64 
65  const double tunePhaseShift;
67 
72 
75 
79 
82 
84 
85  std::unique_ptr<HBHEDigitizer> theHBHEDigitizer;
86  std::unique_ptr<HODigitizer> theHODigitizer;
87 
95  std::vector<DetId> hbheCells;
96  std::vector<DetId> hoCells;
97 
98  std::vector<PCaloHit> theHBHEHits, theHOHits;
99 
101 
103 
104  CLHEP::HepRandomEngine *randomEngine_ = nullptr;
105 };
106 
107 #endif
void setPhaseShift(const DetId &detId)
void finalizeEvent(edm::Event &e, edm::EventSetup const &c) override
void sortHits(const edm::PCaloHitContainer &hits)
fills the vectors for each subdetector
std::vector< PCaloHit > PCaloHitContainer
std::vector< DetId > hoCells
CaloHitResponse * theHBHEResponse
HBHEHitFilter theHBHEHitFilter
HcalSimParameterMap * paraMap
HcalElectronicsSim * theElectronicsSim
Electronic response of the preamp.
Definition: CaloVShape.h:11
const edm::ESGetToken< HcalTimeSlew, HcalTimeSlewRecord > hcalTimeSlew_delay_token_
HOHitFilter theHOHitFilter
HcalTBSimParameterMap * theParameterMap
const CaloGeometry * theGeometry
const edm::ESGetToken< HcalDbService, HcalDbRecord > conditionsToken_
CaloTDigitizer< HBHEDigitizerTraits > HBHEDigitizer
std::vector< PCaloHit > theHBHEHits
CaloTDigitizer< HODigitizerTraits > HODigitizer
const edm::EDGetTokenT< std::vector< PCaloHit > > hcalToken_
CaloVShape * theHcalIntegratedShape
Creates electronics signals from hits.
void checkGeometry(const edm::EventSetup &eventSetup)
HcalTBDigiProducer(const edm::ParameterSet &ps, edm::ProducesCollector, edm::ConsumesCollector &iC)
std::vector< DetId > hbheCells
void accumulate(edm::Event const &e, edm::EventSetup const &c) override
std::vector< PCaloHit > theHOHits
edm::ESWatcher< CaloGeometryRecord > geometryWatcher_
Definition: DetId.h:17
const std::string ecalTBInfoLabel
CaloHitResponse * theHOResponse
~HcalTBDigiProducer() override
HcalAmplifier * theAmplifier
std::unique_ptr< HBHEDigitizer > theHBHEDigitizer
edm::EDGetTokenT< PEcalTBInfo > theEcalTBToken_
CLHEP::HepRandomEngine * randomEngine_
HcalCoderFactory * theCoderFactory
CaloVShape * theHcalShape
void initializeEvent(edm::Event const &e, edm::EventSetup const &c) override
const double tunePhaseShift
std::unique_ptr< HODigitizer > theHODigitizer
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > geometryToken_
const HcalTimeSlew * hcalTimeSlew_delay_
void accumulateCaloHits(edm::Handle< std::vector< PCaloHit >> const &hits, int bunchCrossing)
HcalTimeSlewSim * theTimeSlewSim