CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalRaddamMuon.cc
Go to the documentation of this file.
1 #include <memory>
2 #include <iostream>
3 #include <vector>
4 
5 #include <TTree.h>
6 
7 // user include files
33 
37 
38 
42 
53 
55 public:
58 
60  int ieta, depth;
61  double eta, thick;
62  HcalActiveLength(int ie=0, int d=0, double et=0,
63  double t=0) : ieta(ie), depth(d), eta(et), thick(t) {}
64  };
65 
66  std::vector<HcalActiveLength> getThickActive(const int type) const;
67 
68 private:
69  std::vector<HcalActiveLength> actHB, actHE;
70 };
71 
73  int ietaHB[18] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
74  11, 12, 13, 14, 15, 15, 16, 16};
75  int depthHB[18] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
76  1, 1, 1, 1, 1, 2, 1, 2};
77  double etaHB[18] = {0.0435, 0.1305, 0.2175, 0.3045, 0.3915, 0.4785,
78  0.5655, 0.6525, 0.7395, 0.8265, 0.9135, 1.0005,
79  1.0875, 1.1745, 1.2615, 1.2615, 1.3485, 1.3485};
80  double actLHB[18]= {7.35696, 7.41268, 7.52454, 7.69339, 7.92051, 8.20761,
81  8.55688, 8.97096, 9.45298, 10.0066, 10.6360, 11.3460,
82  12.1419, 13.0297, 10.1832, 3.83301, 2.61066, 5.32410};
83  actHB.clear();
84  for (int i=0; i<18; ++i) {
85  HcalDDDRecConstants::HcalActiveLength act(ietaHB[i],depthHB[i],etaHB[i],actLHB[i]);
86  actHB.push_back(act);
87  }
88 
89  int ietaHE[28] = {16, 17, 18, 18, 19, 19, 20, 20, 21, 21,
90  22, 22, 23, 23, 24, 24, 25, 25, 26, 26,
91  27, 27, 27, 28, 28, 28, 29, 29};
92  int depthHE[28] = {3, 1, 1, 2, 1, 2, 1, 2, 1, 2,
93  1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
94  1, 2, 3, 1, 2, 3, 1, 2};
95  double etaHE[28] = {1.3485, 1.4355, 1.5225, 1.5225, 1.6095, 1.6095, 1.6965,
96  1.6965, 1.7850, 1.7850, 1.8800, 1.8800, 1.9865, 1.9865,
97  2.1075, 2.1075, 2.2470, 2.2470, 2.4110, 2.4110, 2.5750,
98  2.5750, 2.5750, 2.7590, 2.7590, 2.8250, 2.9340, 2.9340};
99  double actLHE[28]= {4.23487, 8.05342, 2.21090, 5.69774, 2.57831, 5.21078,
100  2.54554, 5.14455, 2.51790, 5.08871, 2.49347, 5.03933,
101  2.47129, 4.99449, 2.45137, 4.95424, 2.43380, 4.91873,
102  2.41863, 4.88808, 1.65913, 0.74863, 4.86612, 1.65322,
103  0.74596, 4.84396, 1.64930, 0.744198};
104  actHE.clear();
105  for (int i=0; i<28; ++i) {
106  HcalDDDRecConstants::HcalActiveLength act(ietaHE[i],depthHE[i],etaHE[i],actLHE[i]);
107  actHE.push_back(act);
108  }
109 }
110 
112  std::cout << "HcalDDDRecConstants::destructed!!!" << std::endl;
113 }
114 
115 std::vector<HcalDDDRecConstants::HcalActiveLength>
117 
118  if (type == 0) return actHB;
119  else return actHE;
120 }
121 
123 
124 public:
125  explicit HcalRaddamMuon(const edm::ParameterSet&);
126  ~HcalRaddamMuon();
127 
128  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
129 
130 private:
131  virtual void beginJob() ;
132  virtual void analyze(const edm::Event&, const edm::EventSetup& );
133  virtual void endJob() ;
134  virtual void beginRun(edm::Run const&, edm::EventSetup const&);
135  virtual void endRun(edm::Run const&, edm::EventSetup const&);
136  virtual void beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&);
137  virtual void endLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&);
138  void clearVectors();
139  int matchId(const HcalDetId&, const HcalDetId&);
140  double activeLength(const DetId&);
141 
142  // ----------member data ---------------------------
144 
146  std::vector<double> EtaGlob;
153  std::vector<bool> innerTrack, OuterTrack, GlobalTrack;
154  std::vector<double> IsolationR04,IsolationR03;
159 
160  //
163 
164  //
165  std::vector<double> MuonHcalActiveLength;
166  std::vector<HcalDDDRecConstants::HcalActiveLength> actHB , actHE;
176 
177  std::vector<bool> isHB, isHE;
178  TTree *TREE;
179  std::vector<bool> all_ifTriggerpassed;
181  std::vector<int> hltresults;
182  std::vector<float> energy_hb,time_hb;
183  std::vector<std::string> hltpaths,TrigName_;
184  std::vector<int> v_RH_h3x3_ieta;
185  std::vector<int> v_RH_h3x3_iphi;
186  std::vector<double> v_RH_h3x3_ene, PxGlob, PyGlob,PzGlob,Pthetha;
188  std::vector<bool> NTrkQuality;
189  double h3x3, h3x3Calo;
197 
206 };
207 
209  //now do what ever initialization is needed
210  HLTriggerResults_ = iConfig.getUntrackedParameter<edm::InputTag>("HLTriggerResults_");
211  muonsrc_ = iConfig.getUntrackedParameter<edm::InputTag>("MuonSource");
212  verbosity_ = iConfig.getUntrackedParameter<int>("Verbosity",0);
213  isAOD_ = iConfig.getUntrackedParameter<bool>("IsAOD",false);
214  isSLHC_ = iConfig.getUntrackedParameter<bool>("IsSLHC",true);
215  maxDepth_ = iConfig.getUntrackedParameter<int>("MaxDepth",4);
216 
217  if (maxDepth_ > 7) maxDepth_ = 7;
218  else if (maxDepth_ < 1) maxDepth_ = 4;
219 
220  tok_hcal_ = consumes<edm::PCaloHitContainer>(edm::InputTag("g4SimHits","HcalHits"));
221  tok_trigRes_ = consumes<edm::TriggerResults>(HLTriggerResults_);
222  tok_recVtx_ = consumes<reco::VertexCollection>(edm::InputTag("offlinePrimaryVertices"));
223  tok_bs_ = consumes<reco::BeamSpot>(edm::InputTag("offlineBeamSpot"));
224  if (isAOD_) {
225  tok_EB_ = consumes<EcalRecHitCollection>(edm::InputTag("reducedEcalRecHitsEB"));
226  tok_EE_ = consumes<EcalRecHitCollection>(edm::InputTag("reducedEcalRecHitsEE"));
227  if (isSLHC_) {
228  tok_hbhe_= consumes<HBHERecHitCollection>(edm::InputTag("reducedHcalRecHits","hbheUpgradeReco"));
229  } else {
230  tok_hbhe_= consumes<HBHERecHitCollection>(edm::InputTag("reducedHcalRecHits", "hbhereco"));
231  }
232  } else {
233  tok_EB_ = consumes<EcalRecHitCollection>(edm::InputTag("ecalRecHit","EcalRecHitsEB"));
234  tok_EE_ = consumes<EcalRecHitCollection>(edm::InputTag("ecalRecHit","EcalRecHitsEE"));
235  if (isSLHC_) {
236  tok_hbhe_= consumes<HBHERecHitCollection>(edm::InputTag("hbheUpgradeReco"));
237  } else {
238  tok_hbhe_= consumes<HBHERecHitCollection>(edm::InputTag("hbhereco"));
239  }
240  }
241  tok_muon_ = consumes<reco::MuonCollection>(muonsrc_);
242 }
243 
245  // do anything here that needs to be done at desctruction time
246  // (e.g. close files, deallocate resources etc.)
247 }
248 
249 
250 
251 //
252 // member functions
253 //
254 
255 // ------------ method called for each event ------------
257 
258  clearVectors();
259  RunNumber = iEvent.id().run();
260  EventNumber = iEvent.id().event();
261  LumiNumber = iEvent.id().luminosityBlock();
262  BXNumber = iEvent.bunchCrossing();
263 
265  iEvent.getByToken(tok_hcal_,calosimhits);
266 
268  iEvent.getByToken(tok_trigRes_,_Triggers);
269 
270  if ((verbosity_%10)>1) std::cout << "size of all triggers "
271  << all_triggers.size() << std::endl;
272  int Ntriggers = all_triggers.size();
273 
274  if ((verbosity_%10)>1) std::cout << "size of HLT MENU: "
275  << _Triggers->size() << std::endl;
276 
277  if (_Triggers.isValid()) {
278  const edm::TriggerNames &triggerNames_ = iEvent.triggerNames(*_Triggers);
279 
280  std::vector<int> index;
281  for (int i=0;i < Ntriggers;i++) {
282  index.push_back(triggerNames_.triggerIndex(all_triggers[i]));
283  int triggerSize =int( _Triggers->size());
284  if ((verbosity_%10)>2) std::cout << "outside loop " << index[i]
285  << "\ntriggerSize " << triggerSize
286  << std::endl;
287  if (index[i] < triggerSize) {
288  hltresults.push_back(_Triggers->accept(index[i])) ;
289  if ((verbosity_%10)>2) std::cout << "trigger_info " << triggerSize
290  << " triggerSize " << index[i]
291  << " trigger_index " << hltresults.at(i)
292  << " hltresult " << std::endl;
293  } else {
294  edm::LogInfo("TriggerBlock") << "Requested HLT path \"" << "\" does not exist";
295  }
296  }
297  }
298 
299  // get handles to calogeometry and calotopology
301  iSetup.get<CaloGeometryRecord>().get(pG);
302  const CaloGeometry* geo = pG.product();
303 
305  iSetup.get<IdealMagneticFieldRecord>().get(bFieldH);
306  const MagneticField* bField = bFieldH.product();
307 
309  iSetup.get<EcalChannelStatusRcd>().get(ecalChStatus);
310  const EcalChannelStatus* theEcalChStatus = ecalChStatus.product();
311 
313  iSetup.get<EcalSeverityLevelAlgoRcd>().get(sevlv);
314 
315  edm::ESHandle<CaloTopology> theCaloTopology;
316  iSetup.get<CaloTopologyRecord>().get(theCaloTopology);
317  const CaloTopology *caloTopology = theCaloTopology.product();
318 
320  iSetup.get<IdealGeometryRecord>().get(htopo);
321  const HcalTopology* theHBHETopology = htopo.product();
322 
324  iEvent.getByToken(tok_bs_,bmspot);
325 
327  iEvent.getByToken(tok_recVtx_,vtx);
328 
329  edm::Handle<EcalRecHitCollection> barrelRecHitsHandle;
330  edm::Handle<EcalRecHitCollection> endcapRecHitsHandle;
331  iEvent.getByToken(tok_EB_,barrelRecHitsHandle);
332  iEvent.getByToken(tok_EE_,endcapRecHitsHandle);
333 
335  iEvent.getByToken(tok_hbhe_,hbhe);
336 
338  iEvent.getByToken(tok_muon_,_Muon);
339  const reco::Vertex& vertex = (*(vtx)->begin());
340 
341  math::XYZPoint bspot;
342  bspot= (bmspot.isValid()) ? bmspot->position() : math::XYZPoint(0,0,0);
343 
344  if (_Muon.isValid()) {
345  for (reco::MuonCollection::const_iterator RecMuon = _Muon->begin(); RecMuon!= _Muon->end(); ++RecMuon) {
346  muon_is_good.push_back(RecMuon->isPFMuon());
347  muon_global.push_back(RecMuon->isGlobalMuon());
348  muon_tracker.push_back(RecMuon->isTrackerMuon());
349  PtGlob.push_back((RecMuon)->pt());
350  EtaGlob.push_back(RecMuon->eta());
351  PhiGlob.push_back(RecMuon->phi());
352  Energy.push_back(RecMuon->energy());
353  Pmuon.push_back(RecMuon->p());
354  // if (RecMuon->isPFMuon()) goodEvent = true;
355  // acessing tracker hits info
356  if (RecMuon->track().isNonnull()) {
357  TrackerLayer.push_back(RecMuon->track()->hitPattern().trackerLayersWithMeasurement());
358  } else {
359  TrackerLayer.push_back(-1);
360  }
361  if (RecMuon->innerTrack().isNonnull()) {
362  innerTrack.push_back(true);
363  NumPixelLayers.push_back(RecMuon->innerTrack()->hitPattern().pixelLayersWithMeasurement());
364  chiTracker.push_back(RecMuon->innerTrack()->normalizedChi2());
365  DxyTracker.push_back(fabs(RecMuon->innerTrack()->dxy((vertex).position())));
366  DzTracker.push_back(fabs(RecMuon->innerTrack()->dz((vertex).position())));
367  innerTrackpt.push_back(RecMuon->innerTrack()->pt());
368  innerTracketa.push_back(RecMuon->innerTrack()->eta());
369  innerTrackphi.push_back(RecMuon->innerTrack()->phi());
370  Tight_PixelHits.push_back(RecMuon->innerTrack()->hitPattern().numberOfValidPixelHits());
371  } else {
372  innerTrack.push_back(false);
373  NumPixelLayers.push_back(0);
374  chiTracker.push_back(0);
375  DxyTracker.push_back(0);
376  DzTracker.push_back(0);
377  innerTrackpt.push_back(0);
378  innerTracketa.push_back(0);
379  innerTrackphi.push_back(0);
380  Tight_PixelHits.push_back(0);
381  }
382  // outer track info
383 
384  if (RecMuon->outerTrack().isNonnull()) {
385  OuterTrack.push_back(true);
386  OuterTrackPt.push_back(RecMuon->outerTrack()->pt());
387  OuterTrackEta.push_back(RecMuon->outerTrack()->eta());
388  OuterTrackPhi.push_back(RecMuon->outerTrack()->phi());
389  OuterTrackChi.push_back(RecMuon->outerTrack()->normalizedChi2());
390  OuterTrackHits.push_back(RecMuon->outerTrack()->numberOfValidHits());
391  OuterTrackRHits.push_back(RecMuon->outerTrack()->recHitsSize());
392  } else {
393  OuterTrack.push_back(false);
394  OuterTrackPt.push_back(0);
395  OuterTrackEta.push_back(0);
396  OuterTrackPhi.push_back(0);
397  OuterTrackChi.push_back(0);
398  OuterTrackHits.push_back(0);
399  OuterTrackRHits.push_back(0);
400  }
401  // Tight Muon cuts
402  if (RecMuon->globalTrack().isNonnull()) {
403  GlobalTrack.push_back(true);
404  chiGlobal.push_back(RecMuon->globalTrack()->normalizedChi2());
405  GlobalMuonHits.push_back(RecMuon->globalTrack()->hitPattern().numberOfValidMuonHits());
406  MatchedStat.push_back(RecMuon->numberOfMatchedStations());
407  GlobalTrckPt.push_back(RecMuon->globalTrack()->pt());
408  GlobalTrckEta.push_back(RecMuon->globalTrack()->eta());
409  GlobalTrckPhi.push_back(RecMuon->globalTrack()->phi());
410  Tight_TransImpara.push_back(fabs(RecMuon->muonBestTrack()->dxy(vertex.position())));
411  Tight_LongPara.push_back(fabs(RecMuon->muonBestTrack()->dz(vertex.position())));
412  } else {
413  GlobalTrack.push_back(false);
414  chiGlobal.push_back(0);
415  GlobalMuonHits.push_back(0);
416  MatchedStat.push_back(0);
417  GlobalTrckPt.push_back(0);
418  GlobalTrckEta.push_back(0);
419  GlobalTrckPhi.push_back(0);
420  Tight_TransImpara.push_back(0);
421  Tight_LongPara.push_back(0);
422  }
423 
424  IsolationR04.push_back(((RecMuon->pfIsolationR04().sumChargedHadronPt + std::max(0.,RecMuon->pfIsolationR04().sumNeutralHadronEt + RecMuon->pfIsolationR04().sumPhotonEt - (0.5 *RecMuon->pfIsolationR04().sumPUPt))) / RecMuon->pt()) );
425 
426  IsolationR03.push_back(((RecMuon->pfIsolationR03().sumChargedHadronPt + std::max(0.,RecMuon->pfIsolationR03().sumNeutralHadronEt + RecMuon->pfIsolationR03().sumPhotonEt - (0.5 * RecMuon->pfIsolationR03().sumPUPt))) / RecMuon->pt()));
427 
428  MuonEcalEnergy.push_back(RecMuon->calEnergy().emS9);
429  MuonHcalEnergy.push_back(RecMuon->calEnergy().hadS9);
430  MuonHOEnergy.push_back(RecMuon->calEnergy().hoS9);
431 
432  double eEcal(0),eHcal(0),activeL(0),eHcalDepth[7],eHcalDepthHot[7],eHcalDepthCalo[7],eHcalDepthHotCalo[7];
433  unsigned int isHot = 0;
434  unsigned int isHotCalo = 0;
435 
436  for (int i=0; i<7; ++i) eHcalDepth[i]=eHcalDepthHot[i]=eHcalDepthCalo[i]=eHcalDepthHotCalo[i]=-10000 ;
437 
438  if (RecMuon->innerTrack().isNonnull()) {
439  const reco::Track* pTrack = (RecMuon->innerTrack()).get();
440  spr::propagatedTrackID trackID = spr::propagateCALO(pTrack, geo, bField, (((verbosity_/100)%10>0)));
441 
442  MuonEcalDetId.push_back((trackID.detIdECAL)());
443  MuonHcalDetId.push_back((trackID.detIdHCAL)());
444  MuonEHcalDetId.push_back((trackID.detIdEHCAL)());
445 
446  if(trackID.okECAL){
447  const DetId isoCell(trackID.detIdECAL);
448  std::pair<double,bool> e3x3 = spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle,*theEcalChStatus,geo,caloTopology,sevlv.product(),1,1,-100.0,-100.0,-500.0,500.0,false);
449 
450  eEcal = e3x3.first;
451  //std::cout<<"eEcal"<<eEcal<<std::endl;
452  }
453 
454  if (trackID.okHCAL) {
455  const DetId closestCell(trackID.detIdHCAL);
456  eHcal = spr::eHCALmatrix(theHBHETopology, closestCell, hbhe,0,0, false, true, -100.0, -100.0, -100.0, -100.0, -500.,500.);
457 
458  //std::cout<<"eHcal"<<eHcal<<std::endl;
459  std::vector<std::pair<double,int> > ehdepth;
460  spr::energyHCALCell((HcalDetId) closestCell, hbhe, ehdepth, maxDepth_, -100.0, -100.0, -100.0, -100.0, -500.0, 500.0, (((verbosity_/1000)%10)>0));
461  for (unsigned int i=0; i<ehdepth.size(); ++i) {
462  eHcalDepth[ehdepth[i].second-1] = ehdepth[i].first;
463  //std::cout<<eHcalDepth[ehdepth[i].second-1]<<std::endl;
464  }
465 
466  eHcal = spr::eHCALmatrix(theHBHETopology, closestCell, calosimhits,0,0, false, true, -100.0, -100.0, -100.0, -100.0, -500.,500.);
467 
468  //std::cout<<"eHcal"<<eHcal<<std::endl;
469  const DetId closestCellCalo(trackID.detIdHCAL);
470  std::vector<std::pair<double,int> > ehdepthCalo;
471  spr::energyHCALCell((HcalDetId) closestCellCalo, calosimhits, ehdepthCalo, maxDepth_, -100.0, -100.0, -100.0, -100.0, -500.0, 500.0, (((verbosity_/1000)%10)>0));
472  for (unsigned int i=0; i<ehdepthCalo.size(); ++i) {
473  eHcalDepthCalo[ehdepthCalo[i].second-1] = ehdepthCalo[i].first;
474  //std::cout<<eHcalDepth[ehdepth[i].second-1]<<std::endl;
475  }
476 
477  HcalDetId hcid0(closestCell.rawId());
478  activeL = activeLength(trackID.detIdHCAL);
479 
480  std::cout<<activeL<<std::endl;
481  HcalDetId hotCell, hotCellCalo;
482  h3x3 = spr::eHCALmatrix(geo,theHBHETopology, closestCell, hbhe, 1,1, hotCell, false, false);
483  h3x3Calo = spr::eHCALmatrix(geo,theHBHETopology, closestCellCalo, calosimhits, 1,1, hotCellCalo, false, false);
484 
485  isHot = matchId(closestCell,hotCell);
486  isHotCalo = matchId(closestCellCalo,hotCellCalo);
487 
488  // std::cout<<"hcal 3X3 < "<<h3x3<<">" << " ClosestCell <" << (HcalDetId)(closestCell) << "> hotCell id < " << hotCell << "> isHot" << isHot << std::endl;
489  if (hotCell != HcalDetId()) {
490  std::vector<std::pair<double,int> > ehdepth;
491  // spr::energyHCALCell(hotCell, hbhe, ehdepth, maxDepth_, -100.0, -100.0, -100.0, -100.0, -500.0, 500.0, false);//(((verbosity_/1000)%10)>0 ));
492  spr::energyHCALCell(hotCell, hbhe, ehdepth, maxDepth_, -100.0, -100.0, -100.0, -100.0, -500.0, 500.0, false);
493  for (unsigned int i=0; i<ehdepth.size(); ++i) {
494  eHcalDepthHot[ehdepth[i].second-1] = ehdepth[i].first;
495  // std::cout<<eHcalDepthHot[ehdepth[i].second-1]<<std::endl;
496  }
497  }
498 
499  if (hotCellCalo != HcalDetId()) {
500  std::vector<std::pair<double,int> > ehdepthCalo;
501 
502  spr::energyHCALCell(hotCellCalo, calosimhits, ehdepthCalo, maxDepth_, -100.0, -100.0, -100.0, -100.0, -500.0, 500.0, false);
503  for (unsigned int i=0; i<ehdepthCalo.size(); ++i) {
504  eHcalDepthHotCalo[ehdepthCalo[i].second-1] = ehdepthCalo[i].first;
505  // std::cout<<eHcalDepthHot[ehdepth[i].second-1]<<std::endl;
506  }
507  }
508  }
509  } else {
510  MuonEcalDetId.push_back(0);
511  MuonHcalDetId.push_back(0);
512  MuonEHcalDetId.push_back(0);
513  }
514 
515  MuonEcal3x3Energy.push_back(eEcal);
516  MuonHcal1x1Energy.push_back(eHcal);
517  MuonHcalDepth1Energy.push_back(eHcalDepth[0]);
518  MuonHcalDepth2Energy.push_back(eHcalDepth[1]);
519  MuonHcalDepth3Energy.push_back(eHcalDepth[2]);
520  MuonHcalDepth4Energy.push_back(eHcalDepth[3]);
521  MuonHcalDepth5Energy.push_back(eHcalDepth[4]);
522  MuonHcalDepth6Energy.push_back(eHcalDepth[5]);
523  MuonHcalDepth7Energy.push_back(eHcalDepth[6]);
524  MuonHcalDepth1HotEnergy.push_back(eHcalDepthHot[0]);
525  MuonHcalDepth2HotEnergy.push_back(eHcalDepthHot[1]);
526  MuonHcalDepth3HotEnergy.push_back(eHcalDepthHot[2]);
527  MuonHcalDepth4HotEnergy.push_back(eHcalDepthHot[3]);
528  MuonHcalDepth5HotEnergy.push_back(eHcalDepthHot[4]);
529  MuonHcalDepth6HotEnergy.push_back(eHcalDepthHot[5]);
530  MuonHcalDepth7HotEnergy.push_back(eHcalDepthHot[6]);
531  MuonHcalHot.push_back(isHot);
532 
533  //
534  MuonHcalDepth1EnergyCalo.push_back(eHcalDepthCalo[0]);
535  MuonHcalDepth2EnergyCalo.push_back(eHcalDepthCalo[1]);
536  MuonHcalDepth3EnergyCalo.push_back(eHcalDepthCalo[2]);
537  MuonHcalDepth4EnergyCalo.push_back(eHcalDepthCalo[3]);
538  MuonHcalDepth5EnergyCalo.push_back(eHcalDepthCalo[4]);
539  MuonHcalDepth6EnergyCalo.push_back(eHcalDepthCalo[5]);
540  MuonHcalDepth7EnergyCalo.push_back(eHcalDepthCalo[6]);
541  MuonHcalDepth1HotEnergyCalo.push_back(eHcalDepthHotCalo[0]);
542  MuonHcalDepth2HotEnergyCalo.push_back(eHcalDepthHotCalo[1]);
543  MuonHcalDepth3HotEnergyCalo.push_back(eHcalDepthHotCalo[2]);
544  MuonHcalDepth4HotEnergyCalo.push_back(eHcalDepthHotCalo[3]);
545  MuonHcalDepth5HotEnergyCalo.push_back(eHcalDepthHotCalo[4]);
546  MuonHcalDepth6HotEnergyCalo.push_back(eHcalDepthHotCalo[5]);
547  MuonHcalDepth7HotEnergyCalo.push_back(eHcalDepthHotCalo[6]);
548  MuonHcalHotCalo.push_back(isHotCalo);
549 
550  //
551  MuonHcalActiveLength.push_back(activeL);
552  }
553  }
554  TREE->Fill();
555 }
556 
557 // ------------ method called once each job just before starting event loop ------------
559 
560  TREE = fs->make<TTree>("TREE", "TREE");
561  TREE->Branch("Event_No",&EventNumber);
562  TREE->Branch("Run_No",&RunNumber);
563  TREE->Branch("LumiNumber",&LumiNumber);
564  TREE->Branch("BXNumber",&BXNumber);
565  TREE->Branch("pt_of_muon",&PtGlob);
566  TREE->Branch("eta_of_muon",&EtaGlob);
567  TREE->Branch("phi_of_muon",&PhiGlob);
568  TREE->Branch("energy_of_muon",&Energy);
569  TREE->Branch("p_of_muon",&Pmuon);
570  TREE->Branch("PF_Muon",&muon_is_good);
571  TREE->Branch("Global_Muon",&muon_global);
572  TREE->Branch("Tracker_muon",&muon_tracker);
573 
574 
575  TREE->Branch("hcal_3into3",&MuonHcalEnergy);
576  TREE->Branch("hcal_1x1",&MuonHcal1x1Energy);
577  TREE->Branch("hcal_detID",&MuonHcalDetId);
578  TREE->Branch("hcal_edepth1",&MuonHcalDepth1Energy);
579  TREE->Branch("hcal_edepth2",&MuonHcalDepth2Energy);
580  TREE->Branch("hcal_edepth3",&MuonHcalDepth3Energy);
581  TREE->Branch("hcal_edepth4",&MuonHcalDepth4Energy);
582  TREE->Branch("hcal_edepthHot1",&MuonHcalDepth1HotEnergy);
583  TREE->Branch("hcal_edepthHot2",&MuonHcalDepth2HotEnergy);
584  TREE->Branch("hcal_edepthHot3",&MuonHcalDepth3HotEnergy);
585  TREE->Branch("hcal_edepthHot4",&MuonHcalDepth4HotEnergy);
586 
587  TREE->Branch("hcal_edepth1PSim",&MuonHcalDepth1EnergyCalo);
588  TREE->Branch("hcal_edepth2PSim",&MuonHcalDepth2EnergyCalo);
589  TREE->Branch("hcal_edepth3PSim",&MuonHcalDepth3EnergyCalo);
590  TREE->Branch("hcal_edepth4PSim",&MuonHcalDepth4EnergyCalo);
591  TREE->Branch("hcal_edepthHot1PSim",&MuonHcalDepth1HotEnergyCalo);
592  TREE->Branch("hcal_edepthHot2PSim",&MuonHcalDepth2HotEnergyCalo);
593  TREE->Branch("hcal_edepthHot3PSim",&MuonHcalDepth3HotEnergyCalo);
594  TREE->Branch("hcal_edepthHot4PSim",&MuonHcalDepth4HotEnergyCalo);
595 
596  if (maxDepth_ > 4) {
597  TREE->Branch("hcal_edepth5PSim",&MuonHcalDepth5EnergyCalo);
598  TREE->Branch("hcal_edepthHot5PSim",&MuonHcalDepth5HotEnergyCalo);
599  if (maxDepth_ > 5) {
600  TREE->Branch("hcal_edepth6PSim",&MuonHcalDepth6EnergyCalo);
601  TREE->Branch("hcal_edepthHot6PSim",&MuonHcalDepth6HotEnergyCalo);
602  if (maxDepth_ > 6) {
603  TREE->Branch("hcal_edepth7PSim",&MuonHcalDepth7EnergyCalo);
604  TREE->Branch("hcal_edepthHot7PSim",&MuonHcalDepth7HotEnergyCalo);
605  }
606  }
607  }
608 
609  TREE->Branch("TrackerLayer",&TrackerLayer);
610  TREE->Branch("innerTrack",&innerTrack);
611  TREE->Branch("innerTrackpt",&innerTrackpt);
612  TREE->Branch("innerTracketa",&innerTracketa);
613  TREE->Branch("innerTrackphi",&innerTrackphi);
614  TREE->Branch("MatchedStat",&MatchedStat);
615  TREE->Branch("GlobalTrckPt",&GlobalTrckPt);
616  TREE->Branch("GlobalTrckEta",&GlobalTrckEta);
617  TREE->Branch("GlobalTrckPhi",&GlobalTrckPhi);
618  TREE->Branch("NumPixelLayers",&NumPixelLayers);
619  TREE->Branch("chiTracker",&chiTracker);
620  TREE->Branch("DxyTracker",&DxyTracker);
621  TREE->Branch("DzTracker",&DzTracker);
622  TREE->Branch("OuterTrack",&OuterTrack);
623  TREE->Branch("OuterTrackPt",&OuterTrackPt);
624  TREE->Branch("OuterTrackEta",&OuterTrackEta);
625  TREE->Branch("OuterTrackPhi",&OuterTrackPhi);
626  TREE->Branch("OuterTrackHits",&OuterTrackHits);
627  TREE->Branch("OuterTrackRHits",&OuterTrackRHits);
628  TREE->Branch("OuterTrackChi",&OuterTrackChi);
629  TREE->Branch("GlobalTrack",&GlobalTrack);
630  TREE->Branch("GlobTrack_Chi",&chiGlobal);
631  TREE->Branch("Global_Muon_Hits",&GlobalMuonHits);
632  TREE->Branch("MatchedStations",&MatchedStat);
633  TREE->Branch("Global_Track_Pt",&GlobalTrckPt);
634  TREE->Branch("Global_Track_Eta",&GlobalTrckEta);
635  TREE->Branch("Global_Track_Phi",&GlobalTrckPhi);
637  TREE->Branch("Tight_LongitudinalImpactparameter",&Tight_LongPara);
638  TREE->Branch("Tight_TransImpactparameter",&Tight_TransImpara);
639  TREE->Branch("InnerTrackPixelHits",&Tight_PixelHits);
640  TREE->Branch("IsolationR04",&IsolationR04);
641  TREE->Branch("IsolationR03",&IsolationR03);
642 
643  TREE->Branch("hcal_cellHot",&MuonHcalHot);
644  TREE->Branch("hcal_cellHotPSim",&MuonHcalHotCalo);
645 
646  TREE->Branch("ecal_3into3",&MuonEcalEnergy);
647  TREE->Branch("ecal_3x3",&MuonEcal3x3Energy);
648  TREE->Branch("ecal_detID",&MuonEcalDetId);
649  TREE->Branch("ehcal_detID",&MuonEHcalDetId);
650  TREE->Branch("tracker_3into3",&MuonHOEnergy);
651  TREE->Branch("activeLength",&MuonHcalActiveLength);
652 
653 
655  TREE->Branch("hltresults",&hltresults);
656  TREE->Branch("all_triggers",&all_triggers);
657  TREE->Branch("rechit_energy",&energy_hb);
658  TREE->Branch("rechit_time",&time_hb);
659 }
660 
661 // ------------ method called once each job just after ending the event loop ------------
663 
664 // ------------ method called when starting to processes a run ------------
665 void HcalRaddamMuon::beginRun(edm::Run const& iRun, edm::EventSetup const& iSetup) {
666  /* edm::ESHandle<HcalDDDRecConstants> pHRNDC;
667  iSetup.get<HcalRecNumberingRecord>().get(pHRNDC);
668  const HcalDDDRecConstants & hdc = (*pHRNDC);
669  */
670 
672  actHB.clear();
673  actHE.clear();
674  actHB = hdc.getThickActive(0);
675  actHE = hdc.getThickActive(1);
676 
677  bool changed = true;
678  all_triggers.clear();
679  if (hltConfig_.init(iRun, iSetup,"HLT" , changed)) {
680  // if init returns TRUE, initialisation has succeeded!
681  edm::LogInfo("TriggerBlock") << "HLT config with process name "
682  << "HLT" << " successfully extracted";
683  std::string string_search[5]={"HLT_IsoMu_","HLT_L1SingleMu_","HLT_L2Mu","HLT_Mu","HLT_RelIso1p0Mu"};
684  unsigned int ntriggers = hltConfig_.size();
685  for(unsigned int t=0;t<ntriggers;++t){
687  for (unsigned int ik=0; ik<5; ++ik) {
688  if (hltname.find(string_search[ik])!=std::string::npos ){
689  all_triggers.push_back(hltname);
690  break;
691  }
692  }
693  }//loop over ntriggers
694  // std::cout<<"all triggers size in begin run"<<all_triggers.size()<<std::endl;
695  } else {
696  edm::LogError("TriggerBlock") << "Error! HLT config extraction with process name "
697  << "HLT"<< " failed";
698  }
699 
700 }//firstmethod
701 
702 
703 // ------------ method called when ending the processing of a run ------------
705 
706 // ------------ method called when starting to processes a luminosity block ------------
708 
709 // ------------ method called when ending the processing of a luminosity block ------------
711 
712 // ------------ method fills 'descriptions' with the allowed parameters for the module ------------
714  //The following says we do not know what parameters are allowed so do no validation
715  // Please change this to state exactly what you do use, even if it is no parameters
717  desc.setUnknown();
718  descriptions.addDefault(desc);
719 }
720 
723  EventNumber = -99999;
724  RunNumber = -99999;
725  LumiNumber = -99999;
726  BXNumber = -99999;
727  energy_hb.clear();
728  time_hb.clear();
729  muon_is_good.clear();
730  muon_global.clear();
731  muon_tracker.clear();
732  PtGlob.clear();
733  EtaGlob.clear();
734  PhiGlob.clear();
735  Energy.clear();
736  Pmuon.clear();
737  TrackerLayer.clear();
738  innerTrack.clear();
739  NumPixelLayers.clear();
740  chiTracker.clear();
741  DxyTracker.clear();
742  DzTracker.clear();
743  innerTrackpt.clear();
744  innerTracketa.clear();
745  innerTrackphi.clear();
746  Tight_PixelHits.clear();
747  OuterTrack.clear();
748  OuterTrackPt.clear();
749  OuterTrackEta.clear();
750  OuterTrackPhi.clear();
751  OuterTrackHits.clear();
752  OuterTrackRHits.clear();
753  OuterTrackChi.clear();
754  GlobalTrack.clear();
755  chiGlobal.clear();
756  GlobalMuonHits.clear();
757  MatchedStat.clear();
758  GlobalTrckPt.clear();
759  GlobalTrckEta.clear();
760  GlobalTrckPhi.clear();
761  Tight_TransImpara.clear();
762  Tight_LongPara.clear();
763 
764  IsolationR04.clear();
765  IsolationR03.clear();
766  MuonEcalEnergy.clear();
767  MuonHcalEnergy.clear();
768  MuonHOEnergy.clear();
769  MuonEcalDetId.clear();
770  MuonHcalDetId.clear();
771  MuonEHcalDetId.clear();
772  MuonEcal3x3Energy.clear();
773  MuonHcal1x1Energy.clear();
774  MuonHcalDepth1Energy.clear();
775  MuonHcalDepth2Energy.clear();
776  MuonHcalDepth3Energy.clear();
777  MuonHcalDepth4Energy.clear();
778  MuonHcalDepth5Energy.clear();
779  MuonHcalDepth6Energy.clear();
780  MuonHcalDepth7Energy.clear();
781 
782  MuonHcalDepth1HotEnergy.clear();
783  MuonHcalDepth2HotEnergy.clear();
784  MuonHcalDepth3HotEnergy.clear();
785  MuonHcalDepth4HotEnergy.clear();
786  MuonHcalDepth5HotEnergy.clear();
787  MuonHcalDepth6HotEnergy.clear();
788  MuonHcalDepth7HotEnergy.clear();
789  MuonHcalHot.clear();
790  MuonHcalActiveLength.clear();
791  hltresults.clear();
792 }
793 
794 int HcalRaddamMuon::matchId(const HcalDetId& id1, const HcalDetId& id2) {
795 
796  HcalDetId kd1(id1.subdet(),id1.ieta(),id1.iphi(),1);
797  HcalDetId kd2(id2.subdet(),id2.ieta(),id2.iphi(),1);
798  int match = ((kd1 == kd2) ? 1 : 0);
799  return match;
800 }
801 
803  HcalDetId id(id_);
804  int ieta = id.ietaAbs();
805  int depth= id.depth();
806  double lx(0);
807  if (id.subdet() == HcalBarrel) {
808  // std::cout<<"actHB.size()"<<actHB.size()<<std::endl;
809  for (unsigned int i=0; i<actHB.size(); ++i) {
810  if (ieta == actHB[i].ieta && depth == actHB[i].depth) {
811  lx = actHB[i].thick;
812  break;
813  }
814  }
815  } else {
816  // std::cout<<"actHE.size()"<<actHE.size()<<std::endl;
817  for (unsigned int i=0; i<actHE.size(); ++i) {
818  if (ieta == actHE[i].ieta && depth == actHE[i].depth) {
819  lx = actHE[i].thick;
820 // std::cout<<"actHE[i].thick"<<actHE[i].thick<<std::endl;
821  break;
822  }
823  }
824  }
825  return lx;
826 }
827 
828 //define this as a plug-in
RunNumber_t run() const
Definition: EventID.h:39
unsigned int size() const
number of trigger paths in trigger table
type
Definition: HCALResponse.h:21
double _RecoMuon1TrackIsoSumPtMaxCutValue_03
std::vector< double > MuonHcalDepth1HotEnergy
EventNumber_t event() const
Definition: EventID.h:41
edm::EDGetTokenT< edm::PCaloHitContainer > tok_hcal_
T getUntrackedParameter(std::string const &, T const &) const
tuple t
Definition: tree.py:139
int i
Definition: DBlmapReader.cc:9
std::vector< double > track_cosmic_positionOY
std::vector< double > NQOverP
std::vector< float > energy_hb
virtual edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const
Definition: Event.cc:213
std::vector< double > dzWithBS
std::vector< double > GlobalMuonHits
std::vector< bool > muon_tracker
std::vector< double > MuonHcalDepth3HotEnergyCalo
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, std::string &theTrackQuality, bool debug=false)
std::vector< bool > muon_global
std::vector< double > PNormalizedChi2
std::vector< double > MuonEcal3x3Energy
std::vector< int > v_RH_h3x3_iphi
std::vector< double > PdzTrack
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:45
const std::string & triggerName(unsigned int triggerIndex) const
std::vector< double > OuterTrackChi
std::vector< double > PCharge
std::vector< double > MuonHcalDepth4EnergyCalo
std::vector< double > NPvy
std::vector< double > Pmuon
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
std::vector< bool > OuterTrack
std::vector< double > MuonHcalActiveLength
std::vector< double > GlobalTrckPhi
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
std::vector< double > DzTracker
std::vector< bool > muon_is_good
std::vector< std::string > hltpaths
std::vector< double > track_cosmic_rad
std::vector< double > NormChi2
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
std::vector< double > PxGlob
std::vector< int > v_RH_h3x3_ieta
std::vector< double > MuonHcalDepth6HotEnergy
virtual void beginRun(edm::Run const &, edm::EventSetup const &)
std::vector< unsigned int > MuonHcalDetId
std::vector< double > MuonHcalDepth6EnergyCalo
double activeLength(const DetId &)
std::vector< unsigned int > MuonEcalDetId
std::vector< double > PChi2
std::vector< double > MuonHcalDepth5HotEnergyCalo
std::vector< double > MuonHcal1x1Energy
std::vector< double > MuonHcalDepth4HotEnergyCalo
edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
std::vector< unsigned int > MuonEHcalDetId
std::vector< double > track_cosmic_momentumIZ
int bunchCrossing() const
Definition: EventBase.h:66
std::vector< double > NPvz
std::vector< double > OuterTrackEta
std::vector< double > MuonHcalDepth1HotEnergyCalo
std::vector< double > MuonHcalDepth1EnergyCalo
std::string theTrackQuality
std::vector< HcalDDDRecConstants::HcalActiveLength > actHB
std::vector< double > MuonHcalDepth7Energy
edm::InputTag muonsrc_
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
std::vector< float > time_hb
std::vector< double > OuterTrackPt
std::vector< std::string > TrigName_
std::vector< unsigned int > MuonHcalHot
std::vector< std::string > all_triggers5
std::vector< std::string > all_triggers1
std::vector< double > PzGlob
std::vector< double > Tight_LongPara
std::vector< double > NPvx
std::string hltlabel_
std::vector< double > innerTrackphi
std::vector< double > TrackerLayer
std::vector< double > NRefPointZ
std::vector< double > MuonHcalDepth1Energy
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:40
std::vector< unsigned int > MuonHcalHotCalo
std::vector< double > MuonHcalDepth4Energy
const Point & position() const
position
Definition: Vertex.h:106
virtual void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
std::vector< double > MuonHcalDepth3HotEnergy
std::vector< double > EtaGlob
std::vector< double > track_cosmic_momentumOZ
std::vector< double > NQOverPError
std::vector< double > track_cosmic_momentumIX
std::vector< double > PNDoF
std::vector< double > PD0
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
std::vector< double > track_cosmic_ymomentum
std::vector< double > innerTracketa
double eHCALmatrix(const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ieta, int iphi, bool includeHO=false, bool algoNew=true, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, bool debug=false)
void energyHCALCell(HcalDetId detId, edm::Handle< T > &hits, std::vector< std::pair< double, int > > &energyCell, int maxDepth=1, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, bool debug=false)
tuple d
Definition: ztail.py:151
std::vector< std::string > all_triggers2
std::vector< double > PdxyTrack
std::vector< double > OuterTrackRHits
std::vector< double > MuonHcalDepth5HotEnergy
int iEvent
Definition: GenABIO.cc:230
std::vector< double > MuonEcalEnergy
std::vector< double > trackerlayer_hits
std::vector< double > Tight_GlobalMuonTrkFit
void addDefault(ParameterSetDescription const &psetDescription)
std::vector< double > track_cosmic_xmomentum
std::vector< bool > all_ifTriggerpassed
unsigned int triggerIndex(std::string const &name) const
Definition: TriggerNames.cc:32
std::vector< double > track_cosmic_positionIY
edm::EDGetTokenT< edm::TriggerResults > tok_trigRes_
std::vector< double > PLostHits
std::vector< double > MuonHcalDepth2EnergyCalo
double _RecoMuon1TrackIsoSumPtMaxCutValue_04
std::vector< double > track_cosmic_momentumIY
std::vector< double > Energy
std::vector< double > MuonHcalDepth2Energy
unsigned int LumiNumber
std::vector< double > MuonHOEnergy
std::vector< double > track_cosmic_positionIZ
HLTConfigProvider hltConfig_
int ieta() const
get the cell ieta
Definition: HcalDetId.h:51
std::vector< double > MuonHcalDepth5EnergyCalo
std::vector< double > High_TrackLayers
std::vector< double > track_cosmic_positionOZ
std::vector< double > Tight_TransImpara
std::vector< double > track_cosmic_detid
std::vector< double > Tight_MuonHits
std::vector< HcalActiveLength > actHE
unsigned int RunNumber
std::vector< double > track_cosmic_momentumOX
virtual void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
std::vector< double > track_cosmic_yposition
std::vector< double > track_cosmic_positionIX
virtual void analyze(const edm::Event &, const edm::EventSetup &)
bool isValid() const
Definition: HandleBase.h:75
std::vector< double > track_cosmic_momentumOY
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
std::vector< double > DxyTracker
std::vector< HcalActiveLength > getThickActive(const int type) const
std::vector< bool > innerTrack
HcalActiveLength(int ie=0, int d=0, double et=0, double t=0)
std::vector< std::string > all_triggers
std::vector< double > MuonHcalDepth7EnergyCalo
int iphi() const
get the cell iphi
Definition: HcalDetId.h:53
Definition: DetId.h:18
std::vector< HcalDDDRecConstants::HcalActiveLength > actHE
std::vector< double > innerTrackpt
std::vector< double > track_cosmic_detIDinner
virtual void endRun(edm::Run const &, edm::EventSetup const &)
std::vector< bool > Trk_match_MuStat
std::vector< double > MuonHcalDepth3EnergyCalo
std::vector< bool > NTrkQuality
std::vector< double > MuonHcalDepth2HotEnergyCalo
std::vector< bool > isHE
std::vector< double > MuonHcalDepth7HotEnergyCalo
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
std::vector< double > MuonHcalDepth7HotEnergy
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor
HcalRaddamMuon(const edm::ParameterSet &)
const T & get() const
Definition: EventSetup.h:55
std::vector< double > v_RH_h3x3_ene
std::vector< double > track_cosmic_detIDouter
std::vector< double > Tight_TrkerLayers
edm::InputTag HLTriggerResults_
std::vector< double > chiTracker
T const * product() const
Definition: ESHandle.h:86
std::vector< bool > GlobalTrack
std::vector< double > dxyWithBS
std::vector< HcalActiveLength > actHB
std::vector< double > MuonHcalDepth6HotEnergyCalo
virtual void endJob()
std::vector< double > MuonHcalDepth2HotEnergy
std::vector< double > No_pixelLayers
std::vector< double > Tight_MatchedStations
unsigned int EventNumber
std::vector< double > GlobalTrckPt
std::vector< double > MuonHcalDepth5Energy
std::vector< double > Pthetha
std::vector< double > OuterTrackPhi
unsigned int BXNumber
std::vector< double > Tight_PixelHits
edm::EventID id() const
Definition: EventBase.h:60
std::vector< std::string > all_triggers3
std::vector< double > NRefPointX
edm::EDGetTokenT< reco::MuonCollection > tok_muon_
#define begin
Definition: vmac.h:30
std::vector< double > PValidHits
static int position[264][3]
Definition: ReadPGInfo.cc:509
std::vector< double > track_cosmic_zmomentum
std::vector< double > track_cosmic_xposition
std::vector< double > MuonHcalDepth4HotEnergy
std::vector< bool > isHB
std::vector< double > PhiGlob
std::vector< std::string > all_triggers4
std::vector< double > NTrkMomentum
tuple cout
Definition: gather_cfg.py:121
std::vector< double > NumPixelLayers
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
std::vector< double > OuterTrackHits
int matchId(const HcalDetId &, const HcalDetId &)
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
std::vector< double > chiGlobal
std::vector< double > PyGlob
std::vector< double > IsolationR03
std::vector< double > MuonHcalEnergy
std::vector< double > MuonHcalDepth3Energy
edm::EDGetTokenT< reco::BeamSpot > tok_bs_
virtual void beginJob()
std::vector< double > PD0Error
std::vector< int > hltresults
std::vector< double > MuonHcalDepth6Energy
std::vector< double > PtGlob
std::vector< double > track_cosmic_zposition
cond::RealTimeType< cond::runnumber >::type RunNumber
std::vector< double > NRefPointY
Definition: Run.h:41
edm::Service< TFileService > fs
std::vector< double > IsolationR04
std::vector< double > GlobalTrckEta
std::vector< double > track_cosmic_positionOX
double eECALmatrix(const DetId &detId, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
std::vector< double > ImpactParameter
std::vector< double > MatchedStat
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)