CMS 3D CMS Logo

GlobalRecHitsProducer.cc
Go to the documentation of this file.
1 
13 
15  : fName(""),
16  verbosity(0),
17  frequency(0),
18  label(""),
19  getAllProvenances(false),
20  printProvenanceInfo(false),
21  trackerHitAssociatorConfig_(iPSet, consumesCollector()),
22  count(0) {
23  std::string MsgLoggerCat = "GlobalRecHitsProducer_GlobalRecHitsProducer";
24 
25  // get information from parameter set
26  fName = iPSet.getUntrackedParameter<std::string>("Name");
27  verbosity = iPSet.getUntrackedParameter<int>("Verbosity");
28  frequency = iPSet.getUntrackedParameter<int>("Frequency");
29  label = iPSet.getParameter<std::string>("Label");
30  edm::ParameterSet m_Prov = iPSet.getParameter<edm::ParameterSet>("ProvenanceLookup");
31  getAllProvenances = m_Prov.getUntrackedParameter<bool>("GetAllProvenances");
32  printProvenanceInfo = m_Prov.getUntrackedParameter<bool>("PrintProvenanceInfo");
33 
34  //get Labels to use to extract information
35  ECalEBSrc_ = iPSet.getParameter<edm::InputTag>("ECalEBSrc");
36  ECalUncalEBSrc_ = iPSet.getParameter<edm::InputTag>("ECalUncalEBSrc");
37  ECalEESrc_ = iPSet.getParameter<edm::InputTag>("ECalEESrc");
38  ECalUncalEESrc_ = iPSet.getParameter<edm::InputTag>("ECalUncalEESrc");
39  ECalESSrc_ = iPSet.getParameter<edm::InputTag>("ECalESSrc");
40  HCalSrc_ = iPSet.getParameter<edm::InputTag>("HCalSrc");
41  SiStripSrc_ = iPSet.getParameter<edm::InputTag>("SiStripSrc");
42  SiPxlSrc_ = iPSet.getParameter<edm::InputTag>("SiPxlSrc");
43  MuDTSrc_ = iPSet.getParameter<edm::InputTag>("MuDTSrc");
44  MuDTSimSrc_ = iPSet.getParameter<edm::InputTag>("MuDTSimSrc");
45  MuCSCSrc_ = iPSet.getParameter<edm::InputTag>("MuCSCSrc");
46  MuRPCSrc_ = iPSet.getParameter<edm::InputTag>("MuRPCSrc");
47  MuRPCSimSrc_ = iPSet.getParameter<edm::InputTag>("MuRPCSimSrc");
48 
49  // fix for consumes
50  ECalUncalEBSrc_Token_ = consumes<EBUncalibratedRecHitCollection>(iPSet.getParameter<edm::InputTag>("ECalUncalEBSrc"));
51  ECalUncalEESrc_Token_ = consumes<EEUncalibratedRecHitCollection>(iPSet.getParameter<edm::InputTag>("ECalUncalEESrc"));
52  ECalEBSrc_Token_ = consumes<EBRecHitCollection>(iPSet.getParameter<edm::InputTag>("ECalEBSrc"));
53  ECalEESrc_Token_ = consumes<EERecHitCollection>(iPSet.getParameter<edm::InputTag>("ECalEESrc"));
54  ECalESSrc_Token_ = consumes<ESRecHitCollection>(iPSet.getParameter<edm::InputTag>("ECalESSrc"));
55  HCalSrc_Token_ = consumes<edm::PCaloHitContainer>(iPSet.getParameter<edm::InputTag>("HCalSrc"));
56  SiStripSrc_Token_ = consumes<SiStripMatchedRecHit2DCollection>(iPSet.getParameter<edm::InputTag>("SiStripSrc"));
57  SiPxlSrc_Token_ = consumes<SiPixelRecHitCollection>(iPSet.getParameter<edm::InputTag>("SiPxlSrc"));
58 
59  MuDTSrc_Token_ = consumes<DTRecHitCollection>(iPSet.getParameter<edm::InputTag>("MuDTSrc"));
60  MuDTSimSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("MuDTSimSrc"));
61 
62  MuCSCSrc_Token_ = consumes<CSCRecHit2DCollection>(iPSet.getParameter<edm::InputTag>("MuCSCSrc"));
63  MuCSCHits_Token_ = consumes<CrossingFrame<PSimHit>>(
64  edm::InputTag(std::string("mix"), iPSet.getParameter<std::string>("hitsProducer") + std::string("MuonCSCHits")));
65 
66  MuRPCSrc_Token_ = consumes<RPCRecHitCollection>(iPSet.getParameter<edm::InputTag>("MuRPCSrc"));
67  MuRPCSimSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("MuRPCSimSrc"));
68 
69  EBHits_Token_ = consumes<CrossingFrame<PCaloHit>>(
70  edm::InputTag(std::string("mix"), iPSet.getParameter<std::string>("hitsProducer") + std::string("EcalHitsEB")));
72  consumes<CrossingFrame<PCaloHit>>(edm::InputTag(std::string("mix"), iPSet.getParameter<std::string>("hitsProduc\
73 er") + std::string("EcalHitsEE")));
74 
75  // use value of first digit to determine default output level (inclusive)
76  // 0 is none, 1 is basic, 2 is fill output, 3 is gather output
77  verbosity %= 10;
78 
79  // create persistent object
80  produces<PGlobalRecHit>(label);
81 
82  // print out Parameter Set information being used
83  if (verbosity >= 0) {
84  edm::LogInfo(MsgLoggerCat) << "\n===============================\n"
85  << "Initialized as EDProducer with parameter values:\n"
86  << " Name = " << fName << "\n"
87  << " Verbosity = " << verbosity << "\n"
88  << " Frequency = " << frequency << "\n"
89  << " Label = " << label << "\n"
90  << " GetProv = " << getAllProvenances << "\n"
91  << " PrintProv = " << printProvenanceInfo << "\n"
92  << " ECalEBSrc = " << ECalEBSrc_.label() << ":" << ECalEBSrc_.instance() << "\n"
93  << " ECalUncalEBSrc = " << ECalUncalEBSrc_.label() << ":"
94  << ECalUncalEBSrc_.instance() << "\n"
95  << " ECalEESrc = " << ECalEESrc_.label() << ":" << ECalUncalEESrc_.instance()
96  << "\n"
97  << " ECalUncalEESrc = " << ECalUncalEESrc_.label() << ":" << ECalEESrc_.instance()
98  << "\n"
99  << " ECalESSrc = " << ECalESSrc_.label() << ":" << ECalESSrc_.instance() << "\n"
100  << " HCalSrc = " << HCalSrc_.label() << ":" << HCalSrc_.instance() << "\n"
101  << " SiStripSrc = " << SiStripSrc_.label() << ":" << SiStripSrc_.instance()
102  << "\n"
103  << " SiPixelSrc = " << SiPxlSrc_.label() << ":" << SiPxlSrc_.instance() << "\n"
104  << " MuDTSrc = " << MuDTSrc_.label() << ":" << MuDTSrc_.instance() << "\n"
105  << " MuDTSimSrc = " << MuDTSimSrc_.label() << ":" << MuDTSimSrc_.instance()
106  << "\n"
107  << " MuCSCSrc = " << MuCSCSrc_.label() << ":" << MuCSCSrc_.instance() << "\n"
108  << " MuRPCSrc = " << MuRPCSrc_.label() << ":" << MuRPCSrc_.instance() << "\n"
109  << " MuRPCSimSrc = " << MuRPCSimSrc_.label() << ":" << MuRPCSimSrc_.instance()
110  << "\n"
111  << "===============================\n";
112  }
113 }
114 
116 
118  std::string MsgLoggerCat = "GlobalRecHitsProducer_beginJob";
119 
120  // clear storage vectors
121  clear();
122  return;
123 }
124 
126  std::string MsgLoggerCat = "GlobalRecHitsProducer_endJob";
127  if (verbosity >= 0)
128  edm::LogInfo(MsgLoggerCat) << "Terminating having processed " << count << " events.";
129  return;
130 }
131 
133  std::string MsgLoggerCat = "GlobalRecHitsProducer_produce";
134 
135  // keep track of number of events processed
136  ++count;
137 
138  // get event id information
139  edm::RunNumber_t nrun = iEvent.id().run();
140  edm::EventNumber_t nevt = iEvent.id().event();
141 
142  if (verbosity > 0) {
143  edm::LogInfo(MsgLoggerCat) << "Processing run " << nrun << ", event " << nevt << " (" << count << " events total)";
144  } else if (verbosity == 0) {
145  if (nevt % frequency == 0 || nevt == 1) {
146  edm::LogInfo(MsgLoggerCat) << "Processing run " << nrun << ", event " << nevt << " (" << count
147  << " events total)";
148  }
149  }
150 
151  // clear event holders
152  clear();
153 
154  // look at information available in the event
155  if (getAllProvenances) {
156  std::vector<const edm::StableProvenance*> AllProv;
157  iEvent.getAllStableProvenance(AllProv);
158 
159  if (verbosity >= 0)
160  edm::LogInfo(MsgLoggerCat) << "Number of Provenances = " << AllProv.size();
161 
162  if (printProvenanceInfo && (verbosity >= 0)) {
163  TString eventout("\nProvenance info:\n");
164 
165  for (unsigned int i = 0; i < AllProv.size(); ++i) {
166  eventout += "\n ******************************";
167  eventout += "\n Module : ";
168  //eventout += (AllProv[i]->product).moduleLabel();
169  eventout += AllProv[i]->moduleLabel();
170  eventout += "\n ProductID : ";
171  //eventout += (AllProv[i]->product).productID_.id_;
172  eventout += AllProv[i]->productID().id();
173  eventout += "\n ClassName : ";
174  //eventout += (AllProv[i]->product).fullClassName_;
175  eventout += AllProv[i]->className();
176  eventout += "\n InstanceName : ";
177  //eventout += (AllProv[i]->product).productInstanceName_;
178  eventout += AllProv[i]->productInstanceName();
179  eventout += "\n BranchName : ";
180  //eventout += (AllProv[i]->product).branchName_;
181  eventout += AllProv[i]->branchName();
182  }
183  eventout += "\n ******************************\n";
184  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
185  printProvenanceInfo = false;
186  }
187  getAllProvenances = false;
188  }
189 
190  // call fill functions
191  // gather Ecal information from event
192  fillECal(iEvent, iSetup);
193  // gather Hcal information from event
194  fillHCal(iEvent, iSetup);
195  // gather Track information from event
196  fillTrk(iEvent, iSetup);
197  // gather Muon information from event
198  fillMuon(iEvent, iSetup);
199 
200  if (verbosity > 0)
201  edm::LogInfo(MsgLoggerCat) << "Done gathering data from event.";
202 
203  // produce object to put into event
204  std::unique_ptr<PGlobalRecHit> pOut(new PGlobalRecHit);
205 
206  if (verbosity > 2)
207  edm::LogInfo(MsgLoggerCat) << "Saving event contents:";
208 
209  // call store functions
210  // store ECal information in produce
211  storeECal(*pOut);
212  // store HCal information in produce
213  storeHCal(*pOut);
214  // store Track information in produce
215  storeTrk(*pOut);
216  // store Muon information in produce
217  storeMuon(*pOut);
218 
219  // store information in event
220  iEvent.put(std::move(pOut), label);
221 
222  return;
223 }
224 
226  std::string MsgLoggerCat = "GlobalRecHitsProducer_fillECal";
227 
228  TString eventout;
229  if (verbosity > 0)
230  eventout = "\nGathering info:";
231 
232  // extract crossing frame from event
233  //edm::Handle<CrossingFrame> crossingFrame;
235  //iEvent.getByType(crossingFrame);
236  //if (!crossingFrame.isValid()) {
237  // edm::LogWarning(MsgLoggerCat)
238  // << "Unable to find crossingFrame in event!";
239  // return;
240  //}
241 
243  //extract EB information
246  iEvent.getByToken(ECalUncalEBSrc_Token_, EcalUncalibRecHitEB);
247  if (!EcalUncalibRecHitEB.isValid()) {
248  edm::LogWarning(MsgLoggerCat) << "Unable to find EcalUncalRecHitEB in event!";
249  return;
250  }
251 
252  edm::Handle<EBRecHitCollection> EcalRecHitEB;
253  iEvent.getByToken(ECalEBSrc_Token_, EcalRecHitEB);
254  if (!EcalRecHitEB.isValid()) {
255  edm::LogWarning(MsgLoggerCat) << "Unable to find EcalRecHitEB in event!";
256  return;
257  }
258 
259  // loop over simhits
260  iEvent.getByToken(EBHits_Token_, crossingFrame);
261  if (!crossingFrame.isValid()) {
262  edm::LogWarning(MsgLoggerCat) << "Unable to find cal barrel crossingFrame in event!";
263  return;
264  }
265  //std::unique_ptr<MixCollection<PCaloHit> >
266  // barrelHits(new MixCollection<PCaloHit>
267  // (crossingFrame.product(), barrelHitsName));
268  std::unique_ptr<MixCollection<PCaloHit>> barrelHits(new MixCollection<PCaloHit>(crossingFrame.product()));
269 
270  // keep track of sum of simhit energy in each crystal
271  MapType ebSimMap;
272  for (MixCollection<PCaloHit>::MixItr hitItr = barrelHits->begin(); hitItr != barrelHits->end(); ++hitItr) {
273  EBDetId ebid = EBDetId(hitItr->id());
274 
275  uint32_t crystid = ebid.rawId();
276  ebSimMap[crystid] += hitItr->energy();
277  }
278 
279  int nEBRecHits = 0;
280  // loop over RecHits
281  const EBUncalibratedRecHitCollection* EBUncalibRecHit = EcalUncalibRecHitEB.product();
282  const EBRecHitCollection* EBRecHit = EcalRecHitEB.product();
283 
285  uncalibRecHit != EBUncalibRecHit->end();
286  ++uncalibRecHit) {
287  EBDetId EBid = EBDetId(uncalibRecHit->id());
288 
289  EcalRecHitCollection::const_iterator myRecHit = EBRecHit->find(EBid);
290 
291  if (myRecHit != EBRecHit->end()) {
292  ++nEBRecHits;
293  EBRE.push_back(myRecHit->energy());
294  EBSHE.push_back(ebSimMap[EBid.rawId()]);
295  }
296  }
297 
298  if (verbosity > 1) {
299  eventout += "\n Number of EBRecHits collected:............ ";
300  eventout += nEBRecHits;
301  }
302 
304  //extract EE information
307  iEvent.getByToken(ECalUncalEESrc_Token_, EcalUncalibRecHitEE);
308  if (!EcalUncalibRecHitEE.isValid()) {
309  edm::LogWarning(MsgLoggerCat) << "Unable to find EcalUncalRecHitEE in event!";
310  return;
311  }
312 
313  edm::Handle<EERecHitCollection> EcalRecHitEE;
314  iEvent.getByToken(ECalEESrc_Token_, EcalRecHitEE);
315  if (!EcalRecHitEE.isValid()) {
316  edm::LogWarning(MsgLoggerCat) << "Unable to find EcalRecHitEE in event!";
317  return;
318  }
319 
320  // loop over simhits
321  iEvent.getByToken(EEHits_Token_, crossingFrame);
322  if (!crossingFrame.isValid()) {
323  edm::LogWarning(MsgLoggerCat) << "Unable to find cal endcap crossingFrame in event!";
324  return;
325  }
326  //std::unique_ptr<MixCollection<PCaloHit> >
327  // endcapHits(new MixCollection<PCaloHit>
328  // (crossingFrame.product(), endcapHitsName));
329  std::unique_ptr<MixCollection<PCaloHit>> endcapHits(new MixCollection<PCaloHit>(crossingFrame.product()));
330 
331  // keep track of sum of simhit energy in each crystal
332  MapType eeSimMap;
333  for (MixCollection<PCaloHit>::MixItr hitItr = endcapHits->begin(); hitItr != endcapHits->end(); ++hitItr) {
334  EEDetId eeid = EEDetId(hitItr->id());
335 
336  uint32_t crystid = eeid.rawId();
337  eeSimMap[crystid] += hitItr->energy();
338  }
339 
340  int nEERecHits = 0;
341  // loop over RecHits
342  const EEUncalibratedRecHitCollection* EEUncalibRecHit = EcalUncalibRecHitEE.product();
343  const EERecHitCollection* EERecHit = EcalRecHitEE.product();
344 
346  uncalibRecHit != EEUncalibRecHit->end();
347  ++uncalibRecHit) {
348  EEDetId EEid = EEDetId(uncalibRecHit->id());
349 
350  EcalRecHitCollection::const_iterator myRecHit = EERecHit->find(EEid);
351 
352  if (myRecHit != EERecHit->end()) {
353  ++nEERecHits;
354  EERE.push_back(myRecHit->energy());
355  EESHE.push_back(eeSimMap[EEid.rawId()]);
356  }
357  }
358 
359  if (verbosity > 1) {
360  eventout += "\n Number of EERecHits collected:............ ";
361  eventout += nEERecHits;
362  }
363 
365  //extract ES information
367  edm::Handle<ESRecHitCollection> EcalRecHitES;
368  iEvent.getByToken(ECalESSrc_Token_, EcalRecHitES);
369  if (!EcalRecHitES.isValid()) {
370  edm::LogWarning(MsgLoggerCat) << "Unable to find EcalRecHitES in event!";
371  return;
372  }
373 
374  // loop over simhits
375  iEvent.getByToken(ESHits_Token_, crossingFrame);
376  if (!crossingFrame.isValid()) {
377  edm::LogWarning(MsgLoggerCat) << "Unable to find cal preshower crossingFrame in event!";
378  return;
379  }
380  //std::unique_ptr<MixCollection<PCaloHit> >
381  // preshowerHits(new MixCollection<PCaloHit>
382  // (crossingFrame.product(), preshowerHitsName));
383  std::unique_ptr<MixCollection<PCaloHit>> preshowerHits(new MixCollection<PCaloHit>(crossingFrame.product()));
384 
385  // keep track of sum of simhit energy in each crystal
386  MapType esSimMap;
387  for (MixCollection<PCaloHit>::MixItr hitItr = preshowerHits->begin(); hitItr != preshowerHits->end(); ++hitItr) {
388  ESDetId esid = ESDetId(hitItr->id());
389 
390  uint32_t crystid = esid.rawId();
391  esSimMap[crystid] += hitItr->energy();
392  }
393 
394  int nESRecHits = 0;
395  // loop over RecHits
396  const ESRecHitCollection* ESRecHit = EcalRecHitES.product();
397  for (EcalRecHitCollection::const_iterator recHit = ESRecHit->begin(); recHit != ESRecHit->end(); ++recHit) {
398  ESDetId ESid = ESDetId(recHit->id());
399 
400  ++nESRecHits;
401  ESRE.push_back(recHit->energy());
402  ESSHE.push_back(esSimMap[ESid.rawId()]);
403  }
404 
405  if (verbosity > 1) {
406  eventout += "\n Number of ESRecHits collected:............ ";
407  eventout += nESRecHits;
408  }
409 
410  if (verbosity > 0)
411  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
412 
413  return;
414 }
415 
417  std::string MsgLoggerCat = "GlobalRecHitsProducer_storeECal";
418 
419  if (verbosity > 2) {
420  TString eventout("\n nEBRecHits = ");
421  eventout += EBRE.size();
422  for (unsigned int i = 0; i < EBRE.size(); ++i) {
423  eventout += "\n (RE, SHE) = (";
424  eventout += EBRE[i];
425  eventout += ", ";
426  eventout += EBSHE[i];
427  eventout += ")";
428  }
429  eventout += "\n nEERecHits = ";
430  eventout += EERE.size();
431  for (unsigned int i = 0; i < EERE.size(); ++i) {
432  eventout += "\n (RE, SHE) = (";
433  eventout += EERE[i];
434  eventout += ", ";
435  eventout += EESHE[i];
436  eventout += ")";
437  }
438  eventout += "\n nESRecHits = ";
439  eventout += ESRE.size();
440  for (unsigned int i = 0; i < ESRE.size(); ++i) {
441  eventout += "\n (RE, SHE) = (";
442  eventout += ESRE[i];
443  eventout += ", ";
444  eventout += ESSHE[i];
445  eventout += ")";
446  }
447  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
448  }
449 
450  product.putEBCalRecHits(EBRE, EBSHE);
451  product.putEECalRecHits(EERE, EESHE);
452  product.putESCalRecHits(ESRE, ESSHE);
453 
454  return;
455 }
456 
458  std::string MsgLoggerCat = "GlobalRecHitsProducer_fillHCal";
459 
460  TString eventout;
461  if (verbosity > 0)
462  eventout = "\nGathering info:";
463 
464  // get geometry
466  iSetup.get<CaloGeometryRecord>().get(geometry);
467  if (!geometry.isValid()) {
468  edm::LogWarning(MsgLoggerCat) << "Unable to find CaloGeometry in event!";
469  return;
470  }
471 
473  // extract simhit info
476  iEvent.getByToken(HCalSrc_Token_, hcalHits);
477  if (!hcalHits.isValid()) {
478  edm::LogWarning(MsgLoggerCat) << "Unable to find hcalHits in event!";
479  return;
480  }
481  const edm::PCaloHitContainer* simhitResult = hcalHits.product();
482 
483  MapType fHBEnergySimHits;
484  MapType fHEEnergySimHits;
485  MapType fHOEnergySimHits;
486  MapType fHFEnergySimHits;
487  for (std::vector<PCaloHit>::const_iterator simhits = simhitResult->begin(); simhits != simhitResult->end();
488  ++simhits) {
489  HcalDetId detId(simhits->id());
490  uint32_t cellid = detId.rawId();
491 
492  if (detId.subdet() == sdHcalBrl) {
493  fHBEnergySimHits[cellid] += simhits->energy();
494  }
495  if (detId.subdet() == sdHcalEC) {
496  fHEEnergySimHits[cellid] += simhits->energy();
497  }
498  if (detId.subdet() == sdHcalOut) {
499  fHOEnergySimHits[cellid] += simhits->energy();
500  }
501  if (detId.subdet() == sdHcalFwd) {
502  fHFEnergySimHits[cellid] += simhits->energy();
503  }
504  }
505 
506  // max values to be used (HO is found in HB)
507  Double_t maxHBEnergy = 0.;
508  Double_t maxHEEnergy = 0.;
509  Double_t maxHFEnergy = 0.;
510 
511  Double_t maxHBPhi = -1000.;
512  Double_t maxHEPhi = -1000.;
513  Double_t maxHOPhi = -1000.;
514  Double_t maxHFPhi = -1000.;
515 
516  Double_t maxHBEta = -1000.;
517  Double_t maxHEEta = -1000.;
518  Double_t maxHOEta = -1000.;
519  Double_t maxHFEta = -1000.;
520 
521  Double_t PI = 3.141592653589;
522 
524  // get HBHE information
526  std::vector<edm::Handle<HBHERecHitCollection>> hbhe;
527  iEvent.getManyByType(hbhe);
528  if (!hbhe[0].isValid()) {
529  edm::LogWarning(MsgLoggerCat) << "Unable to find any HBHERecHitCollections in event!";
530  return;
531  }
532  std::vector<edm::Handle<HBHERecHitCollection>>::iterator ihbhe;
533  const CaloGeometry* geo = geometry.product();
534 
535  int iHB = 0;
536  int iHE = 0;
537  for (ihbhe = hbhe.begin(); ihbhe != hbhe.end(); ++ihbhe) {
538  // find max values
539  for (HBHERecHitCollection::const_iterator jhbhe = (*ihbhe)->begin(); jhbhe != (*ihbhe)->end(); ++jhbhe) {
540  HcalDetId cell(jhbhe->id());
541 
542  if (cell.subdet() == sdHcalBrl) {
543  const HcalGeometry* cellGeometry =
544  dynamic_cast<const HcalGeometry*>(geo->getSubdetectorGeometry(DetId::Hcal, cell.subdet()));
545  double fEta = cellGeometry->getPosition(cell).eta();
546  double fPhi = cellGeometry->getPosition(cell).phi();
547  if ((jhbhe->energy()) > maxHBEnergy) {
548  maxHBEnergy = jhbhe->energy();
549  maxHBPhi = fPhi;
550  maxHOPhi = maxHBPhi;
551  maxHBEta = fEta;
552  maxHOEta = maxHBEta;
553  }
554  }
555 
556  if (cell.subdet() == sdHcalEC) {
557  const HcalGeometry* cellGeometry =
558  dynamic_cast<const HcalGeometry*>(geo->getSubdetectorGeometry(DetId::Hcal, cell.subdet()));
559  double fEta = cellGeometry->getPosition(cell).eta();
560  double fPhi = cellGeometry->getPosition(cell).phi();
561  if ((jhbhe->energy()) > maxHEEnergy) {
562  maxHEEnergy = jhbhe->energy();
563  maxHEPhi = fPhi;
564  maxHEEta = fEta;
565  }
566  }
567  } // end find max values
568 
569  for (HBHERecHitCollection::const_iterator jhbhe = (*ihbhe)->begin(); jhbhe != (*ihbhe)->end(); ++jhbhe) {
570  HcalDetId cell(jhbhe->id());
571 
572  if (cell.subdet() == sdHcalBrl) {
573  ++iHB;
574 
575  const HcalGeometry* cellGeometry =
576  dynamic_cast<const HcalGeometry*>(geo->getSubdetectorGeometry(DetId::Hcal, cell.subdet()));
577  double fEta = cellGeometry->getPosition(cell).eta();
578  double fPhi = cellGeometry->getPosition(cell).phi();
579 
580  float deltaphi = maxHBPhi - fPhi;
581  if (fPhi > maxHBPhi) {
582  deltaphi = fPhi - maxHBPhi;
583  }
584  if (deltaphi > PI) {
585  deltaphi = 2.0 * PI - deltaphi;
586  }
587  float deltaeta = fEta - maxHBEta;
588  Double_t r = sqrt(deltaeta * deltaeta + deltaphi * deltaphi);
589 
590  HBCalREC.push_back(jhbhe->energy());
591  HBCalR.push_back(r);
592  HBCalSHE.push_back(fHBEnergySimHits[cell.rawId()]);
593  }
594 
595  if (cell.subdet() == sdHcalEC) {
596  ++iHE;
597 
598  const HcalGeometry* cellGeometry =
599  dynamic_cast<const HcalGeometry*>(geo->getSubdetectorGeometry(DetId::Hcal, cell.subdet()));
600  double fEta = cellGeometry->getPosition(cell).eta();
601  double fPhi = cellGeometry->getPosition(cell).phi();
602 
603  float deltaphi = maxHEPhi - fPhi;
604  if (fPhi > maxHEPhi) {
605  deltaphi = fPhi - maxHEPhi;
606  }
607  if (deltaphi > PI) {
608  deltaphi = 2.0 * PI - deltaphi;
609  }
610  float deltaeta = fEta - maxHEEta;
611  Double_t r = sqrt(deltaeta * deltaeta + deltaphi * deltaphi);
612 
613  HECalREC.push_back(jhbhe->energy());
614  HECalR.push_back(r);
615  HECalSHE.push_back(fHEEnergySimHits[cell.rawId()]);
616  }
617  }
618  } // end loop through collection
619 
620  if (verbosity > 1) {
621  eventout += "\n Number of HBRecHits collected:............ ";
622  eventout += iHB;
623  }
624 
625  if (verbosity > 1) {
626  eventout += "\n Number of HERecHits collected:............ ";
627  eventout += iHE;
628  }
629 
631  // get HF information
633  std::vector<edm::Handle<HFRecHitCollection>> hf;
634  iEvent.getManyByType(hf);
635  if (!hf[0].isValid()) {
636  edm::LogWarning(MsgLoggerCat) << "Unable to find any HFRecHitCollections in event!";
637  return;
638  }
639  std::vector<edm::Handle<HFRecHitCollection>>::iterator ihf;
640 
641  int iHF = 0;
642  for (ihf = hf.begin(); ihf != hf.end(); ++ihf) {
643  // find max values
644  for (HFRecHitCollection::const_iterator jhf = (*ihf)->begin(); jhf != (*ihf)->end(); ++jhf) {
645  HcalDetId cell(jhf->id());
646 
647  if (cell.subdet() == sdHcalFwd) {
648  auto cellGeometry = geometry->getSubdetectorGeometry(cell)->getGeometry(cell);
649  double fEta = cellGeometry->getPosition().eta();
650  double fPhi = cellGeometry->getPosition().phi();
651  if ((jhf->energy()) > maxHFEnergy) {
652  maxHFEnergy = jhf->energy();
653  maxHFPhi = fPhi;
654  maxHFEta = fEta;
655  }
656  }
657  } // end find max values
658 
659  for (HFRecHitCollection::const_iterator jhf = (*ihf)->begin(); jhf != (*ihf)->end(); ++jhf) {
660  HcalDetId cell(jhf->id());
661 
662  if (cell.subdet() == sdHcalFwd) {
663  ++iHF;
664 
665  auto cellGeometry = geometry->getSubdetectorGeometry(cell)->getGeometry(cell);
666  double fEta = cellGeometry->getPosition().eta();
667  double fPhi = cellGeometry->getPosition().phi();
668 
669  float deltaphi = maxHBPhi - fPhi;
670  if (fPhi > maxHFPhi) {
671  deltaphi = fPhi - maxHFPhi;
672  }
673  if (deltaphi > PI) {
674  deltaphi = 2.0 * PI - deltaphi;
675  }
676  float deltaeta = fEta - maxHFEta;
677  Double_t r = sqrt(deltaeta * deltaeta + deltaphi * deltaphi);
678 
679  HFCalREC.push_back(jhf->energy());
680  HFCalR.push_back(r);
681  HFCalSHE.push_back(fHFEnergySimHits[cell.rawId()]);
682  }
683  }
684  } // end loop through collection
685 
686  if (verbosity > 1) {
687  eventout += "\n Number of HFDigis collected:.............. ";
688  eventout += iHF;
689  }
690 
692  // get HO information
694  std::vector<edm::Handle<HORecHitCollection>> ho;
695  iEvent.getManyByType(ho);
696  if (!ho[0].isValid()) {
697  edm::LogWarning(MsgLoggerCat) << "Unable to find any HORecHitCollections in event!";
698  return;
699  }
700  std::vector<edm::Handle<HORecHitCollection>>::iterator iho;
701 
702  int iHO = 0;
703  for (iho = ho.begin(); iho != ho.end(); ++iho) {
704  for (HORecHitCollection::const_iterator jho = (*iho)->begin(); jho != (*iho)->end(); ++jho) {
705  HcalDetId cell(jho->id());
706 
707  if (cell.subdet() == sdHcalOut) {
708  ++iHO;
709 
710  auto cellGeometry = geometry->getSubdetectorGeometry(cell)->getGeometry(cell);
711  double fEta = cellGeometry->getPosition().eta();
712  double fPhi = cellGeometry->getPosition().phi();
713 
714  float deltaphi = maxHOPhi - fPhi;
715  if (fPhi > maxHOPhi) {
716  deltaphi = fPhi - maxHOPhi;
717  }
718  if (deltaphi > PI) {
719  deltaphi = 2.0 * PI - deltaphi;
720  }
721  float deltaeta = fEta - maxHOEta;
722  Double_t r = sqrt(deltaeta * deltaeta + deltaphi * deltaphi);
723 
724  HOCalREC.push_back(jho->energy());
725  HOCalR.push_back(r);
726  HOCalSHE.push_back(fHOEnergySimHits[cell.rawId()]);
727  }
728  }
729  } // end loop through collection
730 
731  if (verbosity > 1) {
732  eventout += "\n Number of HODigis collected:.............. ";
733  eventout += iHO;
734  }
735 
736  if (verbosity > 0)
737  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
738 
739  return;
740 }
741 
743  std::string MsgLoggerCat = "GlobalRecHitsProducer_storeHCal";
744 
745  if (verbosity > 2) {
746  TString eventout("\n nHBRecHits = ");
747  eventout += HBCalREC.size();
748  for (unsigned int i = 0; i < HBCalREC.size(); ++i) {
749  eventout += "\n (REC, R, SHE) = (";
750  eventout += HBCalREC[i];
751  eventout += ", ";
752  eventout += HBCalR[i];
753  eventout += ", ";
754  eventout += HBCalSHE[i];
755  eventout += ")";
756  }
757  eventout += "\n nHERecHits = ";
758  eventout += HECalREC.size();
759  for (unsigned int i = 0; i < HECalREC.size(); ++i) {
760  eventout += "\n (REC, R, SHE) = (";
761  eventout += HECalREC[i];
762  eventout += ", ";
763  eventout += HECalR[i];
764  eventout += ", ";
765  eventout += HECalSHE[i];
766  eventout += ")";
767  }
768  eventout += "\n nHFRecHits = ";
769  eventout += HFCalREC.size();
770  for (unsigned int i = 0; i < HFCalREC.size(); ++i) {
771  eventout += "\n (REC, R, SHE) = (";
772  eventout += HFCalREC[i];
773  eventout += ", ";
774  eventout += HFCalR[i];
775  eventout += ", ";
776  eventout += HFCalSHE[i];
777  eventout += ")";
778  }
779  eventout += "\n nHORecHits = ";
780  eventout += HOCalREC.size();
781  for (unsigned int i = 0; i < HOCalREC.size(); ++i) {
782  eventout += "\n (REC, R, SHE) = (";
783  eventout += HOCalREC[i];
784  eventout += ", ";
785  eventout += HOCalR[i];
786  eventout += ", ";
787  eventout += HOCalSHE[i];
788  eventout += ")";
789  }
790 
791  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
792  }
793 
798 
799  return;
800 }
801 
803  //Retrieve tracker topology from geometry
804  edm::ESHandle<TrackerTopology> tTopoHandle;
805  iSetup.get<TrackerTopologyRcd>().get(tTopoHandle);
806  const TrackerTopology* const tTopo = tTopoHandle.product();
807 
808  std::string MsgLoggerCat = "GlobalRecHitsProducer_fillTrk";
809 
810  TString eventout;
811  if (verbosity > 0)
812  eventout = "\nGathering info:";
813 
814  // get strip information
816  iEvent.getByToken(SiStripSrc_Token_, rechitsmatched);
817  if (!rechitsmatched.isValid()) {
818  edm::LogWarning(MsgLoggerCat) << "Unable to find stripmatchedrechits in event!";
819  return;
820  }
821 
823 
825  iSetup.get<TrackerDigiGeometryRecord>().get(pDD);
826  if (!pDD.isValid()) {
827  edm::LogWarning(MsgLoggerCat) << "Unable to find TrackerDigiGeometry in event!";
828  return;
829  }
830  const TrackerGeometry& tracker(*pDD);
831 
832  int nStripBrl = 0, nStripFwd = 0;
833 
834  // loop over det units
835  for (TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); ++it) {
836  uint32_t myid = ((*it)->geographicalId()).rawId();
837  DetId detid = ((*it)->geographicalId());
838 
839  //loop over rechits-matched in the same subdetector
840  SiStripMatchedRecHit2DCollection::const_iterator rechitmatchedMatch = rechitsmatched->find(detid);
841 
842  if (rechitmatchedMatch != rechitsmatched->end()) {
843  SiStripMatchedRecHit2DCollection::DetSet rechitmatchedRange = *rechitmatchedMatch;
844  SiStripMatchedRecHit2DCollection::DetSet::const_iterator rechitmatchedRangeIteratorBegin =
845  rechitmatchedRange.begin();
846  SiStripMatchedRecHit2DCollection::DetSet::const_iterator rechitmatchedRangeIteratorEnd = rechitmatchedRange.end();
847  SiStripMatchedRecHit2DCollection::DetSet::const_iterator itermatched = rechitmatchedRangeIteratorBegin;
848 
849  for (itermatched = rechitmatchedRangeIteratorBegin; itermatched != rechitmatchedRangeIteratorEnd; ++itermatched) {
850  SiStripMatchedRecHit2D const rechit = *itermatched;
851  LocalPoint position = rechit.localPosition();
852 
853  float mindist = 999999.;
854  float distx = 999999.;
855  float disty = 999999.;
856  float dist = 999999.;
857  std::pair<LocalPoint, LocalVector> closestPair;
858  matched.clear();
859 
860  float rechitmatchedx = position.x();
861  float rechitmatchedy = position.y();
862 
863  matched = associate.associateHit(rechit);
864 
865  if (!matched.empty()) {
866  //project simhit;
867  const GluedGeomDet* gluedDet = (const GluedGeomDet*)tracker.idToDet(rechit.geographicalId());
868  const StripGeomDetUnit* partnerstripdet = (StripGeomDetUnit*)gluedDet->stereoDet();
869  std::pair<LocalPoint, LocalVector> hitPair;
870 
871  for (std::vector<PSimHit>::const_iterator m = matched.begin(); m != matched.end(); m++) {
872  //project simhit;
873  hitPair = projectHit((*m), partnerstripdet, gluedDet->surface());
874  distx = fabs(rechitmatchedx - hitPair.first.x());
875  disty = fabs(rechitmatchedy - hitPair.first.y());
876  dist = sqrt(distx * distx + disty * disty);
877 
878  if (dist < mindist) {
879  mindist = dist;
880  closestPair = hitPair;
881  }
882  }
883 
884  // get TIB
885  if (detid.subdetId() == sdSiTIB) {
886  ++nStripBrl;
887 
888  if (tTopo->tibLayer(myid) == 1) {
889  TIBL1RX.push_back(rechitmatchedx);
890  TIBL1RY.push_back(rechitmatchedy);
891  TIBL1SX.push_back(closestPair.first.x());
892  TIBL1SY.push_back(closestPair.first.y());
893  }
894  if (tTopo->tibLayer(myid) == 2) {
895  TIBL2RX.push_back(rechitmatchedx);
896  TIBL2RY.push_back(rechitmatchedy);
897  TIBL2SX.push_back(closestPair.first.x());
898  TIBL2SY.push_back(closestPair.first.y());
899  }
900  if (tTopo->tibLayer(myid) == 3) {
901  TIBL3RX.push_back(rechitmatchedx);
902  TIBL3RY.push_back(rechitmatchedy);
903  TIBL3SX.push_back(closestPair.first.x());
904  TIBL3SY.push_back(closestPair.first.y());
905  }
906  if (tTopo->tibLayer(myid) == 4) {
907  TIBL4RX.push_back(rechitmatchedx);
908  TIBL4RY.push_back(rechitmatchedy);
909  TIBL4SX.push_back(closestPair.first.x());
910  TIBL4SY.push_back(closestPair.first.y());
911  }
912  }
913 
914  // get TOB
915  if (detid.subdetId() == sdSiTOB) {
916  ++nStripBrl;
917 
918  if (tTopo->tobLayer(myid) == 1) {
919  TOBL1RX.push_back(rechitmatchedx);
920  TOBL1RY.push_back(rechitmatchedy);
921  TOBL1SX.push_back(closestPair.first.x());
922  TOBL1SY.push_back(closestPair.first.y());
923  }
924  if (tTopo->tobLayer(myid) == 2) {
925  TOBL2RX.push_back(rechitmatchedx);
926  TOBL2RY.push_back(rechitmatchedy);
927  TOBL2SX.push_back(closestPair.first.x());
928  TOBL2SY.push_back(closestPair.first.y());
929  }
930  if (tTopo->tobLayer(myid) == 3) {
931  TOBL3RX.push_back(rechitmatchedx);
932  TOBL3RY.push_back(rechitmatchedy);
933  TOBL3SX.push_back(closestPair.first.x());
934  TOBL3SY.push_back(closestPair.first.y());
935  }
936  if (tTopo->tobLayer(myid) == 4) {
937  TOBL4RX.push_back(rechitmatchedx);
938  TOBL4RY.push_back(rechitmatchedy);
939  TOBL4SX.push_back(closestPair.first.x());
940  TOBL4SY.push_back(closestPair.first.y());
941  }
942  }
943 
944  // get TID
945  if (detid.subdetId() == sdSiTID) {
946  ++nStripFwd;
947 
948  if (tTopo->tidWheel(myid) == 1) {
949  TIDW1RX.push_back(rechitmatchedx);
950  TIDW1RY.push_back(rechitmatchedy);
951  TIDW1SX.push_back(closestPair.first.x());
952  TIDW1SY.push_back(closestPair.first.y());
953  }
954  if (tTopo->tidWheel(myid) == 2) {
955  TIDW2RX.push_back(rechitmatchedx);
956  TIDW2RY.push_back(rechitmatchedy);
957  TIDW2SX.push_back(closestPair.first.x());
958  TIDW2SY.push_back(closestPair.first.y());
959  }
960  if (tTopo->tidWheel(myid) == 3) {
961  TIDW3RX.push_back(rechitmatchedx);
962  TIDW3RY.push_back(rechitmatchedy);
963  TIDW3SX.push_back(closestPair.first.x());
964  TIDW3SY.push_back(closestPair.first.y());
965  }
966  }
967 
968  // get TEC
969  if (detid.subdetId() == sdSiTEC) {
970  ++nStripFwd;
971 
972  if (tTopo->tecWheel(myid) == 1) {
973  TECW1RX.push_back(rechitmatchedx);
974  TECW1RY.push_back(rechitmatchedy);
975  TECW1SX.push_back(closestPair.first.x());
976  TECW1SY.push_back(closestPair.first.y());
977  }
978  if (tTopo->tecWheel(myid) == 2) {
979  TECW2RX.push_back(rechitmatchedx);
980  TECW2RY.push_back(rechitmatchedy);
981  TECW2SX.push_back(closestPair.first.x());
982  TECW2SY.push_back(closestPair.first.y());
983  }
984  if (tTopo->tecWheel(myid) == 3) {
985  TECW3RX.push_back(rechitmatchedx);
986  TECW3RY.push_back(rechitmatchedy);
987  TECW3SX.push_back(closestPair.first.x());
988  TECW3SY.push_back(closestPair.first.y());
989  }
990  if (tTopo->tecWheel(myid) == 4) {
991  TECW4RX.push_back(rechitmatchedx);
992  TECW4RY.push_back(rechitmatchedy);
993  TECW4SX.push_back(closestPair.first.x());
994  TECW4SY.push_back(closestPair.first.y());
995  }
996  if (tTopo->tecWheel(myid) == 5) {
997  TECW5RX.push_back(rechitmatchedx);
998  TECW5RY.push_back(rechitmatchedy);
999  TECW5SX.push_back(closestPair.first.x());
1000  TECW5SY.push_back(closestPair.first.y());
1001  }
1002  if (tTopo->tecWheel(myid) == 6) {
1003  TECW6RX.push_back(rechitmatchedx);
1004  TECW6RY.push_back(rechitmatchedy);
1005  TECW6SX.push_back(closestPair.first.x());
1006  TECW6SY.push_back(closestPair.first.y());
1007  }
1008  if (tTopo->tecWheel(myid) == 7) {
1009  TECW7RX.push_back(rechitmatchedx);
1010  TECW7RY.push_back(rechitmatchedy);
1011  TECW7SX.push_back(closestPair.first.x());
1012  TECW7SY.push_back(closestPair.first.y());
1013  }
1014  if (tTopo->tecWheel(myid) == 8) {
1015  TECW8RX.push_back(rechitmatchedx);
1016  TECW8RY.push_back(rechitmatchedy);
1017  TECW8SX.push_back(closestPair.first.x());
1018  TECW8SY.push_back(closestPair.first.y());
1019  }
1020  }
1021 
1022  } // end if matched empty
1023  }
1024  }
1025  } // end loop over det units
1026 
1027  if (verbosity > 1) {
1028  eventout += "\n Number of BrlStripRecHits collected:...... ";
1029  eventout += nStripBrl;
1030  }
1031 
1032  if (verbosity > 1) {
1033  eventout += "\n Number of FrwdStripRecHits collected:..... ";
1034  eventout += nStripFwd;
1035  }
1036 
1037  // get pixel information
1038  //Get RecHits
1040  iEvent.getByToken(SiPxlSrc_Token_, recHitColl);
1041  if (!recHitColl.isValid()) {
1042  edm::LogWarning(MsgLoggerCat) << "Unable to find SiPixelRecHitCollection in event!";
1043  return;
1044  }
1045 
1046  //Get event setup
1049  if (!geom.isValid()) {
1050  edm::LogWarning(MsgLoggerCat) << "Unable to find TrackerDigiGeometry in event!";
1051  return;
1052  }
1053  //const TrackerGeometry& theTracker(*geom);
1054 
1055  int nPxlBrl = 0, nPxlFwd = 0;
1056  //iterate over detunits
1057  for (TrackerGeometry::DetContainer::const_iterator it = geom->dets().begin(); it != geom->dets().end(); ++it) {
1058  uint32_t myid = ((*it)->geographicalId()).rawId();
1059  DetId detId = ((*it)->geographicalId());
1060  int subid = detId.subdetId();
1061 
1062  if (!((subid == sdPxlBrl) || (subid == sdPxlFwd)))
1063  continue;
1064 
1065  //const PixelGeomDetUnit * theGeomDet =
1066  // dynamic_cast<const PixelGeomDetUnit*>(theTracker.idToDet(detId) );
1067 
1068  SiPixelRecHitCollection::const_iterator pixeldet = recHitColl->find(detId);
1069  if (pixeldet == recHitColl->end())
1070  continue;
1071  SiPixelRecHitCollection::DetSet pixelrechitRange = *pixeldet;
1072  SiPixelRecHitCollection::DetSet::const_iterator pixelrechitRangeIteratorBegin = pixelrechitRange.begin();
1073  SiPixelRecHitCollection::DetSet::const_iterator pixelrechitRangeIteratorEnd = pixelrechitRange.end();
1074  SiPixelRecHitCollection::DetSet::const_iterator pixeliter = pixelrechitRangeIteratorBegin;
1075  std::vector<PSimHit> matched;
1076 
1077  //----Loop over rechits for this detId
1078  for (; pixeliter != pixelrechitRangeIteratorEnd; ++pixeliter) {
1079  matched.clear();
1080  matched = associate.associateHit(*pixeliter);
1081 
1082  if (!matched.empty()) {
1083  float closest = 9999.9;
1084  //std::vector<PSimHit>::const_iterator closestit = matched.begin();
1085  LocalPoint lp = pixeliter->localPosition();
1086  float rechit_x = lp.x();
1087  float rechit_y = lp.y();
1088 
1089  float sim_x = 0.;
1090  float sim_y = 0.;
1091 
1092  //loop over sim hits and fill closet
1093  for (std::vector<PSimHit>::const_iterator m = matched.begin(); m != matched.end(); ++m) {
1094  float sim_x1 = (*m).entryPoint().x();
1095  float sim_x2 = (*m).exitPoint().x();
1096  float sim_xpos = 0.5 * (sim_x1 + sim_x2);
1097 
1098  float sim_y1 = (*m).entryPoint().y();
1099  float sim_y2 = (*m).exitPoint().y();
1100  float sim_ypos = 0.5 * (sim_y1 + sim_y2);
1101 
1102  float x_res = fabs(sim_xpos - rechit_x);
1103  float y_res = fabs(sim_ypos - rechit_y);
1104 
1105  float dist = sqrt(x_res * x_res + y_res * y_res);
1106 
1107  if (dist < closest) {
1108  closest = dist;
1109  sim_x = sim_xpos;
1110  sim_y = sim_ypos;
1111  }
1112  } // end sim hit loop
1113 
1114  // get Barrel pixels
1115  if (subid == sdPxlBrl) {
1116  ++nPxlBrl;
1117 
1118  if (tTopo->pxbLayer(myid) == 1) {
1119  BRL1RX.push_back(rechit_x);
1120  BRL1RY.push_back(rechit_y);
1121  BRL1SX.push_back(sim_x);
1122  BRL1SY.push_back(sim_y);
1123  }
1124  if (tTopo->pxbLayer(myid) == 2) {
1125  BRL2RX.push_back(rechit_x);
1126  BRL2RY.push_back(rechit_y);
1127  BRL2SX.push_back(sim_x);
1128  BRL2SY.push_back(sim_y);
1129  }
1130  if (tTopo->pxbLayer(myid) == 3) {
1131  BRL3RX.push_back(rechit_x);
1132  BRL3RY.push_back(rechit_y);
1133  BRL3SX.push_back(sim_x);
1134  BRL3SY.push_back(sim_y);
1135  }
1136  }
1137 
1138  // get Forward pixels
1139  if (subid == sdPxlFwd) {
1140  ++nPxlFwd;
1141 
1142  if (tTopo->pxfDisk(myid) == 1) {
1143  if (tTopo->pxfSide(myid) == 1) {
1144  FWD1nRX.push_back(rechit_x);
1145  FWD1nRY.push_back(rechit_y);
1146  FWD1nSX.push_back(sim_x);
1147  FWD1nSY.push_back(sim_y);
1148  }
1149  if (tTopo->pxfSide(myid) == 2) {
1150  FWD1pRX.push_back(rechit_x);
1151  FWD1pRY.push_back(rechit_y);
1152  FWD1pSX.push_back(sim_x);
1153  FWD1pSY.push_back(sim_y);
1154  }
1155  }
1156  if (tTopo->pxfDisk(myid) == 2) {
1157  if (tTopo->pxfSide(myid) == 1) {
1158  FWD2nRX.push_back(rechit_x);
1159  FWD2nRY.push_back(rechit_y);
1160  FWD2nSX.push_back(sim_x);
1161  FWD2nSY.push_back(sim_y);
1162  }
1163  if (tTopo->pxfSide(myid) == 2) {
1164  FWD2pRX.push_back(rechit_x);
1165  FWD2pRY.push_back(rechit_y);
1166  FWD2pSX.push_back(sim_x);
1167  FWD2pSY.push_back(sim_y);
1168  }
1169  }
1170  }
1171  } // end matched emtpy
1172  } // <-----end rechit loop
1173  } // <------ end detunit loop
1174 
1175  if (verbosity > 1) {
1176  eventout += "\n Number of BrlPixelRecHits collected:...... ";
1177  eventout += nPxlBrl;
1178  }
1179 
1180  if (verbosity > 1) {
1181  eventout += "\n Number of FrwdPixelRecHits collected:..... ";
1182  eventout += nPxlFwd;
1183  }
1184 
1185  if (verbosity > 0)
1186  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1187 
1188  return;
1189 }
1190 
1192  std::string MsgLoggerCat = "GlobalRecHitsProducer_storeTrk";
1193 
1194  if (verbosity > 2) {
1195  // strip output
1196  TString eventout("\n nTIBL1 = ");
1197  eventout += TIBL1RX.size();
1198  for (unsigned int i = 0; i < TIBL1RX.size(); ++i) {
1199  eventout += "\n (RX, RY, SX, SY) = (";
1200  eventout += TIBL1RX[i];
1201  eventout += ", ";
1202  eventout += TIBL1RY[i];
1203  eventout += ", ";
1204  eventout += TIBL1SX[i];
1205  eventout += ", ";
1206  eventout += TIBL1SY[i];
1207  eventout += ")";
1208  }
1209  eventout += "\n nTIBL2 = ";
1210  eventout += TIBL2RX.size();
1211  for (unsigned int i = 0; i < TIBL2RX.size(); ++i) {
1212  eventout += "\n (RX, RY, SX, SY) = (";
1213  eventout += TIBL2RX[i];
1214  eventout += ", ";
1215  eventout += TIBL2RY[i];
1216  eventout += ", ";
1217  eventout += TIBL2SX[i];
1218  eventout += ", ";
1219  eventout += TIBL2SY[i];
1220  eventout += ")";
1221  }
1222  eventout += "\n nTIBL3 = ";
1223  eventout += TIBL3RX.size();
1224  for (unsigned int i = 0; i < TIBL3RX.size(); ++i) {
1225  eventout += "\n (RX, RY, SX, SY) = (";
1226  eventout += TIBL3RX[i];
1227  eventout += ", ";
1228  eventout += TIBL3RY[i];
1229  eventout += ", ";
1230  eventout += TIBL3SX[i];
1231  eventout += ", ";
1232  eventout += TIBL3SY[i];
1233  eventout += ")";
1234  }
1235  eventout += "\n nTIBL4 = ";
1236  eventout += TIBL4RX.size();
1237  for (unsigned int i = 0; i < TIBL4RX.size(); ++i) {
1238  eventout += "\n (RX, RY, SX, SY) = (";
1239  eventout += TIBL4RX[i];
1240  eventout += ", ";
1241  eventout += TIBL4RY[i];
1242  eventout += ", ";
1243  eventout += TIBL4SX[i];
1244  eventout += ", ";
1245  eventout += TIBL4SY[i];
1246  eventout += ")";
1247  }
1248  eventout += "\n nTOBL1 = ";
1249  eventout += TOBL1RX.size();
1250  for (unsigned int i = 0; i < TOBL1RX.size(); ++i) {
1251  eventout += "\n (RX, RY, SX, SY) = (";
1252  eventout += TOBL1RX[i];
1253  eventout += ", ";
1254  eventout += TOBL1RY[i];
1255  eventout += ", ";
1256  eventout += TOBL1SX[i];
1257  eventout += ", ";
1258  eventout += TOBL1SY[i];
1259  eventout += ")";
1260  }
1261  eventout += "\n nTOBL2 = ";
1262  eventout += TOBL2RX.size();
1263  for (unsigned int i = 0; i < TOBL2RX.size(); ++i) {
1264  eventout += "\n (RX, RY, SX, SY) = (";
1265  eventout += TOBL2RX[i];
1266  eventout += ", ";
1267  eventout += TOBL2RY[i];
1268  eventout += ", ";
1269  eventout += TOBL2SX[i];
1270  eventout += ", ";
1271  eventout += TOBL2SY[i];
1272  eventout += ")";
1273  }
1274  eventout += "\n nTOBL3 = ";
1275  eventout += TOBL3RX.size();
1276  for (unsigned int i = 0; i < TOBL3RX.size(); ++i) {
1277  eventout += "\n (RX, RY, SX, SY) = (";
1278  eventout += TOBL3RX[i];
1279  eventout += ", ";
1280  eventout += TOBL3RY[i];
1281  eventout += ", ";
1282  eventout += TOBL3SX[i];
1283  eventout += ", ";
1284  eventout += TOBL3SY[i];
1285  eventout += ")";
1286  }
1287  eventout += "\n nTOBL4 = ";
1288  eventout += TOBL4RX.size();
1289  for (unsigned int i = 0; i < TOBL4RX.size(); ++i) {
1290  eventout += "\n (RX, RY, SX, SY) = (";
1291  eventout += TOBL4RX[i];
1292  eventout += ", ";
1293  eventout += TOBL4RY[i];
1294  eventout += ", ";
1295  eventout += TOBL4SX[i];
1296  eventout += ", ";
1297  eventout += TOBL4SY[i];
1298  eventout += ")";
1299  }
1300  eventout += "\n nTIDW1 = ";
1301  eventout += TIDW1RX.size();
1302  for (unsigned int i = 0; i < TIDW1RX.size(); ++i) {
1303  eventout += "\n (RX, RY, SX, SY) = (";
1304  eventout += TIDW1RX[i];
1305  eventout += ", ";
1306  eventout += TIDW1RY[i];
1307  eventout += ", ";
1308  eventout += TIDW1SX[i];
1309  eventout += ", ";
1310  eventout += TIDW1SY[i];
1311  eventout += ")";
1312  }
1313  eventout += "\n nTIDW2 = ";
1314  eventout += TIDW2RX.size();
1315  for (unsigned int i = 0; i < TIDW2RX.size(); ++i) {
1316  eventout += "\n (RX, RY, SX, SY) = (";
1317  eventout += TIDW2RX[i];
1318  eventout += ", ";
1319  eventout += TIDW2RY[i];
1320  eventout += ", ";
1321  eventout += TIDW2SX[i];
1322  eventout += ", ";
1323  eventout += TIDW2SY[i];
1324  eventout += ")";
1325  }
1326  eventout += "\n nTIDW3 = ";
1327  eventout += TIDW3RX.size();
1328  for (unsigned int i = 0; i < TIDW3RX.size(); ++i) {
1329  eventout += "\n (RX, RY, SX, SY) = (";
1330  eventout += TIDW3RX[i];
1331  eventout += ", ";
1332  eventout += TIDW3RY[i];
1333  eventout += ", ";
1334  eventout += TIDW3SX[i];
1335  eventout += ", ";
1336  eventout += TIDW3SY[i];
1337  eventout += ")";
1338  }
1339  eventout += "\n nTECW1 = ";
1340  eventout += TECW1RX.size();
1341  for (unsigned int i = 0; i < TECW1RX.size(); ++i) {
1342  eventout += "\n (RX, RY, SX, SY) = (";
1343  eventout += TECW1RX[i];
1344  eventout += ", ";
1345  eventout += TECW1RY[i];
1346  eventout += ", ";
1347  eventout += TECW1SX[i];
1348  eventout += ", ";
1349  eventout += TECW1SY[i];
1350  eventout += ")";
1351  }
1352  eventout += "\n nTECW2 = ";
1353  eventout += TECW2RX.size();
1354  for (unsigned int i = 0; i < TECW2RX.size(); ++i) {
1355  eventout += "\n (RX, RY, SX, SY) = (";
1356  eventout += TECW2RX[i];
1357  eventout += ", ";
1358  eventout += TECW2RY[i];
1359  eventout += ", ";
1360  eventout += TECW2SX[i];
1361  eventout += ", ";
1362  eventout += TECW2SY[i];
1363  eventout += ")";
1364  }
1365  eventout += "\n nTECW3 = ";
1366  eventout += TECW3RX.size();
1367  for (unsigned int i = 0; i < TECW3RX.size(); ++i) {
1368  eventout += "\n (RX, RY, SX, SY) = (";
1369  eventout += TECW3RX[i];
1370  eventout += ", ";
1371  eventout += TECW3RY[i];
1372  eventout += ", ";
1373  eventout += TECW3SX[i];
1374  eventout += ", ";
1375  eventout += TECW3SY[i];
1376  eventout += ")";
1377  }
1378  eventout += "\n nTECW4 = ";
1379  eventout += TECW4RX.size();
1380  for (unsigned int i = 0; i < TECW4RX.size(); ++i) {
1381  eventout += "\n (RX, RY, SX, SY) = (";
1382  eventout += TECW4RX[i];
1383  eventout += ", ";
1384  eventout += TECW4RY[i];
1385  eventout += ", ";
1386  eventout += TECW4SX[i];
1387  eventout += ", ";
1388  eventout += TECW4SY[i];
1389  eventout += ")";
1390  }
1391  eventout += "\n nTECW5 = ";
1392  eventout += TECW5RX.size();
1393  for (unsigned int i = 0; i < TECW5RX.size(); ++i) {
1394  eventout += "\n (RX, RY, SX, SY) = (";
1395  eventout += TECW5RX[i];
1396  eventout += ", ";
1397  eventout += TECW5RY[i];
1398  eventout += ", ";
1399  eventout += TECW5SX[i];
1400  eventout += ", ";
1401  eventout += TECW5SY[i];
1402  eventout += ")";
1403  }
1404  eventout += "\n nTECW6 = ";
1405  eventout += TECW6RX.size();
1406  for (unsigned int i = 0; i < TECW6RX.size(); ++i) {
1407  eventout += "\n (RX, RY, SX, SY) = (";
1408  eventout += TECW6RX[i];
1409  eventout += ", ";
1410  eventout += TECW6RY[i];
1411  eventout += ", ";
1412  eventout += TECW6SX[i];
1413  eventout += ", ";
1414  eventout += TECW6SY[i];
1415  eventout += ")";
1416  }
1417  eventout += "\n nTECW7 = ";
1418  eventout += TECW7RX.size();
1419  for (unsigned int i = 0; i < TECW7RX.size(); ++i) {
1420  eventout += "\n (RX, RY, SX, SY) = (";
1421  eventout += TECW7RX[i];
1422  eventout += ", ";
1423  eventout += TECW7RY[i];
1424  eventout += ", ";
1425  eventout += TECW7SX[i];
1426  eventout += ", ";
1427  eventout += TECW7SY[i];
1428  eventout += ")";
1429  }
1430  eventout += "\n nTECW8 = ";
1431  eventout += TECW8RX.size();
1432  for (unsigned int i = 0; i < TECW8RX.size(); ++i) {
1433  eventout += "\n (RX, RY, SX, SY) = (";
1434  eventout += TECW8RX[i];
1435  eventout += ", ";
1436  eventout += TECW8RY[i];
1437  eventout += ", ";
1438  eventout += TECW8SX[i];
1439  eventout += ", ";
1440  eventout += TECW8SY[i];
1441  eventout += ")";
1442  }
1443 
1444  // pixel output
1445  eventout += "\n nBRL1 = ";
1446  eventout += BRL1RX.size();
1447  for (unsigned int i = 0; i < BRL1RX.size(); ++i) {
1448  eventout += "\n (RX, RY, SX, SY) = (";
1449  eventout += BRL1RX[i];
1450  eventout += ", ";
1451  eventout += BRL1RY[i];
1452  eventout += ", ";
1453  eventout += BRL1SX[i];
1454  eventout += ", ";
1455  eventout += BRL1SY[i];
1456  eventout += ")";
1457  }
1458  eventout += "\n nBRL2 = ";
1459  eventout += BRL2RX.size();
1460  for (unsigned int i = 0; i < BRL2RX.size(); ++i) {
1461  eventout += "\n (RX, RY, SX, SY) = (";
1462  eventout += BRL2RX[i];
1463  eventout += ", ";
1464  eventout += BRL2RY[i];
1465  eventout += ", ";
1466  eventout += BRL2SX[i];
1467  eventout += ", ";
1468  eventout += BRL2SY[i];
1469  eventout += ")";
1470  }
1471  eventout += "\n nBRL3 = ";
1472  eventout += BRL3RX.size();
1473  for (unsigned int i = 0; i < BRL3RX.size(); ++i) {
1474  eventout += "\n (RX, RY, SX, SY) = (";
1475  eventout += BRL3RX[i];
1476  eventout += ", ";
1477  eventout += BRL3RY[i];
1478  eventout += ", ";
1479  eventout += BRL3SX[i];
1480  eventout += ", ";
1481  eventout += BRL3SY[i];
1482  eventout += ")";
1483  }
1484  eventout += "\n nFWD1p = ";
1485  eventout += FWD1pRX.size();
1486  for (unsigned int i = 0; i < FWD1pRX.size(); ++i) {
1487  eventout += "\n (RX, RY, SX, SY) = (";
1488  eventout += FWD1pRX[i];
1489  eventout += ", ";
1490  eventout += FWD1pRY[i];
1491  eventout += ", ";
1492  eventout += FWD1pSX[i];
1493  eventout += ", ";
1494  eventout += FWD1pSY[i];
1495  eventout += ")";
1496  }
1497  eventout += "\n nFWD1n = ";
1498  eventout += FWD1nRX.size();
1499  for (unsigned int i = 0; i < FWD1nRX.size(); ++i) {
1500  eventout += "\n (RX, RY, SX, SY) = (";
1501  eventout += FWD1nRX[i];
1502  eventout += ", ";
1503  eventout += FWD1nRY[i];
1504  eventout += ", ";
1505  eventout += FWD1nSX[i];
1506  eventout += ", ";
1507  eventout += FWD1nSY[i];
1508  eventout += ")";
1509  }
1510  eventout += "\n nFWD2p = ";
1511  eventout += FWD2pRX.size();
1512  for (unsigned int i = 0; i < FWD2pRX.size(); ++i) {
1513  eventout += "\n (RX, RY, SX, SY) = (";
1514  eventout += FWD2pRX[i];
1515  eventout += ", ";
1516  eventout += FWD2pRY[i];
1517  eventout += ", ";
1518  eventout += FWD2pSX[i];
1519  eventout += ", ";
1520  eventout += FWD2pSY[i];
1521  eventout += ")";
1522  }
1523  eventout += "\n nFWD2p = ";
1524  eventout += FWD2nRX.size();
1525  for (unsigned int i = 0; i < FWD2nRX.size(); ++i) {
1526  eventout += "\n (RX, RY, SX, SY) = (";
1527  eventout += FWD2nRX[i];
1528  eventout += ", ";
1529  eventout += FWD2nRY[i];
1530  eventout += ", ";
1531  eventout += FWD2nSX[i];
1532  eventout += ", ";
1533  eventout += FWD2nSY[i];
1534  eventout += ")";
1535  }
1536 
1537  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1538  }
1539 
1540  // strip output
1560 
1561  // pixel output
1569 
1570  return;
1571 }
1572 
1574  std::string MsgLoggerCat = "GlobalRecHitsProducer_fillMuon";
1575 
1576  TString eventout;
1577  if (verbosity > 0)
1578  eventout = "\nGathering info:";
1579 
1580  // get DT information
1582  iSetup.get<MuonGeometryRecord>().get(dtGeom);
1583  if (!dtGeom.isValid()) {
1584  edm::LogWarning(MsgLoggerCat) << "Unable to find DTMuonGeometryRecord in event!";
1585  return;
1586  }
1587 
1589  iEvent.getByToken(MuDTSimSrc_Token_, dtsimHits);
1590  if (!dtsimHits.isValid()) {
1591  edm::LogWarning(MsgLoggerCat) << "Unable to find dtsimHits in event!";
1592  return;
1593  }
1594 
1595  std::map<DTWireId, edm::PSimHitContainer> simHitsPerWire =
1597 
1599  iEvent.getByToken(MuDTSrc_Token_, dtRecHits);
1600  if (!dtRecHits.isValid()) {
1601  edm::LogWarning(MsgLoggerCat) << "Unable to find dtRecHits in event!";
1602  return;
1603  }
1604 
1605  std::map<DTWireId, std::vector<DTRecHit1DPair>> recHitsPerWire = map1DRecHitsPerWire(dtRecHits.product());
1606 
1607  int nDt = compute(dtGeom.product(), simHitsPerWire, recHitsPerWire, 1);
1608 
1609  if (verbosity > 1) {
1610  eventout += "\n Number of DtMuonRecHits collected:........ ";
1611  eventout += nDt;
1612  }
1613 
1614  // get CSC Strip information
1615  // get map of sim hits
1616  theMap.clear();
1617  //edm::Handle<CrossingFrame> cf;
1619  //iEvent.getByType(cf);
1620  //if (!cf.isValid()) {
1621  // edm::LogWarning(MsgLoggerCat)
1622  // << "Unable to find CrossingFrame in event!";
1623  // return;
1624  //}
1625  //MixCollection<PSimHit> simHits(cf.product(), "MuonCSCHits");
1626  iEvent.getByToken(MuCSCHits_Token_, cf);
1627  if (!cf.isValid()) {
1628  edm::LogWarning(MsgLoggerCat) << "Unable to find muo CSC crossingFrame in event!";
1629  return;
1630  }
1632 
1633  // arrange the hits by detUnit
1634  for (MixCollection<PSimHit>::MixItr hitItr = simHits.begin(); hitItr != simHits.end(); ++hitItr) {
1635  theMap[hitItr->detUnitId()].push_back(*hitItr);
1636  }
1637 
1638  // get geometry
1640  iSetup.get<MuonGeometryRecord>().get(hGeom);
1641  if (!hGeom.isValid()) {
1642  edm::LogWarning(MsgLoggerCat) << "Unable to find CSCMuonGeometryRecord in event!";
1643  return;
1644  }
1645  const CSCGeometry* theCSCGeometry = &*hGeom;
1646 
1647  // get rechits
1649  iEvent.getByToken(MuCSCSrc_Token_, hRecHits);
1650  if (!hRecHits.isValid()) {
1651  edm::LogWarning(MsgLoggerCat) << "Unable to find CSC RecHits in event!";
1652  return;
1653  }
1654  const CSCRecHit2DCollection* cscRecHits = hRecHits.product();
1655 
1656  int nCSC = 0;
1657  for (CSCRecHit2DCollection::const_iterator recHitItr = cscRecHits->begin(); recHitItr != cscRecHits->end();
1658  ++recHitItr) {
1659  int detId = (*recHitItr).cscDetId().rawId();
1660 
1662  std::map<int, edm::PSimHitContainer>::const_iterator mapItr = theMap.find(detId);
1663  if (mapItr != theMap.end()) {
1664  simHits = mapItr->second;
1665  }
1666 
1667  if (simHits.size() == 1) {
1668  ++nCSC;
1669 
1670  const GeomDetUnit* detUnit = theCSCGeometry->idToDetUnit(CSCDetId(detId));
1671  const CSCLayer* layer = dynamic_cast<const CSCLayer*>(detUnit);
1672 
1673  int chamberType = layer->chamber()->specs()->chamberType();
1674  plotResolution(simHits[0], *recHitItr, layer, chamberType);
1675  }
1676  }
1677 
1678  if (verbosity > 1) {
1679  eventout += "\n Number of CSCRecHits collected:........... ";
1680  eventout += nCSC;
1681  }
1682 
1683  // get RPC information
1684  std::map<double, int> mapsim, maprec;
1685  std::map<int, double> nmapsim, nmaprec;
1686 
1688  iSetup.get<MuonGeometryRecord>().get(rpcGeom);
1689  if (!rpcGeom.isValid()) {
1690  edm::LogWarning(MsgLoggerCat) << "Unable to find RPCMuonGeometryRecord in event!";
1691  return;
1692  }
1693 
1695  iEvent.getByToken(MuRPCSimSrc_Token_, simHit);
1696  if (!simHit.isValid()) {
1697  edm::LogWarning(MsgLoggerCat) << "Unable to find RPCSimHit in event!";
1698  return;
1699  }
1700 
1702  iEvent.getByToken(MuRPCSrc_Token_, recHit);
1703  if (!simHit.isValid()) {
1704  edm::LogWarning(MsgLoggerCat) << "Unable to find RPCRecHit in event!";
1705  return;
1706  }
1707 
1708  int nRPC = 0;
1710  int nrec = 0;
1711  for (recIt = recHit->begin(); recIt != recHit->end(); ++recIt) {
1712  RPCDetId Rid = (RPCDetId)(*recIt).rpcId();
1713  const RPCRoll* roll = dynamic_cast<const RPCRoll*>(rpcGeom->roll(Rid));
1714  if (roll->isForward()) {
1715  if (verbosity > 1) {
1716  eventout += "\n Number of RPCRecHits collected:........... ";
1717  eventout += nRPC;
1718  }
1719 
1720  if (verbosity > 0)
1721  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1722  return;
1723  }
1724  nrec = nrec + 1;
1725  LocalPoint rhitlocal = (*recIt).localPosition();
1726  double rhitlocalx = rhitlocal.x();
1727  maprec[rhitlocalx] = nrec;
1728  }
1729 
1730  int i = 0;
1731  for (std::map<double, int>::iterator iter = maprec.begin(); iter != maprec.end(); ++iter) {
1732  i = i + 1;
1733  nmaprec[i] = (*iter).first;
1734  }
1735 
1736  edm::PSimHitContainer::const_iterator simIt;
1737  int nsim = 0;
1738  for (simIt = simHit->begin(); simIt != simHit->end(); simIt++) {
1739  int ptype = (*simIt).particleType();
1740  //RPCDetId Rsid = (RPCDetId)(*simIt).detUnitId();
1741  if (ptype == 13 || ptype == -13) {
1742  nsim = nsim + 1;
1743  LocalPoint shitlocal = (*simIt).localPosition();
1744  double shitlocalx = shitlocal.x();
1745  mapsim[shitlocalx] = nsim;
1746  }
1747  }
1748 
1749  i = 0;
1750  for (std::map<double, int>::iterator iter = mapsim.begin(); iter != mapsim.end(); ++iter) {
1751  i = i + 1;
1752  nmapsim[i] = (*iter).first;
1753  }
1754 
1755  if (nsim == nrec) {
1756  for (int r = 0; r < nsim; r++) {
1757  ++nRPC;
1758  RPCRHX.push_back(nmaprec[r + 1]);
1759  RPCSHX.push_back(nmapsim[r + 1]);
1760  }
1761  }
1762 
1763  if (verbosity > 1) {
1764  eventout += "\n Number of RPCRecHits collected:........... ";
1765  eventout += nRPC;
1766  }
1767 
1768  if (verbosity > 0)
1769  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1770 
1771  return;
1772 }
1773 
1775  std::string MsgLoggerCat = "GlobalRecHitsProducer_storeMuon";
1776 
1777  if (verbosity > 2) {
1778  // dt output
1779  TString eventout("\n nDT = ");
1780  eventout += DTRHD.size();
1781  for (unsigned int i = 0; i < DTRHD.size(); ++i) {
1782  eventout += "\n (RHD, SHD) = (";
1783  eventout += DTRHD[i];
1784  eventout += ", ";
1785  eventout += DTSHD[i];
1786  eventout += ")";
1787  }
1788 
1789  // CSC Strip
1790  eventout += "\n nCSC = ";
1791  eventout += CSCRHPHI.size();
1792  for (unsigned int i = 0; i < CSCRHPHI.size(); ++i) {
1793  eventout += "\n (rhphi, rhperp, shphi) = (";
1794  eventout += CSCRHPHI[i];
1795  eventout += ", ";
1796  eventout += CSCRHPERP[i];
1797  eventout += ", ";
1798  eventout += CSCSHPHI[i];
1799  eventout += ")";
1800  }
1801 
1802  // RPC
1803  eventout += "\n nRPC = ";
1804  eventout += RPCRHX.size();
1805  for (unsigned int i = 0; i < RPCRHX.size(); ++i) {
1806  eventout += "\n (rhx, shx) = (";
1807  eventout += RPCRHX[i];
1808  eventout += ", ";
1809  eventout += RPCSHX[i];
1810  eventout += ")";
1811  }
1812 
1813  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1814  }
1815 
1816  product.putDTRecHits(DTRHD, DTSHD);
1817 
1819 
1820  product.putRPCRecHits(RPCRHX, RPCSHX);
1821 
1822  return;
1823 }
1824 
1826  std::string MsgLoggerCat = "GlobalRecHitsProducer_clear";
1827 
1828  if (verbosity > 0)
1829  edm::LogInfo(MsgLoggerCat) << "Clearing event holders";
1830 
1831  // reset electromagnetic info
1832  // EE info
1833  EERE.clear();
1834  EESHE.clear();
1835  // EB info
1836  EBRE.clear();
1837  EBSHE.clear();
1838  // ES info
1839  ESRE.clear();
1840  ESSHE.clear();
1841 
1842  // reset HCal Info
1843  HBCalREC.clear();
1844  HBCalR.clear();
1845  HBCalSHE.clear();
1846  HECalREC.clear();
1847  HECalR.clear();
1848  HECalSHE.clear();
1849  HOCalREC.clear();
1850  HOCalR.clear();
1851  HOCalSHE.clear();
1852  HFCalREC.clear();
1853  HFCalR.clear();
1854  HFCalSHE.clear();
1855 
1856  // reset Track Info
1857  TIBL1RX.clear();
1858  TIBL2RX.clear();
1859  TIBL3RX.clear();
1860  TIBL4RX.clear();
1861  TIBL1RY.clear();
1862  TIBL2RY.clear();
1863  TIBL3RY.clear();
1864  TIBL4RY.clear();
1865  TIBL1SX.clear();
1866  TIBL2SX.clear();
1867  TIBL3SX.clear();
1868  TIBL4SX.clear();
1869  TIBL1SY.clear();
1870  TIBL2SY.clear();
1871  TIBL3SY.clear();
1872  TIBL4SY.clear();
1873 
1874  TOBL1RX.clear();
1875  TOBL2RX.clear();
1876  TOBL3RX.clear();
1877  TOBL4RX.clear();
1878  TOBL1RY.clear();
1879  TOBL2RY.clear();
1880  TOBL3RY.clear();
1881  TOBL4RY.clear();
1882  TOBL1SX.clear();
1883  TOBL2SX.clear();
1884  TOBL3SX.clear();
1885  TOBL4SX.clear();
1886  TOBL1SY.clear();
1887  TOBL2SY.clear();
1888  TOBL3SY.clear();
1889  TOBL4SY.clear();
1890 
1891  TIDW1RX.clear();
1892  TIDW2RX.clear();
1893  TIDW3RX.clear();
1894  TIDW1RY.clear();
1895  TIDW2RY.clear();
1896  TIDW3RY.clear();
1897  TIDW1SX.clear();
1898  TIDW2SX.clear();
1899  TIDW3SX.clear();
1900  TIDW1SY.clear();
1901  TIDW2SY.clear();
1902  TIDW3SY.clear();
1903 
1904  TECW1RX.clear();
1905  TECW2RX.clear();
1906  TECW3RX.clear();
1907  TECW4RX.clear();
1908  TECW5RX.clear();
1909  TECW6RX.clear();
1910  TECW7RX.clear();
1911  TECW8RX.clear();
1912  TECW1RY.clear();
1913  TECW2RY.clear();
1914  TECW3RY.clear();
1915  TECW4RY.clear();
1916  TECW5RY.clear();
1917  TECW6RY.clear();
1918  TECW7RY.clear();
1919  TECW8RY.clear();
1920  TECW1SX.clear();
1921  TECW2SX.clear();
1922  TECW3SX.clear();
1923  TECW4SX.clear();
1924  TECW5SX.clear();
1925  TECW6SX.clear();
1926  TECW7SX.clear();
1927  TECW8SX.clear();
1928  TECW1SY.clear();
1929  TECW2SY.clear();
1930  TECW3SY.clear();
1931  TECW4SY.clear();
1932  TECW5SY.clear();
1933  TECW6SY.clear();
1934  TECW7SY.clear();
1935  TECW8SY.clear();
1936 
1937  BRL1RX.clear();
1938  BRL1RY.clear();
1939  BRL1SX.clear();
1940  BRL1SY.clear();
1941  BRL2RX.clear();
1942  BRL2RY.clear();
1943  BRL2SX.clear();
1944  BRL2SY.clear();
1945  BRL3RX.clear();
1946  BRL3RY.clear();
1947  BRL3SX.clear();
1948  BRL3SY.clear();
1949 
1950  FWD1pRX.clear();
1951  FWD1pRY.clear();
1952  FWD1pSX.clear();
1953  FWD1pSY.clear();
1954  FWD1nRX.clear();
1955  FWD1nRY.clear();
1956  FWD1nSX.clear();
1957  FWD1nSY.clear();
1958  FWD2pRX.clear();
1959  FWD2pRY.clear();
1960  FWD2pSX.clear();
1961  FWD2pSY.clear();
1962  FWD2nRX.clear();
1963  FWD2nRY.clear();
1964  FWD2nSX.clear();
1965  FWD2nSY.clear();
1966 
1967  //muon clear
1968  DTRHD.clear();
1969  DTSHD.clear();
1970 
1971  CSCRHPHI.clear();
1972  CSCRHPERP.clear();
1973  CSCSHPHI.clear();
1974 
1975  RPCRHX.clear();
1976  RPCSHX.clear();
1977 
1978  return;
1979 }
1980 
1981 //needed by to do the residual for matched hits in SiStrip
1982 std::pair<LocalPoint, LocalVector> GlobalRecHitsProducer::projectHit(const PSimHit& hit,
1983  const StripGeomDetUnit* stripDet,
1984  const BoundPlane& plane) {
1985  const StripTopology& topol = stripDet->specificTopology();
1986  GlobalPoint globalpos = stripDet->surface().toGlobal(hit.localPosition());
1987  LocalPoint localHit = plane.toLocal(globalpos);
1988  //track direction
1989  LocalVector locdir = hit.localDirection();
1990  //rotate track in new frame
1991 
1992  GlobalVector globaldir = stripDet->surface().toGlobal(locdir);
1993  LocalVector dir = plane.toLocal(globaldir);
1994  float scale = -localHit.z() / dir.z();
1995 
1996  LocalPoint projectedPos = localHit + scale * dir;
1997 
1998  float selfAngle = topol.stripAngle(topol.strip(hit.localPosition()));
1999 
2000  // vector along strip in hit frame
2001  LocalVector stripDir(sin(selfAngle), cos(selfAngle), 0);
2002 
2003  LocalVector localStripDir(plane.toLocal(stripDet->surface().toGlobal(stripDir)));
2004 
2005  return std::pair<LocalPoint, LocalVector>(projectedPos, localStripDir);
2006 }
2007 
2008 // Return a map between DTRecHit1DPair and wireId
2009 std::map<DTWireId, std::vector<DTRecHit1DPair>> GlobalRecHitsProducer::map1DRecHitsPerWire(
2010  const DTRecHitCollection* dt1DRecHitPairs) {
2011  std::map<DTWireId, std::vector<DTRecHit1DPair>> ret;
2012 
2013  for (DTRecHitCollection::const_iterator rechit = dt1DRecHitPairs->begin(); rechit != dt1DRecHitPairs->end();
2014  rechit++) {
2015  ret[(*rechit).wireId()].push_back(*rechit);
2016  }
2017 
2018  return ret;
2019 }
2020 
2021 // Compute SimHit distance from wire (cm)
2023  float xwire = layer->specificTopology().wirePosition(wireId.wire());
2024  LocalPoint entryP = hit.entryPoint();
2025  LocalPoint exitP = hit.exitPoint();
2026  float xEntry = entryP.x() - xwire;
2027  float xExit = exitP.x() - xwire;
2028 
2029  //FIXME: check...
2030  return fabs(xEntry - (entryP.z() * (xExit - xEntry)) / (exitP.z() - entryP.z()));
2031 }
2032 
2033 // Find the RecHit closest to the muon SimHit
2034 template <typename type>
2036  DTWireId wireId,
2037  const std::vector<type>& recHits,
2038  const float simHitDist) {
2039  float res = 99999;
2040  const type* theBestRecHit = nullptr;
2041  // Loop over RecHits within the cell
2042  for (typename std::vector<type>::const_iterator recHit = recHits.begin(); recHit != recHits.end(); recHit++) {
2043  float distTmp = recHitDistFromWire(*recHit, layer);
2044  if (fabs(distTmp - simHitDist) < res) {
2045  res = fabs(distTmp - simHitDist);
2046  theBestRecHit = &(*recHit);
2047  }
2048  } // End of loop over RecHits within the cell
2049 
2050  return theBestRecHit;
2051 }
2052 
2053 // Compute the distance from wire (cm) of a hits in a DTRecHit1DPair
2055  // Compute the rechit distance from wire
2056  return fabs(hitPair.localPosition(DTEnums::Left).x() - hitPair.localPosition(DTEnums::Right).x()) / 2.;
2057 }
2058 
2059 // Compute the distance from wire (cm) of a hits in a DTRecHit1D
2061  return fabs(recHit.localPosition().x() - layer->specificTopology().wirePosition(recHit.wireId().wire()));
2062 }
2063 
2064 template <typename type>
2066  const std::map<DTWireId, std::vector<PSimHit>>& _simHitsPerWire,
2067  const std::map<DTWireId, std::vector<type>>& _recHitsPerWire,
2068  int step) {
2069  std::map<DTWireId, std::vector<PSimHit>> simHitsPerWire = _simHitsPerWire;
2070  std::map<DTWireId, std::vector<type>> recHitsPerWire = _recHitsPerWire;
2071  int nDt = 0;
2072  // Loop over cells with a muon SimHit
2073  for (std::map<DTWireId, std::vector<PSimHit>>::const_iterator wireAndSHits = simHitsPerWire.begin();
2074  wireAndSHits != simHitsPerWire.end();
2075  wireAndSHits++) {
2076  DTWireId wireId = (*wireAndSHits).first;
2077  std::vector<PSimHit> simHitsInCell = (*wireAndSHits).second;
2078 
2079  // Get the layer
2080  const DTLayer* layer = dtGeom->layer(wireId);
2081 
2082  // Look for a mu hit in the cell
2083  const PSimHit* muSimHit = DTHitQualityUtils::findMuSimHit(simHitsInCell);
2084  if (muSimHit == nullptr) {
2085  continue; // Skip this cell
2086  }
2087 
2088  // Find the distance of the simhit from the wire
2089  float simHitWireDist = simHitDistFromWire(layer, wireId, *muSimHit);
2090  // Skip simhits out of the cell
2091  if (simHitWireDist > 2.1) {
2092  continue; // Skip this cell
2093  }
2094  //GlobalPoint simHitGlobalPos = layer->toGlobal(muSimHit->localPosition());
2095 
2096  // Look for RecHits in the same cell
2097  if (recHitsPerWire.find(wireId) == recHitsPerWire.end()) {
2098  continue; // No RecHit found in this cell
2099  } else {
2100  // vector<type> recHits = (*wireAndRecHits).second;
2101  std::vector<type> recHits = recHitsPerWire[wireId];
2102 
2103  // Find the best RecHit
2104  const type* theBestRecHit = findBestRecHit(layer, wireId, recHits, simHitWireDist);
2105 
2106  float recHitWireDist = recHitDistFromWire(*theBestRecHit, layer);
2107 
2108  ++nDt;
2109 
2110  DTRHD.push_back(recHitWireDist);
2111  DTSHD.push_back(simHitWireDist);
2112 
2113  } // find rechits
2114  } // loop over simhits
2115 
2116  return nDt;
2117 }
2118 
2120  const CSCRecHit2D& recHit,
2121  const CSCLayer* layer,
2122  int chamberType) {
2123  GlobalPoint simHitPos = layer->toGlobal(simHit.localPosition());
2124  GlobalPoint recHitPos = layer->toGlobal(recHit.localPosition());
2125 
2126  CSCRHPHI.push_back(recHitPos.phi());
2127  CSCRHPERP.push_back(recHitPos.perp());
2128  CSCSHPHI.push_back(simHitPos.phi());
2129 }
2130 
2131 //define this as a plug-in
2132 //DEFINE_FWK_MODULE(GlobalRecHitsProducer);
Vector3DBase< float, LocalTag >
runTheMatrix.ret
ret
prodAgent to be discontinued
Definition: runTheMatrix.py:373
PI
Definition: PayloadInspector.h:20
DTGeometry
Definition: DTGeometry.h:28
HIPAlignmentAlgorithm_cfi.verbosity
verbosity
Definition: HIPAlignmentAlgorithm_cfi.py:7
GlobalRecHitsProducer::FWD2nRX
FloatVector FWD2nRX
Definition: GlobalRecHitsProducer.h:269
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
RPCRoll
Definition: RPCRoll.h:12
GlobalRecHitsProducer::BRL3RY
FloatVector BRL3RY
Definition: GlobalRecHitsProducer.h:265
GlobalRecHitsProducer::TECW7SY
FloatVector TECW7SY
Definition: GlobalRecHitsProducer.h:251
GlobalRecHitsProducer::FWD2pRX
FloatVector FWD2pRX
Definition: GlobalRecHitsProducer.h:269
GlobalRecHitsProducer::BRL3SX
FloatVector BRL3SX
Definition: GlobalRecHitsProducer.h:266
GlobalRecHitsProducer::HECalR
FloatVector HECalR
Definition: GlobalRecHitsProducer.h:216
edm::RunNumber_t
unsigned int RunNumber_t
Definition: RunLumiEventNumber.h:14
sdSiTID
static const int sdSiTID
Definition: GlobalDigisAnalyzer.h:256
GlobalRecHitsProducer::BRL2RY
FloatVector BRL2RY
Definition: GlobalRecHitsProducer.h:265
geometry
ESHandle< TrackerGeometry > geometry
Definition: TkLasBeamFitter.cc:200
DTWireId::wire
int wire() const
Return the wire number.
Definition: DTWireId.h:42
GlobalRecHitsProducer::FWD1pSX
FloatVector FWD1pSX
Definition: GlobalRecHitsProducer.h:271
sdSiTEC
static const int sdSiTEC
Definition: GlobalDigisAnalyzer.h:258
GlobalRecHitsProducer::HFCalREC
FloatVector HFCalREC
Definition: GlobalRecHitsProducer.h:223
CSCRecHit2DCollection
GlobalRecHitsProducer::TECW6SY
FloatVector TECW6SY
Definition: GlobalRecHitsProducer.h:251
mps_fire.i
i
Definition: mps_fire.py:428
GlobalRecHitsProducer::SiPxlSrc_
edm::InputTag SiPxlSrc_
Definition: GlobalRecHitsProducer.h:274
GlobalRecHitsProducer::TIBL3RX
FloatVector TIBL3RX
Definition: GlobalRecHitsProducer.h:233
edm::SortedCollection::const_iterator
std::vector< T >::const_iterator const_iterator
Definition: SortedCollection.h:80
PGlobalRecHit::putFWD2nRecHits
void putFWD2nRecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:1187
GlobalRecHitsProducer::CSCRHPHI
FloatVector CSCRHPHI
Definition: GlobalRecHitsProducer.h:315
GlobalRecHitsProducer::TOBL3RY
FloatVector TOBL3RY
Definition: GlobalRecHitsProducer.h:239
GlobalRecHitsProducer::getAllProvenances
bool getAllProvenances
Definition: GlobalRecHitsProducer.h:180
GlobalRecHitsProducer::FWD1nRX
FloatVector FWD1nRX
Definition: GlobalRecHitsProducer.h:269
GlobalRecHitsProducer::BRL2SX
FloatVector BRL2SX
Definition: GlobalRecHitsProducer.h:266
funct::false
false
Definition: Factorize.h:29
GlobalRecHitsProducer::TIDW2RX
FloatVector TIDW2RX
Definition: GlobalRecHitsProducer.h:243
GlobalRecHitsProducer::TIBL1SY
FloatVector TIBL1SY
Definition: GlobalRecHitsProducer.h:236
GlobalRecHitsProducer::TIBL1SX
FloatVector TIBL1SX
Definition: GlobalRecHitsProducer.h:235
GlobalRecHitsProducer::FWD1pRX
FloatVector FWD1pRX
Definition: GlobalRecHitsProducer.h:269
PGlobalRecHit::putTIDW2RecHits
void putTIDW2RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:931
GeomDet
Definition: GeomDet.h:27
GlobalRecHitsProducer::ECalUncalEESrc_
edm::InputTag ECalUncalEESrc_
Definition: GlobalRecHitsProducer.h:198
HLT_FULL_cff.endcapHits
endcapHits
Definition: HLT_FULL_cff.py:84477
edm::Handle::product
T const * product() const
Definition: Handle.h:70
L1EGammaCrystalsEmulatorProducer_cfi.scale
scale
Definition: L1EGammaCrystalsEmulatorProducer_cfi.py:10
PGlobalRecHit::putTECW2RecHits
void putTECW2RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:979
GlobalRecHitsProducer::TECW3SY
FloatVector TECW3SY
Definition: GlobalRecHitsProducer.h:251
sdHcalEC
static const int sdHcalEC
Definition: GlobalDigisAnalyzer.h:278
PGlobalRecHit::putTOBL4RecHits
void putTOBL4RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:899
edm::InputTag::instance
std::string const & instance() const
Definition: InputTag.h:37
GlobalRecHitsProducer::HCalSrc_Token_
edm::EDGetTokenT< edm::PCaloHitContainer > HCalSrc_Token_
Definition: GlobalRecHitsProducer.h:228
GlobalRecHitsProducer::TIBL2RY
FloatVector TIBL2RY
Definition: GlobalRecHitsProducer.h:234
step
step
Definition: StallMonitor.cc:94
CSCLayer::chamber
const CSCChamber * chamber() const
Definition: CSCLayer.h:49
TrackerTopology::pxfSide
unsigned int pxfSide(const DetId &id) const
Definition: TrackerTopology.h:192
GlobalRecHitsProducer::ECalUncalEESrc_Token_
edm::EDGetTokenT< EEUncalibratedRecHitCollection > ECalUncalEESrc_Token_
Definition: GlobalRecHitsProducer.h:204
GlobalRecHitsProducer::fillMuon
void fillMuon(edm::Event &, const edm::EventSetup &)
Definition: GlobalRecHitsProducer.cc:1573
GlobalRecHitsProducer::FWD2nSX
FloatVector FWD2nSX
Definition: GlobalRecHitsProducer.h:271
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
PGlobalRecHit::putDTRecHits
void putDTRecHits(const std::vector< float > &rhd, const std::vector< float > &shd)
Definition: PValidationFormats.cc:1203
CollectionTags_cfi.EBRecHit
EBRecHit
Definition: CollectionTags_cfi.py:40
GlobalRecHitsProducer::theMap
std::map< int, edm::PSimHitContainer > theMap
Definition: GlobalRecHitsProducer.h:323
GlobalRecHitsProducer::TIDW2SY
FloatVector TIDW2SY
Definition: GlobalRecHitsProducer.h:246
GlobalRecHitsProducer::FWD1nSX
FloatVector FWD1nSX
Definition: GlobalRecHitsProducer.h:271
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
GlobalRecHitsProducer::FWD2nRY
FloatVector FWD2nRY
Definition: GlobalRecHitsProducer.h:270
EBDetId
Definition: EBDetId.h:17
GlobalRecHitsProducer::TECW6SX
FloatVector TECW6SX
Definition: GlobalRecHitsProducer.h:250
GlobalRecHitsProducer::BRL1RY
FloatVector BRL1RY
Definition: GlobalRecHitsProducer.h:265
TrackerTopology
Definition: TrackerTopology.h:16
GlobalRecHitsProducer::EESHE
FloatVector EESHE
Definition: GlobalRecHitsProducer.h:190
CSCChamberSpecs::chamberType
int chamberType() const
Definition: CSCChamberSpecs.cc:154
GlobalRecHitsProducer::TOBL1RX
FloatVector TOBL1RX
Definition: GlobalRecHitsProducer.h:238
GlobalRecHitsProducer::TOBL2SY
FloatVector TOBL2SY
Definition: GlobalRecHitsProducer.h:241
GlobalRecHitsProducer::HCalSrc_
edm::InputTag HCalSrc_
Definition: GlobalRecHitsProducer.h:227
GlobalRecHitsProducer::TOBL3RX
FloatVector TOBL3RX
Definition: GlobalRecHitsProducer.h:238
RPCDetId
Definition: RPCDetId.h:16
GlobalRecHitsProducer::TECW3RY
FloatVector TECW3RY
Definition: GlobalRecHitsProducer.h:249
geometry
Definition: geometry.py:1
GlobalRecHitsProducer::SiPxlSrc_Token_
edm::EDGetTokenT< SiPixelRecHitCollection > SiPxlSrc_Token_
Definition: GlobalRecHitsProducer.h:275
DTRecHit1D
Definition: DTRecHit1D.h:25
GlobalRecHitsProducer::fillTrk
void fillTrk(edm::Event &, const edm::EventSetup &)
Definition: GlobalRecHitsProducer.cc:802
DetId::Hcal
Definition: DetId.h:28
CollectionTags_cfi.EERecHit
EERecHit
Definition: CollectionTags_cfi.py:41
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
TrackerHitAssociator::associateHit
std::vector< PSimHit > associateHit(const TrackingRecHit &thit) const
Definition: TrackerHitAssociator.cc:212
GlobalRecHitsProducer::HOCalR
FloatVector HOCalR
Definition: GlobalRecHitsProducer.h:220
edmNew::DetSetVector::const_iterator
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
Definition: DetSetVectorNew.h:197
CaloGeometry::getSubdetectorGeometry
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
OfflineHarvestingSequence_cosmic.ptype
ptype
Definition: OfflineHarvestingSequence_cosmic.py:7
GlobalRecHitsProducer::TIBL2RX
FloatVector TIBL2RX
Definition: GlobalRecHitsProducer.h:233
GlobalRecHitsProducer::TECW2SY
FloatVector TECW2SY
Definition: GlobalRecHitsProducer.h:251
GlobalRecHitsProducer::fillECal
void fillECal(edm::Event &, const edm::EventSetup &)
Definition: GlobalRecHitsProducer.cc:225
GlobalRecHitsProducer::ECalEESrc_Token_
edm::EDGetTokenT< EERecHitCollection > ECalEESrc_Token_
Definition: GlobalRecHitsProducer.h:201
FastTrackerRecHitCombiner_cfi.simHits
simHits
Definition: FastTrackerRecHitCombiner_cfi.py:5
edm::SortedCollection
Definition: SortedCollection.h:49
GlobalRecHitsProducer::TECW5RY
FloatVector TECW5RY
Definition: GlobalRecHitsProducer.h:249
GlobalRecHitsProducer::TECW7RY
FloatVector TECW7RY
Definition: GlobalRecHitsProducer.h:249
RPCGeometry::roll
const RPCRoll * roll(RPCDetId id) const
Return a roll given its id.
Definition: RPCGeometry.cc:50
CSCLayer
Definition: CSCLayer.h:24
GlobalRecHitsProducer::TECW3SX
FloatVector TECW3SX
Definition: GlobalRecHitsProducer.h:250
GlobalRecHitsProducer::MuRPCSrc_
edm::InputTag MuRPCSrc_
Definition: GlobalRecHitsProducer.h:331
GlobalRecHitsProducer::TIDW1SX
FloatVector TIDW1SX
Definition: GlobalRecHitsProducer.h:245
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
GlobalRecHitsProducer::HOCalSHE
FloatVector HOCalSHE
Definition: GlobalRecHitsProducer.h:221
ESDetId
Definition: ESDetId.h:15
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
GlobalRecHitsProducer::endJob
void endJob() override
Definition: GlobalRecHitsProducer.cc:125
GlobalRecHitsProducer::beginJob
void beginJob() override
Definition: GlobalRecHitsProducer.cc:117
GlobalRecHitsProducer::fName
std::string fName
Definition: GlobalRecHitsProducer.h:176
GlobalRecHitsProducer::TIBL4SX
FloatVector TIBL4SX
Definition: GlobalRecHitsProducer.h:235
GlobalRecHitsProducer::FWD1pSY
FloatVector FWD1pSY
Definition: GlobalRecHitsProducer.h:272
edm::Handle
Definition: AssociativeIterator.h:50
GlobalRecHitsProducer::TOBL4RY
FloatVector TOBL4RY
Definition: GlobalRecHitsProducer.h:239
GlobalRecHitsProducer::TIBL4RX
FloatVector TIBL4RX
Definition: GlobalRecHitsProducer.h:233
sdHcalOut
static const int sdHcalOut
Definition: GlobalDigisAnalyzer.h:279
RPCRoll::isForward
bool isForward() const
Definition: RPCRoll.cc:43
PGlobalRecHit::putTOBL2RecHits
void putTOBL2RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:867
MixCollection::MixItr
Definition: MixCollection.h:62
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
GlobalRecHitsProducer::RPCRHX
FloatVector RPCRHX
Definition: GlobalRecHitsProducer.h:328
TrackingRecHit::geographicalId
DetId geographicalId() const
Definition: TrackingRecHit.h:120
GlobalRecHitsProducer::TIBL2SY
FloatVector TIBL2SY
Definition: GlobalRecHitsProducer.h:236
GlobalRecHitsProducer::FWD1nRY
FloatVector FWD1nRY
Definition: GlobalRecHitsProducer.h:270
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
HcalGeometry.h
ihf
int ihf
Definition: CascadeWrapper.h:27
GlobalRecHitsProducer::TOBL2SX
FloatVector TOBL2SX
Definition: GlobalRecHitsProducer.h:240
GlobalRecHitsProducer::TIBL3SX
FloatVector TIBL3SX
Definition: GlobalRecHitsProducer.h:235
TrackerTopology::tidWheel
unsigned int tidWheel(const DetId &id) const
Definition: TrackerTopology.h:201
GlobalRecHitsProducer::TECW1SX
FloatVector TECW1SX
Definition: GlobalRecHitsProducer.h:250
GlobalRecHitsProducer::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition: GlobalRecHitsProducer.cc:132
MainPageGenerator.fName
fName
Definition: MainPageGenerator.py:301
TrackerTopology::pxbLayer
unsigned int pxbLayer(const DetId &id) const
Definition: TrackerTopology.h:144
GlobalRecHitsProducer::projectHit
std::pair< LocalPoint, LocalVector > projectHit(const PSimHit &hit, const StripGeomDetUnit *stripDet, const BoundPlane &plane)
Definition: GlobalRecHitsProducer.cc:1982
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
PGlobalRecHit::putHOCalRecHits
void putHOCalRecHits(const std::vector< float > &rec, const std::vector< float > &r, const std::vector< float > &she)
Definition: PValidationFormats.cc:759
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
CSCGeometry
Definition: CSCGeometry.h:24
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
DetId
Definition: DetId.h:17
GlobalRecHitsProducer::MuCSCSrc_
edm::InputTag MuCSCSrc_
Definition: GlobalRecHitsProducer.h:319
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
edmNew::DetSet::end
iterator end()
Definition: DetSetNew.h:56
TrackerTopology.h
DTTopology::wirePosition
float wirePosition(int wireNumber) const
Returns the x position in the layer of a given wire number.
Definition: DTTopology.cc:59
CaloGeometry
Definition: CaloGeometry.h:21
PGlobalRecHit::putTOBL3RecHits
void putTOBL3RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:883
edmNew::DetSetVector::find
const_iterator find(id_type i, bool update=false) const
Definition: DetSetVectorNew.h:518
DTEnums::Left
Definition: DTEnums.h:15
GlobalRecHitsProducer::TECW5RX
FloatVector TECW5RX
Definition: GlobalRecHitsProducer.h:248
CollectionTags_cfi.EBUncalibRecHit
EBUncalibRecHit
Definition: CollectionTags_cfi.py:32
DTHitQualityUtils::findMuSimHit
const PSimHit * findMuSimHit(const edm::PSimHitContainer &hits)
Select the SimHit from a muon in a vector of SimHits.
photonIsolationHIProducer_cfi.hf
hf
Definition: photonIsolationHIProducer_cfi.py:9
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
TrackerTopologyRcd.h
GlobalRecHitsProducer::ECalEBSrc_
edm::InputTag ECalEBSrc_
Definition: GlobalRecHitsProducer.h:195
GlobalRecHitsProducer::matched
std::vector< PSimHit > matched
Definition: GlobalRecHitsProducer.h:256
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
GlobalRecHitsProducer::TIBL1RY
FloatVector TIBL1RY
Definition: GlobalRecHitsProducer.h:234
PGlobalRecHit::putHFCalRecHits
void putHFCalRecHits(const std::vector< float > &rec, const std::vector< float > &r, const std::vector< float > &she)
Definition: PValidationFormats.cc:773
PGlobalRecHit::putTOBL1RecHits
void putTOBL1RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:851
GlobalRecHitsProducer::TECW2RY
FloatVector TECW2RY
Definition: GlobalRecHitsProducer.h:249
GlobalRecHitsProducer::TOBL2RX
FloatVector TOBL2RX
Definition: GlobalRecHitsProducer.h:238
DTRecHitCollection
DTWireId
Definition: DTWireId.h:12
MixCollection
Definition: MixCollection.h:11
PGlobalRecHit::putTIBL3RecHits
void putTIBL3RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:819
edm::SortedCollection::begin
const_iterator begin() const
Definition: SortedCollection.h:262
rpcPointValidation_cfi.simHit
simHit
Definition: rpcPointValidation_cfi.py:24
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:72
GlobalRecHitsProducer::storeTrk
void storeTrk(PGlobalRecHit &)
Definition: GlobalRecHitsProducer.cc:1191
GlobalRecHitsProducer::TIBL4RY
FloatVector TIBL4RY
Definition: GlobalRecHitsProducer.h:234
GlobalRecHitsProducer::MuRPCSrc_Token_
edm::EDGetTokenT< RPCRecHitCollection > MuRPCSrc_Token_
Definition: GlobalRecHitsProducer.h:333
GlobalRecHitsProducer::~GlobalRecHitsProducer
~GlobalRecHitsProducer() override
Definition: GlobalRecHitsProducer.cc:115
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
GlobalRecHitsProducer::HECalSHE
FloatVector HECalSHE
Definition: GlobalRecHitsProducer.h:217
Surface::toGlobal
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:79
GlobalRecHitsProducer::TOBL1SY
FloatVector TOBL1SY
Definition: GlobalRecHitsProducer.h:241
edm::ESHandle< CaloGeometry >
PGlobalRecHit::putTIDW1RecHits
void putTIDW1RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:915
GlobalRecHitsProducer::BRL2RX
FloatVector BRL2RX
Definition: GlobalRecHitsProducer.h:264
GlobalRecHitsProducer::BRL1RX
FloatVector BRL1RX
Definition: GlobalRecHitsProducer.h:264
edmNew::DetSet
Definition: DetSetNew.h:22
GlobalRecHitsProducer::MuDTSrc_Token_
edm::EDGetTokenT< DTRecHitCollection > MuDTSrc_Token_
Definition: GlobalRecHitsProducer.h:285
GlobalRecHitsProducer::TIDW3RY
FloatVector TIDW3RY
Definition: GlobalRecHitsProducer.h:244
PGlobalRecHit::putTECW4RecHits
void putTECW4RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:1011
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
DTRecHit1DPair
Definition: DTRecHit1DPair.h:26
submitPVResolutionJobs.count
count
Definition: submitPVResolutionJobs.py:352
GlobalRecHitsProducer::FWD2pSY
FloatVector FWD2pSY
Definition: GlobalRecHitsProducer.h:272
edm::EventNumber_t
unsigned long long EventNumber_t
Definition: RunLumiEventNumber.h:12
GlobalRecHitsProducer::TECW7RX
FloatVector TECW7RX
Definition: GlobalRecHitsProducer.h:248
GlobalRecHitsProducer::TECW4SX
FloatVector TECW4SX
Definition: GlobalRecHitsProducer.h:250
GlobalRecHitsProducer::MapType
std::map< uint32_t, float, std::less< uint32_t > > MapType
Definition: GlobalRecHitsProducer.h:153
GlobalRecHitsProducer::TOBL4SY
FloatVector TOBL4SY
Definition: GlobalRecHitsProducer.h:241
Point3DBase< float, LocalTag >
GlobalRecHitsProducer::TIDW3SX
FloatVector TIDW3SX
Definition: GlobalRecHitsProducer.h:245
PGlobalRecHit::putHBCalRecHits
void putHBCalRecHits(const std::vector< float > &rec, const std::vector< float > &r, const std::vector< float > &she)
Definition: PValidationFormats.cc:731
GlobalRecHitsProducer::TECW3RX
FloatVector TECW3RX
Definition: GlobalRecHitsProducer.h:248
StripTopology::strip
virtual float strip(const LocalPoint &) const =0
GlobalRecHitsProducer::TIBL1RX
FloatVector TIBL1RX
Definition: GlobalRecHitsProducer.h:233
GlobalRecHitsProducer::TECW8RX
FloatVector TECW8RX
Definition: GlobalRecHitsProducer.h:248
GlobalRecHitsProducer::ECalUncalEBSrc_Token_
edm::EDGetTokenT< EBUncalibratedRecHitCollection > ECalUncalEBSrc_Token_
Definition: GlobalRecHitsProducer.h:203
GlobalRecHitsProducer::TOBL1RY
FloatVector TOBL1RY
Definition: GlobalRecHitsProducer.h:239
GluedGeomDet
Definition: GluedGeomDet.h:7
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
EEDetId
Definition: EEDetId.h:14
GlobalRecHitsProducer::compute
int compute(const DTGeometry *dtGeom, const std::map< DTWireId, std::vector< PSimHit >> &simHitsPerWire, const std::map< DTWireId, std::vector< type >> &recHitsPerWire, int step)
Definition: GlobalRecHitsProducer.cc:2065
CaloGeometryRecord.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
FastTrackerRecHitMaskProducer_cfi.recHits
recHits
Definition: FastTrackerRecHitMaskProducer_cfi.py:8
GlobalRecHitsProducer::ESSHE
FloatVector ESSHE
Definition: GlobalRecHitsProducer.h:193
HLT_FULL_cff.barrelHits
barrelHits
Definition: HLT_FULL_cff.py:84492
PbPb_ZMuSkimMuonDPG_cff.tracker
tracker
Definition: PbPb_ZMuSkimMuonDPG_cff.py:60
GlobalRecHitsProducer::BRL2SY
FloatVector BRL2SY
Definition: GlobalRecHitsProducer.h:267
PGlobalRecHit::putBRL3RecHits
void putBRL3RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:1123
GlobalRecHitsProducer::DTSHD
FloatVector DTSHD
Definition: GlobalRecHitsProducer.h:281
GlobalRecHitsProducer::FWD2pRY
FloatVector FWD2pRY
Definition: GlobalRecHitsProducer.h:270
GlobalRecHitsProducer::EBSHE
FloatVector EBSHE
Definition: GlobalRecHitsProducer.h:187
GlobalRecHitsProducer::TIDW3SY
FloatVector TIDW3SY
Definition: GlobalRecHitsProducer.h:246
GlobalRecHitsProducer::TOBL4SX
FloatVector TOBL4SX
Definition: GlobalRecHitsProducer.h:240
GeomDet::toGlobal
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
HLTBitAnalyser_cfi.simhits
simhits
SIM objects.
Definition: HLTBitAnalyser_cfi.py:21
DTHitQualityUtils::mapSimHitsPerWire
std::map< DTWireId, edm::PSimHitContainer > mapSimHitsPerWire(const edm::PSimHitContainer &simhits)
edm::ParameterSet
Definition: ParameterSet.h:47
CSCRecHit2D
Definition: CSCRecHit2D.h:18
GlobalRecHitsProducer::DTRHD
FloatVector DTRHD
Definition: GlobalRecHitsProducer.h:280
DTGeometry::layer
const DTLayer * layer(const DTLayerId &id) const
Return a layer given its id.
Definition: DTGeometry.cc:96
PGlobalRecHit::putCSCRecHits
void putCSCRecHits(const std::vector< float > &rhphi, const std::vector< float > &rhperp, const std::vector< float > &shphi)
Definition: PValidationFormats.cc:1214
GlobalRecHitsProducer::FWD1nSY
FloatVector FWD1nSY
Definition: GlobalRecHitsProducer.h:272
GlobalRecHitsProducer::TIBL3RY
FloatVector TIBL3RY
Definition: GlobalRecHitsProducer.h:234
GlobalRecHitsProducer::TIDW1RY
FloatVector TIDW1RY
Definition: GlobalRecHitsProducer.h:244
PGlobalRecHit::putESCalRecHits
void putESCalRecHits(const std::vector< float > &re, const std::vector< float > &she)
Definition: PValidationFormats.cc:720
HcalGeometry::getPosition
GlobalPoint getPosition(const DetId &id) const
Definition: HcalGeometry.cc:179
GlobalRecHitsProducer::TIDW2SX
FloatVector TIDW2SX
Definition: GlobalRecHitsProducer.h:245
PGlobalRecHit::putTECW6RecHits
void putTECW6RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:1043
GlobalRecHitsProducer::MuCSCHits_Token_
edm::EDGetTokenT< CrossingFrame< PSimHit > > MuCSCHits_Token_
Definition: GlobalRecHitsProducer.h:321
sdHcalFwd
static const int sdHcalFwd
Definition: GlobalDigisAnalyzer.h:280
GlobalRecHitsProducer::TECW8RY
FloatVector TECW8RY
Definition: GlobalRecHitsProducer.h:249
GlobalRecHitsProducer::verbosity
int verbosity
Definition: GlobalRecHitsProducer.h:177
GlobalRecHitsProducer::MuDTSimSrc_Token_
edm::EDGetTokenT< edm::PSimHitContainer > MuDTSimSrc_Token_
Definition: GlobalRecHitsProducer.h:286
type
type
Definition: SiPixelVCal_PayloadInspector.cc:37
CollectionTags_cfi.EEUncalibRecHit
EEUncalibRecHit
Definition: CollectionTags_cfi.py:33
GlobalRecHitsProducer::TIDW1RX
FloatVector TIDW1RX
Definition: GlobalRecHitsProducer.h:243
edm::SortedCollection::end
const_iterator end() const
Definition: SortedCollection.h:267
GlobalRecHitsProducer::BRL3SY
FloatVector BRL3SY
Definition: GlobalRecHitsProducer.h:267
edm::RangeMap::const_iterator
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:43
PGlobalRecHit::putTIBL2RecHits
void putTIBL2RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:803
CSCDetId
Definition: CSCDetId.h:26
GlobalRecHitsProducer::TOBL1SX
FloatVector TOBL1SX
Definition: GlobalRecHitsProducer.h:240
GlobalRecHitsProducer::label
std::string label
Definition: GlobalRecHitsProducer.h:179
sdPxlBrl
static const int sdPxlBrl
Definition: GlobalDigisAnalyzer.h:253
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
GlobalRecHitsProducer::CSCSHPHI
FloatVector CSCSHPHI
Definition: GlobalRecHitsProducer.h:317
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
GlobalRecHitsProducer::FWD2pSX
FloatVector FWD2pSX
Definition: GlobalRecHitsProducer.h:271
sdPxlFwd
static const int sdPxlFwd
Definition: GlobalDigisAnalyzer.h:254
HcalDetId
Definition: HcalDetId.h:12
StripTopology::stripAngle
virtual float stripAngle(float strip) const =0
GlobalRecHitsProducer::TIBL2SX
FloatVector TIBL2SX
Definition: GlobalRecHitsProducer.h:235
iEvent
int iEvent
Definition: GenABIO.cc:224
GlobalRecHitsProducer::trackerHitAssociatorConfig_
TrackerHitAssociator::Config trackerHitAssociatorConfig_
Definition: GlobalRecHitsProducer.h:260
GlobalRecHitsProducer::fillHCal
void fillHCal(edm::Event &, const edm::EventSetup &)
Definition: GlobalRecHitsProducer.cc:457
GlobalRecHitsProducer::TECW6RY
FloatVector TECW6RY
Definition: GlobalRecHitsProducer.h:249
PGlobalRecHit::putTECW3RecHits
void putTECW3RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:995
GlobalRecHitsProducer::ECalESSrc_
edm::InputTag ECalESSrc_
Definition: GlobalRecHitsProducer.h:199
PGlobalRecHit::putTECW1RecHits
void putTECW1RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:963
TrackerTopology::pxfDisk
unsigned int pxfDisk(const DetId &id) const
Definition: TrackerTopology.h:446
GlobalRecHitsProducer::TECW8SX
FloatVector TECW8SX
Definition: GlobalRecHitsProducer.h:250
photonIsolationHIProducer_cfi.ho
ho
Definition: photonIsolationHIProducer_cfi.py:10
GlobalRecHitsProducer::HFCalR
FloatVector HFCalR
Definition: GlobalRecHitsProducer.h:224
GlobalRecHitsProducer::ECalEESrc_
edm::InputTag ECalEESrc_
Definition: GlobalRecHitsProducer.h:197
edmNew::DetSet::begin
iterator begin()
Definition: DetSetNew.h:54
GlobalRecHitsProducer::GlobalRecHitsProducer
GlobalRecHitsProducer(const edm::ParameterSet &)
Definition: GlobalRecHitsProducer.cc:14
GlobalRecHitsProducer::MuDTSrc_
edm::InputTag MuDTSrc_
Definition: GlobalRecHitsProducer.h:283
PGlobalRecHit::putTIDW3RecHits
void putTIDW3RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:947
GlobalRecHitsProducer::MuCSCSrc_Token_
edm::EDGetTokenT< CSCRecHit2DCollection > MuCSCSrc_Token_
Definition: GlobalRecHitsProducer.h:320
GlobalRecHitsProducer::ESRE
FloatVector ESRE
Definition: GlobalRecHitsProducer.h:192
edm::EventSetup
Definition: EventSetup.h:57
GlobalRecHitsProducer::TECW8SY
FloatVector TECW8SY
Definition: GlobalRecHitsProducer.h:251
TrackerGeometry::dets
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
Definition: TrackerGeometry.h:62
CSCChamber::specs
const CSCChamberSpecs * specs() const
Definition: CSCChamber.h:39
PGlobalRecHit::putFWD2pRecHits
void putFWD2pRecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:1171
get
#define get
GlobalRecHitsProducer::ECalUncalEBSrc_
edm::InputTag ECalUncalEBSrc_
Definition: GlobalRecHitsProducer.h:196
PGlobalRecHit::putFWD1pRecHits
void putFWD1pRecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:1139
res
Definition: Electron.h:6
PGlobalRecHit::putTIBL4RecHits
void putTIBL4RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:835
GlobalRecHitsProducer::EBHits_Token_
edm::EDGetTokenT< CrossingFrame< PCaloHit > > EBHits_Token_
Definition: GlobalRecHitsProducer.h:205
edm::ESHandleBase::isValid
bool isValid() const
Definition: ESHandle.h:44
GlobalRecHitsProducer::ECalEBSrc_Token_
edm::EDGetTokenT< EBRecHitCollection > ECalEBSrc_Token_
Definition: GlobalRecHitsProducer.h:200
sdSiTIB
static const int sdSiTIB
Definition: GlobalDigisAnalyzer.h:255
DTLayer
Definition: DTLayer.h:25
GlobalRecHitsProducer::ESHits_Token_
edm::EDGetTokenT< CrossingFrame< PCaloHit > > ESHits_Token_
Definition: GlobalRecHitsProducer.h:207
GlobalRecHitsProducer::TECW2SX
FloatVector TECW2SX
Definition: GlobalRecHitsProducer.h:250
GlobalRecHitsProducer::TOBL2RY
FloatVector TOBL2RY
Definition: GlobalRecHitsProducer.h:239
alignCSCRings.r
r
Definition: alignCSCRings.py:93
photonIsolationHIProducer_cfi.hbhe
hbhe
Definition: photonIsolationHIProducer_cfi.py:8
GlobalRecHitsProducer::TECW1RX
FloatVector TECW1RX
Definition: GlobalRecHitsProducer.h:248
PGlobalRecHit::putBRL2RecHits
void putBRL2RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:1107
GlobalRecHitsProducer::TECW1SY
FloatVector TECW1SY
Definition: GlobalRecHitsProducer.h:251
GlobalRecHitsProducer::HECalREC
FloatVector HECalREC
Definition: GlobalRecHitsProducer.h:215
GlobalRecHitsProducer::FWD2nSY
FloatVector FWD2nSY
Definition: GlobalRecHitsProducer.h:272
GlobalRecHitsProducer::HBCalSHE
FloatVector HBCalSHE
Definition: GlobalRecHitsProducer.h:213
GlobalRecHitsProducer::CSCRHPERP
FloatVector CSCRHPERP
Definition: GlobalRecHitsProducer.h:316
GluedGeomDet::stereoDet
const GeomDetUnit * stereoDet() const
Definition: GluedGeomDet.h:20
PGlobalRecHit::putBRL1RecHits
void putBRL1RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:1091
nevt
int nevt
Definition: ReggeGribovPartonMCHadronizer.h:66
GlobalRecHitsProducer::EEHits_Token_
edm::EDGetTokenT< CrossingFrame< PCaloHit > > EEHits_Token_
Definition: GlobalRecHitsProducer.h:206
TrackerHitAssociator
Definition: TrackerHitAssociator.h:55
PGlobalRecHit
Definition: PValidationFormats.h:597
GlobalRecHitsProducer::TECW4RY
FloatVector TECW4RY
Definition: GlobalRecHitsProducer.h:249
TrackerTopology::tobLayer
unsigned int tobLayer(const DetId &id) const
Definition: TrackerTopology.h:147
DTEnums::Right
Definition: DTEnums.h:15
GlobalRecHitsProducer::TOBL4RX
FloatVector TOBL4RX
Definition: GlobalRecHitsProducer.h:238
GlobalRecHitsProducer::TECW5SY
FloatVector TECW5SY
Definition: GlobalRecHitsProducer.h:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
PGlobalRecHit::putTIBL1RecHits
void putTIBL1RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:787
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
GlobalRecHitsProducer::HOCalREC
FloatVector HOCalREC
Definition: GlobalRecHitsProducer.h:219
BaseTrackerRecHit::localPosition
LocalPoint localPosition() const override
Definition: BaseTrackerRecHit.h:56
DTRecHit1DPair::localPosition
LocalPoint localPosition() const override
Definition: DTRecHit1DPair.cc:29
GlobalRecHitsProducer::TIDW1SY
FloatVector TIDW1SY
Definition: GlobalRecHitsProducer.h:246
GlobalRecHitsProducer::storeECal
void storeECal(PGlobalRecHit &)
Definition: GlobalRecHitsProducer.cc:416
SiStripMatchedRecHit2D
Definition: SiStripMatchedRecHit2D.h:8
GlobalRecHitsProducer::TECW1RY
FloatVector TECW1RY
Definition: GlobalRecHitsProducer.h:249
GlobalRecHitsProducer::TIBL3SY
FloatVector TIBL3SY
Definition: GlobalRecHitsProducer.h:236
GlobalRecHitsProducer::RPCSHX
FloatVector RPCSHX
Definition: GlobalRecHitsProducer.h:329
GlobalRecHitsProducer::TOBL3SX
FloatVector TOBL3SX
Definition: GlobalRecHitsProducer.h:240
GlobalRecHitsProducer::count
unsigned int count
Definition: GlobalRecHitsProducer.h:337
edmNew::DetSetVector::end
const_iterator end(bool update=false) const
Definition: DetSetVectorNew.h:535
GlobalRecHitsProducer::plotResolution
void plotResolution(const PSimHit &simHit, const CSCRecHit2D &recHit, const CSCLayer *layer, int chamberType)
Definition: GlobalRecHitsProducer.cc:2119
GlobalRecHitsProducer::TECW4RX
FloatVector TECW4RX
Definition: GlobalRecHitsProducer.h:248
BoundPlane
GlobalRecHitsProducer::clear
void clear()
Definition: GlobalRecHitsProducer.cc:1825
GlobalRecHitsProducer::FWD1pRY
FloatVector FWD1pRY
Definition: GlobalRecHitsProducer.h:270
sdSiTOB
static const int sdSiTOB
Definition: GlobalDigisAnalyzer.h:257
GlobalRecHitsProducer::EERE
FloatVector EERE
Definition: GlobalRecHitsProducer.h:189
GlobalRecHitsProducer::BRL3RX
FloatVector BRL3RX
Definition: GlobalRecHitsProducer.h:264
edm::PCaloHitContainer
std::vector< PCaloHit > PCaloHitContainer
Definition: PCaloHitContainer.h:8
GlobalRecHitsProducer::findBestRecHit
const type * findBestRecHit(const DTLayer *layer, DTWireId wireId, const std::vector< type > &recHits, const float simHitDist)
Definition: GlobalRecHitsProducer.cc:2035
GlobalRecHitsProducer::TIDW3RX
FloatVector TIDW3RX
Definition: GlobalRecHitsProducer.h:243
GlobalRecHitsProducer::simHitDistFromWire
float simHitDistFromWire(const DTLayer *layer, DTWireId wireId, const PSimHit &hit)
Definition: GlobalRecHitsProducer.cc:2022
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
GlobalRecHitsProducer::TECW6RX
FloatVector TECW6RX
Definition: GlobalRecHitsProducer.h:248
PGlobalRecHit::putEBCalRecHits
void putEBCalRecHits(const std::vector< float > &re, const std::vector< float > &she)
Definition: PValidationFormats.cc:698
PGlobalRecHit::putHECalRecHits
void putHECalRecHits(const std::vector< float > &rec, const std::vector< float > &r, const std::vector< float > &she)
Definition: PValidationFormats.cc:745
GlobalRecHitsProducer::TOBL3SY
FloatVector TOBL3SY
Definition: GlobalRecHitsProducer.h:241
DTLayer::specificTopology
const DTTopology & specificTopology() const
Definition: DTLayer.cc:37
StripGeomDetUnit::specificTopology
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
Definition: StripGeomDetUnit.cc:17
GlobalRecHitsProducer::BRL1SY
FloatVector BRL1SY
Definition: GlobalRecHitsProducer.h:267
GlobalRecHitsProducer::MuRPCSimSrc_Token_
edm::EDGetTokenT< edm::PSimHitContainer > MuRPCSimSrc_Token_
Definition: GlobalRecHitsProducer.h:334
GlobalRecHitsProducer::SiStripSrc_
edm::InputTag SiStripSrc_
Definition: GlobalRecHitsProducer.h:253
PGlobalRecHit::putFWD1nRecHits
void putFWD1nRecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:1155
genParticles_cff.map
map
Definition: genParticles_cff.py:11
edm::PSimHitContainer
std::vector< PSimHit > PSimHitContainer
Definition: PSimHitContainer.h:11
GlobalRecHitsProducer::HFCalSHE
FloatVector HFCalSHE
Definition: GlobalRecHitsProducer.h:225
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
GlobalRecHitsProducer::TECW5SX
FloatVector TECW5SX
Definition: GlobalRecHitsProducer.h:250
GlobalRecHitsProducer::storeMuon
void storeMuon(PGlobalRecHit &)
Definition: GlobalRecHitsProducer.cc:1774
GlobalRecHitsProducer.h
PSimHit
Definition: PSimHit.h:15
PGlobalRecHit::putTECW8RecHits
void putTECW8RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:1075
GlobalRecHitsProducer::BRL1SX
FloatVector BRL1SX
Definition: GlobalRecHitsProducer.h:266
sdHcalBrl
static const int sdHcalBrl
Definition: GlobalDigisAnalyzer.h:277
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
GlobalRecHitsProducer::frequency
int frequency
Definition: GlobalRecHitsProducer.h:178
GlobalRecHitsProducer::TIBL4SY
FloatVector TIBL4SY
Definition: GlobalRecHitsProducer.h:236
edm::Event
Definition: Event.h:73
gedPhotons_cfi.preshowerHits
preshowerHits
Definition: gedPhotons_cfi.py:47
TrackerTopology::tecWheel
unsigned int tecWheel(const DetId &id) const
Definition: TrackerTopology.h:198
CSCGeometry::idToDetUnit
const GeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
Definition: CSCGeometry.cc:89
PGlobalRecHit::putTECW5RecHits
void putTECW5RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:1027
HcalGeometry
Definition: HcalGeometry.h:17
StripTopology
Definition: StripTopology.h:11
MuonGeometryRecord
Definition: MuonGeometryRecord.h:34
GlobalRecHitsProducer::printProvenanceInfo
bool printProvenanceInfo
Definition: GlobalRecHitsProducer.h:181
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
GlobalRecHitsProducer::TIDW2RY
FloatVector TIDW2RY
Definition: GlobalRecHitsProducer.h:244
GlobalRecHitsProducer::ECalESSrc_Token_
edm::EDGetTokenT< ESRecHitCollection > ECalESSrc_Token_
Definition: GlobalRecHitsProducer.h:202
GlobalRecHitsProducer::EBRE
FloatVector EBRE
Definition: GlobalRecHitsProducer.h:186
GlobalRecHitsProducer::recHitDistFromWire
float recHitDistFromWire(const DTRecHit1DPair &hitPair, const DTLayer *layer)
Definition: GlobalRecHitsProducer.cc:2054
GlobalRecHitsProducer::MuDTSimSrc_
edm::InputTag MuDTSimSrc_
Definition: GlobalRecHitsProducer.h:284
GlobalRecHitsProducer::MuRPCSimSrc_
edm::InputTag MuRPCSimSrc_
Definition: GlobalRecHitsProducer.h:332
edm::InputTag
Definition: InputTag.h:15
GlobalRecHitsProducer::TECW2RX
FloatVector TECW2RX
Definition: GlobalRecHitsProducer.h:248
label
const char * label
Definition: PFTauDecayModeTools.cc:11
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
hit
Definition: SiStripHitEffFromCalibTree.cc:88
GlobalRecHitsProducer::TECW4SY
FloatVector TECW4SY
Definition: GlobalRecHitsProducer.h:251
PGlobalRecHit::putTECW7RecHits
void putTECW7RecHits(const std::vector< float > &rx, const std::vector< float > &ry, const std::vector< float > &sx, const std::vector< float > &sy)
Definition: PValidationFormats.cc:1059
GlobalRecHitsProducer::TECW7SX
FloatVector TECW7SX
Definition: GlobalRecHitsProducer.h:250
GlobalRecHitsProducer::storeHCal
void storeHCal(PGlobalRecHit &)
Definition: GlobalRecHitsProducer.cc:742
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23
StripGeomDetUnit
Definition: StripGeomDetUnit.h:15
TrackerTopology::tibLayer
unsigned int tibLayer(const DetId &id) const
Definition: TrackerTopology.h:150
TrackerGeometry
Definition: TrackerGeometry.h:14
GlobalRecHitsProducer::map1DRecHitsPerWire
std::map< DTWireId, std::vector< DTRecHit1DPair > > map1DRecHitsPerWire(const DTRecHitCollection *dt1DRecHitPairs)
Definition: GlobalRecHitsProducer.cc:2009
GlobalRecHitsProducer::SiStripSrc_Token_
edm::EDGetTokenT< SiStripMatchedRecHit2DCollection > SiStripSrc_Token_
Definition: GlobalRecHitsProducer.h:254
GlobalRecHitsProducer::HBCalR
FloatVector HBCalR
Definition: GlobalRecHitsProducer.h:212
GlobalRecHitsProducer::HBCalREC
FloatVector HBCalREC
Definition: GlobalRecHitsProducer.h:211
PGlobalRecHit::putRPCRecHits
void putRPCRecHits(const std::vector< float > &rhx, const std::vector< float > &shx)
Definition: PValidationFormats.cc:1228
PGlobalRecHit::putEECalRecHits
void putEECalRecHits(const std::vector< float > &re, const std::vector< float > &she)
Definition: PValidationFormats.cc:709