CMS 3D CMS Logo

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

#include <HcalDigitizer.h>

Public Member Functions

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

Private Types

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

Private Member Functions

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

Private Attributes

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

Detailed Description

Definition at line 46 of file HcalDigitizer.h.

Member Typedef Documentation

Reconstruction algorithm

Definition at line 91 of file HcalDigitizer.h.

Definition at line 93 of file HcalDigitizer.h.

Definition at line 92 of file HcalDigitizer.h.

Definition at line 95 of file HcalDigitizer.h.

Definition at line 96 of file HcalDigitizer.h.

Definition at line 94 of file HcalDigitizer.h.

Constructor & Destructor Documentation

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

Definition at line 37 of file HcalDigitizer.cc.

References edm::ConsumesCollector::consumes(), HcalCoderFactory::DB, debugCS_, deliveredLumi, DataMixerDataOnData_cff::doEmpty, DigiDM_cff::doNoise, hcalUnsuppressedDigis_cfi::doTimeSlew, Exception, edm::ParameterSet::getParameter(), hcalTimeSlew_delay_, hitsProducer_, ignoreTime_, HLT_2018_cff::InputTag, m_HFRecalibration, hcalUnsuppressedDigis_cfi::minFCToDelay, 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  : theGeometry(nullptr),
39  theRecNumber(nullptr),
40  theParameterMap(ps),
41  theShapes(),
42  theHBHEResponse(std::make_unique<CaloHitResponse>(&theParameterMap, &theShapes)),
43  theHBHESiPMResponse(std::make_unique<HcalSiPMHitResponse>(
44  &theParameterMap, &theShapes, ps.getParameter<bool>("HcalPreMixStage1"), true)),
45  theHOResponse(std::make_unique<CaloHitResponse>(&theParameterMap, &theShapes)),
46  theHOSiPMResponse(std::make_unique<HcalSiPMHitResponse>(
47  &theParameterMap, &theShapes, ps.getParameter<bool>("HcalPreMixStage1"), false)),
48  theHFResponse(std::make_unique<CaloHitResponse>(&theParameterMap, &theShapes)),
49  theHFQIE10Response(std::make_unique<CaloHitResponse>(&theParameterMap, &theShapes)),
50  theZDCResponse(std::make_unique<CaloHitResponse>(&theParameterMap, &theShapes)),
51  theHBHEAmplifier(nullptr),
52  theHFAmplifier(nullptr),
53  theHOAmplifier(nullptr),
54  theZDCAmplifier(nullptr),
55  theHFQIE10Amplifier(nullptr),
56  theHBHEQIE11Amplifier(nullptr),
57  theIonFeedback(nullptr),
58  theCoderFactory(nullptr),
59  theHBHEElectronicsSim(nullptr),
60  theHFElectronicsSim(nullptr),
61  theHOElectronicsSim(nullptr),
62  theZDCElectronicsSim(nullptr),
63  theHFQIE10ElectronicsSim(nullptr),
72  theHBHEDigitizer(nullptr),
73  theHODigitizer(nullptr),
74  theHOSiPMDigitizer(nullptr),
75  theHFDigitizer(nullptr),
76  theZDCDigitizer(nullptr),
77  theHFQIE10Digitizer(nullptr),
78  theHBHEQIE11Digitizer(nullptr),
79  theRelabeller(nullptr),
80  isZDC(true),
81  isHCAL(true),
82  zdcgeo(true),
83  hbhegeo(true),
84  hogeo(true),
85  hfgeo(true),
86  doHFWindow_(ps.getParameter<bool>("doHFWindow")),
87  killHE_(ps.getParameter<bool>("killHE")),
88  debugCS_(ps.getParameter<bool>("debugCaloSamples")),
89  ignoreTime_(ps.getParameter<bool>("ignoreGeantTime")),
90  injectTestHits_(ps.getParameter<bool>("injectTestHits")),
91  hitsProducer_(ps.getParameter<std::string>("hitsProducer")),
92  theHOSiPMCode(ps.getParameter<edm::ParameterSet>("ho").getParameter<int>("siPMCode")),
93  deliveredLumi(0.),
94  agingFlagHB(ps.getParameter<bool>("HBDarkening")),
95  agingFlagHE(ps.getParameter<bool>("HEDarkening")),
96  m_HBDarkening(nullptr),
97  m_HEDarkening(nullptr),
98  m_HFRecalibration(nullptr),
99  injectedHitsEnergy_(ps.getParameter<std::vector<double>>("injectTestHitsEnergy")),
100  injectedHitsTime_(ps.getParameter<std::vector<double>>("injectTestHitsTime")),
101  injectedHitsCells_(ps.getParameter<std::vector<int>>("injectTestHitsCells")) {
102  iC.consumes<std::vector<PCaloHit>>(edm::InputTag(hitsProducer_, "ZDCHITS"));
103  iC.consumes<std::vector<PCaloHit>>(edm::InputTag(hitsProducer_, "HcalHits"));
104 
105  bool doNoise = ps.getParameter<bool>("doNoise");
106 
107  bool PreMix1 = ps.getParameter<bool>("HcalPreMixStage1"); // special threshold/pedestal treatment
108  bool PreMix2 = ps.getParameter<bool>("HcalPreMixStage2"); // special threshold/pedestal treatment
109  bool doEmpty = ps.getParameter<bool>("doEmpty");
110  deliveredLumi = ps.getParameter<double>("DelivLuminosity");
111  bool agingFlagHF = ps.getParameter<bool>("HFDarkening");
112  double minFCToDelay = ps.getParameter<double>("minFCToDelay");
113 
114  if (PreMix1 && PreMix2) {
115  throw cms::Exception("Configuration") << "HcalDigitizer cannot operate in PreMixing digitization and "
116  "PreMixing\n"
117  "digi combination modes at the same time. Please set one mode to "
118  "False\n"
119  "in the configuration file.";
120  }
121 
122  // need to make copies, because they might get different noise generators
123  theHBHEAmplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
124  theHFAmplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
125  theHOAmplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
126  theZDCAmplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
127  theHFQIE10Amplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
128  theHBHEQIE11Amplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
129 
130  theCoderFactory = std::make_unique<HcalCoderFactory>(HcalCoderFactory::DB);
131 
133  std::make_unique<HcalElectronicsSim>(&theParameterMap, theHBHEAmplifier.get(), theCoderFactory.get(), PreMix1);
135  std::make_unique<HcalElectronicsSim>(&theParameterMap, theHFAmplifier.get(), theCoderFactory.get(), PreMix1);
137  std::make_unique<HcalElectronicsSim>(&theParameterMap, theHOAmplifier.get(), theCoderFactory.get(), PreMix1);
139  std::make_unique<HcalElectronicsSim>(&theParameterMap, theZDCAmplifier.get(), theCoderFactory.get(), PreMix1);
141  std::make_unique<HcalElectronicsSim>(&theParameterMap,
142  theHFQIE10Amplifier.get(),
143  theCoderFactory.get(),
144  PreMix1); // should this use a different coder factory?
146  std::make_unique<HcalElectronicsSim>(&theParameterMap,
147  theHBHEQIE11Amplifier.get(),
148  theCoderFactory.get(),
149  PreMix1); // should this use a different coder factory?
150 
151  bool doHOHPD = (theHOSiPMCode != 1);
152  bool doHOSiPM = (theHOSiPMCode != 0);
153  if (doHOHPD) {
154  theHOResponse = std::make_unique<CaloHitResponse>(&theParameterMap, &theShapes);
155  theHOResponse->setHitFilter(&theHOHitFilter);
156  theHODigitizer = std::make_unique<HODigitizer>(theHOResponse.get(), theHOElectronicsSim.get(), doEmpty);
157  }
158  if (doHOSiPM) {
159  theHOSiPMResponse->setHitFilter(&theHOSiPMHitFilter);
160  theHOSiPMDigitizer = std::make_unique<HODigitizer>(theHOSiPMResponse.get(), theHOElectronicsSim.get(), doEmpty);
161  }
162 
163  theHBHEResponse->setHitFilter(&theHBHEHitFilter);
165 
166  // QIE8 and QIE11 can coexist in HBHE
168  std::make_unique<QIE11Digitizer>(theHBHESiPMResponse.get(), theHBHEQIE11ElectronicsSim.get(), doEmpty);
169  theHBHEDigitizer = std::make_unique<HBHEDigitizer>(theHBHEResponse.get(), theHBHEElectronicsSim.get(), doEmpty);
170 
171  bool doTimeSlew = ps.getParameter<bool>("doTimeSlew");
172  // initialize: they won't be called later if flag is set
173  hcalTimeSlew_delay_ = nullptr;
174  theTimeSlewSim.reset(nullptr);
175  if (doTimeSlew) {
176  // no time slewing for HF
177  theTimeSlewSim = std::make_unique<HcalTimeSlewSim>(&theParameterMap, minFCToDelay);
178  theHBHEAmplifier->setTimeSlewSim(theTimeSlewSim.get());
179  theHBHEQIE11Amplifier->setTimeSlewSim(theTimeSlewSim.get());
180  theHOAmplifier->setTimeSlewSim(theTimeSlewSim.get());
181  theZDCAmplifier->setTimeSlewSim(theTimeSlewSim.get());
182  }
183 
184  theHFResponse->setHitFilter(&theHFHitFilter);
185  theHFQIE10Response->setHitFilter(&theHFQIE10HitFilter);
186  theZDCResponse->setHitFilter(&theZDCHitFilter);
187 
188  // QIE8 and QIE10 can coexist in HF
190  std::make_unique<QIE10Digitizer>(theHFQIE10Response.get(), theHFQIE10ElectronicsSim.get(), doEmpty);
191  theHFDigitizer = std::make_unique<HFDigitizer>(theHFResponse.get(), theHFElectronicsSim.get(), doEmpty);
192 
193  theZDCDigitizer = std::make_unique<ZDCDigitizer>(theZDCResponse.get(), theZDCElectronicsSim.get(), doEmpty);
194 
195  testNumbering_ = ps.getParameter<bool>("TestNumbering");
196  // std::cout << "Flag to see if Hit Relabeller to be initiated " <<
197  // testNumbering_ << std::endl;
198  if (testNumbering_)
199  theRelabeller = std::make_unique<HcalHitRelabeller>(ps.getParameter<bool>("doNeutralDensityFilter"));
200 
201  if (ps.getParameter<bool>("doIonFeedback") && theHBHEResponse) {
202  theIonFeedback = std::make_unique<HPDIonFeedbackSim>(ps, &theShapes);
203  theHBHEResponse->setPECorrection(theIonFeedback.get());
204  if (ps.getParameter<bool>("doThermalNoise")) {
205  theHBHEAmplifier->setIonFeedbackSim(theIonFeedback.get());
206  }
207  }
208 
209  // option to save CaloSamples as event product for debugging
210  if (debugCS_) {
211  if (theHBHEDigitizer)
212  theHBHEDigitizer->setDebugCaloSamples(true);
214  theHBHEQIE11Digitizer->setDebugCaloSamples(true);
215  if (theHODigitizer)
216  theHODigitizer->setDebugCaloSamples(true);
217  if (theHOSiPMDigitizer)
218  theHOSiPMDigitizer->setDebugCaloSamples(true);
219  if (theHFDigitizer)
220  theHFDigitizer->setDebugCaloSamples(true);
222  theHFQIE10Digitizer->setDebugCaloSamples(true);
223  theZDCDigitizer->setDebugCaloSamples(true);
224  }
225 
226  // option to ignore Geant time distribution in SimHits, for debugging
227  if (ignoreTime_) {
228  theHBHEResponse->setIgnoreGeantTime(ignoreTime_);
229  theHBHESiPMResponse->setIgnoreGeantTime(ignoreTime_);
230  theHOResponse->setIgnoreGeantTime(ignoreTime_);
231  theHOSiPMResponse->setIgnoreGeantTime(ignoreTime_);
232  theHFResponse->setIgnoreGeantTime(ignoreTime_);
233  theHFQIE10Response->setIgnoreGeantTime(ignoreTime_);
234  theZDCResponse->setIgnoreGeantTime(ignoreTime_);
235  }
236 
237  if (agingFlagHF)
238  m_HFRecalibration.reset(new HFRecalibration(ps.getParameter<edm::ParameterSet>("HFRecalParameterBlock")));
239 }
HFHitFilter theHFQIE10HitFilter
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
std::vector< int > injectedHitsCells_
HBHEHitFilter theHBHEHitFilter
const HcalDDDRecConstants * theRecNumber
Definition: HcalDigitizer.h:80
std::unique_ptr< CaloHitResponse > theHFResponse
std::unique_ptr< HcalTimeSlewSim > theTimeSlewSim
std::unique_ptr< HcalAmplifier > theHBHEAmplifier
std::unique_ptr< HBHEDigitizer > theHBHEDigitizer
HOHitFilter theHOHitFilter
std::unique_ptr< ZDCDigitizer > theZDCDigitizer
std::unique_ptr< HcalHitRelabeller > theRelabeller
HFHitFilter theHFHitFilter
std::unique_ptr< HFDigitizer > theHFDigitizer
std::unique_ptr< HODigitizer > theHODigitizer
std::unique_ptr< HcalAmplifier > theHFAmplifier
std::unique_ptr< HcalCoderFactory > theCoderFactory
std::unique_ptr< HcalElectronicsSim > theZDCElectronicsSim
std::unique_ptr< HFRecalibration > m_HFRecalibration
std::vector< double > injectedHitsEnergy_
std::unique_ptr< HcalElectronicsSim > theHFQIE10ElectronicsSim
const HBHEDarkening * m_HEDarkening
std::unique_ptr< HcalElectronicsSim > theHFElectronicsSim
std::string hitsProducer_
double deliveredLumi
std::unique_ptr< HODigitizer > theHOSiPMDigitizer
const HcalTimeSlew * hcalTimeSlew_delay_
std::unique_ptr< HcalAmplifier > theHBHEQIE11Amplifier
ZDCHitFilter theZDCHitFilter
std::unique_ptr< HcalSiPMHitResponse > theHBHESiPMResponse
std::vector< double > injectedHitsTime_
HcalShapes theShapes
Definition: HcalDigitizer.h:99
std::unique_ptr< CaloHitResponse > theHBHEResponse
HcalSimParameterMap theParameterMap
Definition: HcalDigitizer.h:98
std::unique_ptr< HcalElectronicsSim > theHBHEElectronicsSim
std::unique_ptr< CaloHitResponse > theHOResponse
std::unique_ptr< HPDIonFeedbackSim > theIonFeedback
std::unique_ptr< HcalAmplifier > theZDCAmplifier
std::unique_ptr< QIE11Digitizer > theHBHEQIE11Digitizer
std::unique_ptr< QIE10Digitizer > theHFQIE10Digitizer
HOHitFilter theHOSiPMHitFilter
std::unique_ptr< CaloHitResponse > theZDCResponse
const CaloGeometry * theGeometry
Definition: HcalDigitizer.h:79
std::unique_ptr< HcalAmplifier > theHOAmplifier
std::unique_ptr< HcalSiPMHitResponse > theHOSiPMResponse
const HBHEDarkening * m_HBDarkening
std::unique_ptr< HcalElectronicsSim > theHOElectronicsSim
HBHEHitFilter theHBHEQIE11HitFilter
std::unique_ptr< CaloHitResponse > theHFQIE10Response
std::unique_ptr< HcalAmplifier > theHFQIE10Amplifier
std::unique_ptr< HcalElectronicsSim > theHBHEQIE11ElectronicsSim
HcalDigitizer::~HcalDigitizer ( )
virtual

Definition at line 241 of file HcalDigitizer.cc.

241 {}

Member Function Documentation

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

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

414  {
415  // Step A: Get Inputs
416  edm::InputTag zdcTag(hitsProducer_, "ZDCHITS");
418  e.getByLabel(zdcTag, zdcHandle);
419  isZDC = zdcHandle.isValid();
420 
421  edm::InputTag hcalTag(hitsProducer_, "HcalHits");
423  e.getByLabel(hcalTag, hcalHandle);
424  isHCAL = hcalHandle.isValid() or injectTestHits_;
425 
427  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
428  const HcalTopology *htopoP = htopo.product();
429 
430  accumulateCaloHits(hcalHandle, zdcHandle, 0, engine, htopoP);
431 }
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:70
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 433 of file HcalDigitizer.cc.

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

435  {
436  // Step A: Get Inputs
437  edm::InputTag zdcTag(hitsProducer_, "ZDCHITS");
439  e.getByLabel(zdcTag, zdcHandle);
440  isZDC = zdcHandle.isValid();
441 
442  edm::InputTag hcalTag(hitsProducer_, "HcalHits");
444  e.getByLabel(hcalTag, hcalHandle);
445  isHCAL = hcalHandle.isValid();
446 
448  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
449  const HcalTopology *htopoP = htopo.product();
450 
451  accumulateCaloHits(hcalHandle, zdcHandle, e.bunchCrossing(), engine, htopoP);
452 }
std::string hitsProducer_
bool isValid() const
Definition: HandleBase.h:70
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 330 of file HcalDigitizer.cc.

References 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(), DetId::rawId(), HcalDetId::subdet(), testNumbering_, theHBHEDigitizer, theHBHEQIE11Digitizer, theHFDigitizer, theHFQIE10Digitizer, theHODigitizer, theHOSiPMDigitizer, theRelabeller, theZDCDigitizer, HcalTopology::validHcal(), and zdcgeo.

Referenced by accumulate().

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

Definition at line 729 of file HcalDigitizer.cc.

References edm::EventSetup::get(), edm::ESHandle< T >::product(), data-class-funcs::q, QIE11, QIE8, HcalHitFilter< subdets >::setDetIds(), HcalCondObjectContainerBase::setTopo(), theHBHEDigitizer, theHBHEHitFilter, theHBHEQIE11DetIds, theHBHEQIE11Digitizer, theHBHEQIE11HitFilter, and theHBHEQIE8DetIds.

Referenced by updateGeometry().

729  {
730  // if results are already cached, no need to look again
731  if (!theHBHEQIE8DetIds.empty() || !theHBHEQIE11DetIds.empty())
732  return;
733 
734  // get the QIETypes
736  eventSetup.get<HcalQIETypesRcd>().get(q);
738  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
739 
740  HcalQIETypes qieTypes(*q.product());
741  if (qieTypes.topo() == nullptr) {
742  qieTypes.setTopo(htopo.product());
743  }
744 
745  for (std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
746  HcalQIENum qieType = HcalQIENum(qieTypes.getValues(*detItr)->getValue());
747  if (qieType == QIE8) {
748  theHBHEQIE8DetIds.push_back(*detItr);
749  } else if (qieType == QIE11) {
750  theHBHEQIE11DetIds.push_back(*detItr);
751  } else { // default is QIE8
752  theHBHEQIE8DetIds.push_back(*detItr);
753  }
754  }
755 
756  if (!theHBHEQIE8DetIds.empty())
758  else {
759  theHBHEDigitizer.reset();
760  }
761 
762  if (!theHBHEQIE11DetIds.empty())
764  else {
765  theHBHEQIE11Digitizer.reset();
766  }
767 
768  if (!theHBHEQIE8DetIds.empty() && !theHBHEQIE11DetIds.empty()) {
771  }
772 }
HBHEHitFilter theHBHEHitFilter
std::unique_ptr< HBHEDigitizer > theHBHEDigitizer
Definition: HcalQIENum.h:4
HcalQIENum
Definition: HcalQIENum.h:4
std::unique_ptr< QIE11Digitizer > theHBHEQIE11Digitizer
void setDetIds(const std::vector< DetId > &detIds)
Definition: HcalHitFilter.h:14
HBHEHitFilter theHBHEQIE11HitFilter
T get() const
Definition: EventSetup.h:73
std::vector< DetId > theHBHEQIE8DetIds
T const * product() const
Definition: ESHandle.h:86
std::vector< DetId > theHBHEQIE11DetIds
void setTopo(const HcalTopology *topo)
void HcalDigitizer::buildHFQIECells ( const std::vector< DetId > &  allCells,
const edm::EventSetup eventSetup 
)
private

Definition at line 689 of file HcalDigitizer.cc.

References edm::EventSetup::get(), edm::ESHandle< T >::product(), data-class-funcs::q, QIE10, QIE8, HcalCondObjectContainerBase::setTopo(), theHFDigitizer, theHFQIE10DetIds, theHFQIE10Digitizer, and theHFQIE8DetIds.

Referenced by updateGeometry().

689  {
690  // if results are already cached, no need to look again
691  if (!theHFQIE8DetIds.empty() || !theHFQIE10DetIds.empty())
692  return;
693 
694  // get the QIETypes
696  eventSetup.get<HcalQIETypesRcd>().get(q);
698  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
699 
700  HcalQIETypes qieTypes(*q.product());
701  if (qieTypes.topo() == nullptr) {
702  qieTypes.setTopo(htopo.product());
703  }
704 
705  for (std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
706  HcalQIENum qieType = HcalQIENum(qieTypes.getValues(*detItr)->getValue());
707  if (qieType == QIE8) {
708  theHFQIE8DetIds.push_back(*detItr);
709  } else if (qieType == QIE10) {
710  theHFQIE10DetIds.push_back(*detItr);
711  } else { // default is QIE8
712  theHFQIE8DetIds.push_back(*detItr);
713  }
714  }
715 
716  if (!theHFQIE8DetIds.empty())
717  theHFDigitizer->setDetIds(theHFQIE8DetIds);
718  else {
719  theHFDigitizer.reset();
720  }
721 
722  if (!theHFQIE10DetIds.empty())
724  else {
725  theHFQIE10Digitizer.reset();
726  }
727 }
std::vector< DetId > theHFQIE10DetIds
Definition: HcalQIENum.h:4
std::unique_ptr< HFDigitizer > theHFDigitizer
HcalQIENum
Definition: HcalQIENum.h:4
std::vector< DetId > theHFQIE8DetIds
std::unique_ptr< QIE10Digitizer > theHFQIE10Digitizer
T get() const
Definition: EventSetup.h:73
T const * product() const
Definition: ESHandle.h:86
void setTopo(const HcalTopology *topo)
void HcalDigitizer::buildHOSiPMCells ( const std::vector< DetId > &  allCells,
const edm::EventSetup eventSetup 
)
private

Definition at line 774 of file HcalDigitizer.cc.

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

Referenced by updateGeometry().

774  {
775  // all HPD
776 
777  if (theHOSiPMCode == 0) {
778  theHODigitizer->setDetIds(allCells);
779  } else if (theHOSiPMCode == 1) {
780  theHOSiPMDigitizer->setDetIds(allCells);
781  // FIXME pick Zecotek or hamamatsu?
782  } else if (theHOSiPMCode == 2) {
783  std::vector<HcalDetId> zecotekDetIds, hamamatsuDetIds;
785  eventSetup.get<HcalMCParamsRcd>().get(p);
787  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
788 
789  HcalMCParams mcParams(*p.product());
790  if (mcParams.topo() == nullptr) {
791  mcParams.setTopo(htopo.product());
792  }
793 
794  for (std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
795  int shapeType = mcParams.getValues(*detItr)->signalShape();
796  if (shapeType == HcalShapes::ZECOTEK) {
797  zecotekDetIds.emplace_back(*detItr);
798  theHOSiPMDetIds.push_back(*detItr);
799  } else if (shapeType == HcalShapes::HAMAMATSU) {
800  hamamatsuDetIds.emplace_back(*detItr);
801  theHOSiPMDetIds.push_back(*detItr);
802  } else {
803  theHOHPDDetIds.push_back(*detItr);
804  }
805  }
806 
807  if (!theHOHPDDetIds.empty())
808  theHODigitizer->setDetIds(theHOHPDDetIds);
809  else {
810  theHODigitizer.reset();
811  }
812 
813  if (!theHOSiPMDetIds.empty())
815  else {
816  theHOSiPMDigitizer.reset();
817  }
818 
819  if (!theHOHPDDetIds.empty() && !theHOSiPMDetIds.empty()) {
822  }
823 
824  theParameterMap.setHOZecotekDetIds(zecotekDetIds);
825  theParameterMap.setHOHamamatsuDetIds(hamamatsuDetIds);
826 
827  // make sure we don't got through this exercise again
828  theHOSiPMCode = -2;
829  }
830 }
HOHitFilter theHOHitFilter
std::unique_ptr< HODigitizer > theHODigitizer
void setHOZecotekDetIds(const std::vector< HcalDetId > &ids)
std::unique_ptr< HODigitizer > theHOSiPMDigitizer
std::vector< DetId > theHOHPDDetIds
HcalSimParameterMap theParameterMap
Definition: HcalDigitizer.h:98
void setHOHamamatsuDetIds(const std::vector< HcalDetId > &ids)
void setDetIds(const std::vector< DetId > &detIds)
Definition: HcalHitFilter.h:14
std::vector< DetId > theHOSiPMDetIds
HOHitFilter theHOSiPMHitFilter
T get() const
Definition: EventSetup.h:73
T const * product() const
Definition: ESHandle.h:86
void setTopo(const HcalTopology *topo)
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 579 of file HcalDigitizer.cc.

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

Referenced by setup().

579  {
581  eventSetup.get<CaloGeometryRecord>().get(geometry);
582  theGeometry = &*geometry;
584  eventSetup.get<HcalRecNumberingRecord>().get(pHRNDC);
585  theRecNumber = &*pHRNDC;
586 
587  if (theHBHEResponse)
588  theHBHEResponse->setGeometry(theGeometry);
590  theHBHESiPMResponse->setGeometry(theGeometry);
591  if (theHOResponse)
592  theHOResponse->setGeometry(theGeometry);
593  if (theHOSiPMResponse)
594  theHOSiPMResponse->setGeometry(theGeometry);
595  theHFResponse->setGeometry(theGeometry);
596  theHFQIE10Response->setGeometry(theGeometry);
597  theZDCResponse->setGeometry(theGeometry);
598  if (theRelabeller)
599  theRelabeller->setGeometry(theRecNumber);
600 
601  // See if it's been updated
602  bool check1 = theGeometryWatcher_.check(eventSetup);
603  bool check2 = theRecNumberWatcher_.check(eventSetup);
604  if (check1 or check2) {
605  updateGeometry(eventSetup);
606  }
607 }
const HcalDDDRecConstants * theRecNumber
Definition: HcalDigitizer.h:80
std::unique_ptr< CaloHitResponse > theHFResponse
std::unique_ptr< HcalHitRelabeller > theRelabeller
edm::ESWatcher< HcalRecNumberingRecord > theRecNumberWatcher_
Definition: HcalDigitizer.h:78
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
std::unique_ptr< HcalSiPMHitResponse > theHBHESiPMResponse
std::unique_ptr< CaloHitResponse > theHBHEResponse
std::unique_ptr< CaloHitResponse > theHOResponse
edm::ESWatcher< CaloGeometryRecord > theGeometryWatcher_
Definition: HcalDigitizer.h:77
std::unique_ptr< CaloHitResponse > theZDCResponse
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:52
const CaloGeometry * theGeometry
Definition: HcalDigitizer.h:79
std::unique_ptr< HcalSiPMHitResponse > theHOSiPMResponse
ESHandle< TrackerGeometry > geometry
T get() const
Definition: EventSetup.h:73
std::unique_ptr< CaloHitResponse > theHFQIE10Response
void updateGeometry(const edm::EventSetup &eventSetup)
void HcalDigitizer::darkening ( std::vector< PCaloHit > &  hcalHits)
private

Definition at line 832 of file HcalDigitizer.cc.

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

Referenced by accumulateCaloHits().

832  {
833  for (unsigned int ii = 0; ii < hcalHits.size(); ++ii) {
834  uint32_t tmpId = hcalHits[ii].id();
835  int det, z, depth, ieta, phi, lay;
836  HcalTestNumbering::unpackHcalIndex(tmpId, det, z, depth, ieta, phi, lay);
837 
838  bool darkened = false;
839  float dweight = 1.;
840 
841  if (det == int(HcalBarrel) && m_HBDarkening) {
842  // HB darkening
843  dweight = m_HBDarkening->degradation(deliveredLumi, ieta, lay);
844  darkened = true;
845  } else if (det == int(HcalEndcap) && m_HEDarkening) {
846  // HE darkening
847  dweight = m_HEDarkening->degradation(deliveredLumi, ieta, lay);
848  darkened = true;
849  } else if (det == int(HcalForward) && m_HFRecalibration) {
850  // HF darkening - approximate: invert recalibration factor
851  dweight = 1.0 / m_HFRecalibration->getCorr(ieta, depth, deliveredLumi);
852  darkened = true;
853  }
854 
855  // reset hit energy
856  if (darkened)
857  hcalHits[ii].setEnergy(hcalHits[ii].energy() * dweight);
858  }
859 }
std::unique_ptr< HFRecalibration > m_HFRecalibration
const HBHEDarkening * m_HEDarkening
double deliveredLumi
static void unpackHcalIndex(const uint32_t &idx, int &det, int &z, int &depth, int &eta, int &phi, int &lay)
ii
Definition: cuy.py:590
const HBHEDarkening * m_HBDarkening
float degradation(float intlumi, int ieta, int lay) const
void HcalDigitizer::fillFakeHits ( )
private

some hits in each subdetector, just for testing purposes

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

Definition at line 454 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::finalizeEvent().

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

Produces the EDM products,

Definition at line 292 of file HcalDigitizer.cc.

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

Referenced by HcalDigiProducer::initializeEvent().

292  {
293  setup(eventSetup);
294 
295  // get the appropriate gains, noises, & widths for this event
296  edm::ESHandle<HcalDbService> conditions;
297  eventSetup.get<HcalDbRecord>().get(conditions);
298 
299  theShapes.setDbService(conditions.product());
300 
301  theHBHEAmplifier->setDbService(conditions.product());
302  theHFAmplifier->setDbService(conditions.product());
303  theHOAmplifier->setDbService(conditions.product());
304  theZDCAmplifier->setDbService(conditions.product());
305  theHFQIE10Amplifier->setDbService(conditions.product());
306  theHBHEQIE11Amplifier->setDbService(conditions.product());
307 
308  theHFQIE10ElectronicsSim->setDbService(conditions.product());
309  theHBHEQIE11ElectronicsSim->setDbService(conditions.product());
310 
311  theCoderFactory->setDbService(conditions.product());
312  theParameterMap.setDbService(conditions.product());
313 
314  // initialize hits
315  if (theHBHEDigitizer)
316  theHBHEDigitizer->initializeHits();
318  theHBHEQIE11Digitizer->initializeHits();
319  if (theHODigitizer)
320  theHODigitizer->initializeHits();
321  if (theHOSiPMDigitizer)
322  theHOSiPMDigitizer->initializeHits();
324  theHFQIE10Digitizer->initializeHits();
325  if (theHFDigitizer)
326  theHFDigitizer->initializeHits();
327  theZDCDigitizer->initializeHits();
328 }
std::unique_ptr< HcalAmplifier > theHBHEAmplifier
std::unique_ptr< HBHEDigitizer > theHBHEDigitizer
std::unique_ptr< ZDCDigitizer > theZDCDigitizer
std::unique_ptr< HFDigitizer > theHFDigitizer
std::unique_ptr< HODigitizer > theHODigitizer
std::unique_ptr< HcalAmplifier > theHFAmplifier
std::unique_ptr< HcalCoderFactory > theCoderFactory
std::unique_ptr< HcalElectronicsSim > theHFQIE10ElectronicsSim
std::unique_ptr< HODigitizer > theHOSiPMDigitizer
std::unique_ptr< HcalAmplifier > theHBHEQIE11Amplifier
HcalShapes theShapes
Definition: HcalDigitizer.h:99
HcalSimParameterMap theParameterMap
Definition: HcalDigitizer.h:98
std::unique_ptr< HcalAmplifier > theZDCAmplifier
void setDbService(const HcalDbService *service)
Definition: HcalShapes.h:24
std::unique_ptr< QIE11Digitizer > theHBHEQIE11Digitizer
std::unique_ptr< QIE10Digitizer > theHFQIE10Digitizer
std::unique_ptr< HcalAmplifier > theHOAmplifier
std::unique_ptr< HcalAmplifier > theHFQIE10Amplifier
std::unique_ptr< HcalElectronicsSim > theHBHEQIE11ElectronicsSim
void setup(const edm::EventSetup &es)
T const * product() const
Definition: ESHandle.h:86
void setDbService(const HcalDbService *service)
void HcalDigitizer::setHBHENoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 243 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalBaseSignalGenerator::setParameterMap(), theHBHEAmplifier, theHBHEDigitizer, theHBHEElectronicsSim, and theParameterMap.

Referenced by HcalDigiProducer::setHBHENoiseSignalGenerator().

243  {
244  noiseGenerator->setParameterMap(&theParameterMap);
245  noiseGenerator->setElectronicsSim(theHBHEElectronicsSim.get());
246  if (theHBHEDigitizer)
247  theHBHEDigitizer->setNoiseSignalGenerator(noiseGenerator);
248  theHBHEAmplifier->setNoiseSignalGenerator(noiseGenerator);
249 }
void setParameterMap(HcalSimParameterMap *map)
std::unique_ptr< HcalAmplifier > theHBHEAmplifier
std::unique_ptr< HBHEDigitizer > theHBHEDigitizer
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
HcalSimParameterMap theParameterMap
Definition: HcalDigitizer.h:98
std::unique_ptr< HcalElectronicsSim > theHBHEElectronicsSim
void HcalDigitizer::setHFNoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 259 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalBaseSignalGenerator::setParameterMap(), theHFAmplifier, theHFDigitizer, theHFElectronicsSim, and theParameterMap.

Referenced by HcalDigiProducer::setHFNoiseSignalGenerator().

259  {
260  noiseGenerator->setParameterMap(&theParameterMap);
261  noiseGenerator->setElectronicsSim(theHFElectronicsSim.get());
262  if (theHFDigitizer)
263  theHFDigitizer->setNoiseSignalGenerator(noiseGenerator);
264  theHFAmplifier->setNoiseSignalGenerator(noiseGenerator);
265 }
void setParameterMap(HcalSimParameterMap *map)
std::unique_ptr< HFDigitizer > theHFDigitizer
std::unique_ptr< HcalAmplifier > theHFAmplifier
std::unique_ptr< HcalElectronicsSim > theHFElectronicsSim
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
HcalSimParameterMap theParameterMap
Definition: HcalDigitizer.h:98
void HcalDigitizer::setHONoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 275 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalBaseSignalGenerator::setParameterMap(), theHOAmplifier, theHODigitizer, theHOElectronicsSim, theHOSiPMDigitizer, and theParameterMap.

Referenced by HcalDigiProducer::setHONoiseSignalGenerator().

275  {
276  noiseGenerator->setParameterMap(&theParameterMap);
277  noiseGenerator->setElectronicsSim(theHOElectronicsSim.get());
278  if (theHODigitizer)
279  theHODigitizer->setNoiseSignalGenerator(noiseGenerator);
280  if (theHOSiPMDigitizer)
281  theHOSiPMDigitizer->setNoiseSignalGenerator(noiseGenerator);
282  theHOAmplifier->setNoiseSignalGenerator(noiseGenerator);
283 }
void setParameterMap(HcalSimParameterMap *map)
std::unique_ptr< HODigitizer > theHODigitizer
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
std::unique_ptr< HODigitizer > theHOSiPMDigitizer
HcalSimParameterMap theParameterMap
Definition: HcalDigitizer.h:98
std::unique_ptr< HcalAmplifier > theHOAmplifier
std::unique_ptr< HcalElectronicsSim > theHOElectronicsSim
void HcalDigitizer::setQIE10NoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 267 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalBaseSignalGenerator::setParameterMap(), theHFQIE10Amplifier, theHFQIE10Digitizer, theHFQIE10ElectronicsSim, and theParameterMap.

Referenced by HcalDigiProducer::setQIE10NoiseSignalGenerator().

267  {
268  noiseGenerator->setParameterMap(&theParameterMap);
269  noiseGenerator->setElectronicsSim(theHFQIE10ElectronicsSim.get());
271  theHFQIE10Digitizer->setNoiseSignalGenerator(noiseGenerator);
272  theHFQIE10Amplifier->setNoiseSignalGenerator(noiseGenerator);
273 }
void setParameterMap(HcalSimParameterMap *map)
std::unique_ptr< HcalElectronicsSim > theHFQIE10ElectronicsSim
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
HcalSimParameterMap theParameterMap
Definition: HcalDigitizer.h:98
std::unique_ptr< QIE10Digitizer > theHFQIE10Digitizer
std::unique_ptr< HcalAmplifier > theHFQIE10Amplifier
void HcalDigitizer::setQIE11NoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 251 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalBaseSignalGenerator::setParameterMap(), theHBHEQIE11Amplifier, theHBHEQIE11Digitizer, theHBHEQIE11ElectronicsSim, and theParameterMap.

Referenced by HcalDigiProducer::setQIE11NoiseSignalGenerator().

251  {
252  noiseGenerator->setParameterMap(&theParameterMap);
253  noiseGenerator->setElectronicsSim(theHBHEQIE11ElectronicsSim.get());
255  theHBHEQIE11Digitizer->setNoiseSignalGenerator(noiseGenerator);
256  theHBHEQIE11Amplifier->setNoiseSignalGenerator(noiseGenerator);
257 }
void setParameterMap(HcalSimParameterMap *map)
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
std::unique_ptr< HcalAmplifier > theHBHEQIE11Amplifier
HcalSimParameterMap theParameterMap
Definition: HcalDigitizer.h:98
std::unique_ptr< QIE11Digitizer > theHBHEQIE11Digitizer
std::unique_ptr< HcalElectronicsSim > theHBHEQIE11ElectronicsSim
void HcalDigitizer::setup ( const edm::EventSetup es)
private

Definition at line 555 of file HcalDigitizer.cc.

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

Referenced by initializeEvent().

555  {
556  checkGeometry(es);
557 
558  if (agingFlagHB) {
560  es.get<HBHEDarkeningRecord>().get("HB", hdark);
561  m_HBDarkening = &*hdark;
562  }
563  if (agingFlagHE) {
565  es.get<HBHEDarkeningRecord>().get("HE", hdark);
566  m_HEDarkening = &*hdark;
567  }
568 
570  es.get<HcalTimeSlewRecord>().get("HBHE", delay);
571  hcalTimeSlew_delay_ = &*delay;
572 
575  theHOAmplifier->setTimeSlew(hcalTimeSlew_delay_);
576  theZDCAmplifier->setTimeSlew(hcalTimeSlew_delay_);
577 }
std::unique_ptr< HcalAmplifier > theHBHEAmplifier
void checkGeometry(const edm::EventSetup &eventSetup)
const HBHEDarkening * m_HEDarkening
const HcalTimeSlew * hcalTimeSlew_delay_
std::unique_ptr< HcalAmplifier > theHBHEQIE11Amplifier
std::unique_ptr< HcalAmplifier > theZDCAmplifier
std::unique_ptr< HcalAmplifier > theHOAmplifier
const HBHEDarkening * m_HBDarkening
T get() const
Definition: EventSetup.h:73
void HcalDigitizer::setZDCNoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 285 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalBaseSignalGenerator::setParameterMap(), theParameterMap, theZDCAmplifier, theZDCDigitizer, and theZDCElectronicsSim.

Referenced by HcalDigiProducer::setZDCNoiseSignalGenerator().

285  {
286  noiseGenerator->setParameterMap(&theParameterMap);
287  noiseGenerator->setElectronicsSim(theZDCElectronicsSim.get());
288  theZDCDigitizer->setNoiseSignalGenerator(noiseGenerator);
289  theZDCAmplifier->setNoiseSignalGenerator(noiseGenerator);
290 }
void setParameterMap(HcalSimParameterMap *map)
std::unique_ptr< ZDCDigitizer > theZDCDigitizer
std::unique_ptr< HcalElectronicsSim > theZDCElectronicsSim
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
HcalSimParameterMap theParameterMap
Definition: HcalDigitizer.h:98
std::unique_ptr< HcalAmplifier > theZDCAmplifier
void HcalDigitizer::updateGeometry ( const edm::EventSetup eventSetup)
private

Definition at line 609 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_, HcalZDCDetId::SubdetectorId, theGeometry, theHBHEQIE11DetIds, theHBHESiPMResponse, theHOSiPMDigitizer, theHOSiPMResponse, theZDCDigitizer, createJobs::tmp, and zdcgeo.

Referenced by checkGeometry().

609  {
610  const std::vector<DetId> &hbCells = theGeometry->getValidDetIds(DetId::Hcal, HcalBarrel);
611  const std::vector<DetId> &heCells = theGeometry->getValidDetIds(DetId::Hcal, HcalEndcap);
612  const std::vector<DetId> &hoCells = theGeometry->getValidDetIds(DetId::Hcal, HcalOuter);
613  const std::vector<DetId> &hfCells = theGeometry->getValidDetIds(DetId::Hcal, HcalForward);
614  const std::vector<DetId> &zdcCells = theGeometry->getValidDetIds(DetId::Calo, HcalZDCDetId::SubdetectorId);
615  // const std::vector<DetId>& hcalTrigCells =
616  // geometry->getValidDetIds(DetId::Hcal, HcalTriggerTower); const
617  // std::vector<DetId>& hcalCalib = geometry->getValidDetIds(DetId::Calo,
618  // HcalCastorDetId::SubdetectorId);
619  // std::cout<<"HcalDigitizer::CheckGeometry number of cells:
620  // "<<zdcCells.size()<<std::endl;
621  if (zdcCells.empty())
622  zdcgeo = false;
623  if (hbCells.empty() && heCells.empty())
624  hbhegeo = false;
625  if (hoCells.empty())
626  hogeo = false;
627  if (hfCells.empty())
628  hfgeo = false;
629  // combine HB & HE
630 
631  hbheCells = hbCells;
632  if (!killHE_) {
633  hbheCells.insert(hbheCells.end(), heCells.begin(), heCells.end());
634  }
635  // handle mixed QIE8/11 scenario in HBHE
636  buildHBHEQIECells(hbheCells, eventSetup);
639 
640  if (theHOSiPMDigitizer) {
641  buildHOSiPMCells(hoCells, eventSetup);
642  if (theHOSiPMResponse)
643  theHOSiPMResponse->setDetIds(hoCells);
644  }
645 
646  // handle mixed QIE8/10 scenario in HF
647  buildHFQIECells(hfCells, eventSetup);
648 
649  theZDCDigitizer->setDetIds(zdcCells);
650 
651  // fill test hits collection if desired and empty
652  if (injectTestHits_ && injectedHits_.empty() && !injectedHitsCells_.empty() && !injectedHitsEnergy_.empty()) {
653  // make list of specified cells if desired
654  std::vector<DetId> testCells;
655  if (injectedHitsCells_.size() >= 4) {
656  testCells.reserve(injectedHitsCells_.size() / 4);
657  for (unsigned ic = 0; ic < injectedHitsCells_.size(); ic += 4) {
658  if (ic + 4 > injectedHitsCells_.size())
659  break;
660  testCells.push_back(HcalDetId((HcalSubdetector)injectedHitsCells_[ic],
661  injectedHitsCells_[ic + 1],
662  injectedHitsCells_[ic + 2],
663  injectedHitsCells_[ic + 3]));
664  }
665  } else {
666  int testSubdet = injectedHitsCells_[0];
667  if (testSubdet == HcalBarrel)
668  testCells = hbCells;
669  else if (testSubdet == HcalEndcap)
670  testCells = heCells;
671  else if (testSubdet == HcalForward)
672  testCells = hfCells;
673  else if (testSubdet == HcalOuter)
674  testCells = hoCells;
675  else
676  throw cms::Exception("Configuration") << "Unknown subdet " << testSubdet << " for HCAL test hit injection";
677  }
678  bool useHitTimes = (injectedHitsTime_.size() == injectedHitsEnergy_.size());
679  injectedHits_.reserve(testCells.size() * injectedHitsEnergy_.size());
680  for (unsigned ih = 0; ih < injectedHitsEnergy_.size(); ++ih) {
681  double tmp = useHitTimes ? injectedHitsTime_[ih] : 0.;
682  for (auto &aCell : testCells) {
683  injectedHits_.emplace_back(aCell, injectedHitsEnergy_[ih], tmp);
684  }
685  }
686  }
687 }
std::vector< int > injectedHitsCells_
void buildHFQIECells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
std::unique_ptr< ZDCDigitizer > theZDCDigitizer
void buildHBHEQIECells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
std::vector< double > injectedHitsEnergy_
std::unique_ptr< HODigitizer > theHOSiPMDigitizer
void buildHOSiPMCells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
std::unique_ptr< HcalSiPMHitResponse > theHBHESiPMResponse
HcalSubdetector
Definition: HcalAssistant.h:31
std::vector< double > injectedHitsTime_
static const int SubdetectorId
Definition: HcalZDCDetId.h:25
const CaloGeometry * theGeometry
Definition: HcalDigitizer.h:79
std::unique_ptr< HcalSiPMHitResponse > theHOSiPMResponse
std::vector< DetId > getValidDetIds() const
Get the list of all valid detector ids.
Definition: CaloGeometry.cc:75
std::vector< DetId > hbheCells
tmp
align.sh
Definition: createJobs.py:716
std::vector< DetId > theHBHEQIE11DetIds
std::vector< PCaloHit > injectedHits_

Member Data Documentation

bool HcalDigitizer::agingFlagHB
private

Definition at line 168 of file HcalDigitizer.h.

Referenced by setup().

bool HcalDigitizer::agingFlagHE
private

Definition at line 168 of file HcalDigitizer.h.

Referenced by setup().

bool HcalDigitizer::debugCS_
private

Definition at line 159 of file HcalDigitizer.h.

Referenced by finalizeEvent(), and HcalDigitizer().

double HcalDigitizer::deliveredLumi
private

Definition at line 167 of file HcalDigitizer.h.

Referenced by darkening(), and HcalDigitizer().

bool HcalDigitizer::doHFWindow_
private

Definition at line 157 of file HcalDigitizer.h.

Referenced by accumulateCaloHits().

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

Definition at line 149 of file HcalDigitizer.h.

Referenced by updateGeometry().

bool HcalDigitizer::hbhegeo
private

Definition at line 155 of file HcalDigitizer.h.

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

const HcalTimeSlew* HcalDigitizer::hcalTimeSlew_delay_
private

Definition at line 173 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setup().

bool HcalDigitizer::hfgeo
private

Definition at line 155 of file HcalDigitizer.h.

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

std::string HcalDigitizer::hitsProducer_
private

Definition at line 163 of file HcalDigitizer.h.

Referenced by accumulate(), and HcalDigitizer().

bool HcalDigitizer::hogeo
private

Definition at line 155 of file HcalDigitizer.h.

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

bool HcalDigitizer::ignoreTime_
private

Definition at line 160 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

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

Definition at line 178 of file HcalDigitizer.h.

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

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

Definition at line 177 of file HcalDigitizer.h.

Referenced by updateGeometry().

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

Definition at line 175 of file HcalDigitizer.h.

Referenced by updateGeometry().

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

Definition at line 176 of file HcalDigitizer.h.

Referenced by updateGeometry().

bool HcalDigitizer::injectTestHits_
private

Definition at line 161 of file HcalDigitizer.h.

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

bool HcalDigitizer::isHCAL
private

Definition at line 155 of file HcalDigitizer.h.

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

bool HcalDigitizer::isZDC
private

Definition at line 155 of file HcalDigitizer.h.

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

bool HcalDigitizer::killHE_
private

Definition at line 158 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), and updateGeometry().

const HBHEDarkening* HcalDigitizer::m_HBDarkening
private

Definition at line 169 of file HcalDigitizer.h.

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

const HBHEDarkening* HcalDigitizer::m_HEDarkening
private

Definition at line 170 of file HcalDigitizer.h.

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

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

Definition at line 171 of file HcalDigitizer.h.

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

bool HcalDigitizer::testNumbering_
private

Definition at line 156 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), and HcalDigitizer().

std::unique_ptr<HcalCoderFactory> HcalDigitizer::theCoderFactory
private

Definition at line 119 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and initializeEvent().

const CaloGeometry* HcalDigitizer::theGeometry
private

Definition at line 79 of file HcalDigitizer.h.

Referenced by checkGeometry(), and updateGeometry().

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

Definition at line 77 of file HcalDigitizer.h.

Referenced by checkGeometry().

std::unique_ptr<HcalAmplifier> HcalDigitizer::theHBHEAmplifier
private
std::unique_ptr<HBHEDigitizer> HcalDigitizer::theHBHEDigitizer
private
std::unique_ptr<HcalElectronicsSim> HcalDigitizer::theHBHEElectronicsSim
private

Definition at line 121 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setHBHENoiseSignalGenerator().

HBHEHitFilter HcalDigitizer::theHBHEHitFilter
private

Definition at line 128 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells(), and HcalDigitizer().

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

Definition at line 150 of file HcalDigitizer.h.

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

std::unique_ptr<QIE11Digitizer> HcalDigitizer::theHBHEQIE11Digitizer
private
std::unique_ptr<HcalElectronicsSim> HcalDigitizer::theHBHEQIE11ElectronicsSim
private

Definition at line 126 of file HcalDigitizer.h.

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

HBHEHitFilter HcalDigitizer::theHBHEQIE11HitFilter
private

Definition at line 129 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells(), and HcalDigitizer().

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

Definition at line 150 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells().

std::unique_ptr<CaloHitResponse> HcalDigitizer::theHBHEResponse
private

Definition at line 101 of file HcalDigitizer.h.

Referenced by checkGeometry(), and HcalDigitizer().

std::unique_ptr<HcalSiPMHitResponse> HcalDigitizer::theHBHESiPMResponse
private

Definition at line 102 of file HcalDigitizer.h.

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

std::unique_ptr<HcalAmplifier> HcalDigitizer::theHFAmplifier
private

Definition at line 112 of file HcalDigitizer.h.

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

std::unique_ptr<HFDigitizer> HcalDigitizer::theHFDigitizer
private
std::unique_ptr<HcalElectronicsSim> HcalDigitizer::theHFElectronicsSim
private

Definition at line 122 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setHFNoiseSignalGenerator().

HFHitFilter HcalDigitizer::theHFHitFilter
private

Definition at line 130 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

std::unique_ptr<HcalAmplifier> HcalDigitizer::theHFQIE10Amplifier
private

Definition at line 115 of file HcalDigitizer.h.

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

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

Definition at line 153 of file HcalDigitizer.h.

Referenced by buildHFQIECells(), and finalizeEvent().

std::unique_ptr<QIE10Digitizer> HcalDigitizer::theHFQIE10Digitizer
private
std::unique_ptr<HcalElectronicsSim> HcalDigitizer::theHFQIE10ElectronicsSim
private

Definition at line 125 of file HcalDigitizer.h.

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

HFHitFilter HcalDigitizer::theHFQIE10HitFilter
private

Definition at line 131 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

std::unique_ptr<CaloHitResponse> HcalDigitizer::theHFQIE10Response
private

Definition at line 106 of file HcalDigitizer.h.

Referenced by checkGeometry(), and HcalDigitizer().

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

Definition at line 153 of file HcalDigitizer.h.

Referenced by buildHFQIECells().

std::unique_ptr<CaloHitResponse> HcalDigitizer::theHFResponse
private

Definition at line 105 of file HcalDigitizer.h.

Referenced by checkGeometry(), and HcalDigitizer().

std::unique_ptr<HcalAmplifier> HcalDigitizer::theHOAmplifier
private

Definition at line 113 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), initializeEvent(), setHONoiseSignalGenerator(), and setup().

std::unique_ptr<HODigitizer> HcalDigitizer::theHODigitizer
private
std::unique_ptr<HcalElectronicsSim> HcalDigitizer::theHOElectronicsSim
private

Definition at line 123 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setHONoiseSignalGenerator().

HOHitFilter HcalDigitizer::theHOHitFilter
private

Definition at line 132 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

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

Definition at line 151 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells().

std::unique_ptr<CaloHitResponse> HcalDigitizer::theHOResponse
private

Definition at line 103 of file HcalDigitizer.h.

Referenced by checkGeometry(), and HcalDigitizer().

int HcalDigitizer::theHOSiPMCode
private

Definition at line 165 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

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

Definition at line 152 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells().

std::unique_ptr<HODigitizer> HcalDigitizer::theHOSiPMDigitizer
private
HOHitFilter HcalDigitizer::theHOSiPMHitFilter
private

Definition at line 133 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

std::unique_ptr<HcalSiPMHitResponse> HcalDigitizer::theHOSiPMResponse
private

Definition at line 104 of file HcalDigitizer.h.

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

std::unique_ptr<HPDIonFeedbackSim> HcalDigitizer::theIonFeedback
private

Definition at line 118 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

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

Definition at line 80 of file HcalDigitizer.h.

Referenced by checkGeometry().

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

Definition at line 78 of file HcalDigitizer.h.

Referenced by checkGeometry().

std::unique_ptr<HcalHitRelabeller> HcalDigitizer::theRelabeller
private

Definition at line 145 of file HcalDigitizer.h.

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

HcalShapes HcalDigitizer::theShapes
private

Definition at line 99 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and initializeEvent().

std::unique_ptr<HcalTimeSlewSim> HcalDigitizer::theTimeSlewSim
private

Definition at line 136 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

std::unique_ptr<HcalAmplifier> HcalDigitizer::theZDCAmplifier
private

Definition at line 114 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), initializeEvent(), setup(), and setZDCNoiseSignalGenerator().

std::unique_ptr<ZDCDigitizer> HcalDigitizer::theZDCDigitizer
private
std::unique_ptr<HcalElectronicsSim> HcalDigitizer::theZDCElectronicsSim
private

Definition at line 124 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setZDCNoiseSignalGenerator().

ZDCHitFilter HcalDigitizer::theZDCHitFilter
private

Definition at line 134 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

std::unique_ptr<CaloHitResponse> HcalDigitizer::theZDCResponse
private

Definition at line 107 of file HcalDigitizer.h.

Referenced by checkGeometry(), and HcalDigitizer().

bool HcalDigitizer::zdcgeo
private

Definition at line 155 of file HcalDigitizer.h.

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