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 beginRun (const edm::EventSetup &es)
 
void endRun ()
 
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 updateGeometry (const edm::EventSetup &eventSetup)
 

Private Attributes

bool agingFlagHB
 
bool agingFlagHE
 
bool debugCS_
 
double deliveredLumi
 
bool doHFWindow_
 
std::vector< DetIdhbheCells
 
bool hbhegeo
 
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
 
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
 
HcalHitRelabellertheRelabeller
 
HcalShapestheShapes
 
HcalTimeSlewSimtheTimeSlewSim
 
HcalAmplifiertheZDCAmplifier
 
ZDCDigitizertheZDCDigitizer
 
HcalElectronicsSimtheZDCElectronicsSim
 
ZDCHitFilter theZDCHitFilter
 
CaloHitResponsetheZDCResponse
 
bool zdcgeo
 

Detailed Description

Definition at line 40 of file HcalDigitizer.h.

Member Typedef Documentation

Reconstruction algorithm

Definition at line 82 of file HcalDigitizer.h.

Definition at line 84 of file HcalDigitizer.h.

Definition at line 83 of file HcalDigitizer.h.

Definition at line 86 of file HcalDigitizer.h.

Definition at line 87 of file HcalDigitizer.h.

Definition at line 85 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(), 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  theTimeSlewSim = nullptr;
161  if(doTimeSlew) {
162  // no time slewing for HF
163  theTimeSlewSim = new HcalTimeSlewSim(theParameterMap,minFCToDelay);
164  theHBHEAmplifier->setTimeSlewSim(theTimeSlewSim);
165  theHBHEQIE11Amplifier->setTimeSlewSim(theTimeSlewSim);
166  theHOAmplifier->setTimeSlewSim(theTimeSlewSim);
167  theZDCAmplifier->setTimeSlewSim(theTimeSlewSim);
168  }
169 
173 
174  //QIE8 and QIE10 can coexist in HF
177 
179 
180  testNumbering_ = ps.getParameter<bool>("TestNumbering");
181 // std::cout << "Flag to see if Hit Relabeller to be initiated " << testNumbering_ << std::endl;
182  if (testNumbering_) theRelabeller=new HcalHitRelabeller(ps.getParameter<bool>("doNeutralDensityFilter"));
183 
184  if(ps.getParameter<bool>("doIonFeedback") && theHBHEResponse) {
187  if(ps.getParameter<bool>("doThermalNoise")) {
189  }
190  }
191 
192  //option to save CaloSamples as event product for debugging
193  if(debugCS_){
201  }
202 
203  //option to ignore Geant time distribution in SimHits, for debugging
204  if(ignoreTime_){
212  }
213 
214  if(agingFlagHF) m_HFRecalibration.reset(new HFRecalibration(ps.getParameter<edm::ParameterSet>("HFRecalParameterBlock")));
215 }
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
Definition: HcalDigitizer.h:97
const HcalDDDRecConstants * theRecNumber
Definition: HcalDigitizer.h:71
HcalElectronicsSim * theHFElectronicsSim
HBHEDigitizer * theHBHEDigitizer
HcalElectronicsSim * theHBHEQIE11ElectronicsSim
HOHitFilter theHOHitFilter
HFDigitizer * theHFDigitizer
HFHitFilter theHFHitFilter
CaloTDigitizer< HODigitizerTraits, CaloTDigitizerQIE8Run > HODigitizer
Definition: HcalDigitizer.h:83
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:89
void setPECorrection(const CaloVPECorrection *peCorrection)
if you want to correct the photoelectrons
CaloTDigitizer< HBHEDigitizerTraits, CaloTDigitizerQIE8Run > HBHEDigitizer
Definition: HcalDigitizer.h:82
HcalTimeSlewSim * theTimeSlewSim
HcalAmplifier * theHFAmplifier
HcalCoderFactory * theCoderFactory
HcalHitRelabeller * theRelabeller
std::unique_ptr< HFRecalibration > m_HFRecalibration
void setIonFeedbackSim(HPDIonFeedbackSim *feedbackSim)
Definition: HcalAmplifier.h:27
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:90
Creates electronics signals from hits.
ZDCHitFilter theZDCHitFilter
HPDIonFeedbackSim * theIonFeedback
CaloTDigitizer< ZDCDigitizerTraits, CaloTDigitizerQIE8Run > ZDCDigitizer
Definition: HcalDigitizer.h:85
CaloHitResponse * theHOResponse
Definition: HcalDigitizer.h:94
CaloHitResponse * theHOSiPMResponse
Definition: HcalDigitizer.h:95
std::vector< double > injectedHitsTime_
ZDCDigitizer * theZDCDigitizer
CaloHitResponse * theZDCResponse
Definition: HcalDigitizer.h:98
CaloTDigitizer< HFDigitizerTraits, CaloTDigitizerQIE8Run > HFDigitizer
Definition: HcalDigitizer.h:84
HcalElectronicsSim * theZDCElectronicsSim
void setTimeSlewSim(HcalTimeSlewSim *timeSlewSim)
Definition: HcalAmplifier.h:34
HcalAmplifier * theHOAmplifier
HcalElectronicsSim * theHBHEElectronicsSim
CaloHitResponse * theHBHEResponse
Definition: HcalDigitizer.h:92
HODigitizer * theHODigitizer
HOHitFilter theHOSiPMHitFilter
const CaloGeometry * theGeometry
Definition: HcalDigitizer.h:70
const HBHEDarkening * m_HBDarkening
CaloHitResponse * theHFResponse
Definition: HcalDigitizer.h:96
CaloTDigitizer< HcalQIE11DigitizerTraits, CaloTDigitizerQIE1011Run > QIE11Digitizer
Definition: HcalDigitizer.h:87
HcalElectronicsSim * theHFQIE10ElectronicsSim
HODigitizer * theHOSiPMDigitizer
QIE11Digitizer * theHBHEQIE11Digitizer
HBHEHitFilter theHBHEQIE11HitFilter
void setDebugCaloSamples(bool debug)
CaloHitResponse * theHBHESiPMResponse
Definition: HcalDigitizer.h:93
CaloTDigitizer< HcalQIE10DigitizerTraits, CaloTDigitizerQIE1011Run > QIE10Digitizer
Definition: HcalDigitizer.h:86
HcalAmplifier * theZDCAmplifier
void setIgnoreGeantTime(bool gt)
HcalAmplifier * theHFQIE10Amplifier
HcalDigitizer::~HcalDigitizer ( )
virtual

Definition at line 218 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.

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

Member Function Documentation

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

Definition at line 400 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().

400  {
401  // Step A: Get Inputs
402  edm::InputTag zdcTag(hitsProducer_, "ZDCHITS");
404  e.getByLabel(zdcTag, zdcHandle);
405  isZDC = zdcHandle.isValid();
406 
407  edm::InputTag hcalTag(hitsProducer_, "HcalHits");
409  e.getByLabel(hcalTag, hcalHandle);
410  isHCAL = hcalHandle.isValid() or injectTestHits_;
411 
413  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
414  const HcalTopology *htopoP=htopo.product();
415 
416  accumulateCaloHits(hcalHandle, zdcHandle, 0, engine, htopoP);
417 }
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:86
void HcalDigitizer::accumulate ( PileUpEventPrincipal const &  e,
edm::EventSetup const &  c,
CLHEP::HepRandomEngine *  engine 
)

Definition at line 419 of file HcalDigitizer.cc.

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

419  {
420  // Step A: Get Inputs
421  edm::InputTag zdcTag(hitsProducer_, "ZDCHITS");
423  e.getByLabel(zdcTag, zdcHandle);
424  isZDC = zdcHandle.isValid();
425 
426  edm::InputTag hcalTag(hitsProducer_, "HcalHits");
428  e.getByLabel(hcalTag, hcalHandle);
429  isHCAL = hcalHandle.isValid();
430 
432  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
433  const HcalTopology *htopoP=htopo.product();
434 
435  accumulateCaloHits(hcalHandle, zdcHandle, e.bunchCrossing(), engine, htopoP);
436 }
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:86
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 325 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().

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

Definition at line 529 of file HcalDigitizer.cc.

References agingFlagHB, agingFlagHE, HcalShapes::beginRun(), checkGeometry(), edm::EventSetup::get(), m_HBDarkening, m_HEDarkening, and theShapes.

Referenced by HcalDigiProducer::beginRun().

529  {
530  checkGeometry(es);
531  theShapes->beginRun(es);
532 
533  if (agingFlagHB) {
535  es.get<HBHEDarkeningRecord>().get("HB",hdark);
536  m_HBDarkening = &*hdark;
537  }
538  if (agingFlagHE) {
540  es.get<HBHEDarkeningRecord>().get("HE",hdark);
541  m_HEDarkening = &*hdark;
542  }
543 }
void checkGeometry(const edm::EventSetup &eventSetup)
const HBHEDarkening * m_HEDarkening
HcalShapes * theShapes
Definition: HcalDigitizer.h:90
const T & get() const
Definition: EventSetup.h:55
const HBHEDarkening * m_HBDarkening
void beginRun(edm::EventSetup const &es)
Definition: HcalShapes.cc:55
void HcalDigitizer::buildHBHEQIECells ( const std::vector< DetId > &  allCells,
const edm::EventSetup eventSetup 
)
private

Definition at line 681 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().

681  {
682  //if results are already cached, no need to look again
683  if(!theHBHEQIE8DetIds.empty() || !theHBHEQIE11DetIds.empty()) return;
684 
685  //get the QIETypes
687  eventSetup.get<HcalQIETypesRcd>().get(q);
689  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
690 
691  HcalQIETypes qieTypes(*q.product());
692  if (qieTypes.topo()==nullptr) {
693  qieTypes.setTopo(htopo.product());
694  }
695 
696  for(std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
697  HcalQIENum qieType = HcalQIENum(qieTypes.getValues(*detItr)->getValue());
698  if(qieType == QIE8) {
699  theHBHEQIE8DetIds.push_back(*detItr);
700  }
701  else if(qieType == QIE11) {
702  theHBHEQIE11DetIds.push_back(*detItr);
703  }
704  else { //default is QIE8
705  theHBHEQIE8DetIds.push_back(*detItr);
706  }
707  }
708 
710  else {
711  delete theHBHEDigitizer;
712  theHBHEDigitizer = nullptr;
713  }
714 
716  else {
717  delete theHBHEQIE11Digitizer;
718  theHBHEQIE11Digitizer = nullptr;
719  }
720 
721  if(!theHBHEQIE8DetIds.empty() && !theHBHEQIE11DetIds.empty()){
724  }
725 }
HBHEHitFilter theHBHEHitFilter
Definition: HcalQIENum.h:4
HBHEDigitizer * theHBHEDigitizer
HcalQIENum
Definition: HcalQIENum.h:4
const T & get() const
Definition: EventSetup.h:55
void setDetIds(const std::vector< DetId > &detIds)
Definition: HcalHitFilter.h:17
QIE11Digitizer * theHBHEQIE11Digitizer
HBHEHitFilter theHBHEQIE11HitFilter
std::vector< DetId > theHBHEQIE8DetIds
T const * product() const
Definition: ESHandle.h:86
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 642 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().

642  {
643  //if results are already cached, no need to look again
644  if(!theHFQIE8DetIds.empty() || !theHFQIE10DetIds.empty()) return;
645 
646  //get the QIETypes
648  eventSetup.get<HcalQIETypesRcd>().get(q);
650  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
651 
652  HcalQIETypes qieTypes(*q.product());
653  if (qieTypes.topo()==nullptr) {
654  qieTypes.setTopo(htopo.product());
655  }
656 
657  for(std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
658  HcalQIENum qieType = HcalQIENum(qieTypes.getValues(*detItr)->getValue());
659  if(qieType == QIE8) {
660  theHFQIE8DetIds.push_back(*detItr);
661  } else if(qieType == QIE10) {
662  theHFQIE10DetIds.push_back(*detItr);
663  } else { //default is QIE8
664  theHFQIE8DetIds.push_back(*detItr);
665  }
666  }
667 
669  else {
670  delete theHFDigitizer;
671  theHFDigitizer = nullptr;
672  }
673 
675  else {
676  delete theHFQIE10Digitizer;
677  theHFQIE10Digitizer = nullptr;
678  }
679 }
std::vector< DetId > theHFQIE10DetIds
QIE10Digitizer * theHFQIE10Digitizer
Definition: HcalQIENum.h:4
HFDigitizer * theHFDigitizer
HcalQIENum
Definition: HcalQIENum.h:4
std::vector< DetId > theHFQIE8DetIds
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:86
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 727 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().

727  {
728  // all HPD
729 
730  if(theHOSiPMCode == 0) {
731  theHODigitizer->setDetIds(allCells);
732  } else if(theHOSiPMCode == 1) {
733  theHOSiPMDigitizer->setDetIds(allCells);
734  // FIXME pick Zecotek or hamamatsu?
735  } else if(theHOSiPMCode == 2) {
736  std::vector<HcalDetId> zecotekDetIds, hamamatsuDetIds;
738  eventSetup.get<HcalMCParamsRcd>().get(p);
740  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
741 
742  HcalMCParams mcParams(*p.product());
743  if (mcParams.topo()==nullptr) {
744  mcParams.setTopo(htopo.product());
745  }
746 
747  for(std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
748  int shapeType = mcParams.getValues(*detItr)->signalShape();
749  if(shapeType == HcalShapes::ZECOTEK) {
750  zecotekDetIds.emplace_back(*detItr);
751  theHOSiPMDetIds.push_back(*detItr);
752  } else if(shapeType == HcalShapes::HAMAMATSU) {
753  hamamatsuDetIds.emplace_back(*detItr);
754  theHOSiPMDetIds.push_back(*detItr);
755  } else {
756  theHOHPDDetIds.push_back(*detItr);
757  }
758  }
759 
761  else {
762  delete theHODigitizer;
763  theHODigitizer = nullptr;
764  }
765 
767  else {
768  delete theHOSiPMDigitizer;
769  theHOSiPMDigitizer = nullptr;
770  }
771 
772  if(!theHOHPDDetIds.empty() && !theHOSiPMDetIds.empty()){
775  }
776 
777  theParameterMap->setHOZecotekDetIds(zecotekDetIds);
778  theParameterMap->setHOHamamatsuDetIds(hamamatsuDetIds);
779 
780  // make sure we don't got through this exercise again
781  theHOSiPMCode = -2;
782  }
783 }
HOHitFilter theHOHitFilter
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:89
void setHOZecotekDetIds(const std::vector< HcalDetId > &ids)
std::vector< DetId > theHOHPDDetIds
void setHOHamamatsuDetIds(const std::vector< HcalDetId > &ids)
const T & get() const
Definition: EventSetup.h:55
HODigitizer * theHODigitizer
void setDetIds(const std::vector< DetId > &detIds)
Definition: HcalHitFilter.h:17
std::vector< DetId > theHOSiPMDetIds
HOHitFilter theHOSiPMHitFilter
HODigitizer * theHOSiPMDigitizer
T const * product() const
Definition: ESHandle.h:86
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 551 of file HcalDigitizer.cc.

References geometry, edm::EventSetup::get(), theGeometry, theRecNumber, and updateGeometry().

Referenced by beginRun().

551  {
552  // TODO find a way to avoid doing this every event
554  eventSetup.get<CaloGeometryRecord>().get(geometry);
556  eventSetup.get<HcalRecNumberingRecord>().get(pHRNDC);
557 
558  // See if it's been updated
559  if (&*geometry != theGeometry) {
560  theGeometry = &*geometry;
561  theRecNumber= &*pHRNDC;
562  updateGeometry(eventSetup);
563  }
564 }
const HcalDDDRecConstants * theRecNumber
Definition: HcalDigitizer.h:71
const T & get() const
Definition: EventSetup.h:55
const CaloGeometry * theGeometry
Definition: HcalDigitizer.h:70
ESHandle< TrackerGeometry > geometry
void updateGeometry(const edm::EventSetup &eventSetup)
void HcalDigitizer::darkening ( std::vector< PCaloHit > &  hcalHits)
private

Definition at line 785 of file HcalDigitizer.cc.

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

Referenced by accumulateCaloHits().

785  {
786 
787  for (unsigned int ii=0; ii<hcalHits.size(); ++ii) {
788  uint32_t tmpId = hcalHits[ii].id();
789  int det, z, depth, ieta, phi, lay;
790  HcalTestNumbering::unpackHcalIndex(tmpId,det,z,depth,ieta,phi,lay);
791 
792  bool darkened = false;
793  float dweight = 1.;
794 
795  if(det==int(HcalBarrel) && m_HBDarkening){
796  //HB darkening
797  dweight = m_HBDarkening->degradation(deliveredLumi,ieta,lay);
798  darkened = true;
799  }
800  else if(det==int(HcalEndcap) && m_HEDarkening){
801  //HE darkening
802  dweight = m_HEDarkening->degradation(deliveredLumi,ieta,lay);
803  darkened = true;
804  }
805  else if(det==int(HcalForward) && m_HFRecalibration){
806  //HF darkening - approximate: invert recalibration factor
807  dweight = 1.0/m_HFRecalibration->getCorr(ieta,depth,deliveredLumi);
808  darkened = true;
809  }
810 
811  //reset hit energy
812  if(darkened) hcalHits[ii].setEnergy(hcalHits[ii].energy()*dweight);
813  }
814 
815 }
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:588
const HBHEDarkening * m_HBDarkening
float degradation(float intlumi, int ieta, int lay) const
void HcalDigitizer::endRun ( )

Definition at line 546 of file HcalDigitizer.cc.

References HcalShapes::endRun(), and theShapes.

Referenced by HcalDigiProducer::endRun().

546  {
547  theShapes->endRun();
548 }
HcalShapes * theShapes
Definition: HcalDigitizer.h:90
void endRun()
Definition: HcalShapes.cc:70
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 438 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().

438  {
439 
440  // Step B: Create empty output
441  std::unique_ptr<HBHEDigiCollection> hbheResult(new HBHEDigiCollection());
442  std::unique_ptr<HODigiCollection> hoResult(new HODigiCollection());
443  std::unique_ptr<HFDigiCollection> hfResult(new HFDigiCollection());
444  std::unique_ptr<ZDCDigiCollection> zdcResult(new ZDCDigiCollection());
445  std::unique_ptr<QIE10DigiCollection> hfQIE10Result(
447  !theHFQIE10DetIds.empty() ?
450  )
451  );
452  std::unique_ptr<QIE11DigiCollection> hbheQIE11Result(
454  !theHBHEQIE11DetIds.empty() ?
455  ((HcalSiPMHitResponse *)theHBHESiPMResponse)->getReadoutFrameSize(theHBHEQIE11DetIds[0]) :
456 // theParameterMap->simParameters(theHBHEQIE11DetIds[0]).readoutFrameSize() :
458  )
459  );
460 
461  // Step C: Invoke the algorithm, getting back outputs.
462  if(isHCAL&&hbhegeo){
463  if(theHBHEDigitizer) theHBHEDigitizer->run(*hbheResult, engine);
464  if(theHBHEQIE11Digitizer) theHBHEQIE11Digitizer->run(*hbheQIE11Result, engine);
465  }
466  if(isHCAL&&hogeo) {
467  if(theHODigitizer) theHODigitizer->run(*hoResult, engine);
468  if(theHOSiPMDigitizer) theHOSiPMDigitizer->run(*hoResult, engine);
469  }
470  if(isHCAL&&hfgeo) {
471  if(theHFDigitizer) theHFDigitizer->run(*hfResult, engine);
472  if(theHFQIE10Digitizer) theHFQIE10Digitizer->run(*hfQIE10Result, engine);
473  }
474  if(isZDC&&zdcgeo) {
475  theZDCDigitizer->run(*zdcResult, engine);
476  }
477 
478  edm::LogInfo("HcalDigitizer") << "HCAL HBHE digis : " << hbheResult->size();
479  edm::LogInfo("HcalDigitizer") << "HCAL HO digis : " << hoResult->size();
480  edm::LogInfo("HcalDigitizer") << "HCAL HF digis : " << hfResult->size();
481  edm::LogInfo("HcalDigitizer") << "HCAL ZDC digis : " << zdcResult->size();
482  edm::LogInfo("HcalDigitizer") << "HCAL HF QIE10 digis : " << hfQIE10Result->size();
483  edm::LogInfo("HcalDigitizer") << "HCAL HBHE QIE11 digis : " << hbheQIE11Result->size();
484 
485 #ifdef DebugLog
486  std::cout << std::endl;
487  std::cout << "HCAL HBHE digis : " << hbheResult->size() << std::endl;
488  std::cout << "HCAL HO digis : " << hoResult->size() << std::endl;
489  std::cout << "HCAL HF digis : " << hfResult->size() << std::endl;
490  std::cout << "HCAL ZDC digis : " << zdcResult->size() << std::endl;
491  std::cout << "HCAL HF QIE10 digis : " << hfQIE10Result->size() << std::endl;
492  std::cout << "HCAL HBHE QIE11 digis : " << hbheQIE11Result->size() << std::endl;
493 #endif
494 
495  // Step D: Put outputs into event
496  e.put(std::move(hbheResult));
497  e.put(std::move(hoResult));
498  e.put(std::move(hfResult));
499  e.put(std::move(zdcResult));
500  e.put(std::move(hfQIE10Result), "HFQIE10DigiCollection");
501  e.put(std::move(hbheQIE11Result), "HBHEQIE11DigiCollection");
502 
503  if(debugCS_){
504  std::unique_ptr<CaloSamplesCollection> csResult(new CaloSamplesCollection());
505  //smush together all the results
506  if(theHBHEDigitizer) csResult->insert(csResult->end(),theHBHEDigitizer->getCaloSamples().begin(),theHBHEDigitizer->getCaloSamples().end());
507  if(theHBHEQIE11Digitizer) csResult->insert(csResult->end(),theHBHEQIE11Digitizer->getCaloSamples().begin(),theHBHEQIE11Digitizer->getCaloSamples().end());
508  if(theHODigitizer) csResult->insert(csResult->end(),theHODigitizer->getCaloSamples().begin(),theHODigitizer->getCaloSamples().end());
509  if(theHOSiPMDigitizer) csResult->insert(csResult->end(),theHOSiPMDigitizer->getCaloSamples().begin(),theHOSiPMDigitizer->getCaloSamples().end());
510  if(theHFDigitizer) csResult->insert(csResult->end(),theHFDigitizer->getCaloSamples().begin(),theHFDigitizer->getCaloSamples().end());
511  if(theHFQIE10Digitizer) csResult->insert(csResult->end(),theHFQIE10Digitizer->getCaloSamples().begin(),theHFQIE10Digitizer->getCaloSamples().end());
512  csResult->insert(csResult->end(),theZDCDigitizer->getCaloSamples().begin(),theZDCDigitizer->getCaloSamples().end());
513  e.put(std::move(csResult),"HcalSamples");
514  }
515 
516  if(injectTestHits_){
517  std::unique_ptr<edm::PCaloHitContainer> pcResult(new edm::PCaloHitContainer());
518  pcResult->insert(pcResult->end(),injectedHits_.begin(),injectedHits_.end());
519  e.put(std::move(pcResult),"HcalHits");
520  }
521 
522 #ifdef DebugLog
523  std::cout << std::endl << "========> HcalDigitizer e.put " << std::endl << std::endl;
524 #endif
525 
526 }
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:127
std::vector< CaloSamples > CaloSamplesCollection
Definition: CaloSamples.h:86
HBHEDigitizer * theHBHEDigitizer
HFDigitizer * theHFDigitizer
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:89
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:93
const CaloSimParameters & simParameters(const DetId &id) const override
std::vector< DetId > theHBHEQIE11DetIds
const CaloSamplesCollection & getCaloSamples() const
def move(src, dest)
Definition: eostools.py:510
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 296 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::initializeEvent().

296  {
297  // get the appropriate gains, noises, & widths for this event
298  edm::ESHandle<HcalDbService> conditions;
299  eventSetup.get<HcalDbRecord>().get(conditions);
300 
301  theHBHEAmplifier->setDbService(conditions.product());
302  theHFAmplifier->setDbService(conditions.product());
303  theHOAmplifier->setDbService(conditions.product());
304  theZDCAmplifier->setDbService(conditions.product());
307 
310 
311  theCoderFactory->setDbService(conditions.product());
312  theParameterMap->setDbService(conditions.product());
313 
314  //initialize hits
322 
323 }
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:89
HcalAmplifier * theHFAmplifier
HcalCoderFactory * theCoderFactory
void setDbService(const HcalDbService *service)
HcalAmplifier * theHBHEQIE11Amplifier
HcalAmplifier * theHBHEAmplifier
void initializeHits()
ZDCDigitizer * theZDCDigitizer
HcalAmplifier * theHOAmplifier
void setDbService(const HcalDbService *service)
HODigitizer * theHODigitizer
HcalElectronicsSim * theHFQIE10ElectronicsSim
HODigitizer * theHOSiPMDigitizer
QIE11Digitizer * theHBHEQIE11Digitizer
T const * product() const
Definition: ESHandle.h:86
HcalAmplifier * theZDCAmplifier
void setDbService(const HcalDbService *service)
HcalAmplifier * theHFQIE10Amplifier
void HcalDigitizer::setHBHENoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 253 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::setHBHENoiseSignalGenerator().

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

Definition at line 267 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::setHFNoiseSignalGenerator().

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

Definition at line 281 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().

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

Definition at line 274 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::setQIE10NoiseSignalGenerator().

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

Definition at line 260 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::setQIE11NoiseSignalGenerator().

260  {
261  noiseGenerator->setParameterMap(theParameterMap);
265 }
void setParameterMap(HcalSimParameterMap *map)
HcalElectronicsSim * theHBHEQIE11ElectronicsSim
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:89
HcalAmplifier * theHBHEQIE11Amplifier
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
void setNoiseSignalGenerator(CaloVNoiseSignalGenerator *generator)
void setNoiseSignalGenerator(const CaloVNoiseSignalGenerator *noiseSignalGenerator)
Definition: HcalAmplifier.h:31
QIE11Digitizer * theHBHEQIE11Digitizer
void HcalDigitizer::setZDCNoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 289 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::setZDCNoiseSignalGenerator().

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

Definition at line 567 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(), HcalHitRelabeller::setGeometry(), CaloHitResponse::setGeometry(), HcalZDCDetId::SubdetectorId, theGeometry, theHBHEQIE11DetIds, theHBHEResponse, theHBHESiPMResponse, theHFQIE10Response, theHFResponse, theHOResponse, theHOSiPMDigitizer, theHOSiPMResponse, theRecNumber, theRelabeller, theZDCDigitizer, theZDCResponse, tmp, and zdcgeo.

Referenced by checkGeometry().

567  {
576 
577  const std::vector<DetId>& hbCells = theGeometry->getValidDetIds(DetId::Hcal, HcalBarrel);
578  const std::vector<DetId>& heCells = theGeometry->getValidDetIds(DetId::Hcal, HcalEndcap);
579  const std::vector<DetId>& hoCells = theGeometry->getValidDetIds(DetId::Hcal, HcalOuter);
580  const std::vector<DetId>& hfCells = theGeometry->getValidDetIds(DetId::Hcal, HcalForward);
581  const std::vector<DetId>& zdcCells = theGeometry->getValidDetIds(DetId::Calo, HcalZDCDetId::SubdetectorId);
582  //const std::vector<DetId>& hcalTrigCells = geometry->getValidDetIds(DetId::Hcal, HcalTriggerTower);
583  //const std::vector<DetId>& hcalCalib = geometry->getValidDetIds(DetId::Calo, HcalCastorDetId::SubdetectorId);
584 // std::cout<<"HcalDigitizer::CheckGeometry number of cells: "<<zdcCells.size()<<std::endl;
585  if(zdcCells.empty()) zdcgeo = false;
586  if(hbCells.empty() && heCells.empty()) hbhegeo = false;
587  if(hoCells.empty()) hogeo = false;
588  if(hfCells.empty()) hfgeo = false;
589  // combine HB & HE
590 
591  hbheCells = hbCells;
592  if( !killHE_) {
593  hbheCells.insert(hbheCells.end(), heCells.begin(), heCells.end());
594  }
595  //handle mixed QIE8/11 scenario in HBHE
596  buildHBHEQIECells(hbheCells,eventSetup);
599 
600  if(theHOSiPMDigitizer) {
601  buildHOSiPMCells(hoCells, eventSetup);
603  ((HcalSiPMHitResponse *)theHOSiPMResponse)->setDetIds(hoCells);
604  }
605 
606  //handle mixed QIE8/10 scenario in HF
607  buildHFQIECells(hfCells,eventSetup);
608 
609  theZDCDigitizer->setDetIds(zdcCells);
610 
611  //fill test hits collection if desired and empty
612  if(injectTestHits_ && injectedHits_.empty() && !injectedHitsCells_.empty() && !injectedHitsEnergy_.empty()){
613  //make list of specified cells if desired
614  std::vector<DetId> testCells;
615  if(injectedHitsCells_.size()>=4){
616  testCells.reserve(injectedHitsCells_.size()/4);
617  for(unsigned ic = 0; ic < injectedHitsCells_.size(); ic += 4){
618  if(ic+4 > injectedHitsCells_.size()) break;
619  testCells.push_back(HcalDetId((HcalSubdetector)injectedHitsCells_[ic],injectedHitsCells_[ic+1],
621  }
622  }
623  else{
624  int testSubdet = injectedHitsCells_[0];
625  if(testSubdet==HcalBarrel) testCells = hbCells;
626  else if(testSubdet==HcalEndcap) testCells = heCells;
627  else if(testSubdet==HcalForward) testCells = hfCells;
628  else if(testSubdet==HcalOuter) testCells = hoCells;
629  else throw cms::Exception("Configuration") << "Unknown subdet " << testSubdet << " for HCAL test hit injection";
630  }
631  bool useHitTimes = (injectedHitsTime_.size()==injectedHitsEnergy_.size());
632  injectedHits_.reserve(testCells.size()*injectedHitsEnergy_.size());
633  for(unsigned ih = 0; ih < injectedHitsEnergy_.size(); ++ih){
634  double tmp = useHitTimes ? injectedHitsTime_[ih] : 0.;
635  for(auto& aCell: testCells){
636  injectedHits_.emplace_back(aCell,injectedHitsEnergy_[ih],tmp);
637  }
638  }
639  }
640 }
std::vector< int > injectedHitsCells_
void setGeometry(const CaloGeometry *geometry)
geometry needed for time-of-flight
CaloHitResponse * theHFQIE10Response
Definition: HcalDigitizer.h:97
const HcalDDDRecConstants * theRecNumber
Definition: HcalDigitizer.h:71
void buildHFQIECells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
void buildHBHEQIECells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
void setGeometry(const HcalDDDRecConstants *&)
HcalHitRelabeller * theRelabeller
std::vector< double > injectedHitsEnergy_
void buildHOSiPMCells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
CaloHitResponse * theHOResponse
Definition: HcalDigitizer.h:94
CaloHitResponse * theHOSiPMResponse
Definition: HcalDigitizer.h:95
HcalSubdetector
Definition: HcalAssistant.h:31
std::vector< double > injectedHitsTime_
ZDCDigitizer * theZDCDigitizer
CaloHitResponse * theZDCResponse
Definition: HcalDigitizer.h:98
static const int SubdetectorId
Definition: HcalZDCDetId.h:25
CaloHitResponse * theHBHEResponse
Definition: HcalDigitizer.h:92
const CaloGeometry * theGeometry
Definition: HcalDigitizer.h:70
std::vector< DetId > getValidDetIds() const
Get the list of all valid detector ids.
Definition: CaloGeometry.cc:92
std::vector< DetId > hbheCells
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
CaloHitResponse * theHFResponse
Definition: HcalDigitizer.h:96
HODigitizer * theHOSiPMDigitizer
CaloHitResponse * theHBHESiPMResponse
Definition: HcalDigitizer.h:93
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 159 of file HcalDigitizer.h.

Referenced by beginRun().

bool HcalDigitizer::agingFlagHE
private

Definition at line 159 of file HcalDigitizer.h.

Referenced by beginRun().

bool HcalDigitizer::debugCS_
private

Definition at line 150 of file HcalDigitizer.h.

Referenced by finalizeEvent(), and HcalDigitizer().

double HcalDigitizer::deliveredLumi
private

Definition at line 158 of file HcalDigitizer.h.

Referenced by darkening(), and HcalDigitizer().

bool HcalDigitizer::doHFWindow_
private

Definition at line 148 of file HcalDigitizer.h.

Referenced by accumulateCaloHits().

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

Definition at line 140 of file HcalDigitizer.h.

Referenced by updateGeometry().

bool HcalDigitizer::hbhegeo
private

Definition at line 146 of file HcalDigitizer.h.

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

bool HcalDigitizer::hfgeo
private

Definition at line 146 of file HcalDigitizer.h.

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

std::string HcalDigitizer::hitsProducer_
private

Definition at line 154 of file HcalDigitizer.h.

Referenced by accumulate(), and HcalDigitizer().

bool HcalDigitizer::hogeo
private

Definition at line 146 of file HcalDigitizer.h.

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

bool HcalDigitizer::ignoreTime_
private

Definition at line 151 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

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

Definition at line 167 of file HcalDigitizer.h.

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

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

Definition at line 166 of file HcalDigitizer.h.

Referenced by updateGeometry().

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

Definition at line 164 of file HcalDigitizer.h.

Referenced by updateGeometry().

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

Definition at line 165 of file HcalDigitizer.h.

Referenced by updateGeometry().

bool HcalDigitizer::injectTestHits_
private

Definition at line 152 of file HcalDigitizer.h.

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

bool HcalDigitizer::isHCAL
private

Definition at line 146 of file HcalDigitizer.h.

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

bool HcalDigitizer::isZDC
private

Definition at line 146 of file HcalDigitizer.h.

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

bool HcalDigitizer::killHE_
private

Definition at line 149 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), and updateGeometry().

const HBHEDarkening* HcalDigitizer::m_HBDarkening
private

Definition at line 160 of file HcalDigitizer.h.

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

const HBHEDarkening* HcalDigitizer::m_HEDarkening
private

Definition at line 161 of file HcalDigitizer.h.

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

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

Definition at line 162 of file HcalDigitizer.h.

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

bool HcalDigitizer::testNumbering_
private

Definition at line 147 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), and HcalDigitizer().

HcalCoderFactory* HcalDigitizer::theCoderFactory
private

Definition at line 110 of file HcalDigitizer.h.

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

const CaloGeometry* HcalDigitizer::theGeometry
private

Definition at line 70 of file HcalDigitizer.h.

Referenced by checkGeometry(), and updateGeometry().

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

Definition at line 112 of file HcalDigitizer.h.

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

HBHEHitFilter HcalDigitizer::theHBHEHitFilter
private

Definition at line 119 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells(), and HcalDigitizer().

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

Definition at line 141 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 120 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells(), and HcalDigitizer().

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

Definition at line 141 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells().

CaloHitResponse* HcalDigitizer::theHBHEResponse
private

Definition at line 92 of file HcalDigitizer.h.

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

CaloHitResponse* HcalDigitizer::theHBHESiPMResponse
private

Definition at line 93 of file HcalDigitizer.h.

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

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

Definition at line 113 of file HcalDigitizer.h.

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

HFHitFilter HcalDigitizer::theHFHitFilter
private

Definition at line 121 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

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

Definition at line 144 of file HcalDigitizer.h.

Referenced by buildHFQIECells(), and finalizeEvent().

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

Definition at line 122 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

CaloHitResponse* HcalDigitizer::theHFQIE10Response
private

Definition at line 97 of file HcalDigitizer.h.

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

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

Definition at line 144 of file HcalDigitizer.h.

Referenced by buildHFQIECells().

CaloHitResponse* HcalDigitizer::theHFResponse
private

Definition at line 96 of file HcalDigitizer.h.

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

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

Definition at line 114 of file HcalDigitizer.h.

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

HOHitFilter HcalDigitizer::theHOHitFilter
private

Definition at line 123 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

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

Definition at line 142 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells().

CaloHitResponse* HcalDigitizer::theHOResponse
private

Definition at line 94 of file HcalDigitizer.h.

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

int HcalDigitizer::theHOSiPMCode
private

Definition at line 156 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

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

Definition at line 143 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells().

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

Definition at line 124 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

CaloHitResponse* HcalDigitizer::theHOSiPMResponse
private

Definition at line 95 of file HcalDigitizer.h.

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

HPDIonFeedbackSim* HcalDigitizer::theIonFeedback
private

Definition at line 109 of file HcalDigitizer.h.

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

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

Definition at line 71 of file HcalDigitizer.h.

Referenced by checkGeometry(), and updateGeometry().

HcalHitRelabeller* HcalDigitizer::theRelabeller
private

Definition at line 136 of file HcalDigitizer.h.

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

HcalShapes* HcalDigitizer::theShapes
private

Definition at line 90 of file HcalDigitizer.h.

Referenced by beginRun(), endRun(), and HcalDigitizer().

HcalTimeSlewSim* HcalDigitizer::theTimeSlewSim
private

Definition at line 127 of file HcalDigitizer.h.

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

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

Definition at line 115 of file HcalDigitizer.h.

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

ZDCHitFilter HcalDigitizer::theZDCHitFilter
private

Definition at line 125 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

CaloHitResponse* HcalDigitizer::theZDCResponse
private

Definition at line 98 of file HcalDigitizer.h.

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

bool HcalDigitizer::zdcgeo
private

Definition at line 146 of file HcalDigitizer.h.

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