CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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,
CaloTDigitizerQIE8Run
HBHEDigitizer
 
typedef CaloTDigitizer
< HFDigitizerTraits,
CaloTDigitizerQIE8Run
HFDigitizer
 
typedef CaloTDigitizer
< HODigitizerTraits,
CaloTDigitizerQIE8Run
HODigitizer
 
typedef CaloTDigitizer
< HcalQIE10DigitizerTraits,
CaloTDigitizerQIE1011Run
QIE10Digitizer
 
typedef CaloTDigitizer
< HcalQIE11DigitizerTraits,
CaloTDigitizerQIE1011Run
QIE11Digitizer
 
typedef CaloTDigitizer
< ZDCDigitizerTraits,
CaloTDigitizerQIE8Run
ZDCDigitizer
 

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 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_
 
HEDarkeningm_HEDarkening
 
HFRecalibrationm_HFRecalibration
 
bool neutralDensity_
 
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 38 of file HcalDigitizer.cc.

References edm::ConsumesCollector::consumes(), HcalCoderFactory::DB, debugCS_, deliveredLumi, Exception, edm::ParameterSet::getParameter(), hitsProducer_, ignoreTime_, HLT_FULL_cff::InputTag, m_HEDarkening, m_HFRecalibration, 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.

38  :
39  theGeometry(0),
40  theRecNumber(0),
42  theShapes(new HcalShapes()),
51  theHFAmplifier(0),
52  theHOAmplifier(0),
53  theZDCAmplifier(0),
56  theIonFeedback(0),
57  theCoderFactory(0),
72  theHODigitizer(0),
74  theHFDigitizer(0),
75  theZDCDigitizer(0),
78  theRelabeller(0),
79  isZDC(true),
80  isHCAL(true),
81  zdcgeo(true),
82  hbhegeo(true),
83  hogeo(true),
84  hfgeo(true),
85  doHFWindow_(ps.getParameter<bool>("doHFWindow")),
86  killHE_(ps.getParameter<bool>("killHE")),
87  debugCS_(ps.getParameter<bool>("debugCaloSamples")),
88  ignoreTime_(ps.getParameter<bool>("ignoreGeantTime")),
89  injectTestHits_(ps.getParameter<bool>("injectTestHits")),
90  hitsProducer_(ps.getParameter<std::string>("hitsProducer")),
91  theHOSiPMCode(ps.getParameter<edm::ParameterSet>("ho").getParameter<int>("siPMCode")),
92  deliveredLumi(0.),
93  m_HEDarkening(0),
95  injectedHitsEnergy_(ps.getParameter<std::vector<double>>("injectTestHitsEnergy")),
96  injectedHitsTime_(ps.getParameter<std::vector<double>>("injectTestHitsTime")),
97  injectedHitsCells_(ps.getParameter<std::vector<int>>("injectTestHitsCells"))
98 {
99  iC.consumes<std::vector<PCaloHit> >(edm::InputTag(hitsProducer_, "ZDCHITS"));
100  iC.consumes<std::vector<PCaloHit> >(edm::InputTag(hitsProducer_, "HcalHits"));
101 
102  bool doNoise = ps.getParameter<bool>("doNoise");
103 
104  bool PreMix1 = ps.getParameter<bool>("HcalPreMixStage1"); // special threshold/pedestal treatment
105  bool PreMix2 = ps.getParameter<bool>("HcalPreMixStage2"); // special threshold/pedestal treatment
106  bool doEmpty = ps.getParameter<bool>("doEmpty");
107  deliveredLumi = ps.getParameter<double>("DelivLuminosity");
108  bool agingFlagHE = ps.getParameter<bool>("HEDarkening");
109  bool agingFlagHF = ps.getParameter<bool>("HFDarkening");
110  double minFCToDelay= ps.getParameter<double>("minFCToDelay");
111 
112  if(PreMix1 && PreMix2) {
113  throw cms::Exception("Configuration")
114  << "HcalDigitizer cannot operate in PreMixing digitization and PreMixing\n"
115  "digi combination modes at the same time. Please set one mode to False\n"
116  "in the configuration file.";
117  }
118 
119  // need to make copies, because they might get different noise generators
120  theHBHEAmplifier = new HcalAmplifier(theParameterMap, doNoise, PreMix1, PreMix2);
121  theHFAmplifier = new HcalAmplifier(theParameterMap, doNoise, PreMix1, PreMix2);
122  theHOAmplifier = new HcalAmplifier(theParameterMap, doNoise, PreMix1, PreMix2);
123  theZDCAmplifier = new HcalAmplifier(theParameterMap, doNoise, PreMix1, PreMix2);
124  theHFQIE10Amplifier = new HcalAmplifier(theParameterMap, doNoise, PreMix1, PreMix2);
125  theHBHEQIE11Amplifier = new HcalAmplifier(theParameterMap, doNoise, PreMix1, PreMix2);
126 
128 
133  theHFQIE10ElectronicsSim = new HcalElectronicsSim(theHFQIE10Amplifier, theCoderFactory, PreMix1); //should this use a different coder factory?
134  theHBHEQIE11ElectronicsSim = new HcalElectronicsSim(theHBHEQIE11Amplifier, theCoderFactory, PreMix1); //should this use a different coder factory?
135 
136  bool doHOHPD = (theHOSiPMCode != 1);
137  bool doHOSiPM = (theHOSiPMCode != 0);
138  if(doHOHPD) {
142  }
143  if(doHOSiPM) {
147  }
148 
151 
152  //QIE8 and QIE11 can coexist in HBHE
155 
156  bool doTimeSlew = ps.getParameter<bool>("doTimeSlew");
157  //initialize: they won't be called later if flag is set
158  theTimeSlewSim = 0;
159  if(doTimeSlew) {
160  // no time slewing for HF
161  theTimeSlewSim = new HcalTimeSlewSim(theParameterMap,minFCToDelay);
162  theHBHEAmplifier->setTimeSlewSim(theTimeSlewSim);
163  theHBHEQIE11Amplifier->setTimeSlewSim(theTimeSlewSim);
164  theHOAmplifier->setTimeSlewSim(theTimeSlewSim);
165  theZDCAmplifier->setTimeSlewSim(theTimeSlewSim);
166  }
167 
171 
172  //QIE8 and QIE10 can coexist in HF
175 
177 
178  testNumbering_ = ps.getParameter<bool>("TestNumbering");
179 // std::cout << "Flag to see if Hit Relabeller to be initiated " << testNumbering_ << std::endl;
181 
182  if(ps.getParameter<bool>("doIonFeedback") && theHBHEResponse) {
185  if(ps.getParameter<bool>("doThermalNoise")) {
187  }
188  }
189 
190  //option to save CaloSamples as event product for debugging
191  if(debugCS_){
199  }
200 
201  //option to ignore Geant time distribution in SimHits, for debugging
202  if(ignoreTime_){
210  }
211 
212  if(agingFlagHE) m_HEDarkening = new HEDarkening();
213  if(agingFlagHF) m_HFRecalibration = new HFRecalibration(ps.getParameter<edm::ParameterSet>("HFRecalParameterBlock"));
214 }
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
void setIonFeedbackSim(HPDIonFeedbackSim *feedbackSim)
Definition: HcalAmplifier.h:27
HcalAmplifier * theHBHEQIE11Amplifier
std::vector< double > injectedHitsEnergy_
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
HFRecalibration * m_HFRecalibration
HcalElectronicsSim * theHBHEElectronicsSim
CaloHitResponse * theHBHEResponse
Definition: HcalDigitizer.h:92
HODigitizer * theHODigitizer
HOHitFilter theHOSiPMHitFilter
const CaloGeometry * theGeometry
Definition: HcalDigitizer.h:70
CaloHitResponse * theHFResponse
Definition: HcalDigitizer.h:96
CaloTDigitizer< HcalQIE11DigitizerTraits, CaloTDigitizerQIE1011Run > QIE11Digitizer
Definition: HcalDigitizer.h:87
HcalElectronicsSim * theHFQIE10ElectronicsSim
HODigitizer * theHOSiPMDigitizer
QIE11Digitizer * theHBHEQIE11Digitizer
HBHEHitFilter theHBHEQIE11HitFilter
HEDarkening * m_HEDarkening
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 217 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, theParameterMap, theRelabeller, theZDCAmplifier, theZDCDigitizer, theZDCElectronicsSim, and theZDCResponse.

217  {
220  if(theHODigitizer) delete theHODigitizer;
222  if(theHFDigitizer) delete theHFDigitizer;
224  delete theZDCDigitizer;
225  delete theParameterMap;
226  delete theHBHEResponse;
227  delete theHBHESiPMResponse;
228  delete theHOResponse;
229  delete theHOSiPMResponse;
230  delete theHFResponse;
231  delete theHFQIE10Response;
232  delete theZDCResponse;
233  delete theHBHEElectronicsSim;
234  delete theHFElectronicsSim;
235  delete theHOElectronicsSim;
236  delete theZDCElectronicsSim;
239  delete theHBHEAmplifier;
240  delete theHFAmplifier;
241  delete theHOAmplifier;
242  delete theZDCAmplifier;
243  delete theHFQIE10Amplifier;
244  delete theHBHEQIE11Amplifier;
245  delete theCoderFactory;
246  if (theRelabeller) delete theRelabeller;
247 }
QIE10Digitizer * theHFQIE10Digitizer
CaloHitResponse * theHFQIE10Response
Definition: HcalDigitizer.h:97
HcalElectronicsSim * theHFElectronicsSim
HBHEDigitizer * theHBHEDigitizer
HcalElectronicsSim * theHBHEQIE11ElectronicsSim
HFDigitizer * theHFDigitizer
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:89
HcalAmplifier * theHFAmplifier
HcalCoderFactory * theCoderFactory
HcalHitRelabeller * theRelabeller
HcalAmplifier * theHBHEQIE11Amplifier
HcalAmplifier * theHBHEAmplifier
HcalElectronicsSim * theHOElectronicsSim
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 397 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::accumulate().

397  {
398  // Step A: Get Inputs
399  edm::InputTag zdcTag(hitsProducer_, "ZDCHITS");
401  e.getByLabel(zdcTag, zdcHandle);
402  isZDC = zdcHandle.isValid();
403 
404  edm::InputTag hcalTag(hitsProducer_, "HcalHits");
406  e.getByLabel(hcalTag, hcalHandle);
407  isHCAL = hcalHandle.isValid() or injectTestHits_;
408 
410  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
411  const HcalTopology *htopoP=htopo.product();
412 
413  accumulateCaloHits(hcalHandle, zdcHandle, 0, engine, htopoP);
414 }
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::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::string hitsProducer_
bool isValid() const
Definition: HandleBase.h:75
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 416 of file HcalDigitizer.cc.

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

416  {
417  // Step A: Get Inputs
418  edm::InputTag zdcTag(hitsProducer_, "ZDCHITS");
420  e.getByLabel(zdcTag, zdcHandle);
421  isZDC = zdcHandle.isValid();
422 
423  edm::InputTag hcalTag(hitsProducer_, "HcalHits");
425  e.getByLabel(hcalTag, hcalHandle);
426  isHCAL = hcalHandle.isValid();
427 
429  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
430  const HcalTopology *htopoP=htopo.product();
431 
432  accumulateCaloHits(hcalHandle, zdcHandle, e.bunchCrossing(), engine, htopoP);
433 }
std::string hitsProducer_
bool isValid() const
Definition: HandleBase.h:75
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 322 of file HcalDigitizer.cc.

References CaloTDigitizer< Traits, runHelper >::add(), gather_cfg::cout, darkening(), TauDecayModes::dec, doHFWindow_, hbhegeo, HcalEndcap, HcalForward, hfgeo, hogeo, i, injectedHits_, injectTestHits_, isHCAL, isZDC, killHE_, 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().

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

Definition at line 525 of file HcalDigitizer.cc.

References HcalShapes::beginRun(), checkGeometry(), and theShapes.

Referenced by HcalDigiProducer::beginRun().

525  {
526  checkGeometry(es);
527  theShapes->beginRun(es);
528 }
void checkGeometry(const edm::EventSetup &eventSetup)
HcalShapes * theShapes
Definition: HcalDigitizer.h:90
void beginRun(edm::EventSetup const &es)
Definition: HcalShapes.cc:88
void HcalDigitizer::buildHBHEQIECells ( const std::vector< DetId > &  allCells,
const edm::EventSetup eventSetup 
)
private

Definition at line 666 of file HcalDigitizer.cc.

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

Referenced by updateGeometry().

666  {
667  //if results are already cached, no need to look again
668  if(theHBHEQIE8DetIds.size()>0 || theHBHEQIE11DetIds.size()>0) return;
669 
670  //get the QIETypes
672  eventSetup.get<HcalQIETypesRcd>().get(q);
674  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
675 
676  HcalQIETypes qieTypes(*q.product());
677  if (qieTypes.topo()==0) {
678  qieTypes.setTopo(htopo.product());
679  }
680 
681  for(std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
682  HcalQIENum qieType = HcalQIENum(qieTypes.getValues(*detItr)->getValue());
683  if(qieType == QIE8) {
684  theHBHEQIE8DetIds.push_back(*detItr);
685  }
686  else if(qieType == QIE11) {
687  theHBHEQIE11DetIds.push_back(*detItr);
688  }
689  else { //default is QIE8
690  theHBHEQIE8DetIds.push_back(*detItr);
691  }
692  }
693 
695  else {
696  delete theHBHEDigitizer;
698  }
699 
701  else {
702  delete theHBHEQIE11Digitizer;
704  }
705 
706  if(theHBHEQIE8DetIds.size()>0 && theHBHEQIE11DetIds.size()>0){
709  }
710 }
HBHEHitFilter theHBHEHitFilter
Definition: HcalQIENum.h:4
HBHEDigitizer * theHBHEDigitizer
#define NULL
Definition: scimark2.h:8
HcalQIENum
Definition: HcalQIENum.h:4
const T & get() const
Definition: EventSetup.h:56
T const * product() const
Definition: ESHandle.h:86
void setDetIds(const std::vector< DetId > &detIds)
Definition: HcalHitFilter.h:17
QIE11Digitizer * theHBHEQIE11Digitizer
HBHEHitFilter theHBHEQIE11HitFilter
std::vector< DetId > theHBHEQIE8DetIds
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 627 of file HcalDigitizer.cc.

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

Referenced by updateGeometry().

627  {
628  //if results are already cached, no need to look again
629  if(theHFQIE8DetIds.size()>0 || theHFQIE10DetIds.size()>0) return;
630 
631  //get the QIETypes
633  eventSetup.get<HcalQIETypesRcd>().get(q);
635  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
636 
637  HcalQIETypes qieTypes(*q.product());
638  if (qieTypes.topo()==0) {
639  qieTypes.setTopo(htopo.product());
640  }
641 
642  for(std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
643  HcalQIENum qieType = HcalQIENum(qieTypes.getValues(*detItr)->getValue());
644  if(qieType == QIE8) {
645  theHFQIE8DetIds.push_back(*detItr);
646  } else if(qieType == QIE10) {
647  theHFQIE10DetIds.push_back(*detItr);
648  } else { //default is QIE8
649  theHFQIE8DetIds.push_back(*detItr);
650  }
651  }
652 
654  else {
655  delete theHFDigitizer;
657  }
658 
660  else {
661  delete theHFQIE10Digitizer;
663  }
664 }
std::vector< DetId > theHFQIE10DetIds
QIE10Digitizer * theHFQIE10Digitizer
Definition: HcalQIENum.h:4
#define NULL
Definition: scimark2.h:8
HFDigitizer * theHFDigitizer
HcalQIENum
Definition: HcalQIENum.h:4
std::vector< DetId > theHFQIE8DetIds
const T & get() const
Definition: EventSetup.h:56
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 712 of file HcalDigitizer.cc.

References edm::EventSetup::get(), HcalShapes::HAMAMATSU, NULL, AlCaHLTBitMon_ParallelJobs::p, edm::ESHandle< class >::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().

712  {
713  // all HPD
714 
715  if(theHOSiPMCode == 0) {
716  theHODigitizer->setDetIds(allCells);
717  } else if(theHOSiPMCode == 1) {
718  theHOSiPMDigitizer->setDetIds(allCells);
719  // FIXME pick Zecotek or hamamatsu?
720  } else if(theHOSiPMCode == 2) {
721  std::vector<HcalDetId> zecotekDetIds, hamamatsuDetIds;
723  eventSetup.get<HcalMCParamsRcd>().get(p);
725  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
726 
727  HcalMCParams mcParams(*p.product());
728  if (mcParams.topo()==0) {
729  mcParams.setTopo(htopo.product());
730  }
731 
732  for(std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
733  int shapeType = mcParams.getValues(*detItr)->signalShape();
734  if(shapeType == HcalShapes::ZECOTEK) {
735  zecotekDetIds.emplace_back(*detItr);
736  theHOSiPMDetIds.push_back(*detItr);
737  } else if(shapeType == HcalShapes::HAMAMATSU) {
738  hamamatsuDetIds.emplace_back(*detItr);
739  theHOSiPMDetIds.push_back(*detItr);
740  } else {
741  theHOHPDDetIds.push_back(*detItr);
742  }
743  }
744 
746  else {
747  delete theHODigitizer;
749  }
750 
752  else {
753  delete theHOSiPMDigitizer;
755  }
756 
757  if(theHOHPDDetIds.size()>0 && theHOSiPMDetIds.size()>0){
760  }
761 
762  theParameterMap->setHOZecotekDetIds(zecotekDetIds);
763  theParameterMap->setHOHamamatsuDetIds(hamamatsuDetIds);
764 
765  // make sure we don't got through this exercise again
766  theHOSiPMCode = -2;
767  }
768 }
HOHitFilter theHOHitFilter
#define NULL
Definition: scimark2.h:8
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:56
T const * product() const
Definition: ESHandle.h:86
HODigitizer * theHODigitizer
void setDetIds(const std::vector< DetId > &detIds)
Definition: HcalHitFilter.h:17
std::vector< DetId > theHOSiPMDetIds
HOHitFilter theHOSiPMHitFilter
HODigitizer * theHOSiPMDigitizer
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 536 of file HcalDigitizer.cc.

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

Referenced by beginRun().

536  {
537  // TODO find a way to avoid doing this every event
539  eventSetup.get<CaloGeometryRecord>().get(geometry);
541  eventSetup.get<HcalRecNumberingRecord>().get(pHRNDC);
542 
543  // See if it's been updated
544  if (&*geometry != theGeometry) {
545  theGeometry = &*geometry;
546  theRecNumber= &*pHRNDC;
547  updateGeometry(eventSetup);
548  }
549 }
const HcalDDDRecConstants * theRecNumber
Definition: HcalDigitizer.h:71
const T & get() const
Definition: EventSetup.h:56
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 770 of file HcalDigitizer.cc.

References HEDarkening::degradation(), deliveredLumi, HLT_FULL_cff::depth, relval_parameters_module::energy, HFRecalibration::getCorr(), HcalEndcap, HcalForward, cuy::ii, m_HEDarkening, m_HFRecalibration, phi, HcalTestNumbering::unpackHcalIndex(), and z.

Referenced by accumulateCaloHits().

770  {
771 
772  for (unsigned int ii=0; ii<hcalHits.size(); ++ii) {
773  uint32_t tmpId = hcalHits[ii].id();
774  int det, z, depth, ieta, phi, lay;
775  HcalTestNumbering::unpackHcalIndex(tmpId,det,z,depth,ieta,phi,lay);
776 
777  bool darkened = false;
778  float dweight = 1.;
779 
780  if(det==int(HcalEndcap) && m_HEDarkening){
781  //HE darkening
782  dweight = m_HEDarkening->degradation(deliveredLumi,ieta,lay-2);//NB:diff. layer count
783  darkened = true;
784  } else if(det==int(HcalForward) && m_HFRecalibration){
785  //HF darkening - approximate: invert recalibration factor
786  dweight = 1.0/m_HFRecalibration->getCorr(ieta,depth,deliveredLumi);
787  darkened = true;
788  }
789 
790  //create new hit with darkened energy
791  //if(darkened) hcalHits[ii] = PCaloHit(hcalHits[ii].energyEM()*dweight,hcalHits[ii].energyHad()*dweight,hcalHits[ii].time(),hcalHits[ii].geantTrackId(),hcalHits[ii].id());
792 
793  //reset hit energy
794  if(darkened) hcalHits[ii].setEnergy(hcalHits[ii].energy()*dweight);
795  }
796 
797 }
int ii
Definition: cuy.py:588
double deliveredLumi
double getCorr(int ieta, int idepth, double lumi)
static void unpackHcalIndex(const uint32_t &idx, int &det, int &z, int &depth, int &eta, int &phi, int &lay)
HFRecalibration * m_HFRecalibration
HEDarkening * m_HEDarkening
float degradation(float intlumi, int ieta, int lay)
Definition: HEDarkening.cc:52
void HcalDigitizer::endRun ( )

Definition at line 531 of file HcalDigitizer.cc.

References HcalShapes::endRun(), and theShapes.

Referenced by HcalDigiProducer::endRun().

531  {
532  theShapes->endRun();
533 }
HcalShapes * theShapes
Definition: HcalDigitizer.h:90
void endRun()
Definition: HcalShapes.cc:103
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 *  engine 
)

Definition at line 435 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::finalizeEvent().

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

References edm::EventSetup::get(), CaloTDigitizer< Traits, runHelper >::initializeHits(), edm::ESHandle< class >::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().

293  {
294  // get the appropriate gains, noises, & widths for this event
295  edm::ESHandle<HcalDbService> conditions;
296  eventSetup.get<HcalDbRecord>().get(conditions);
297 
298  theHBHEAmplifier->setDbService(conditions.product());
299  theHFAmplifier->setDbService(conditions.product());
300  theHOAmplifier->setDbService(conditions.product());
301  theZDCAmplifier->setDbService(conditions.product());
304 
307 
308  theCoderFactory->setDbService(conditions.product());
309  theParameterMap->setDbService(conditions.product());
310 
311  //initialize hits
319 
320 }
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)
T const * product() const
Definition: ESHandle.h:86
HODigitizer * theHODigitizer
HcalElectronicsSim * theHFQIE10ElectronicsSim
HODigitizer * theHOSiPMDigitizer
QIE11Digitizer * theHBHEQIE11Digitizer
HcalAmplifier * theZDCAmplifier
void setDbService(const HcalDbService *service)
HcalAmplifier * theHFQIE10Amplifier
void HcalDigitizer::setHBHENoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 250 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::setHBHENoiseSignalGenerator().

250  {
251  noiseGenerator->setParameterMap(theParameterMap);
252  noiseGenerator->setElectronicsSim(theHBHEElectronicsSim);
254  theHBHEAmplifier->setNoiseSignalGenerator(noiseGenerator);
255 }
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 264 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::setHFNoiseSignalGenerator().

264  {
265  noiseGenerator->setParameterMap(theParameterMap);
266  noiseGenerator->setElectronicsSim(theHFElectronicsSim);
268  theHFAmplifier->setNoiseSignalGenerator(noiseGenerator);
269 }
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 278 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().

278  {
279  noiseGenerator->setParameterMap(theParameterMap);
280  noiseGenerator->setElectronicsSim(theHOElectronicsSim);
283  theHOAmplifier->setNoiseSignalGenerator(noiseGenerator);
284 }
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 271 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::setQIE10NoiseSignalGenerator().

271  {
272  noiseGenerator->setParameterMap(theParameterMap);
276 }
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 257 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::setQIE11NoiseSignalGenerator().

257  {
258  noiseGenerator->setParameterMap(theParameterMap);
262 }
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 286 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::setZDCNoiseSignalGenerator().

286  {
287  noiseGenerator->setParameterMap(theParameterMap);
288  noiseGenerator->setElectronicsSim(theZDCElectronicsSim);
289  theZDCDigitizer->setNoiseSignalGenerator(noiseGenerator);
290  theZDCAmplifier->setNoiseSignalGenerator(noiseGenerator);
291 }
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 552 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().

552  {
561 
562  const std::vector<DetId>& hbCells = theGeometry->getValidDetIds(DetId::Hcal, HcalBarrel);
563  const std::vector<DetId>& heCells = theGeometry->getValidDetIds(DetId::Hcal, HcalEndcap);
564  const std::vector<DetId>& hoCells = theGeometry->getValidDetIds(DetId::Hcal, HcalOuter);
565  const std::vector<DetId>& hfCells = theGeometry->getValidDetIds(DetId::Hcal, HcalForward);
566  const std::vector<DetId>& zdcCells = theGeometry->getValidDetIds(DetId::Calo, HcalZDCDetId::SubdetectorId);
567  //const std::vector<DetId>& hcalTrigCells = geometry->getValidDetIds(DetId::Hcal, HcalTriggerTower);
568  //const std::vector<DetId>& hcalCalib = geometry->getValidDetIds(DetId::Calo, HcalCastorDetId::SubdetectorId);
569 // std::cout<<"HcalDigitizer::CheckGeometry number of cells: "<<zdcCells.size()<<std::endl;
570  if(zdcCells.empty()) zdcgeo = false;
571  if(hbCells.empty() && heCells.empty()) hbhegeo = false;
572  if(hoCells.empty()) hogeo = false;
573  if(hfCells.empty()) hfgeo = false;
574  // combine HB & HE
575 
576  hbheCells = hbCells;
577  if( !killHE_) {
578  hbheCells.insert(hbheCells.end(), heCells.begin(), heCells.end());
579  }
580  //handle mixed QIE8/11 scenario in HBHE
581  buildHBHEQIECells(hbheCells,eventSetup);
584 
585  if(theHOSiPMDigitizer) {
586  buildHOSiPMCells(hoCells, eventSetup);
588  ((HcalSiPMHitResponse *)theHOSiPMResponse)->setDetIds(hoCells);
589  }
590 
591  //handle mixed QIE8/10 scenario in HF
592  buildHFQIECells(hfCells,eventSetup);
593 
594  theZDCDigitizer->setDetIds(zdcCells);
595 
596  //fill test hits collection if desired and empty
597  if(injectTestHits_ && injectedHits_.size()==0 && injectedHitsCells_.size()>0 && injectedHitsEnergy_.size()>0){
598  //make list of specified cells if desired
599  std::vector<DetId> testCells;
600  if(injectedHitsCells_.size()>=4){
601  testCells.reserve(injectedHitsCells_.size()/4);
602  for(unsigned ic = 0; ic < injectedHitsCells_.size(); ic += 4){
603  if(ic+4 > injectedHitsCells_.size()) break;
604  testCells.push_back(HcalDetId((HcalSubdetector)injectedHitsCells_[ic],injectedHitsCells_[ic+1],
606  }
607  }
608  else{
609  int testSubdet = injectedHitsCells_[0];
610  if(testSubdet==HcalBarrel) testCells = hbCells;
611  else if(testSubdet==HcalEndcap) testCells = heCells;
612  else if(testSubdet==HcalForward) testCells = hfCells;
613  else if(testSubdet==HcalOuter) testCells = hoCells;
614  else throw cms::Exception("Configuration") << "Unknown subdet " << testSubdet << " for HCAL test hit injection";
615  }
616  bool useHitTimes = (injectedHitsTime_.size()==injectedHitsEnergy_.size());
617  injectedHits_.reserve(testCells.size()*injectedHitsEnergy_.size());
618  for(unsigned ih = 0; ih < injectedHitsEnergy_.size(); ++ih){
619  double tmp = useHitTimes ? injectedHitsTime_[ih] : 0.;
620  for(auto& aCell: testCells){
621  injectedHits_.emplace_back(aCell,injectedHitsEnergy_[ih],tmp);
622  }
623  }
624  }
625 }
std::vector< int > injectedHitsCells_
void setGeometry(const CaloGeometry *geometry)
geometry needed for time-of-flight
CaloHitResponse * theHFQIE10Response
Definition: HcalDigitizer.h:97
void setGeometry(const CaloGeometry *&, const HcalDDDRecConstants *&)
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)
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::debugCS_
private

Definition at line 150 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 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 155 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 166 of file HcalDigitizer.h.

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

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

Definition at line 165 of file HcalDigitizer.h.

Referenced by updateGeometry().

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

Definition at line 163 of file HcalDigitizer.h.

Referenced by updateGeometry().

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

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

HEDarkening* HcalDigitizer::m_HEDarkening
private

Definition at line 160 of file HcalDigitizer.h.

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

HFRecalibration* HcalDigitizer::m_HFRecalibration
private

Definition at line 161 of file HcalDigitizer.h.

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

bool HcalDigitizer::neutralDensity_
private

Definition at line 153 of file HcalDigitizer.h.

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 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 157 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().

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().

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().