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
 
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
 
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 41 of file HcalDigitizer.h.

Member Typedef Documentation

Reconstruction algorithm

Definition at line 83 of file HcalDigitizer.h.

Definition at line 85 of file HcalDigitizer.h.

Definition at line 84 of file HcalDigitizer.h.

Definition at line 87 of file HcalDigitizer.h.

Definition at line 88 of file HcalDigitizer.h.

Definition at line 86 of file HcalDigitizer.h.

Constructor & Destructor Documentation

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

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

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

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

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

Member Function Documentation

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

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

402  {
403  // Step A: Get Inputs
404  edm::InputTag zdcTag(hitsProducer_, "ZDCHITS");
406  e.getByLabel(zdcTag, zdcHandle);
407  isZDC = zdcHandle.isValid();
408 
409  edm::InputTag hcalTag(hitsProducer_, "HcalHits");
411  e.getByLabel(hcalTag, hcalHandle);
412  isHCAL = hcalHandle.isValid() or injectTestHits_;
413 
415  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
416  const HcalTopology *htopoP=htopo.product();
417 
418  accumulateCaloHits(hcalHandle, zdcHandle, 0, engine, htopoP);
419 }
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 421 of file HcalDigitizer.cc.

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

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

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

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

Referenced by HcalDigiProducer::beginRun().

531  {
532  checkGeometry(es);
533  theShapes->beginRun(es);
534 
535  if (agingFlagHB) {
537  es.get<HBHEDarkeningRecord>().get("HB",hdark);
538  m_HBDarkening = &*hdark;
539  }
540  if (agingFlagHE) {
542  es.get<HBHEDarkeningRecord>().get("HE",hdark);
543  m_HEDarkening = &*hdark;
544  }
545 
547  es.get<HcalTimeSlewRecord>().get("HBHE", delay);
548  hcalTimeSlew_delay_ = &*delay;
549 
554 }
void checkGeometry(const edm::EventSetup &eventSetup)
HcalAmplifier * theHBHEQIE11Amplifier
const HBHEDarkening * m_HEDarkening
HcalAmplifier * theHBHEAmplifier
HcalShapes * theShapes
Definition: HcalDigitizer.h:91
const HcalTimeSlew * hcalTimeSlew_delay_
void setTimeSlew(const HcalTimeSlew *timeSlew)
Definition: HcalAmplifier.h:40
HcalAmplifier * theHOAmplifier
const T & get() const
Definition: EventSetup.h:58
const HBHEDarkening * m_HBDarkening
void beginRun(edm::EventSetup const &es)
Definition: HcalShapes.cc:58
HcalAmplifier * theZDCAmplifier
void HcalDigitizer::buildHBHEQIECells ( const std::vector< DetId > &  allCells,
const edm::EventSetup eventSetup 
)
private

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

692  {
693  //if results are already cached, no need to look again
694  if(!theHBHEQIE8DetIds.empty() || !theHBHEQIE11DetIds.empty()) return;
695 
696  //get the QIETypes
698  eventSetup.get<HcalQIETypesRcd>().get(q);
700  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
701 
702  HcalQIETypes qieTypes(*q.product());
703  if (qieTypes.topo()==nullptr) {
704  qieTypes.setTopo(htopo.product());
705  }
706 
707  for(std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
708  HcalQIENum qieType = HcalQIENum(qieTypes.getValues(*detItr)->getValue());
709  if(qieType == QIE8) {
710  theHBHEQIE8DetIds.push_back(*detItr);
711  }
712  else if(qieType == QIE11) {
713  theHBHEQIE11DetIds.push_back(*detItr);
714  }
715  else { //default is QIE8
716  theHBHEQIE8DetIds.push_back(*detItr);
717  }
718  }
719 
721  else {
722  delete theHBHEDigitizer;
723  theHBHEDigitizer = nullptr;
724  }
725 
727  else {
728  delete theHBHEQIE11Digitizer;
729  theHBHEQIE11Digitizer = nullptr;
730  }
731 
732  if(!theHBHEQIE8DetIds.empty() && !theHBHEQIE11DetIds.empty()){
735  }
736 }
HBHEHitFilter theHBHEHitFilter
Definition: HcalQIENum.h:4
HBHEDigitizer * theHBHEDigitizer
HcalQIENum
Definition: HcalQIENum.h:4
const T & get() const
Definition: EventSetup.h:58
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 653 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().

653  {
654  //if results are already cached, no need to look again
655  if(!theHFQIE8DetIds.empty() || !theHFQIE10DetIds.empty()) return;
656 
657  //get the QIETypes
659  eventSetup.get<HcalQIETypesRcd>().get(q);
661  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
662 
663  HcalQIETypes qieTypes(*q.product());
664  if (qieTypes.topo()==nullptr) {
665  qieTypes.setTopo(htopo.product());
666  }
667 
668  for(std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
669  HcalQIENum qieType = HcalQIENum(qieTypes.getValues(*detItr)->getValue());
670  if(qieType == QIE8) {
671  theHFQIE8DetIds.push_back(*detItr);
672  } else if(qieType == QIE10) {
673  theHFQIE10DetIds.push_back(*detItr);
674  } else { //default is QIE8
675  theHFQIE8DetIds.push_back(*detItr);
676  }
677  }
678 
680  else {
681  delete theHFDigitizer;
682  theHFDigitizer = nullptr;
683  }
684 
686  else {
687  delete theHFQIE10Digitizer;
688  theHFQIE10Digitizer = nullptr;
689  }
690 }
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:58
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 738 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().

738  {
739  // all HPD
740 
741  if(theHOSiPMCode == 0) {
742  theHODigitizer->setDetIds(allCells);
743  } else if(theHOSiPMCode == 1) {
744  theHOSiPMDigitizer->setDetIds(allCells);
745  // FIXME pick Zecotek or hamamatsu?
746  } else if(theHOSiPMCode == 2) {
747  std::vector<HcalDetId> zecotekDetIds, hamamatsuDetIds;
749  eventSetup.get<HcalMCParamsRcd>().get(p);
751  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
752 
753  HcalMCParams mcParams(*p.product());
754  if (mcParams.topo()==nullptr) {
755  mcParams.setTopo(htopo.product());
756  }
757 
758  for(std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
759  int shapeType = mcParams.getValues(*detItr)->signalShape();
760  if(shapeType == HcalShapes::ZECOTEK) {
761  zecotekDetIds.emplace_back(*detItr);
762  theHOSiPMDetIds.push_back(*detItr);
763  } else if(shapeType == HcalShapes::HAMAMATSU) {
764  hamamatsuDetIds.emplace_back(*detItr);
765  theHOSiPMDetIds.push_back(*detItr);
766  } else {
767  theHOHPDDetIds.push_back(*detItr);
768  }
769  }
770 
772  else {
773  delete theHODigitizer;
774  theHODigitizer = nullptr;
775  }
776 
778  else {
779  delete theHOSiPMDigitizer;
780  theHOSiPMDigitizer = nullptr;
781  }
782 
783  if(!theHOHPDDetIds.empty() && !theHOSiPMDetIds.empty()){
786  }
787 
788  theParameterMap->setHOZecotekDetIds(zecotekDetIds);
789  theParameterMap->setHOHamamatsuDetIds(hamamatsuDetIds);
790 
791  // make sure we don't got through this exercise again
792  theHOSiPMCode = -2;
793  }
794 }
HOHitFilter theHOHitFilter
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:90
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:58
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 562 of file HcalDigitizer.cc.

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

Referenced by beginRun().

562  {
563  // TODO find a way to avoid doing this every event
565  eventSetup.get<CaloGeometryRecord>().get(geometry);
567  eventSetup.get<HcalRecNumberingRecord>().get(pHRNDC);
568 
569  // See if it's been updated
570  if (&*geometry != theGeometry) {
571  theGeometry = &*geometry;
572  theRecNumber= &*pHRNDC;
573  updateGeometry(eventSetup);
574  }
575 }
const HcalDDDRecConstants * theRecNumber
Definition: HcalDigitizer.h:72
const T & get() const
Definition: EventSetup.h:58
const CaloGeometry * theGeometry
Definition: HcalDigitizer.h:71
ESHandle< TrackerGeometry > geometry
void updateGeometry(const edm::EventSetup &eventSetup)
void HcalDigitizer::darkening ( std::vector< PCaloHit > &  hcalHits)
private

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

796  {
797 
798  for (unsigned int ii=0; ii<hcalHits.size(); ++ii) {
799  uint32_t tmpId = hcalHits[ii].id();
800  int det, z, depth, ieta, phi, lay;
801  HcalTestNumbering::unpackHcalIndex(tmpId,det,z,depth,ieta,phi,lay);
802 
803  bool darkened = false;
804  float dweight = 1.;
805 
806  if(det==int(HcalBarrel) && m_HBDarkening){
807  //HB darkening
808  dweight = m_HBDarkening->degradation(deliveredLumi,ieta,lay);
809  darkened = true;
810  }
811  else if(det==int(HcalEndcap) && m_HEDarkening){
812  //HE darkening
813  dweight = m_HEDarkening->degradation(deliveredLumi,ieta,lay);
814  darkened = true;
815  }
816  else if(det==int(HcalForward) && m_HFRecalibration){
817  //HF darkening - approximate: invert recalibration factor
818  dweight = 1.0/m_HFRecalibration->getCorr(ieta,depth,deliveredLumi);
819  darkened = true;
820  }
821 
822  //reset hit energy
823  if(darkened) hcalHits[ii].setEnergy(hcalHits[ii].energy()*dweight);
824  }
825 
826 }
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 557 of file HcalDigitizer.cc.

References HcalShapes::endRun(), and theShapes.

Referenced by HcalDigiProducer::endRun().

557  {
558  theShapes->endRun();
559 }
HcalShapes * theShapes
Definition: HcalDigitizer.h:91
void endRun()
Definition: HcalShapes.cc:73
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 440 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().

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

298  {
299  // get the appropriate gains, noises, & widths for this event
300  edm::ESHandle<HcalDbService> conditions;
301  eventSetup.get<HcalDbRecord>().get(conditions);
302 
303  theHBHEAmplifier->setDbService(conditions.product());
304  theHFAmplifier->setDbService(conditions.product());
305  theHOAmplifier->setDbService(conditions.product());
306  theZDCAmplifier->setDbService(conditions.product());
309 
312 
313  theCoderFactory->setDbService(conditions.product());
314  theParameterMap->setDbService(conditions.product());
315 
316  //initialize hits
324 
325 }
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:90
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 255 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::setHBHENoiseSignalGenerator().

255  {
256  noiseGenerator->setParameterMap(theParameterMap);
257  noiseGenerator->setElectronicsSim(theHBHEElectronicsSim);
259  theHBHEAmplifier->setNoiseSignalGenerator(noiseGenerator);
260 }
void setParameterMap(HcalSimParameterMap *map)
HBHEDigitizer * theHBHEDigitizer
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:90
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 269 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::setHFNoiseSignalGenerator().

269  {
270  noiseGenerator->setParameterMap(theParameterMap);
271  noiseGenerator->setElectronicsSim(theHFElectronicsSim);
273  theHFAmplifier->setNoiseSignalGenerator(noiseGenerator);
274 }
void setParameterMap(HcalSimParameterMap *map)
HcalElectronicsSim * theHFElectronicsSim
HFDigitizer * theHFDigitizer
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:90
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 283 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().

283  {
284  noiseGenerator->setParameterMap(theParameterMap);
285  noiseGenerator->setElectronicsSim(theHOElectronicsSim);
288  theHOAmplifier->setNoiseSignalGenerator(noiseGenerator);
289 }
void setParameterMap(HcalSimParameterMap *map)
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:90
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 276 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::setQIE10NoiseSignalGenerator().

276  {
277  noiseGenerator->setParameterMap(theParameterMap);
281 }
QIE10Digitizer * theHFQIE10Digitizer
void setParameterMap(HcalSimParameterMap *map)
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:90
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 262 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::setQIE11NoiseSignalGenerator().

262  {
263  noiseGenerator->setParameterMap(theParameterMap);
267 }
void setParameterMap(HcalSimParameterMap *map)
HcalElectronicsSim * theHBHEQIE11ElectronicsSim
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:90
HcalAmplifier * theHBHEQIE11Amplifier
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
void setNoiseSignalGenerator(CaloVNoiseSignalGenerator *generator)
void setNoiseSignalGenerator(const CaloVNoiseSignalGenerator *noiseSignalGenerator)
Definition: HcalAmplifier.h:32
QIE11Digitizer * theHBHEQIE11Digitizer
void HcalDigitizer::setZDCNoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 291 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::setZDCNoiseSignalGenerator().

291  {
292  noiseGenerator->setParameterMap(theParameterMap);
293  noiseGenerator->setElectronicsSim(theZDCElectronicsSim);
294  theZDCDigitizer->setNoiseSignalGenerator(noiseGenerator);
295  theZDCAmplifier->setNoiseSignalGenerator(noiseGenerator);
296 }
void setParameterMap(HcalSimParameterMap *map)
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:90
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 578 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().

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

Referenced by beginRun().

bool HcalDigitizer::agingFlagHE
private

Definition at line 160 of file HcalDigitizer.h.

Referenced by beginRun().

bool HcalDigitizer::debugCS_
private

Definition at line 151 of file HcalDigitizer.h.

Referenced by finalizeEvent(), and HcalDigitizer().

double HcalDigitizer::deliveredLumi
private

Definition at line 159 of file HcalDigitizer.h.

Referenced by darkening(), and HcalDigitizer().

bool HcalDigitizer::doHFWindow_
private

Definition at line 149 of file HcalDigitizer.h.

Referenced by accumulateCaloHits().

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

Definition at line 141 of file HcalDigitizer.h.

Referenced by updateGeometry().

bool HcalDigitizer::hbhegeo
private

Definition at line 147 of file HcalDigitizer.h.

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

const HcalTimeSlew* HcalDigitizer::hcalTimeSlew_delay_
private

Definition at line 165 of file HcalDigitizer.h.

Referenced by beginRun(), and HcalDigitizer().

bool HcalDigitizer::hfgeo
private

Definition at line 147 of file HcalDigitizer.h.

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

std::string HcalDigitizer::hitsProducer_
private

Definition at line 155 of file HcalDigitizer.h.

Referenced by accumulate(), and HcalDigitizer().

bool HcalDigitizer::hogeo
private

Definition at line 147 of file HcalDigitizer.h.

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

bool HcalDigitizer::ignoreTime_
private

Definition at line 152 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

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

Definition at line 170 of file HcalDigitizer.h.

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

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

Definition at line 169 of file HcalDigitizer.h.

Referenced by updateGeometry().

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

Definition at line 167 of file HcalDigitizer.h.

Referenced by updateGeometry().

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

Definition at line 168 of file HcalDigitizer.h.

Referenced by updateGeometry().

bool HcalDigitizer::injectTestHits_
private

Definition at line 153 of file HcalDigitizer.h.

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

bool HcalDigitizer::isHCAL
private

Definition at line 147 of file HcalDigitizer.h.

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

bool HcalDigitizer::isZDC
private

Definition at line 147 of file HcalDigitizer.h.

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

bool HcalDigitizer::killHE_
private

Definition at line 150 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), and updateGeometry().

const HBHEDarkening* HcalDigitizer::m_HBDarkening
private

Definition at line 161 of file HcalDigitizer.h.

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

const HBHEDarkening* HcalDigitizer::m_HEDarkening
private

Definition at line 162 of file HcalDigitizer.h.

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

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

Definition at line 163 of file HcalDigitizer.h.

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

bool HcalDigitizer::testNumbering_
private

Definition at line 148 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), and HcalDigitizer().

HcalCoderFactory* HcalDigitizer::theCoderFactory
private

Definition at line 111 of file HcalDigitizer.h.

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

const CaloGeometry* HcalDigitizer::theGeometry
private

Definition at line 71 of file HcalDigitizer.h.

Referenced by checkGeometry(), and updateGeometry().

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

Definition at line 113 of file HcalDigitizer.h.

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

HBHEHitFilter HcalDigitizer::theHBHEHitFilter
private

Definition at line 120 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells(), and HcalDigitizer().

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

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

Referenced by buildHBHEQIECells(), and HcalDigitizer().

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

Definition at line 142 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells().

CaloHitResponse* HcalDigitizer::theHBHEResponse
private

Definition at line 93 of file HcalDigitizer.h.

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

CaloHitResponse* HcalDigitizer::theHBHESiPMResponse
private

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

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

HFHitFilter HcalDigitizer::theHFHitFilter
private

Definition at line 122 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

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

Definition at line 145 of file HcalDigitizer.h.

Referenced by buildHFQIECells(), and finalizeEvent().

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

Definition at line 123 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

CaloHitResponse* HcalDigitizer::theHFQIE10Response
private

Definition at line 98 of file HcalDigitizer.h.

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

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

Definition at line 145 of file HcalDigitizer.h.

Referenced by buildHFQIECells().

CaloHitResponse* HcalDigitizer::theHFResponse
private

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

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

HOHitFilter HcalDigitizer::theHOHitFilter
private

Definition at line 124 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

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

Definition at line 143 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells().

CaloHitResponse* HcalDigitizer::theHOResponse
private

Definition at line 95 of file HcalDigitizer.h.

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

int HcalDigitizer::theHOSiPMCode
private

Definition at line 157 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

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

Definition at line 144 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells().

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

Definition at line 125 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

CaloHitResponse* HcalDigitizer::theHOSiPMResponse
private

Definition at line 96 of file HcalDigitizer.h.

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

HPDIonFeedbackSim* HcalDigitizer::theIonFeedback
private

Definition at line 110 of file HcalDigitizer.h.

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

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

Definition at line 72 of file HcalDigitizer.h.

Referenced by checkGeometry(), and updateGeometry().

HcalHitRelabeller* HcalDigitizer::theRelabeller
private

Definition at line 137 of file HcalDigitizer.h.

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

HcalShapes* HcalDigitizer::theShapes
private

Definition at line 91 of file HcalDigitizer.h.

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

HcalTimeSlewSim* HcalDigitizer::theTimeSlewSim
private

Definition at line 128 of file HcalDigitizer.h.

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

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

Definition at line 116 of file HcalDigitizer.h.

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

ZDCHitFilter HcalDigitizer::theZDCHitFilter
private

Definition at line 126 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

CaloHitResponse* HcalDigitizer::theZDCResponse
private

Definition at line 99 of file HcalDigitizer.h.

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

bool HcalDigitizer::zdcgeo
private

Definition at line 147 of file HcalDigitizer.h.

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