CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
HcalDigitizer Class Reference

#include <HcalDigitizer.h>

Public Member Functions

void accumulate (edm::Event const &e, edm::EventSetup const &c, CLHEP::HepRandomEngine *)
 
void accumulate (PileUpEventPrincipal const &e, edm::EventSetup const &c, CLHEP::HepRandomEngine *)
 
void finalizeEvent (edm::Event &e, edm::EventSetup const &c, CLHEP::HepRandomEngine *)
 
 HcalDigitizer (const edm::ParameterSet &ps, edm::ConsumesCollector &iC)
 
void initializeEvent (edm::Event const &e, edm::EventSetup const &c)
 
void setHBHENoiseSignalGenerator (HcalBaseSignalGenerator *noiseGenerator)
 
void setHFNoiseSignalGenerator (HcalBaseSignalGenerator *noiseGenerator)
 
void setHONoiseSignalGenerator (HcalBaseSignalGenerator *noiseGenerator)
 
void setQIE10NoiseSignalGenerator (HcalBaseSignalGenerator *noiseGenerator)
 
void setQIE11NoiseSignalGenerator (HcalBaseSignalGenerator *noiseGenerator)
 
void setZDCNoiseSignalGenerator (HcalBaseSignalGenerator *noiseGenerator)
 
virtual ~HcalDigitizer ()
 

Private Types

typedef CaloTDigitizer< HBHEDigitizerTraits, CaloTDigitizerQIE8RunHBHEDigitizer
 
typedef CaloTDigitizer< HFDigitizerTraits, CaloTDigitizerQIE8RunHFDigitizer
 
typedef CaloTDigitizer< HODigitizerTraits, CaloTDigitizerQIE8RunHODigitizer
 
typedef CaloTDigitizer< HcalQIE10DigitizerTraits, CaloTDigitizerQIE1011RunQIE10Digitizer
 
typedef CaloTDigitizer< HcalQIE11DigitizerTraits, CaloTDigitizerQIE1011RunQIE11Digitizer
 
typedef CaloTDigitizer< ZDCDigitizerTraits, CaloTDigitizerQIE8RunZDCDigitizer
 

Private Member Functions

void accumulateCaloHits (edm::Handle< std::vector< PCaloHit > > const &hcalHits, edm::Handle< std::vector< PCaloHit > > const &zdcHits, int bunchCrossing, CLHEP::HepRandomEngine *, const HcalTopology *h)
 
void buildHBHEQIECells (const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
 
void buildHFQIECells (const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
 
void buildHOSiPMCells (const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
 
void checkGeometry (const edm::EventSetup &eventSetup)
 
void darkening (std::vector< PCaloHit > &hcalHits)
 
void fillFakeHits ()
 some hits in each subdetector, just for testing purposes More...
 
void setup (const edm::EventSetup &es)
 
void updateGeometry (const edm::EventSetup &eventSetup)
 

Private Attributes

bool agingFlagHB
 
bool agingFlagHE
 
bool debugCS_
 
double deliveredLumi
 
bool doHFWindow_
 
std::vector< DetIdhbheCells
 
bool hbhegeo
 
const HcalTimeSlewhcalTimeSlew_delay_
 
bool hfgeo
 
std::string hitsProducer_
 
bool hogeo
 
bool ignoreTime_
 
std::vector< PCaloHitinjectedHits_
 
std::vector< int > injectedHitsCells_
 
std::vector< double > injectedHitsEnergy_
 
std::vector< double > injectedHitsTime_
 
bool injectTestHits_
 
bool isHCAL
 
bool isZDC
 
bool killHE_
 
const HBHEDarkeningm_HBDarkening
 
const HBHEDarkeningm_HEDarkening
 
std::unique_ptr< HFRecalibrationm_HFRecalibration
 
bool testNumbering_
 
HcalCoderFactorytheCoderFactory
 
const CaloGeometrytheGeometry
 
edm::ESWatcher< CaloGeometryRecordtheGeometryWatcher_
 
HcalAmplifiertheHBHEAmplifier
 
HBHEDigitizertheHBHEDigitizer
 
HcalElectronicsSimtheHBHEElectronicsSim
 
HBHEHitFilter theHBHEHitFilter
 
HcalAmplifiertheHBHEQIE11Amplifier
 
std::vector< DetIdtheHBHEQIE11DetIds
 
QIE11DigitizertheHBHEQIE11Digitizer
 
HcalElectronicsSimtheHBHEQIE11ElectronicsSim
 
HBHEHitFilter theHBHEQIE11HitFilter
 
std::vector< DetIdtheHBHEQIE8DetIds
 
CaloHitResponsetheHBHEResponse
 
CaloHitResponsetheHBHESiPMResponse
 
HcalAmplifiertheHFAmplifier
 
HFDigitizertheHFDigitizer
 
HcalElectronicsSimtheHFElectronicsSim
 
HFHitFilter theHFHitFilter
 
HcalAmplifiertheHFQIE10Amplifier
 
std::vector< DetIdtheHFQIE10DetIds
 
QIE10DigitizertheHFQIE10Digitizer
 
HcalElectronicsSimtheHFQIE10ElectronicsSim
 
HFHitFilter theHFQIE10HitFilter
 
CaloHitResponsetheHFQIE10Response
 
std::vector< DetIdtheHFQIE8DetIds
 
CaloHitResponsetheHFResponse
 
HcalAmplifiertheHOAmplifier
 
HODigitizertheHODigitizer
 
HcalElectronicsSimtheHOElectronicsSim
 
HOHitFilter theHOHitFilter
 
std::vector< DetIdtheHOHPDDetIds
 
CaloHitResponsetheHOResponse
 
int theHOSiPMCode
 
std::vector< DetIdtheHOSiPMDetIds
 
HODigitizertheHOSiPMDigitizer
 
HOHitFilter theHOSiPMHitFilter
 
CaloHitResponsetheHOSiPMResponse
 
HPDIonFeedbackSimtheIonFeedback
 
HcalSimParameterMaptheParameterMap
 
const HcalDDDRecConstantstheRecNumber
 
edm::ESWatcher< HcalRecNumberingRecordtheRecNumberWatcher_
 
HcalHitRelabellertheRelabeller
 
HcalShapestheShapes
 
HcalTimeSlewSimtheTimeSlewSim
 
HcalAmplifiertheZDCAmplifier
 
ZDCDigitizertheZDCDigitizer
 
HcalElectronicsSimtheZDCElectronicsSim
 
ZDCHitFilter theZDCHitFilter
 
CaloHitResponsetheZDCResponse
 
bool zdcgeo
 

Detailed Description

Definition at line 44 of file HcalDigitizer.h.

Member Typedef Documentation

Reconstruction algorithm

Definition at line 87 of file HcalDigitizer.h.

Definition at line 89 of file HcalDigitizer.h.

Definition at line 88 of file HcalDigitizer.h.

Definition at line 91 of file HcalDigitizer.h.

Definition at line 92 of file HcalDigitizer.h.

Definition at line 90 of file HcalDigitizer.h.

Constructor & Destructor Documentation

HcalDigitizer::HcalDigitizer ( const edm::ParameterSet ps,
edm::ConsumesCollector iC 
)
explicit

Definition at line 39 of file HcalDigitizer.cc.

References edm::ConsumesCollector::consumes(), HcalCoderFactory::DB, debugCS_, deliveredLumi, hcalUnsuppressedDigis_cfi::doEmpty, hcalUnsuppressedDigis_cfi::doNoise, hcalUnsuppressedDigis_cfi::doTimeSlew, Exception, edm::ParameterSet::getParameter(), hcalTimeSlew_delay_, hitsProducer_, ignoreTime_, m_HFRecalibration, hcalUnsuppressedDigis_cfi::minFCToDelay, CaloTDigitizer< Traits, runHelper >::setDebugCaloSamples(), CaloHitResponse::setHitFilter(), CaloHitResponse::setIgnoreGeantTime(), HcalAmplifier::setIonFeedbackSim(), CaloHitResponse::setPECorrection(), HcalAmplifier::setTimeSlewSim(), testNumbering_, theCoderFactory, theHBHEAmplifier, theHBHEDigitizer, theHBHEElectronicsSim, theHBHEHitFilter, theHBHEQIE11Amplifier, theHBHEQIE11Digitizer, theHBHEQIE11ElectronicsSim, theHBHEQIE11HitFilter, theHBHEResponse, theHBHESiPMResponse, theHFAmplifier, theHFDigitizer, theHFElectronicsSim, theHFHitFilter, theHFQIE10Amplifier, theHFQIE10Digitizer, theHFQIE10ElectronicsSim, theHFQIE10HitFilter, theHFQIE10Response, theHFResponse, theHOAmplifier, theHODigitizer, theHOElectronicsSim, theHOHitFilter, theHOResponse, theHOSiPMCode, theHOSiPMDigitizer, theHOSiPMHitFilter, theHOSiPMResponse, theIonFeedback, theParameterMap, theRelabeller, theShapes, theTimeSlewSim, theZDCAmplifier, theZDCDigitizer, theZDCElectronicsSim, theZDCHitFilter, and theZDCResponse.

39  :
40  theGeometry(nullptr),
41  theRecNumber(nullptr),
43  theShapes(new HcalShapes()),
45  theHBHESiPMResponse(new HcalSiPMHitResponse(theParameterMap, theShapes, ps.getParameter<bool>("HcalPreMixStage1"), true)),
47  theHOSiPMResponse(new HcalSiPMHitResponse(theParameterMap, theShapes, ps.getParameter<bool>("HcalPreMixStage1"), false)),
51  theHBHEAmplifier(nullptr),
52  theHFAmplifier(nullptr),
53  theHOAmplifier(nullptr),
54  theZDCAmplifier(nullptr),
55  theHFQIE10Amplifier(nullptr),
56  theHBHEQIE11Amplifier(nullptr),
57  theIonFeedback(nullptr),
58  theCoderFactory(nullptr),
59  theHBHEElectronicsSim(nullptr),
60  theHFElectronicsSim(nullptr),
61  theHOElectronicsSim(nullptr),
62  theZDCElectronicsSim(nullptr),
63  theHFQIE10ElectronicsSim(nullptr),
72  theHBHEDigitizer(nullptr),
73  theHODigitizer(nullptr),
74  theHOSiPMDigitizer(nullptr),
75  theHFDigitizer(nullptr),
76  theZDCDigitizer(nullptr),
77  theHFQIE10Digitizer(nullptr),
78  theHBHEQIE11Digitizer(nullptr),
79  theRelabeller(nullptr),
80  isZDC(true),
81  isHCAL(true),
82  zdcgeo(true),
83  hbhegeo(true),
84  hogeo(true),
85  hfgeo(true),
86  doHFWindow_(ps.getParameter<bool>("doHFWindow")),
87  killHE_(ps.getParameter<bool>("killHE")),
88  debugCS_(ps.getParameter<bool>("debugCaloSamples")),
89  ignoreTime_(ps.getParameter<bool>("ignoreGeantTime")),
90  injectTestHits_(ps.getParameter<bool>("injectTestHits")),
91  hitsProducer_(ps.getParameter<std::string>("hitsProducer")),
92  theHOSiPMCode(ps.getParameter<edm::ParameterSet>("ho").getParameter<int>("siPMCode")),
93  deliveredLumi(0.),
94  agingFlagHB(ps.getParameter<bool>("HBDarkening")),
95  agingFlagHE(ps.getParameter<bool>("HEDarkening")),
96  m_HBDarkening(nullptr),
97  m_HEDarkening(nullptr),
98  m_HFRecalibration(nullptr),
99  injectedHitsEnergy_(ps.getParameter<std::vector<double>>("injectTestHitsEnergy")),
100  injectedHitsTime_(ps.getParameter<std::vector<double>>("injectTestHitsTime")),
101  injectedHitsCells_(ps.getParameter<std::vector<int>>("injectTestHitsCells"))
102 {
103  iC.consumes<std::vector<PCaloHit> >(edm::InputTag(hitsProducer_, "ZDCHITS"));
104  iC.consumes<std::vector<PCaloHit> >(edm::InputTag(hitsProducer_, "HcalHits"));
105 
106  bool doNoise = ps.getParameter<bool>("doNoise");
107 
108  bool PreMix1 = ps.getParameter<bool>("HcalPreMixStage1"); // special threshold/pedestal treatment
109  bool PreMix2 = ps.getParameter<bool>("HcalPreMixStage2"); // special threshold/pedestal treatment
110  bool doEmpty = ps.getParameter<bool>("doEmpty");
111  deliveredLumi = ps.getParameter<double>("DelivLuminosity");
112  bool agingFlagHF = ps.getParameter<bool>("HFDarkening");
113  double minFCToDelay= ps.getParameter<double>("minFCToDelay");
114 
115  if(PreMix1 && PreMix2) {
116  throw cms::Exception("Configuration")
117  << "HcalDigitizer cannot operate in PreMixing digitization and PreMixing\n"
118  "digi combination modes at the same time. Please set one mode to False\n"
119  "in the configuration file.";
120  }
121 
122  // need to make copies, because they might get different noise generators
123  theHBHEAmplifier = new HcalAmplifier(theParameterMap, doNoise, PreMix1, PreMix2);
124  theHFAmplifier = new HcalAmplifier(theParameterMap, doNoise, PreMix1, PreMix2);
125  theHOAmplifier = new HcalAmplifier(theParameterMap, doNoise, PreMix1, PreMix2);
126  theZDCAmplifier = new HcalAmplifier(theParameterMap, doNoise, PreMix1, PreMix2);
127  theHFQIE10Amplifier = new HcalAmplifier(theParameterMap, doNoise, PreMix1, PreMix2);
128  theHBHEQIE11Amplifier = new HcalAmplifier(theParameterMap, doNoise, PreMix1, PreMix2);
129 
131 
136  theHFQIE10ElectronicsSim = new HcalElectronicsSim(theHFQIE10Amplifier, theCoderFactory, PreMix1); //should this use a different coder factory?
137  theHBHEQIE11ElectronicsSim = new HcalElectronicsSim(theHBHEQIE11Amplifier, theCoderFactory, PreMix1); //should this use a different coder factory?
138 
139  bool doHOHPD = (theHOSiPMCode != 1);
140  bool doHOSiPM = (theHOSiPMCode != 0);
141  if(doHOHPD) {
145  }
146  if(doHOSiPM) {
149  }
150 
153 
154  //QIE8 and QIE11 can coexist in HBHE
157 
158  bool doTimeSlew = ps.getParameter<bool>("doTimeSlew");
159  //initialize: they won't be called later if flag is set
160  hcalTimeSlew_delay_ = nullptr;
161  theTimeSlewSim = nullptr;
162  if(doTimeSlew) {
163  // no time slewing for HF
164  theTimeSlewSim = new HcalTimeSlewSim(theParameterMap,minFCToDelay);
169  }
170 
174 
175  //QIE8 and QIE10 can coexist in HF
178 
180 
181  testNumbering_ = ps.getParameter<bool>("TestNumbering");
182 // std::cout << "Flag to see if Hit Relabeller to be initiated " << testNumbering_ << std::endl;
183  if (testNumbering_) theRelabeller=new HcalHitRelabeller(ps.getParameter<bool>("doNeutralDensityFilter"));
184 
185  if(ps.getParameter<bool>("doIonFeedback") && theHBHEResponse) {
188  if(ps.getParameter<bool>("doThermalNoise")) {
190  }
191  }
192 
193  //option to save CaloSamples as event product for debugging
194  if(debugCS_){
202  }
203 
204  //option to ignore Geant time distribution in SimHits, for debugging
205  if(ignoreTime_){
213  }
214 
215  if(agingFlagHF) m_HFRecalibration.reset(new HFRecalibration(ps.getParameter<edm::ParameterSet>("HFRecalParameterBlock")));
216 }
HFHitFilter theHFQIE10HitFilter
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
QIE10Digitizer * theHFQIE10Digitizer
T getParameter(std::string const &) const
std::vector< int > injectedHitsCells_
HBHEHitFilter theHBHEHitFilter
CaloHitResponse * theHFQIE10Response
const HcalDDDRecConstants * theRecNumber
Definition: HcalDigitizer.h:76
HcalElectronicsSim * theHFElectronicsSim
HBHEDigitizer * theHBHEDigitizer
HcalElectronicsSim * theHBHEQIE11ElectronicsSim
HOHitFilter theHOHitFilter
HFDigitizer * theHFDigitizer
HFHitFilter theHFHitFilter
CaloTDigitizer< HODigitizerTraits, CaloTDigitizerQIE8Run > HODigitizer
Definition: HcalDigitizer.h:88
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:94
void setPECorrection(const CaloVPECorrection *peCorrection)
if you want to correct the photoelectrons
CaloTDigitizer< HBHEDigitizerTraits, CaloTDigitizerQIE8Run > HBHEDigitizer
Definition: HcalDigitizer.h:87
HcalTimeSlewSim * theTimeSlewSim
HcalAmplifier * theHFAmplifier
HcalCoderFactory * theCoderFactory
HcalHitRelabeller * theRelabeller
std::unique_ptr< HFRecalibration > m_HFRecalibration
void setIonFeedbackSim(HPDIonFeedbackSim *feedbackSim)
Definition: HcalAmplifier.h:28
HcalAmplifier * theHBHEQIE11Amplifier
std::vector< double > injectedHitsEnergy_
const HBHEDarkening * m_HEDarkening
HcalAmplifier * theHBHEAmplifier
std::string hitsProducer_
HcalElectronicsSim * theHOElectronicsSim
double deliveredLumi
void setHitFilter(const CaloVHitFilter *filter)
if you want to reject hits, for example, from a certain subdetector, set this
HcalShapes * theShapes
Definition: HcalDigitizer.h:95
Creates electronics signals from hits.
const HcalTimeSlew * hcalTimeSlew_delay_
ZDCHitFilter theZDCHitFilter
HPDIonFeedbackSim * theIonFeedback
CaloTDigitizer< ZDCDigitizerTraits, CaloTDigitizerQIE8Run > ZDCDigitizer
Definition: HcalDigitizer.h:90
CaloHitResponse * theHOResponse
Definition: HcalDigitizer.h:99
CaloHitResponse * theHOSiPMResponse
std::vector< double > injectedHitsTime_
ZDCDigitizer * theZDCDigitizer
CaloHitResponse * theZDCResponse
CaloTDigitizer< HFDigitizerTraits, CaloTDigitizerQIE8Run > HFDigitizer
Definition: HcalDigitizer.h:89
HcalElectronicsSim * theZDCElectronicsSim
void setTimeSlewSim(HcalTimeSlewSim *timeSlewSim)
Definition: HcalAmplifier.h:35
HcalAmplifier * theHOAmplifier
HcalElectronicsSim * theHBHEElectronicsSim
CaloHitResponse * theHBHEResponse
Definition: HcalDigitizer.h:97
HODigitizer * theHODigitizer
HOHitFilter theHOSiPMHitFilter
const CaloGeometry * theGeometry
Definition: HcalDigitizer.h:75
const HBHEDarkening * m_HBDarkening
CaloHitResponse * theHFResponse
CaloTDigitizer< HcalQIE11DigitizerTraits, CaloTDigitizerQIE1011Run > QIE11Digitizer
Definition: HcalDigitizer.h:92
HcalElectronicsSim * theHFQIE10ElectronicsSim
HODigitizer * theHOSiPMDigitizer
QIE11Digitizer * theHBHEQIE11Digitizer
HBHEHitFilter theHBHEQIE11HitFilter
void setDebugCaloSamples(bool debug)
CaloHitResponse * theHBHESiPMResponse
Definition: HcalDigitizer.h:98
CaloTDigitizer< HcalQIE10DigitizerTraits, CaloTDigitizerQIE1011Run > QIE10Digitizer
Definition: HcalDigitizer.h:91
HcalAmplifier * theZDCAmplifier
void setIgnoreGeantTime(bool gt)
HcalAmplifier * theHFQIE10Amplifier
HcalDigitizer::~HcalDigitizer ( )
virtual

Definition at line 219 of file HcalDigitizer.cc.

References theCoderFactory, theHBHEAmplifier, theHBHEDigitizer, theHBHEElectronicsSim, theHBHEQIE11Amplifier, theHBHEQIE11Digitizer, theHBHEQIE11ElectronicsSim, theHBHEResponse, theHBHESiPMResponse, theHFAmplifier, theHFDigitizer, theHFElectronicsSim, theHFQIE10Amplifier, theHFQIE10Digitizer, theHFQIE10ElectronicsSim, theHFQIE10Response, theHFResponse, theHOAmplifier, theHODigitizer, theHOElectronicsSim, theHOResponse, theHOSiPMDigitizer, theHOSiPMResponse, theIonFeedback, theParameterMap, theRelabeller, theTimeSlewSim, theZDCAmplifier, theZDCDigitizer, theZDCElectronicsSim, and theZDCResponse.

219  {
222  if(theHODigitizer) delete theHODigitizer;
224  if(theHFDigitizer) delete theHFDigitizer;
226  delete theZDCDigitizer;
227  delete theParameterMap;
228  delete theHBHEResponse;
229  delete theHBHESiPMResponse;
230  delete theHOResponse;
231  delete theHOSiPMResponse;
232  delete theHFResponse;
233  delete theHFQIE10Response;
234  delete theZDCResponse;
235  delete theHBHEElectronicsSim;
236  delete theHFElectronicsSim;
237  delete theHOElectronicsSim;
238  delete theZDCElectronicsSim;
241  delete theHBHEAmplifier;
242  delete theHFAmplifier;
243  delete theHOAmplifier;
244  delete theZDCAmplifier;
245  delete theHFQIE10Amplifier;
246  delete theHBHEQIE11Amplifier;
247  delete theCoderFactory;
248  if (theRelabeller) delete theRelabeller;
249  if(theTimeSlewSim) delete theTimeSlewSim;
250  if(theIonFeedback) delete theIonFeedback;
251 }
QIE10Digitizer * theHFQIE10Digitizer
CaloHitResponse * theHFQIE10Response
HcalElectronicsSim * theHFElectronicsSim
HBHEDigitizer * theHBHEDigitizer
HcalElectronicsSim * theHBHEQIE11ElectronicsSim
HFDigitizer * theHFDigitizer
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:94
HcalTimeSlewSim * theTimeSlewSim
HcalAmplifier * theHFAmplifier
HcalCoderFactory * theCoderFactory
HcalHitRelabeller * theRelabeller
HcalAmplifier * theHBHEQIE11Amplifier
HcalAmplifier * theHBHEAmplifier
HcalElectronicsSim * theHOElectronicsSim
HPDIonFeedbackSim * theIonFeedback
CaloHitResponse * theHOResponse
Definition: HcalDigitizer.h:99
CaloHitResponse * theHOSiPMResponse
ZDCDigitizer * theZDCDigitizer
CaloHitResponse * theZDCResponse
HcalElectronicsSim * theZDCElectronicsSim
HcalAmplifier * theHOAmplifier
HcalElectronicsSim * theHBHEElectronicsSim
CaloHitResponse * theHBHEResponse
Definition: HcalDigitizer.h:97
HODigitizer * theHODigitizer
CaloHitResponse * theHFResponse
HcalElectronicsSim * theHFQIE10ElectronicsSim
HODigitizer * theHOSiPMDigitizer
QIE11Digitizer * theHBHEQIE11Digitizer
CaloHitResponse * theHBHESiPMResponse
Definition: HcalDigitizer.h:98
HcalAmplifier * theZDCAmplifier
HcalAmplifier * theHFQIE10Amplifier

Member Function Documentation

void HcalDigitizer::accumulate ( edm::Event const &  e,
edm::EventSetup const &  c,
CLHEP::HepRandomEngine *  engine 
)

Definition at line 405 of file HcalDigitizer.cc.

References accumulateCaloHits(), edm::EventSetup::get(), edm::Event::getByLabel(), hitsProducer_, injectTestHits_, isHCAL, edm::HandleBase::isValid(), isZDC, or, and edm::ESHandle< T >::product().

Referenced by HcalDigiProducer::accumulate().

405  {
406  // Step A: Get Inputs
407  edm::InputTag zdcTag(hitsProducer_, "ZDCHITS");
409  e.getByLabel(zdcTag, zdcHandle);
410  isZDC = zdcHandle.isValid();
411 
412  edm::InputTag hcalTag(hitsProducer_, "HcalHits");
414  e.getByLabel(hcalTag, hcalHandle);
415  isHCAL = hcalHandle.isValid() or injectTestHits_;
416 
418  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
419  const HcalTopology *htopoP=htopo.product();
420 
421  accumulateCaloHits(hcalHandle, zdcHandle, 0, engine, htopoP);
422 }
std::string hitsProducer_
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
bool isValid() const
Definition: HandleBase.h:74
void accumulateCaloHits(edm::Handle< std::vector< PCaloHit > > const &hcalHits, edm::Handle< std::vector< PCaloHit > > const &zdcHits, int bunchCrossing, CLHEP::HepRandomEngine *, const HcalTopology *h)
T const * product() const
Definition: ESHandle.h:84
void HcalDigitizer::accumulate ( PileUpEventPrincipal const &  e,
edm::EventSetup const &  c,
CLHEP::HepRandomEngine *  engine 
)

Definition at line 424 of file HcalDigitizer.cc.

References accumulateCaloHits(), PileUpEventPrincipal::bunchCrossing(), edm::EventSetup::get(), PileUpEventPrincipal::getByLabel(), hitsProducer_, isHCAL, edm::HandleBase::isValid(), isZDC, and edm::ESHandle< T >::product().

424  {
425  // Step A: Get Inputs
426  edm::InputTag zdcTag(hitsProducer_, "ZDCHITS");
428  e.getByLabel(zdcTag, zdcHandle);
429  isZDC = zdcHandle.isValid();
430 
431  edm::InputTag hcalTag(hitsProducer_, "HcalHits");
433  e.getByLabel(hcalTag, hcalHandle);
434  isHCAL = hcalHandle.isValid();
435 
437  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
438  const HcalTopology *htopoP=htopo.product();
439 
440  accumulateCaloHits(hcalHandle, zdcHandle, e.bunchCrossing(), engine, htopoP);
441 }
std::string hitsProducer_
bool isValid() const
Definition: HandleBase.h:74
void accumulateCaloHits(edm::Handle< std::vector< PCaloHit > > const &hcalHits, edm::Handle< std::vector< PCaloHit > > const &zdcHits, int bunchCrossing, CLHEP::HepRandomEngine *, const HcalTopology *h)
T const * product() const
Definition: ESHandle.h:84
void HcalDigitizer::accumulateCaloHits ( edm::Handle< std::vector< PCaloHit > > const &  hcalHits,
edm::Handle< std::vector< PCaloHit > > const &  zdcHits,
int  bunchCrossing,
CLHEP::HepRandomEngine *  engine,
const HcalTopology h 
)
private

Definition at line 330 of file HcalDigitizer.cc.

References CaloTDigitizer< Traits, runHelper >::add(), gather_cfg::cout, darkening(), TauDecayModes::dec, doHFWindow_, hbhegeo, HcalEndcap, HcalForward, hfgeo, hogeo, mps_fire::i, triggerObjects_cff::id, injectedHits_, injectTestHits_, isHCAL, isZDC, killHE_, m_HBDarkening, m_HEDarkening, m_HFRecalibration, HcalDetId::newForm(), HcalDetId::oldFormat(), HcalHitRelabeller::process(), DetId::rawId(), HcalDetId::subdet(), testNumbering_, theHBHEDigitizer, theHBHEQIE11Digitizer, theHFDigitizer, theHFQIE10Digitizer, theHODigitizer, theHOSiPMDigitizer, theRelabeller, theZDCDigitizer, HcalTopology::validHcal(), and zdcgeo.

Referenced by accumulate().

330  {
331 
332  // Step A: pass in inputs, and accumulate digis
333  if(isHCAL) {
334  std::vector<PCaloHit> hcalHitsOrig = *hcalHandle.product();
335  if(injectTestHits_) hcalHitsOrig = injectedHits_;
336  std::vector<PCaloHit> hcalHits;
337  hcalHits.reserve(hcalHitsOrig.size());
338 
339  //evaluate darkening before relabeling
340  if (testNumbering_) {
342  darkening(hcalHitsOrig);
343  }
344  // Relabel PCaloHits if necessary
345  edm::LogInfo("HcalDigitizer") << "Calling Relabeller";
346  theRelabeller->process(hcalHitsOrig);
347  }
348 
349  //eliminate bad hits
350  for (unsigned int i=0; i< hcalHitsOrig.size(); i++) {
351  DetId id(hcalHitsOrig[i].id());
352  HcalDetId hid(id);
353  if (!htopoP->validHcal(hid)) {
354  edm::LogError("HcalDigitizer") << "bad hcal id found in digitizer. Skipping " << id.rawId() << " " << hid << std::endl;
355  continue;
356  }
357  else if(hid.subdet()==HcalForward && !doHFWindow_ && hcalHitsOrig[i].depth()!=0){
358  //skip HF window hits unless desired
359  continue;
360  }
361  else if( killHE_ && hid.subdet()==HcalEndcap ) {
362  // remove HE hits if asked for (phase 2)
363  continue;
364  }
365  else {
366 #ifdef DebugLog
367  std::cout << "HcalDigitizer format " << hid.oldFormat() << " for " << hid << std::endl;
368 #endif
369  DetId newid = DetId(hid.newForm());
370 #ifdef DebugLog
371  std::cout << "Hit " << i << " out of " << hcalHits.size() << " " << std::hex << id.rawId() << " --> " << newid.rawId() << std::dec << " " << HcalDetId(newid.rawId()) << '\n';
372 #endif
373  hcalHitsOrig[i].setID(newid.rawId());
374  hcalHits.push_back(hcalHitsOrig[i]);
375  }
376  }
377 
378  if(hbhegeo) {
379  if(theHBHEDigitizer) theHBHEDigitizer->add(hcalHits, bunchCrossing, engine);
380  if(theHBHEQIE11Digitizer) theHBHEQIE11Digitizer->add(hcalHits, bunchCrossing, engine);
381  }
382 
383  if(hogeo) {
384  if(theHODigitizer) theHODigitizer->add(hcalHits, bunchCrossing, engine);
385  if(theHOSiPMDigitizer) theHOSiPMDigitizer->add(hcalHits, bunchCrossing, engine);
386  }
387 
388  if(hfgeo) {
389  if(theHFDigitizer) theHFDigitizer->add(hcalHits, bunchCrossing, engine);
390  if(theHFQIE10Digitizer) theHFQIE10Digitizer->add(hcalHits, bunchCrossing, engine);
391  }
392  } else {
393  edm::LogInfo("HcalDigitizer") << "We don't have HCAL hit collection available ";
394  }
395 
396  if(isZDC) {
397  if(zdcgeo) {
398  theZDCDigitizer->add(*zdcHandle.product(), bunchCrossing, engine);
399  }
400  } else {
401  edm::LogInfo("HcalDigitizer") << "We don't have ZDC hit collection available ";
402  }
403 }
QIE10Digitizer * theHFQIE10Digitizer
void add(const std::vector< PCaloHit > &hits, int bunchCrossing, CLHEP::HepRandomEngine *engine)
HBHEDigitizer * theHBHEDigitizer
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:50
void darkening(std::vector< PCaloHit > &hcalHits)
HFDigitizer * theHFDigitizer
HcalHitRelabeller * theRelabeller
std::unique_ptr< HFRecalibration > m_HFRecalibration
const HBHEDarkening * m_HEDarkening
ZDCDigitizer * theZDCDigitizer
Definition: DetId.h:18
void process(std::vector< PCaloHit > &hcalHits)
HODigitizer * theHODigitizer
const HBHEDarkening * m_HBDarkening
HODigitizer * theHOSiPMDigitizer
QIE11Digitizer * theHBHEQIE11Digitizer
std::vector< PCaloHit > injectedHits_
void HcalDigitizer::buildHBHEQIECells ( const std::vector< DetId > &  allCells,
const edm::EventSetup eventSetup 
)
private

Definition at line 690 of file HcalDigitizer.cc.

References edm::EventSetup::get(), edm::ESHandle< T >::product(), lumiQueryAPI::q, QIE11, QIE8, HcalHitFilter< subdets >::setDetIds(), CaloTDigitizer< Traits, runHelper >::setDetIds(), HcalCondObjectContainerBase::setTopo(), theHBHEDigitizer, theHBHEHitFilter, theHBHEQIE11DetIds, theHBHEQIE11Digitizer, theHBHEQIE11HitFilter, and theHBHEQIE8DetIds.

Referenced by updateGeometry().

690  {
691  //if results are already cached, no need to look again
692  if(!theHBHEQIE8DetIds.empty() || !theHBHEQIE11DetIds.empty()) return;
693 
694  //get the QIETypes
696  eventSetup.get<HcalQIETypesRcd>().get(q);
698  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
699 
700  HcalQIETypes qieTypes(*q.product());
701  if (qieTypes.topo()==nullptr) {
702  qieTypes.setTopo(htopo.product());
703  }
704 
705  for(std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
706  HcalQIENum qieType = HcalQIENum(qieTypes.getValues(*detItr)->getValue());
707  if(qieType == QIE8) {
708  theHBHEQIE8DetIds.push_back(*detItr);
709  }
710  else if(qieType == QIE11) {
711  theHBHEQIE11DetIds.push_back(*detItr);
712  }
713  else { //default is QIE8
714  theHBHEQIE8DetIds.push_back(*detItr);
715  }
716  }
717 
719  else {
720  delete theHBHEDigitizer;
721  theHBHEDigitizer = nullptr;
722  }
723 
725  else {
726  delete theHBHEQIE11Digitizer;
727  theHBHEQIE11Digitizer = nullptr;
728  }
729 
730  if(!theHBHEQIE8DetIds.empty() && !theHBHEQIE11DetIds.empty()){
733  }
734 }
HBHEHitFilter theHBHEHitFilter
Definition: HcalQIENum.h:4
HBHEDigitizer * theHBHEDigitizer
HcalQIENum
Definition: HcalQIENum.h:4
void setDetIds(const std::vector< DetId > &detIds)
Definition: HcalHitFilter.h:17
QIE11Digitizer * theHBHEQIE11Digitizer
HBHEHitFilter theHBHEQIE11HitFilter
T get() const
Definition: EventSetup.h:68
std::vector< DetId > theHBHEQIE8DetIds
T const * product() const
Definition: ESHandle.h:84
std::vector< DetId > theHBHEQIE11DetIds
void setTopo(const HcalTopology *topo)
void setDetIds(const std::vector< DetId > &detIds)
void HcalDigitizer::buildHFQIECells ( const std::vector< DetId > &  allCells,
const edm::EventSetup eventSetup 
)
private

Definition at line 651 of file HcalDigitizer.cc.

References edm::EventSetup::get(), edm::ESHandle< T >::product(), lumiQueryAPI::q, QIE10, QIE8, CaloTDigitizer< Traits, runHelper >::setDetIds(), HcalCondObjectContainerBase::setTopo(), theHFDigitizer, theHFQIE10DetIds, theHFQIE10Digitizer, and theHFQIE8DetIds.

Referenced by updateGeometry().

651  {
652  //if results are already cached, no need to look again
653  if(!theHFQIE8DetIds.empty() || !theHFQIE10DetIds.empty()) return;
654 
655  //get the QIETypes
657  eventSetup.get<HcalQIETypesRcd>().get(q);
659  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
660 
661  HcalQIETypes qieTypes(*q.product());
662  if (qieTypes.topo()==nullptr) {
663  qieTypes.setTopo(htopo.product());
664  }
665 
666  for(std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
667  HcalQIENum qieType = HcalQIENum(qieTypes.getValues(*detItr)->getValue());
668  if(qieType == QIE8) {
669  theHFQIE8DetIds.push_back(*detItr);
670  } else if(qieType == QIE10) {
671  theHFQIE10DetIds.push_back(*detItr);
672  } else { //default is QIE8
673  theHFQIE8DetIds.push_back(*detItr);
674  }
675  }
676 
678  else {
679  delete theHFDigitizer;
680  theHFDigitizer = nullptr;
681  }
682 
684  else {
685  delete theHFQIE10Digitizer;
686  theHFQIE10Digitizer = nullptr;
687  }
688 }
std::vector< DetId > theHFQIE10DetIds
QIE10Digitizer * theHFQIE10Digitizer
Definition: HcalQIENum.h:4
HFDigitizer * theHFDigitizer
HcalQIENum
Definition: HcalQIENum.h:4
std::vector< DetId > theHFQIE8DetIds
T get() const
Definition: EventSetup.h:68
T const * product() const
Definition: ESHandle.h:84
void setTopo(const HcalTopology *topo)
void setDetIds(const std::vector< DetId > &detIds)
void HcalDigitizer::buildHOSiPMCells ( const std::vector< DetId > &  allCells,
const edm::EventSetup eventSetup 
)
private

Definition at line 736 of file HcalDigitizer.cc.

References edm::EventSetup::get(), HcalShapes::HAMAMATSU, AlCaHLTBitMon_ParallelJobs::p, edm::ESHandle< T >::product(), HcalHitFilter< subdets >::setDetIds(), CaloTDigitizer< Traits, runHelper >::setDetIds(), HcalSimParameterMap::setHOHamamatsuDetIds(), HcalSimParameterMap::setHOZecotekDetIds(), HcalCondObjectContainerBase::setTopo(), theHODigitizer, theHOHitFilter, theHOHPDDetIds, theHOSiPMCode, theHOSiPMDetIds, theHOSiPMDigitizer, theHOSiPMHitFilter, theParameterMap, and HcalShapes::ZECOTEK.

Referenced by updateGeometry().

736  {
737  // all HPD
738 
739  if(theHOSiPMCode == 0) {
740  theHODigitizer->setDetIds(allCells);
741  } else if(theHOSiPMCode == 1) {
742  theHOSiPMDigitizer->setDetIds(allCells);
743  // FIXME pick Zecotek or hamamatsu?
744  } else if(theHOSiPMCode == 2) {
745  std::vector<HcalDetId> zecotekDetIds, hamamatsuDetIds;
747  eventSetup.get<HcalMCParamsRcd>().get(p);
749  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
750 
751  HcalMCParams mcParams(*p.product());
752  if (mcParams.topo()==nullptr) {
753  mcParams.setTopo(htopo.product());
754  }
755 
756  for(std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
757  int shapeType = mcParams.getValues(*detItr)->signalShape();
758  if(shapeType == HcalShapes::ZECOTEK) {
759  zecotekDetIds.emplace_back(*detItr);
760  theHOSiPMDetIds.push_back(*detItr);
761  } else if(shapeType == HcalShapes::HAMAMATSU) {
762  hamamatsuDetIds.emplace_back(*detItr);
763  theHOSiPMDetIds.push_back(*detItr);
764  } else {
765  theHOHPDDetIds.push_back(*detItr);
766  }
767  }
768 
770  else {
771  delete theHODigitizer;
772  theHODigitizer = nullptr;
773  }
774 
776  else {
777  delete theHOSiPMDigitizer;
778  theHOSiPMDigitizer = nullptr;
779  }
780 
781  if(!theHOHPDDetIds.empty() && !theHOSiPMDetIds.empty()){
784  }
785 
786  theParameterMap->setHOZecotekDetIds(zecotekDetIds);
787  theParameterMap->setHOHamamatsuDetIds(hamamatsuDetIds);
788 
789  // make sure we don't got through this exercise again
790  theHOSiPMCode = -2;
791  }
792 }
HOHitFilter theHOHitFilter
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:94
void setHOZecotekDetIds(const std::vector< HcalDetId > &ids)
std::vector< DetId > theHOHPDDetIds
void setHOHamamatsuDetIds(const std::vector< HcalDetId > &ids)
HODigitizer * theHODigitizer
void setDetIds(const std::vector< DetId > &detIds)
Definition: HcalHitFilter.h:17
std::vector< DetId > theHOSiPMDetIds
HOHitFilter theHOSiPMHitFilter
HODigitizer * theHOSiPMDigitizer
T get() const
Definition: EventSetup.h:68
T const * product() const
Definition: ESHandle.h:84
void setTopo(const HcalTopology *topo)
void setDetIds(const std::vector< DetId > &detIds)
void HcalDigitizer::checkGeometry ( const edm::EventSetup eventSetup)
private

make sure the digitizer has the correct list of all cells that exist in the geometry

Definition at line 559 of file HcalDigitizer.cc.

References edm::ESWatcher< T >::check(), geometry, edm::EventSetup::get(), or, HcalHitRelabeller::setGeometry(), CaloHitResponse::setGeometry(), theGeometry, theGeometryWatcher_, theHBHEResponse, theHBHESiPMResponse, theHFQIE10Response, theHFResponse, theHOResponse, theHOSiPMResponse, theRecNumber, theRecNumberWatcher_, theRelabeller, theZDCResponse, and updateGeometry().

Referenced by setup().

559  {
561  eventSetup.get<CaloGeometryRecord>().get(geometry);
562  theGeometry = &*geometry;
564  eventSetup.get<HcalRecNumberingRecord>().get(pHRNDC);
565  theRecNumber= &*pHRNDC;
566 
575 
576  // See if it's been updated
577  bool check1 = theGeometryWatcher_.check(eventSetup);
578  bool check2 = theRecNumberWatcher_.check(eventSetup);
579  if (check1 or check2) {
580  updateGeometry(eventSetup);
581  }
582 }
void setGeometry(const CaloGeometry *geometry)
geometry needed for time-of-flight
CaloHitResponse * theHFQIE10Response
const HcalDDDRecConstants * theRecNumber
Definition: HcalDigitizer.h:76
void setGeometry(const HcalDDDRecConstants *&)
HcalHitRelabeller * theRelabeller
edm::ESWatcher< HcalRecNumberingRecord > theRecNumberWatcher_
Definition: HcalDigitizer.h:74
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
CaloHitResponse * theHOResponse
Definition: HcalDigitizer.h:99
CaloHitResponse * theHOSiPMResponse
CaloHitResponse * theZDCResponse
edm::ESWatcher< CaloGeometryRecord > theGeometryWatcher_
Definition: HcalDigitizer.h:73
CaloHitResponse * theHBHEResponse
Definition: HcalDigitizer.h:97
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:57
const CaloGeometry * theGeometry
Definition: HcalDigitizer.h:75
ESHandle< TrackerGeometry > geometry
CaloHitResponse * theHFResponse
T get() const
Definition: EventSetup.h:68
CaloHitResponse * theHBHESiPMResponse
Definition: HcalDigitizer.h:98
void updateGeometry(const edm::EventSetup &eventSetup)
void HcalDigitizer::darkening ( std::vector< PCaloHit > &  hcalHits)
private

Definition at line 794 of file HcalDigitizer.cc.

References HBHEDarkening::degradation(), deliveredLumi, egammaForCoreTracking_cff::depth, HcalBarrel, HcalEndcap, HcalForward, cuy::ii, m_HBDarkening, m_HEDarkening, m_HFRecalibration, phi, HcalTestNumbering::unpackHcalIndex(), and z.

Referenced by accumulateCaloHits().

794  {
795 
796  for (unsigned int ii=0; ii<hcalHits.size(); ++ii) {
797  uint32_t tmpId = hcalHits[ii].id();
798  int det, z, depth, ieta, phi, lay;
799  HcalTestNumbering::unpackHcalIndex(tmpId,det,z,depth,ieta,phi,lay);
800 
801  bool darkened = false;
802  float dweight = 1.;
803 
804  if(det==int(HcalBarrel) && m_HBDarkening){
805  //HB darkening
806  dweight = m_HBDarkening->degradation(deliveredLumi,ieta,lay);
807  darkened = true;
808  }
809  else if(det==int(HcalEndcap) && m_HEDarkening){
810  //HE darkening
811  dweight = m_HEDarkening->degradation(deliveredLumi,ieta,lay);
812  darkened = true;
813  }
814  else if(det==int(HcalForward) && m_HFRecalibration){
815  //HF darkening - approximate: invert recalibration factor
816  dweight = 1.0/m_HFRecalibration->getCorr(ieta,depth,deliveredLumi);
817  darkened = true;
818  }
819 
820  //reset hit energy
821  if(darkened) hcalHits[ii].setEnergy(hcalHits[ii].energy()*dweight);
822  }
823 
824 }
std::unique_ptr< HFRecalibration > m_HFRecalibration
const HBHEDarkening * m_HEDarkening
double deliveredLumi
static void unpackHcalIndex(const uint32_t &idx, int &det, int &z, int &depth, int &eta, int &phi, int &lay)
ii
Definition: cuy.py:590
const HBHEDarkening * m_HBDarkening
float degradation(float intlumi, int ieta, int lay) const
void HcalDigitizer::fillFakeHits ( )
private

some hits in each subdetector, just for testing purposes

void HcalDigitizer::finalizeEvent ( edm::Event e,
edm::EventSetup const &  c,
CLHEP::HepRandomEngine *   
)

Definition at line 443 of file HcalDigitizer.cc.

References gather_cfg::cout, debugCS_, CaloTDigitizer< Traits, runHelper >::getCaloSamples(), hbhegeo, hfgeo, hogeo, injectedHits_, injectTestHits_, isHCAL, isZDC, HcalDataFrameContainer< QIE11DataFrame >::MAXSAMPLES, HcalDataFrameContainer< QIE10DataFrame >::MAXSAMPLES, eostools::move(), edm::Event::put(), CaloSimParameters::readoutFrameSize(), CaloTDigitizer< Traits, runHelper >::run(), HcalSimParameterMap::simParameters(), theHBHEDigitizer, theHBHEQIE11DetIds, theHBHEQIE11Digitizer, theHBHESiPMResponse, theHFDigitizer, theHFQIE10DetIds, theHFQIE10Digitizer, theHODigitizer, theHOSiPMDigitizer, theParameterMap, theZDCDigitizer, and zdcgeo.

Referenced by HcalDigiProducer::finalizeEvent().

443  {
444 
445  // Step B: Create empty output
446  std::unique_ptr<HBHEDigiCollection> hbheResult(new HBHEDigiCollection());
447  std::unique_ptr<HODigiCollection> hoResult(new HODigiCollection());
448  std::unique_ptr<HFDigiCollection> hfResult(new HFDigiCollection());
449  std::unique_ptr<ZDCDigiCollection> zdcResult(new ZDCDigiCollection());
450  std::unique_ptr<QIE10DigiCollection> hfQIE10Result(
452  !theHFQIE10DetIds.empty() ?
455  )
456  );
457  std::unique_ptr<QIE11DigiCollection> hbheQIE11Result(
459  !theHBHEQIE11DetIds.empty() ?
460  ((HcalSiPMHitResponse *)theHBHESiPMResponse)->getReadoutFrameSize(theHBHEQIE11DetIds[0]) :
461 // theParameterMap->simParameters(theHBHEQIE11DetIds[0]).readoutFrameSize() :
463  )
464  );
465 
466  // Step C: Invoke the algorithm, getting back outputs.
467  if(isHCAL&&hbhegeo){
468  if(theHBHEDigitizer) theHBHEDigitizer->run(*hbheResult, engine);
469  if(theHBHEQIE11Digitizer) theHBHEQIE11Digitizer->run(*hbheQIE11Result, engine);
470  }
471  if(isHCAL&&hogeo) {
472  if(theHODigitizer) theHODigitizer->run(*hoResult, engine);
473  if(theHOSiPMDigitizer) theHOSiPMDigitizer->run(*hoResult, engine);
474  }
475  if(isHCAL&&hfgeo) {
476  if(theHFDigitizer) theHFDigitizer->run(*hfResult, engine);
477  if(theHFQIE10Digitizer) theHFQIE10Digitizer->run(*hfQIE10Result, engine);
478  }
479  if(isZDC&&zdcgeo) {
480  theZDCDigitizer->run(*zdcResult, engine);
481  }
482 
483  edm::LogInfo("HcalDigitizer") << "HCAL HBHE digis : " << hbheResult->size();
484  edm::LogInfo("HcalDigitizer") << "HCAL HO digis : " << hoResult->size();
485  edm::LogInfo("HcalDigitizer") << "HCAL HF digis : " << hfResult->size();
486  edm::LogInfo("HcalDigitizer") << "HCAL ZDC digis : " << zdcResult->size();
487  edm::LogInfo("HcalDigitizer") << "HCAL HF QIE10 digis : " << hfQIE10Result->size();
488  edm::LogInfo("HcalDigitizer") << "HCAL HBHE QIE11 digis : " << hbheQIE11Result->size();
489 
490 #ifdef DebugLog
491  std::cout << std::endl;
492  std::cout << "HCAL HBHE digis : " << hbheResult->size() << std::endl;
493  std::cout << "HCAL HO digis : " << hoResult->size() << std::endl;
494  std::cout << "HCAL HF digis : " << hfResult->size() << std::endl;
495  std::cout << "HCAL ZDC digis : " << zdcResult->size() << std::endl;
496  std::cout << "HCAL HF QIE10 digis : " << hfQIE10Result->size() << std::endl;
497  std::cout << "HCAL HBHE QIE11 digis : " << hbheQIE11Result->size() << std::endl;
498 #endif
499 
500  // Step D: Put outputs into event
501  e.put(std::move(hbheResult));
502  e.put(std::move(hoResult));
503  e.put(std::move(hfResult));
504  e.put(std::move(zdcResult));
505  e.put(std::move(hfQIE10Result), "HFQIE10DigiCollection");
506  e.put(std::move(hbheQIE11Result), "HBHEQIE11DigiCollection");
507 
508  if(debugCS_){
509  std::unique_ptr<CaloSamplesCollection> csResult(new CaloSamplesCollection());
510  //smush together all the results
511  if(theHBHEDigitizer) csResult->insert(csResult->end(),theHBHEDigitizer->getCaloSamples().begin(),theHBHEDigitizer->getCaloSamples().end());
512  if(theHBHEQIE11Digitizer) csResult->insert(csResult->end(),theHBHEQIE11Digitizer->getCaloSamples().begin(),theHBHEQIE11Digitizer->getCaloSamples().end());
513  if(theHODigitizer) csResult->insert(csResult->end(),theHODigitizer->getCaloSamples().begin(),theHODigitizer->getCaloSamples().end());
514  if(theHOSiPMDigitizer) csResult->insert(csResult->end(),theHOSiPMDigitizer->getCaloSamples().begin(),theHOSiPMDigitizer->getCaloSamples().end());
515  if(theHFDigitizer) csResult->insert(csResult->end(),theHFDigitizer->getCaloSamples().begin(),theHFDigitizer->getCaloSamples().end());
516  if(theHFQIE10Digitizer) csResult->insert(csResult->end(),theHFQIE10Digitizer->getCaloSamples().begin(),theHFQIE10Digitizer->getCaloSamples().end());
517  csResult->insert(csResult->end(),theZDCDigitizer->getCaloSamples().begin(),theZDCDigitizer->getCaloSamples().end());
518  e.put(std::move(csResult),"HcalSamples");
519  }
520 
521  if(injectTestHits_){
522  std::unique_ptr<edm::PCaloHitContainer> pcResult(new edm::PCaloHitContainer());
523  pcResult->insert(pcResult->end(),injectedHits_.begin(),injectedHits_.end());
524  e.put(std::move(pcResult),"HcalHits");
525  }
526 
527 #ifdef DebugLog
528  std::cout << std::endl << "========> HcalDigitizer e.put " << std::endl << std::endl;
529 #endif
530 
531 }
std::vector< DetId > theHFQIE10DetIds
QIE10Digitizer * theHFQIE10Digitizer
std::vector< PCaloHit > PCaloHitContainer
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:137
std::vector< CaloSamples > CaloSamplesCollection
Definition: CaloSamples.h:88
HBHEDigitizer * theHBHEDigitizer
HFDigitizer * theHFDigitizer
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:94
edm::SortedCollection< ZDCDataFrame > ZDCDigiCollection
HcalDataFrameContainer< QIE10DataFrame > QIE10DigiCollection
edm::SortedCollection< HODataFrame > HODigiCollection
ZDCDigitizer * theZDCDigitizer
int readoutFrameSize() const
for now, the LinearFrames and trhe digis will be one-to-one.
HcalDataFrameContainer< QIE11DataFrame > QIE11DigiCollection
void run(MixCollection< PCaloHit > &, DigiCollection &)
turns hits into digis
HODigitizer * theHODigitizer
HODigitizer * theHOSiPMDigitizer
QIE11Digitizer * theHBHEQIE11Digitizer
edm::SortedCollection< HFDataFrame > HFDigiCollection
CaloHitResponse * theHBHESiPMResponse
Definition: HcalDigitizer.h:98
const CaloSimParameters & simParameters(const DetId &id) const override
std::vector< DetId > theHBHEQIE11DetIds
const CaloSamplesCollection & getCaloSamples() const
def move(src, dest)
Definition: eostools.py:511
edm::SortedCollection< HBHEDataFrame > HBHEDigiCollection
std::vector< PCaloHit > injectedHits_
void HcalDigitizer::initializeEvent ( edm::Event const &  e,
edm::EventSetup const &  c 
)

Produces the EDM products,

Definition at line 297 of file HcalDigitizer.cc.

References edm::EventSetup::get(), CaloTDigitizer< Traits, runHelper >::initializeHits(), edm::ESHandle< T >::product(), HcalCoderFactory::setDbService(), HcalShapes::setDbService(), HcalAmplifier::setDbService(), HcalElectronicsSim::setDbService(), HcalSimParameterMap::setDbService(), setup(), theCoderFactory, theHBHEAmplifier, theHBHEDigitizer, theHBHEQIE11Amplifier, theHBHEQIE11Digitizer, theHBHEQIE11ElectronicsSim, theHFAmplifier, theHFDigitizer, theHFQIE10Amplifier, theHFQIE10Digitizer, theHFQIE10ElectronicsSim, theHOAmplifier, theHODigitizer, theHOSiPMDigitizer, theParameterMap, theShapes, theZDCAmplifier, and theZDCDigitizer.

Referenced by HcalDigiProducer::initializeEvent().

297  {
298  setup(eventSetup);
299 
300  // get the appropriate gains, noises, & widths for this event
301  edm::ESHandle<HcalDbService> conditions;
302  eventSetup.get<HcalDbRecord>().get(conditions);
303 
304  theShapes->setDbService(conditions.product());
305 
306  theHBHEAmplifier->setDbService(conditions.product());
307  theHFAmplifier->setDbService(conditions.product());
308  theHOAmplifier->setDbService(conditions.product());
309  theZDCAmplifier->setDbService(conditions.product());
312 
315 
316  theCoderFactory->setDbService(conditions.product());
317  theParameterMap->setDbService(conditions.product());
318 
319  //initialize hits
327 
328 }
QIE10Digitizer * theHFQIE10Digitizer
void setDbService(const HcalDbService *service)
the Producer will probably update this every event
HBHEDigitizer * theHBHEDigitizer
HcalElectronicsSim * theHBHEQIE11ElectronicsSim
HFDigitizer * theHFDigitizer
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:94
HcalAmplifier * theHFAmplifier
HcalCoderFactory * theCoderFactory
void setDbService(const HcalDbService *service)
HcalAmplifier * theHBHEQIE11Amplifier
HcalAmplifier * theHBHEAmplifier
HcalShapes * theShapes
Definition: HcalDigitizer.h:95
void initializeHits()
ZDCDigitizer * theZDCDigitizer
void setDbService(const HcalDbService *service)
Definition: HcalShapes.h:25
HcalAmplifier * theHOAmplifier
void setDbService(const HcalDbService *service)
HODigitizer * theHODigitizer
HcalElectronicsSim * theHFQIE10ElectronicsSim
HODigitizer * theHOSiPMDigitizer
QIE11Digitizer * theHBHEQIE11Digitizer
void setup(const edm::EventSetup &es)
T const * product() const
Definition: ESHandle.h:84
HcalAmplifier * theZDCAmplifier
void setDbService(const HcalDbService *service)
HcalAmplifier * theHFQIE10Amplifier
void HcalDigitizer::setHBHENoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 254 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalAmplifier::setNoiseSignalGenerator(), CaloTDigitizer< Traits, runHelper >::setNoiseSignalGenerator(), HcalBaseSignalGenerator::setParameterMap(), theHBHEAmplifier, theHBHEDigitizer, theHBHEElectronicsSim, and theParameterMap.

Referenced by HcalDigiProducer::setHBHENoiseSignalGenerator().

254  {
255  noiseGenerator->setParameterMap(theParameterMap);
256  noiseGenerator->setElectronicsSim(theHBHEElectronicsSim);
258  theHBHEAmplifier->setNoiseSignalGenerator(noiseGenerator);
259 }
void setParameterMap(HcalSimParameterMap *map)
HBHEDigitizer * theHBHEDigitizer
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:94
HcalAmplifier * theHBHEAmplifier
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
void setNoiseSignalGenerator(CaloVNoiseSignalGenerator *generator)
void setNoiseSignalGenerator(const CaloVNoiseSignalGenerator *noiseSignalGenerator)
Definition: HcalAmplifier.h:32
HcalElectronicsSim * theHBHEElectronicsSim
void HcalDigitizer::setHFNoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 268 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalAmplifier::setNoiseSignalGenerator(), CaloTDigitizer< Traits, runHelper >::setNoiseSignalGenerator(), HcalBaseSignalGenerator::setParameterMap(), theHFAmplifier, theHFDigitizer, theHFElectronicsSim, and theParameterMap.

Referenced by HcalDigiProducer::setHFNoiseSignalGenerator().

268  {
269  noiseGenerator->setParameterMap(theParameterMap);
270  noiseGenerator->setElectronicsSim(theHFElectronicsSim);
272  theHFAmplifier->setNoiseSignalGenerator(noiseGenerator);
273 }
void setParameterMap(HcalSimParameterMap *map)
HcalElectronicsSim * theHFElectronicsSim
HFDigitizer * theHFDigitizer
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:94
HcalAmplifier * theHFAmplifier
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
void setNoiseSignalGenerator(CaloVNoiseSignalGenerator *generator)
void setNoiseSignalGenerator(const CaloVNoiseSignalGenerator *noiseSignalGenerator)
Definition: HcalAmplifier.h:32
void HcalDigitizer::setHONoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 282 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalAmplifier::setNoiseSignalGenerator(), CaloTDigitizer< Traits, runHelper >::setNoiseSignalGenerator(), HcalBaseSignalGenerator::setParameterMap(), theHOAmplifier, theHODigitizer, theHOElectronicsSim, theHOSiPMDigitizer, and theParameterMap.

Referenced by HcalDigiProducer::setHONoiseSignalGenerator().

282  {
283  noiseGenerator->setParameterMap(theParameterMap);
284  noiseGenerator->setElectronicsSim(theHOElectronicsSim);
287  theHOAmplifier->setNoiseSignalGenerator(noiseGenerator);
288 }
void setParameterMap(HcalSimParameterMap *map)
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:94
HcalElectronicsSim * theHOElectronicsSim
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
void setNoiseSignalGenerator(CaloVNoiseSignalGenerator *generator)
void setNoiseSignalGenerator(const CaloVNoiseSignalGenerator *noiseSignalGenerator)
Definition: HcalAmplifier.h:32
HcalAmplifier * theHOAmplifier
HODigitizer * theHODigitizer
HODigitizer * theHOSiPMDigitizer
void HcalDigitizer::setQIE10NoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 275 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalAmplifier::setNoiseSignalGenerator(), CaloTDigitizer< Traits, runHelper >::setNoiseSignalGenerator(), HcalBaseSignalGenerator::setParameterMap(), theHFQIE10Amplifier, theHFQIE10Digitizer, theHFQIE10ElectronicsSim, and theParameterMap.

Referenced by HcalDigiProducer::setQIE10NoiseSignalGenerator().

275  {
276  noiseGenerator->setParameterMap(theParameterMap);
280 }
QIE10Digitizer * theHFQIE10Digitizer
void setParameterMap(HcalSimParameterMap *map)
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:94
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
void setNoiseSignalGenerator(CaloVNoiseSignalGenerator *generator)
void setNoiseSignalGenerator(const CaloVNoiseSignalGenerator *noiseSignalGenerator)
Definition: HcalAmplifier.h:32
HcalElectronicsSim * theHFQIE10ElectronicsSim
HcalAmplifier * theHFQIE10Amplifier
void HcalDigitizer::setQIE11NoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 261 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalAmplifier::setNoiseSignalGenerator(), CaloTDigitizer< Traits, runHelper >::setNoiseSignalGenerator(), HcalBaseSignalGenerator::setParameterMap(), theHBHEQIE11Amplifier, theHBHEQIE11Digitizer, theHBHEQIE11ElectronicsSim, and theParameterMap.

Referenced by HcalDigiProducer::setQIE11NoiseSignalGenerator().

261  {
262  noiseGenerator->setParameterMap(theParameterMap);
266 }
void setParameterMap(HcalSimParameterMap *map)
HcalElectronicsSim * theHBHEQIE11ElectronicsSim
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:94
HcalAmplifier * theHBHEQIE11Amplifier
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
void setNoiseSignalGenerator(CaloVNoiseSignalGenerator *generator)
void setNoiseSignalGenerator(const CaloVNoiseSignalGenerator *noiseSignalGenerator)
Definition: HcalAmplifier.h:32
QIE11Digitizer * theHBHEQIE11Digitizer
void HcalDigitizer::setup ( const edm::EventSetup es)
private

Definition at line 534 of file HcalDigitizer.cc.

References agingFlagHB, agingFlagHE, checkGeometry(), edm::EventSetup::get(), hcalTimeSlew_delay_, m_HBDarkening, m_HEDarkening, HcalAmplifier::setTimeSlew(), theHBHEAmplifier, theHBHEQIE11Amplifier, theHOAmplifier, and theZDCAmplifier.

Referenced by initializeEvent().

534  {
535  checkGeometry(es);
536 
537  if (agingFlagHB) {
539  es.get<HBHEDarkeningRecord>().get("HB",hdark);
540  m_HBDarkening = &*hdark;
541  }
542  if (agingFlagHE) {
544  es.get<HBHEDarkeningRecord>().get("HE",hdark);
545  m_HEDarkening = &*hdark;
546  }
547 
549  es.get<HcalTimeSlewRecord>().get("HBHE", delay);
550  hcalTimeSlew_delay_ = &*delay;
551 
556 }
void checkGeometry(const edm::EventSetup &eventSetup)
HcalAmplifier * theHBHEQIE11Amplifier
const HBHEDarkening * m_HEDarkening
HcalAmplifier * theHBHEAmplifier
const HcalTimeSlew * hcalTimeSlew_delay_
void setTimeSlew(const HcalTimeSlew *timeSlew)
Definition: HcalAmplifier.h:40
HcalAmplifier * theHOAmplifier
const HBHEDarkening * m_HBDarkening
T get() const
Definition: EventSetup.h:68
HcalAmplifier * theZDCAmplifier
void HcalDigitizer::setZDCNoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 290 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalAmplifier::setNoiseSignalGenerator(), CaloTDigitizer< Traits, runHelper >::setNoiseSignalGenerator(), HcalBaseSignalGenerator::setParameterMap(), theParameterMap, theZDCAmplifier, theZDCDigitizer, and theZDCElectronicsSim.

Referenced by HcalDigiProducer::setZDCNoiseSignalGenerator().

290  {
291  noiseGenerator->setParameterMap(theParameterMap);
292  noiseGenerator->setElectronicsSim(theZDCElectronicsSim);
293  theZDCDigitizer->setNoiseSignalGenerator(noiseGenerator);
294  theZDCAmplifier->setNoiseSignalGenerator(noiseGenerator);
295 }
void setParameterMap(HcalSimParameterMap *map)
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:94
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
ZDCDigitizer * theZDCDigitizer
void setNoiseSignalGenerator(CaloVNoiseSignalGenerator *generator)
void setNoiseSignalGenerator(const CaloVNoiseSignalGenerator *noiseSignalGenerator)
Definition: HcalAmplifier.h:32
HcalElectronicsSim * theZDCElectronicsSim
HcalAmplifier * theZDCAmplifier
void HcalDigitizer::updateGeometry ( const edm::EventSetup eventSetup)
private

Definition at line 585 of file HcalDigitizer.cc.

References buildHBHEQIECells(), buildHFQIECells(), buildHOSiPMCells(), DetId::Calo, Exception, CaloGeometry::getValidDetIds(), hbheCells, hbhegeo, DetId::Hcal, HcalBarrel, HcalEndcap, HcalForward, HcalOuter, hfgeo, hogeo, injectedHits_, injectedHitsCells_, injectedHitsEnergy_, injectedHitsTime_, injectTestHits_, killHE_, CaloTDigitizer< Traits, runHelper >::setDetIds(), HcalZDCDetId::SubdetectorId, theGeometry, theHBHEQIE11DetIds, theHBHESiPMResponse, theHOSiPMDigitizer, theHOSiPMResponse, theZDCDigitizer, tmp, and zdcgeo.

Referenced by checkGeometry().

585  {
586  const std::vector<DetId>& hbCells = theGeometry->getValidDetIds(DetId::Hcal, HcalBarrel);
587  const std::vector<DetId>& heCells = theGeometry->getValidDetIds(DetId::Hcal, HcalEndcap);
588  const std::vector<DetId>& hoCells = theGeometry->getValidDetIds(DetId::Hcal, HcalOuter);
589  const std::vector<DetId>& hfCells = theGeometry->getValidDetIds(DetId::Hcal, HcalForward);
590  const std::vector<DetId>& zdcCells = theGeometry->getValidDetIds(DetId::Calo, HcalZDCDetId::SubdetectorId);
591  //const std::vector<DetId>& hcalTrigCells = geometry->getValidDetIds(DetId::Hcal, HcalTriggerTower);
592  //const std::vector<DetId>& hcalCalib = geometry->getValidDetIds(DetId::Calo, HcalCastorDetId::SubdetectorId);
593 // std::cout<<"HcalDigitizer::CheckGeometry number of cells: "<<zdcCells.size()<<std::endl;
594  if(zdcCells.empty()) zdcgeo = false;
595  if(hbCells.empty() && heCells.empty()) hbhegeo = false;
596  if(hoCells.empty()) hogeo = false;
597  if(hfCells.empty()) hfgeo = false;
598  // combine HB & HE
599 
600  hbheCells = hbCells;
601  if( !killHE_) {
602  hbheCells.insert(hbheCells.end(), heCells.begin(), heCells.end());
603  }
604  //handle mixed QIE8/11 scenario in HBHE
605  buildHBHEQIECells(hbheCells,eventSetup);
608 
609  if(theHOSiPMDigitizer) {
610  buildHOSiPMCells(hoCells, eventSetup);
612  ((HcalSiPMHitResponse *)theHOSiPMResponse)->setDetIds(hoCells);
613  }
614 
615  //handle mixed QIE8/10 scenario in HF
616  buildHFQIECells(hfCells,eventSetup);
617 
618  theZDCDigitizer->setDetIds(zdcCells);
619 
620  //fill test hits collection if desired and empty
621  if(injectTestHits_ && injectedHits_.empty() && !injectedHitsCells_.empty() && !injectedHitsEnergy_.empty()){
622  //make list of specified cells if desired
623  std::vector<DetId> testCells;
624  if(injectedHitsCells_.size()>=4){
625  testCells.reserve(injectedHitsCells_.size()/4);
626  for(unsigned ic = 0; ic < injectedHitsCells_.size(); ic += 4){
627  if(ic+4 > injectedHitsCells_.size()) break;
628  testCells.push_back(HcalDetId((HcalSubdetector)injectedHitsCells_[ic],injectedHitsCells_[ic+1],
630  }
631  }
632  else{
633  int testSubdet = injectedHitsCells_[0];
634  if(testSubdet==HcalBarrel) testCells = hbCells;
635  else if(testSubdet==HcalEndcap) testCells = heCells;
636  else if(testSubdet==HcalForward) testCells = hfCells;
637  else if(testSubdet==HcalOuter) testCells = hoCells;
638  else throw cms::Exception("Configuration") << "Unknown subdet " << testSubdet << " for HCAL test hit injection";
639  }
640  bool useHitTimes = (injectedHitsTime_.size()==injectedHitsEnergy_.size());
641  injectedHits_.reserve(testCells.size()*injectedHitsEnergy_.size());
642  for(unsigned ih = 0; ih < injectedHitsEnergy_.size(); ++ih){
643  double tmp = useHitTimes ? injectedHitsTime_[ih] : 0.;
644  for(auto& aCell: testCells){
645  injectedHits_.emplace_back(aCell,injectedHitsEnergy_[ih],tmp);
646  }
647  }
648  }
649 }
std::vector< int > injectedHitsCells_
void buildHFQIECells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
void buildHBHEQIECells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
std::vector< double > injectedHitsEnergy_
void buildHOSiPMCells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
CaloHitResponse * theHOSiPMResponse
HcalSubdetector
Definition: HcalAssistant.h:31
std::vector< double > injectedHitsTime_
ZDCDigitizer * theZDCDigitizer
static const int SubdetectorId
Definition: HcalZDCDetId.h:25
const CaloGeometry * theGeometry
Definition: HcalDigitizer.h:75
std::vector< DetId > getValidDetIds() const
Get the list of all valid detector ids.
std::vector< DetId > hbheCells
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
HODigitizer * theHOSiPMDigitizer
CaloHitResponse * theHBHESiPMResponse
Definition: HcalDigitizer.h:98
std::vector< DetId > theHBHEQIE11DetIds
void setDetIds(const std::vector< DetId > &detIds)
std::vector< PCaloHit > injectedHits_

Member Data Documentation

bool HcalDigitizer::agingFlagHB
private

Definition at line 164 of file HcalDigitizer.h.

Referenced by setup().

bool HcalDigitizer::agingFlagHE
private

Definition at line 164 of file HcalDigitizer.h.

Referenced by setup().

bool HcalDigitizer::debugCS_
private

Definition at line 155 of file HcalDigitizer.h.

Referenced by finalizeEvent(), and HcalDigitizer().

double HcalDigitizer::deliveredLumi
private

Definition at line 163 of file HcalDigitizer.h.

Referenced by darkening(), and HcalDigitizer().

bool HcalDigitizer::doHFWindow_
private

Definition at line 153 of file HcalDigitizer.h.

Referenced by accumulateCaloHits().

std::vector<DetId> HcalDigitizer::hbheCells
private

Definition at line 145 of file HcalDigitizer.h.

Referenced by updateGeometry().

bool HcalDigitizer::hbhegeo
private

Definition at line 151 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), finalizeEvent(), and updateGeometry().

const HcalTimeSlew* HcalDigitizer::hcalTimeSlew_delay_
private

Definition at line 169 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setup().

bool HcalDigitizer::hfgeo
private

Definition at line 151 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), finalizeEvent(), and updateGeometry().

std::string HcalDigitizer::hitsProducer_
private

Definition at line 159 of file HcalDigitizer.h.

Referenced by accumulate(), and HcalDigitizer().

bool HcalDigitizer::hogeo
private

Definition at line 151 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), finalizeEvent(), and updateGeometry().

bool HcalDigitizer::ignoreTime_
private

Definition at line 156 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

std::vector<PCaloHit> HcalDigitizer::injectedHits_
private

Definition at line 174 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), finalizeEvent(), and updateGeometry().

std::vector<int> HcalDigitizer::injectedHitsCells_
private

Definition at line 173 of file HcalDigitizer.h.

Referenced by updateGeometry().

std::vector<double> HcalDigitizer::injectedHitsEnergy_
private

Definition at line 171 of file HcalDigitizer.h.

Referenced by updateGeometry().

std::vector<double> HcalDigitizer::injectedHitsTime_
private

Definition at line 172 of file HcalDigitizer.h.

Referenced by updateGeometry().

bool HcalDigitizer::injectTestHits_
private

Definition at line 157 of file HcalDigitizer.h.

Referenced by accumulate(), accumulateCaloHits(), finalizeEvent(), and updateGeometry().

bool HcalDigitizer::isHCAL
private

Definition at line 151 of file HcalDigitizer.h.

Referenced by accumulate(), accumulateCaloHits(), and finalizeEvent().

bool HcalDigitizer::isZDC
private

Definition at line 151 of file HcalDigitizer.h.

Referenced by accumulate(), accumulateCaloHits(), and finalizeEvent().

bool HcalDigitizer::killHE_
private

Definition at line 154 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), and updateGeometry().

const HBHEDarkening* HcalDigitizer::m_HBDarkening
private

Definition at line 165 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), darkening(), and setup().

const HBHEDarkening* HcalDigitizer::m_HEDarkening
private

Definition at line 166 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), darkening(), and setup().

std::unique_ptr<HFRecalibration> HcalDigitizer::m_HFRecalibration
private

Definition at line 167 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), darkening(), and HcalDigitizer().

bool HcalDigitizer::testNumbering_
private

Definition at line 152 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), and HcalDigitizer().

HcalCoderFactory* HcalDigitizer::theCoderFactory
private

Definition at line 115 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), initializeEvent(), and ~HcalDigitizer().

const CaloGeometry* HcalDigitizer::theGeometry
private

Definition at line 75 of file HcalDigitizer.h.

Referenced by checkGeometry(), and updateGeometry().

edm::ESWatcher<CaloGeometryRecord> HcalDigitizer::theGeometryWatcher_
private

Definition at line 73 of file HcalDigitizer.h.

Referenced by checkGeometry().

HcalAmplifier* HcalDigitizer::theHBHEAmplifier
private
HBHEDigitizer* HcalDigitizer::theHBHEDigitizer
private
HcalElectronicsSim* HcalDigitizer::theHBHEElectronicsSim
private

Definition at line 117 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), setHBHENoiseSignalGenerator(), and ~HcalDigitizer().

HBHEHitFilter HcalDigitizer::theHBHEHitFilter
private

Definition at line 124 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells(), and HcalDigitizer().

HcalAmplifier* HcalDigitizer::theHBHEQIE11Amplifier
private
std::vector<DetId> HcalDigitizer::theHBHEQIE11DetIds
private

Definition at line 146 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells(), finalizeEvent(), and updateGeometry().

QIE11Digitizer* HcalDigitizer::theHBHEQIE11Digitizer
private
HcalElectronicsSim* HcalDigitizer::theHBHEQIE11ElectronicsSim
private
HBHEHitFilter HcalDigitizer::theHBHEQIE11HitFilter
private

Definition at line 125 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells(), and HcalDigitizer().

std::vector<DetId> HcalDigitizer::theHBHEQIE8DetIds
private

Definition at line 146 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells().

CaloHitResponse* HcalDigitizer::theHBHEResponse
private

Definition at line 97 of file HcalDigitizer.h.

Referenced by checkGeometry(), HcalDigitizer(), and ~HcalDigitizer().

CaloHitResponse* HcalDigitizer::theHBHESiPMResponse
private
HcalAmplifier* HcalDigitizer::theHFAmplifier
private
HFDigitizer* HcalDigitizer::theHFDigitizer
private
HcalElectronicsSim* HcalDigitizer::theHFElectronicsSim
private

Definition at line 118 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), setHFNoiseSignalGenerator(), and ~HcalDigitizer().

HFHitFilter HcalDigitizer::theHFHitFilter
private

Definition at line 126 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

HcalAmplifier* HcalDigitizer::theHFQIE10Amplifier
private
std::vector<DetId> HcalDigitizer::theHFQIE10DetIds
private

Definition at line 149 of file HcalDigitizer.h.

Referenced by buildHFQIECells(), and finalizeEvent().

QIE10Digitizer* HcalDigitizer::theHFQIE10Digitizer
private
HcalElectronicsSim* HcalDigitizer::theHFQIE10ElectronicsSim
private
HFHitFilter HcalDigitizer::theHFQIE10HitFilter
private

Definition at line 127 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

CaloHitResponse* HcalDigitizer::theHFQIE10Response
private

Definition at line 102 of file HcalDigitizer.h.

Referenced by checkGeometry(), HcalDigitizer(), and ~HcalDigitizer().

std::vector<DetId> HcalDigitizer::theHFQIE8DetIds
private

Definition at line 149 of file HcalDigitizer.h.

Referenced by buildHFQIECells().

CaloHitResponse* HcalDigitizer::theHFResponse
private

Definition at line 101 of file HcalDigitizer.h.

Referenced by checkGeometry(), HcalDigitizer(), and ~HcalDigitizer().

HcalAmplifier* HcalDigitizer::theHOAmplifier
private
HODigitizer* HcalDigitizer::theHODigitizer
private
HcalElectronicsSim* HcalDigitizer::theHOElectronicsSim
private

Definition at line 119 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), setHONoiseSignalGenerator(), and ~HcalDigitizer().

HOHitFilter HcalDigitizer::theHOHitFilter
private

Definition at line 128 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

std::vector<DetId> HcalDigitizer::theHOHPDDetIds
private

Definition at line 147 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells().

CaloHitResponse* HcalDigitizer::theHOResponse
private

Definition at line 99 of file HcalDigitizer.h.

Referenced by checkGeometry(), HcalDigitizer(), and ~HcalDigitizer().

int HcalDigitizer::theHOSiPMCode
private

Definition at line 161 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

std::vector<DetId> HcalDigitizer::theHOSiPMDetIds
private

Definition at line 148 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells().

HODigitizer* HcalDigitizer::theHOSiPMDigitizer
private
HOHitFilter HcalDigitizer::theHOSiPMHitFilter
private

Definition at line 129 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

CaloHitResponse* HcalDigitizer::theHOSiPMResponse
private

Definition at line 100 of file HcalDigitizer.h.

Referenced by checkGeometry(), HcalDigitizer(), updateGeometry(), and ~HcalDigitizer().

HPDIonFeedbackSim* HcalDigitizer::theIonFeedback
private

Definition at line 114 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and ~HcalDigitizer().

HcalSimParameterMap* HcalDigitizer::theParameterMap
private
const HcalDDDRecConstants* HcalDigitizer::theRecNumber
private

Definition at line 76 of file HcalDigitizer.h.

Referenced by checkGeometry().

edm::ESWatcher<HcalRecNumberingRecord> HcalDigitizer::theRecNumberWatcher_
private

Definition at line 74 of file HcalDigitizer.h.

Referenced by checkGeometry().

HcalHitRelabeller* HcalDigitizer::theRelabeller
private

Definition at line 141 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), checkGeometry(), HcalDigitizer(), and ~HcalDigitizer().

HcalShapes* HcalDigitizer::theShapes
private

Definition at line 95 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and initializeEvent().

HcalTimeSlewSim* HcalDigitizer::theTimeSlewSim
private

Definition at line 132 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and ~HcalDigitizer().

HcalAmplifier* HcalDigitizer::theZDCAmplifier
private
ZDCDigitizer* HcalDigitizer::theZDCDigitizer
private
HcalElectronicsSim* HcalDigitizer::theZDCElectronicsSim
private

Definition at line 120 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), setZDCNoiseSignalGenerator(), and ~HcalDigitizer().

ZDCHitFilter HcalDigitizer::theZDCHitFilter
private

Definition at line 130 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

CaloHitResponse* HcalDigitizer::theZDCResponse
private

Definition at line 103 of file HcalDigitizer.h.

Referenced by checkGeometry(), HcalDigitizer(), and ~HcalDigitizer().

bool HcalDigitizer::zdcgeo
private

Definition at line 151 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), finalizeEvent(), and updateGeometry().