CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
QcdUeDQM.cc
Go to the documentation of this file.
1 
2 /*
3  This is the DQM code for UE physics plots
4  11/12/2009 Sunil Bansal
5 */
38 #include <TString.h>
39 #include <TMath.h>
40 #include <TH1F.h>
41 #include <TH2F.h>
42 #include <TH3F.h>
43 #include <TProfile.h>
44 using namespace std;
45 using namespace edm;
46 
47 #define CP(level) \
48  if (level>=verbose_)
49 
50 struct deleter {
51  void operator()(TH3F *&h) { delete h; h=0;}
52 };
53 
54 
55 //--------------------------------------------------------------------------------------------------
57  hltResName_(parameters.getUntrackedParameter<string>("hltTrgResults")),
58  verbose_(parameters.getUntrackedParameter<int>("verbose",3)),
59  tgeo_(0),
60  theDbe_(0),
61  repSumMap_(0),
62  repSummary_(0),
63  h2TrigCorr_(0),
64  ptMin_(parameters.getParameter<double>("ptMin")),
65  minRapidity_(parameters.getParameter<double>("minRapidity")),
66  maxRapidity_(parameters.getParameter<double>("maxRapidity")),
67  tip_(parameters.getParameter<double>("tip")),
68  lip_(parameters.getParameter<double>("lip")),
69  diffvtxbs_(parameters.getParameter<double>("diffvtxbs")),
70  ptErr_pt_(parameters.getParameter<double>("ptErr_pt")),
71  vtxntk_(parameters.getParameter<double>("vtxntk")),
72  minHit_(parameters.getParameter<int>("minHit")),
73  pxlLayerMinCut_(parameters.getParameter<double>("pxlLayerMinCut")),
74  requirePIX1_(parameters.getParameter<bool>("requirePIX1")),
75  min3DHit_(parameters.getParameter<int>("min3DHit")),
76  maxChi2_(parameters.getParameter<double>("maxChi2")),
77  bsuse_(parameters.getParameter<bool>("bsuse")),
78  allowTriplets_(parameters.getParameter<bool>("allowTriplets")),
79  bsPos_(parameters.getParameter<double>("bsPos")),
80  caloJetLabel_(parameters.getUntrackedParameter<edm::InputTag>("caloJetTag")),
81  chargedJetLabel_(parameters.getUntrackedParameter<edm::InputTag>("chargedJetTag")),
82  trackLabel_(parameters.getUntrackedParameter<edm::InputTag>("trackTag")),
83  vtxLabel_(parameters.getUntrackedParameter<edm::InputTag>("vtxTag")),
84  bsLabel_(parameters.getParameter<edm::InputTag>("beamSpotTag"))
85 {
86  // Constructor.
87  std::vector<std::string> quality = parameters.getParameter<std::vector<std::string> >("quality");
88  for (unsigned int j=0;j<quality.size();j++) quality_.push_back(reco::TrackBase::qualityByName(quality[j]));
89  std::vector<std::string> algorithm = parameters.getParameter<std::vector<std::string> >("algorithm");
90  for (unsigned int j=0;j<algorithm.size();j++) algorithm_.push_back(reco::TrackBase::algoByName(algorithm[j]));
91 
92  if (parameters.exists("hltTrgNames"))
93  hltTrgNames_ = parameters.getUntrackedParameter<vector<string> >("hltTrgNames");
94 
95  if (parameters.exists("hltProcNames"))
96  hltProcNames_ = parameters.getUntrackedParameter<vector<string> >("hltProcNames");
97  else {
98  // hltProcNames_.push_back("FU");
99  hltProcNames_.push_back("HLT");
100  }
101 
102 
103 }
104 
105 //--------------------------------------------------------------------------------------------------
107 {
108  // Destructor.
109 
110 
111 }
112 
113 //--------------------------------------------------------------------------------------------------
114 void QcdUeDQM::analyze(const Event &iEvent, const EventSetup &iSetup)
115 {
116  if( ! isHltConfigSuccessful_ ) return;
117 
118  // Analyze the given event.
119 
121  bool ValidBS_ = iEvent.getByLabel(bsLabel_,beamSpot);
122  if(!ValidBS_)return;
123 
125  bool ValidTrack_ = iEvent.getByLabel(trackLabel_,tracks);
126  if(!ValidTrack_)return;
127 
128  //edm::Handle<reco::CandidateView> trkJets;
129  //bool ValidTrackJet_ = iEvent.getByLabel (chargedJetLabel_,trkJets);
130  //if(!ValidTrackJet_)return;
131 
133  bool ValidTrackJet_ = iEvent.getByLabel(chargedJetLabel_,trkJets );
134  if(!ValidTrackJet_)return;
135 
136 
138  bool ValidCaloJet_ = iEvent.getByLabel (caloJetLabel_,calJets);
139  if(!ValidCaloJet_)return;
140 
142  bool ValidVtxColl_ = iEvent.getByLabel (vtxLabel_, vertexColl);
143  if(!ValidVtxColl_)return;
144 
145  reco::TrackCollection tracks_sort = *tracks;
146  std::sort(tracks_sort.begin(), tracks_sort.end(), PtSorter());
147 
148  // get tracker geometry
149 /* ESHandle<TrackerGeometry> trackerHandle;
150  iSetup.get<TrackerDigiGeometryRecord>().get(trackerHandle);
151  tgeo_ = trackerHandle.product();
152  if (!tgeo_)return;
153 */
154  selected_.clear();
155  fillHltBits(iEvent,iSetup);
156  // select good tracks
157  if(fillVtxPlots(beamSpot.product(),vertexColl))
158  {
159  fill1D(hNevts_,1);
160  for(reco::TrackCollection::const_iterator Trk = tracks_sort.begin(); Trk != tracks_sort.end(); ++Trk)
161  {
162 
163  if ( trackSelection(*Trk,beamSpot.product(),vtx1,vertexColl->size()) ) selected_.push_back( & * Trk );
164  }
165 
166 
168  fillChargedJetSpectra(trkJets);
169 // fillCaloJetSpectra(calJets);
171  if(trkJets->size() > 0)fillUE_with_ChargedJets(selected_,trkJets);
172  // if(calJets->size()>0)fillUE_with_CaloJets(selected_,calJets);
173 
174  }
175 
176 }
177 
178 //--------------------------------------------------------------------------------------------------
180 {
181  // Begin job and setup the DQM store.
182 
184  if (!theDbe_)return;
185 
186  // theDbe_->setCurrentFolder("Physics/QcdUe");
187 
188 }
189 
190 //--------------------------------------------------------------------------------------------------
192  const EventSetup &iSetup)
193 {
194  if( ! isHltConfigSuccessful_ ) return;
195 
196  // At the moment, nothing needed to be done.
197 }
198 
199 //--------------------------------------------------------------------------------------------------
200 void QcdUeDQM::beginRun(const Run &run, const EventSetup &iSetup)
201 {
202 
203  // indicating change of HLT cfg at run boundries
204  // for HLTConfigProvider::init()
205  bool isHltCfgChange = false;
206  isHltConfigSuccessful_ = false; // init
207 
208  string teststr;
209  for(size_t i=0; i<hltProcNames_.size(); ++i) {
210  if (i>0)
211  teststr += ", ";
212  teststr += hltProcNames_.at(i);
213  if ( hltConfig.init( run, iSetup, hltProcNames_.at(i), isHltCfgChange ) ) {
214  isHltConfigSuccessful_ = true;
216  if (hltResName_.find(':')==string::npos)
217  hltUsedResName_ += "::";
218  else
219  hltUsedResName_ += ":";
221  break;
222  }
223  }
224 
225  if ( ! isHltConfigSuccessful_ )return;
226 
227  // setup "Any" bit
228  hltTrgBits_.clear();
229  hltTrgBits_.push_back(-1);
230  hltTrgDeci_.clear();
231  hltTrgDeci_.push_back(true);
232  hltTrgUsedNames_.clear();
233  hltTrgUsedNames_.push_back("Any");
234 
235  // figure out relation of trigger name to trigger bit and store used trigger names/bits
236  for(size_t i=0;i<hltTrgNames_.size();++i) {
237  const string &n1(hltTrgNames_.at(i));
238  //unsigned int hlt_prescale = hltConfig.prescaleValue(iSetup, n1);
239  //cout<<"trigger=="<<n1<<"presc=="<<hlt_prescale<<endl;
240  bool found = 0;
241  for(size_t j=0;j<hltConfig.size();++j) {
242  const string &n2(hltConfig.triggerName(j));
243  if (n2==n1) {
244  hltTrgBits_.push_back(j);
245  hltTrgUsedNames_.push_back(n1);
246  hltTrgDeci_.push_back(false);
247  found = 1;
248  break;
249  }
250  }
251  if (!found) {
252  CP(2) cout<<"Could not find trigger bit"<<endl ;
253  }
254  }
255 
256  // book monitoring histograms
257  createHistos();
258  isHltConfigSuccessful_ = true;
259 
260 }
261 
262 //--------------------------------------------------------------------------------------------------
263 void QcdUeDQM::book1D(std::vector<MonitorElement*> &mes,
264  const std::string &name, const std::string &title,
265  int nx, double x1, double x2, bool sumw2, bool sbox)
266 {
267  // Book 1D histos.
268 
269  for(size_t i=0;i<hltTrgUsedNames_.size();++i) {
270  std::string folderName = "Physics/QcdUe/" + hltTrgUsedNames_.at(i);
271  theDbe_->setCurrentFolder(folderName);
272  MonitorElement *e = theDbe_->book1D(Form("%s_%s",name.c_str(),hltTrgUsedNames_.at(i).c_str()),
273  Form("%s: %s",hltTrgUsedNames_.at(i).c_str(), title.c_str()),
274  nx, x1, x2);
275  TH1 *h1 = e->getTH1();
276  if (sumw2) {
277  if( 0 == h1->GetSumw2N() ) { // protect against re-summing (would cause exception)
278  h1->Sumw2();
279  }
280  }
281  h1->SetStats(sbox);
282  mes.push_back(e);
283  }
284 }
285 
286 //--------------------------------------------------------------------------------------------------
287 void QcdUeDQM::book2D(std::vector<MonitorElement*> &mes,
288  const std::string &name, const std::string &title,
289  int nx, double x1, double x2, int ny, double y1, double y2,
290  bool sumw2, bool sbox)
291 {
292  // Book 2D histos.
293 
294  for(size_t i=0;i<hltTrgUsedNames_.size();++i) {
295  std::string folderName = "Physics/QcdUe/" + hltTrgUsedNames_.at(i);
296  theDbe_->setCurrentFolder(folderName);
297  MonitorElement *e = theDbe_->book2D(Form("%s_%s",name.c_str(),hltTrgUsedNames_.at(i).c_str()),
298  Form("%s: %s",hltTrgUsedNames_.at(i).c_str(), title.c_str()),
299  nx, x1, x2, ny, y1, y2);
300  TH1 *h1 = e->getTH1();
301  if (sumw2) {
302  if( 0 == h1->GetSumw2N() ) { // protect against re-summing (would cause exception)
303  h1->Sumw2();
304  }
305  }
306  h1->SetStats(sbox);
307  mes.push_back(e);
308  }
309 }
310 
311 //--------------------------------------------------------------------------------------------------
312 void QcdUeDQM::bookProfile(std::vector<MonitorElement*> &mes,
313  const std::string &name, const std::string &title,
314  int nx, double x1, double x2, double y1, double y2,
315  bool sumw2, bool sbox)
316 {
317  // Book Profile histos.
318 
319  for(size_t i=0;i<hltTrgUsedNames_.size();++i) {
320  std::string folderName = "Physics/QcdUe/" + hltTrgUsedNames_.at(i);
321  theDbe_->setCurrentFolder(folderName);
322  MonitorElement *e = theDbe_->bookProfile(Form("%s_%s",name.c_str(),hltTrgUsedNames_.at(i).c_str()),
323  Form("%s: %s",hltTrgUsedNames_.at(i).c_str(), title.c_str()),
324  nx, x1, x2, y1, y2," ");
325  mes.push_back(e);
326  }
327 }
328 //--------------------------------------------------------------------------------------------------
330 {
331  // Book histograms if needed.
332 
333 
334 /* if (1) {
335  theDbe_->setCurrentFolder("Physics/EventInfo/");
336  repSumMap_ = theDbe_->book2D("reportSummaryMap","reportSummaryMap",1,0,1,1,0,1);
337  repSummary_ = theDbe_->bookFloat("reportSummary");
338  }
339  */
340  theDbe_->setCurrentFolder("Physics/QcdUe");
341 
342  if (1) {
343  const int Nx = hltTrgUsedNames_.size();
344  const double x1 = -0.5;
345  const double x2 = Nx-0.5;
346  h2TrigCorr_ = theDbe_->book2D("h2TriCorr","Trigger bit x vs y;y&&!x;x&&y",Nx,x1,x2,Nx,x1,x2);
347  for(size_t i=1;i<=hltTrgUsedNames_.size();++i) {
350  }
351  TH1 *h = h2TrigCorr_->getTH1();
352  if (h)
353  h->SetStats(0);
354  }
355  book1D(hNevts_,"hNevts","number of events",2,0,2);
356  book1D(hNtrackerLayer_,"hNtrackerLayer","number of tracker layers;multiplicity",20,-0.5,19.5 );
357  book1D(hNtrackerPixelLayer_,"hNtrackerPixelLayer","number of pixel layers;multiplicity",10,-0.5,9.5 );
358  book1D(hNtrackerStripPixelLayer_,"hNtrackerStripPixelLayer","number of strip + pixel layers;multiplicity",30,-0.5,39.5 );
359  book1D(hRatioPtErrorPt_,"hRatioPtErrorPt","ratio of pT error and track pT",25,0.,5.);
360  book1D(hTrkPt_,"hTrkPt","pT of all tracks",50,0.,50.);
361  book1D(hTrkEta_,"hTrkEta","eta of all tracks",40,-4.,4.);
362  book1D(hTrkPhi_,"hTrkPhi","phi of all tracks",40,-4.,4.);
363  book1D(hRatioDxySigmaDxyBS_,"hRatioDxySigmaDxyBS","ratio of transverse impact parameter and its significance wrt beam spot",60,-10.,10);
364  book1D(hRatioDxySigmaDxyPV_,"hRatioDxySigmaDxyPV","ratio of transverse impact parameter and its significance wrt PV",60,-10.,10);
365  book1D(hRatioDzSigmaDzBS_,"hRatioDzSigmaDzBS","ratio of longitudinal impact parameter and its significance wrt beam spot",80,-20.,20);
366  book1D(hRatioDzSigmaDzPV_,"hRatioDzSigmaDzPV","ratio of longitudinal impact parameter and its significance wrt PV",80,-20.,20);
367  book1D(hTrkChi2_,"hTrkChi2","track chi2",30,0.,30);
368  book1D(hTrkNdof_,"hTrkNdof","track NDOF",100,0,100);
369 
370  book1D(hNgoodTrk_,"hNgoodTrk","number of good tracks",50,-0.5,49.5);
371 
372  book1D(hGoodTrkPt500_,"hGoodTrkPt500","pT of all good tracks with pT > 500 MeV",50,0.,50.);
373  book1D(hGoodTrkEta500_,"hGoodTrkEta500","eta of all good tracks pT > 500 MeV",40,-4.,4.);
374  book1D(hGoodTrkPhi500_,"hGoodTrkPhi500","phi of all good tracks pT > 500 MeV",40,-4.,4.);
375 
376  book1D(hGoodTrkPt900_,"hGoodTrkPt900","pT of all good tracks with pT > 900 MeV",50,0.,50.);
377  book1D(hGoodTrkEta900_,"hGoodTrkEta900","eta of all good tracks pT > 900 MeV",40,-4.,4.);
378  book1D(hGoodTrkPhi900_,"hGoodTrkPhi900","phi of all good tracks pT > 900 MeV",40,-4.,4.);
379 
380  book1D(hNvertices_,"hNvertices","number of vertices",5,-0.5,4.5);
381  book1D(hVertex_z_,"hVertex_z","z position of vertex; z[cm]",200,-50,50);
382  book1D(hVertex_y_,"hVertex_y","y position of vertex; y[cm]",100,-5,5);
383  book1D(hVertex_x_,"hVertex_x","x position of vertex; x[cm]",100,-5,5);
384  book1D(hVertex_ndof_,"hVertex_ndof","ndof of vertex",100,0,100);
385  book1D(hVertex_rho_,"hVertex_rho","rho of vertex",100,0,5);
386  book1D(hVertex_z_bs_,"hVertex_z_bs","z position of vertex from beamspot; z[cm]",200,-50,50);
387 
388  book1D(hBeamSpot_z_,"hBeamSpot_z","z position of beamspot; z[cm]",100,-20,20);
389  book1D(hBeamSpot_y_,"hBeamSpot_y","y position of beamspot; y[cm]",50,-10,10);
390  book1D(hBeamSpot_x_,"hBeamSpot_x","x position of beamspot; x[cm]",50,-10,10);
391 
392 
393  if (1) {
394  const int Nx = 25;
395  const double x1 = 0.0;
396  const double x2 = 50.0;
397  book1D(hLeadingTrack_pTSpectrum_,"hLeadingTrack_pTSpectrum","pT spectrum of leading track;pT(GeV/c)",Nx,x1,x2);
398 // book1D(hLeadingCaloJet_pTSpectrum_,"hLeadingCalo_pTSpectrum","pT spectrum of leading calo jet;pT(GeV/c)",Nx,x1,x2);
399  book1D(hLeadingChargedJet_pTSpectrum_,"hLeadingChargedJet_pTSpectrum","pT spectrum of leading track jet;pT(GeV/c)",Nx,x1,x2);
400 
401  }
402 
403  if (1) {
404  const int Nx = 24;
405  const double x1 = -4.;
406  const double x2 = 4.;
407  book1D(hLeadingTrack_phiSpectrum_,"hLeadingTrack_phiSpectrum","#phi spectrum of leading track;#phi",Nx,x1,x2);
408  // book1D(hLeadingCaloJet_phiSpectrum_,"hLeadingCaloJet_phiSpectrum","#phi spectrum of leading calo jet;#phi",Nx,x1,x2);
409  book1D(hLeadingChargedJet_phiSpectrum_,"hLeadingChargedJet_phiSpectrum","#phi spectrum of leading track jet;#phi",Nx,x1,x2);
410 
411  }
412 
413  if (1) {
414  const int Nx = 24;
415  const double x1 = -4.;
416  const double x2 = 4.;
417  book1D(hLeadingTrack_etaSpectrum_,"hLeadingTrack_etaSpectrum","#eta spectrum of leading track;#eta",Nx,x1,x2);
418  //book1D(hLeadingCaloJet_etaSpectrum_,"hLeadingCaloJet_etaSpectrum","#eta spectrum of leading calo jet;#eta",Nx,x1,x2);
419  book1D(hLeadingChargedJet_etaSpectrum_,"hLeadingChargedJet_etaSpectrum","#eta spectrum of leading track jet;#eta",Nx,x1,x2);
420 
421  }
422 
423 
424 if (1) {
425  const int Nx = 75;
426  const double x1 = 0.0;
427  const double x2 = 75.0;
428  const double y1 = 0.;
429  const double y2 = 10.;
430  bookProfile(hdNdEtadPhi_pTMax_Toward500_,"hdNdEtadPhi_pTMax_Toward500",
431  "Average number of tracks (pT > 500 MeV) in toward region vs leading track pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
432  bookProfile(hdNdEtadPhi_pTMax_Transverse500_,"hdNdEtadPhi_pTMax_Transverse500",
433  "Average number of tracks (pT > 500 MeV) in transverse region vs leading track pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
434  bookProfile(hdNdEtadPhi_pTMax_Away500_,"hdNdEtadPhi_pTMax_Away500",
435  "Average number of tracks (pT > 500 MeV) in away region vs leading track pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
436  /*
437  bookProfile(hdNdEtadPhi_caloJet_Toward500_,"hdNdEtadPhi_caloJet_Toward500",
438  "Average number of tracks (pT > 500 MeV) in toward region vs leading calo jet pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
439  bookProfile(hdNdEtadPhi_caloJet_Transverse500_,"hdNdEtadPhi_caloJet_Transverse500",
440  "Average number of tracks (pT > 500 MeV) in transverse region vs leading calo jet pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
441  bookProfile(hdNdEtadPhi_caloJet_Away500_,"hdNdEtadPhi_caloJet_Away500",
442  "Average number of tracks (pT > 500 MeV) in away region vs leading calo jet pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
443  */
444 
445  bookProfile(hdNdEtadPhi_trackJet_Toward500_,"hdNdEtadPhi_trackJet_Toward500",
446  "Average number of tracks (pT > 500 MeV) in toward region vs leading track jet pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2);
447  bookProfile(hdNdEtadPhi_trackJet_Transverse500_,"hdNdEtadPhi_trackJet_Transverse500",
448  "Average number of tracks (pT > 500 MeV) in transverse region vs leading track jet pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
449  bookProfile(hdNdEtadPhi_trackJet_Away500_,"hdNdEtadPhi_trackJet_Away500",
450  "Average number of tracks (pT > 500 MeV) in away region vs leading track jet pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
451 
452 
453 
454  bookProfile(hpTSumdEtadPhi_pTMax_Toward500_,"hpTSumdEtadPhi_pTMax_Toward500",
455  "Average number of tracks (pT > 500 MeV) in toward region vs leading track pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
456  bookProfile(hpTSumdEtadPhi_pTMax_Transverse500_,"hpTSumdEtadPhi_pTMax_Transverse500",
457  "Average number of tracks (pT > 500 MeV) in transverse region vs leading track pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
458  bookProfile(hpTSumdEtadPhi_pTMax_Away500_,"hpTSumdEtadPhi_pTMax_Away500",
459  "Average number of tracks (pT > 500 MeV) in away region vs leading track pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
460 /*
461  bookProfile(hpTSumdEtadPhi_caloJet_Toward500_,"hpTSumdEtadPhi_caloJet_Toward500",
462  "Average number of tracks (pT > 500 MeV) in toward region vs leading calo jet pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
463  bookProfile(hpTSumdEtadPhi_caloJet_Transverse500_,"hpTSumdEtadPhi_caloJet_Transverse500",
464  "Average number of tracks (pT > 500 MeV) in transverse region vs leading calo jet pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
465  bookProfile(hpTSumdEtadPhi_caloJet_Away500_,"hpTSumdEtadPhi_caloJet_Away500",
466  "Average number of tracks (pT > 500 MeV) in away region vs leading calo jet pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
467 */
468 
469  bookProfile(hpTSumdEtadPhi_trackJet_Toward500_,"hpTSumdEtadPhi_trackJet_Toward500",
470  "Average number of tracks (pT > 500 MeV) in toward region vs leading track jet pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
471  bookProfile(hpTSumdEtadPhi_trackJet_Transverse500_,"hpTSumdEtadPhi_trackJet_Transverse500",
472  "Average number of tracks (pT > 500 MeV) in transverse region vs leading track jet pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
473  bookProfile(hpTSumdEtadPhi_trackJet_Away500_,"hpTSumdEtadPhi_trackJet_Away500",
474  "Average number of tracks (pT > 500 MeV) in away region vs leading track jet pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
475 
476 
477  bookProfile(hdNdEtadPhi_pTMax_Toward900_,"hdNdEtadPhi_pTMax_Toward900",
478  "Average number of tracks (pT > 900 MeV) in toward region vs leading track pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
479  bookProfile(hdNdEtadPhi_pTMax_Transverse900_,"hdNdEtadPhi_pTMax_Transverse900",
480  "Average number of tracks (pT > 900 MeV) in transverse region vs leading track pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
481  bookProfile(hdNdEtadPhi_pTMax_Away900_,"hdNdEtadPhi_pTMax_Away900",
482  "Average number of tracks (pT > 900 MeV) in away region vs leading track pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
483 /*
484  bookProfile(hdNdEtadPhi_caloJet_Toward900_,"hdNdEtadPhi_caloJet_Toward900",
485  "Average number of tracks (pT > 900 MeV) in toward region vs leading calo jet pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
486  bookProfile(hdNdEtadPhi_caloJet_Transverse900_,"hdNdEtadPhi_caloJet_Transverse900",
487  "Average number of tracks (pT > 900 MeV) in transverse region vs leading calo jet pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
488  bookProfile(hdNdEtadPhi_caloJet_Away900_,"hdNdEtadPhi_caloJet_Away900",
489  "Average number of tracks (pT > 900 MeV) in away region vs leading calo jet pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
490 */
491 
492  bookProfile(hdNdEtadPhi_trackJet_Toward900_,"hdNdEtadPhi_trackJet_Toward900",
493  "Average number of tracks (pT > 900 MeV) in toward region vs leading track jet pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2);
494  bookProfile(hdNdEtadPhi_trackJet_Transverse900_,"hdNdEtadPhi_trackJet_Transverse900",
495  "Average number of tracks (pT > 900 MeV) in transverse region vs leading track jet pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
496  bookProfile(hdNdEtadPhi_trackJet_Away900_,"hdNdEtadPhi_trackJet_Away900",
497  "Average number of tracks (pT > 900 MeV) in away region vs leading track jet pT;pT(GeV/c);dN/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
498 
499 
500 
501  bookProfile(hpTSumdEtadPhi_pTMax_Toward900_,"hpTSumdEtadPhi_pTMax_Toward900",
502  "Average number of tracks (pT > 900 MeV) in toward region vs leading track pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
503  bookProfile(hpTSumdEtadPhi_pTMax_Transverse900_,"hpTSumdEtadPhi_pTMax_Transverse900",
504  "Average number of tracks (pT > 900 MeV) in transverse region vs leading track pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
505  bookProfile(hpTSumdEtadPhi_pTMax_Away900_,"hpTSumdEtadPhi_pTMax_Away900",
506  "Average number of tracks (pT > 900 MeV) in away region vs leading track pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
507 /*
508  bookProfile(hpTSumdEtadPhi_caloJet_Toward900_,"hpTSumdEtadPhi_caloJet_Toward900",
509  "Average number of tracks (pT > 900 MeV) in toward region vs leading calo jet pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
510  bookProfile(hpTSumdEtadPhi_caloJet_Transverse900_,"hpTSumdEtadPhi_caloJet_Transverse900",
511  "Average number of tracks (pT > 900 MeV) in transverse region vs leading calo jet pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
512  bookProfile(hpTSumdEtadPhi_caloJet_Away900_,"hpTSumdEtadPhi_caloJet_Away900",
513  "Average number of tracks (pT > 900 MeV) in away region vs leading calo jet pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
514 */
515  bookProfile(hpTSumdEtadPhi_trackJet_Toward900_,"hpTSumdEtadPhi_trackJet_Toward900",
516  "Average number of tracks (pT > 900 MeV) in toward region vs leading track jet pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
517  bookProfile(hpTSumdEtadPhi_trackJet_Transverse900_,"hpTSumdEtadPhi_trackJet_Transverse900",
518  "Average number of tracks (pT > 900 MeV) in transverse region vs leading track jet pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
519  bookProfile(hpTSumdEtadPhi_trackJet_Away900_,"hpTSumdEtadPhi_trackJet_Away900",
520  "Average number of tracks (pT > 900 MeV) in away region vs leading track jet pT;pT(GeV/c);dpTSum/d#eta d#phi",Nx,x1,x2,y1,y2,0,0);
521 
522 
523  }
524 
525 if (1) {
526  const int Nx = 20;
527  const double x1 = 0.0;
528  const double x2 = 20.0;
529 
530  book1D(hChargedJetMulti_,"hChargedJetMulti","Charged jet multiplicity;multiplicities",Nx,x1,x2);
531  //book1D(hCaloJetMulti_,"hCaloJetMulti","Calo jet multiplicity;multiplicities",Nx,x1,x2);
532 
533  }
534 
535 
536 if (1) {
537  const int Nx = 60;
538  const double x1 = -180.0;
539  const double x2 = 180.0;
540 
541  book1D(hdPhi_maxpTTrack_tracks_,"hdPhi_maxpTTrack_tracks","delta phi between leading tracks and other tracks;#Delta#phi(leading track-track)",Nx,x1,x2);
542 // book1D(hdPhi_caloJet_tracks_,"hdPhi_caloJet_tracks","delta phi between leading calo jet and tracks;#Delta#phi(leading calo jet-track)",Nx,x1,x2);
543  book1D(hdPhi_chargedJet_tracks_,"hdPhi_chargedJet_tracks","delta phi between leading charged jet and tracks;#Delta#phi(leading charged jet-track)",Nx,x1,x2);
544 
545 }
546 
547 
548 }
549 
550 //--------------------------------------------------------------------------------------------------
551 void QcdUeDQM::endJob(void)
552 {
553 }
554 
555 //--------------------------------------------------------------------------------------------------
556 
558  const EventSetup &iSetup)
559 {
560  if( ! isHltConfigSuccessful_ ) return;
561 
562  // Update various histograms.
563 
564  //repSummary_->Fill(1.);
565  // repSumMap_->Fill(0.5,0.5,1.);
566 
567 }
568 
569 //--------------------------------------------------------------------------------------------------
570 
571 void QcdUeDQM::endRun(const Run &, const EventSetup &)
572 {
573  if( ! isHltConfigSuccessful_ ) return;
574 
575  // End run, cleanup. TODO: can this be called several times in DQM???
576 
577 }
578 
579 //--------------------------------------------------------------------------------------------------
580 void QcdUeDQM::fill1D(std::vector<TH1F*> &hs, double val, double w)
581 {
582  // Loop over histograms and fill if trigger has fired.
583 
584  for(size_t i=0;i<hs.size();++i) {
585  if (!hltTrgDeci_.at(i))
586  continue;
587  hs.at(i)->Fill(val,w);
588  }
589 }
590 
591 //--------------------------------------------------------------------------------------------------
592 void QcdUeDQM::fill1D(std::vector<MonitorElement*> &mes, double val, double w)
593 {
594  // Loop over histograms and fill if trigger has fired.
595 
596  for(size_t i=0;i<mes.size();++i) {
597  if (!hltTrgDeci_.at(i))
598  continue;
599  mes.at(i)->Fill(val,w);
600  }
601 }
602 
603 //--------------------------------------------------------------------------------------------------
604 void QcdUeDQM::setLabel1D(std::vector<MonitorElement*> &mes)
605 {
606  // Loop over histograms and fill if trigger has fired.
607  string cut[5] = {"Nevt","vtx!=bmspt","Zvtx<10cm","pT>1GeV","trackFromVtx"};
608  for(size_t i=0;i<mes.size();++i) {
609  if (!hltTrgDeci_.at(i))
610  continue;
611  for(size_t j = 1;j < 6;j++)mes.at(i)->setBinLabel(j,cut[j-1],1);
612  }
613 }
614 
615 //--------------------------------------------------------------------------------------------------
616 void QcdUeDQM::fill2D(std::vector<TH2F*> &hs, double valx, double valy, double w)
617 {
618  // Loop over histograms and fill if trigger has fired.
619 
620  for(size_t i=0;i<hs.size();++i) {
621  if (!hltTrgDeci_.at(i))
622  continue;
623  hs.at(i)->Fill(valx, valy ,w);
624  }
625 }
626 
627 //--------------------------------------------------------------------------------------------------
628 void QcdUeDQM::fill2D(std::vector<MonitorElement*> &mes, double valx, double valy, double w)
629 {
630  // Loop over histograms and fill if trigger has fired.
631 
632  for(size_t i=0;i<mes.size();++i) {
633  if (!hltTrgDeci_.at(i))
634  continue;
635  mes.at(i)->Fill(valx, valy ,w);
636  }
637 }
638 //--------------------------------------------------------------------------------------------------
639 void QcdUeDQM::fillProfile(std::vector<TProfile*> &hs, double valx, double valy, double w)
640 {
641  // Loop over histograms and fill if trigger has fired.
642 
643  for(size_t i=0;i<hs.size();++i) {
644  if (!hltTrgDeci_.at(i))
645  continue;
646  hs.at(i)->Fill(valx, valy ,w);
647  }
648 }
649 
650 //--------------------------------------------------------------------------------------------------
651 void QcdUeDQM::fillProfile(std::vector<MonitorElement*> &mes, double valx, double valy, double w)
652 {
653  // Loop over histograms and fill if trigger has fired.
654 
655  for(size_t i=0;i<mes.size();++i) {
656  if (!hltTrgDeci_.at(i))
657  continue;
658  const double y = valy*w;
659  mes.at(i)->Fill(valx, y);
660  }
661 }
662 
663 //--------------------------------------------------------------------------------------------------
664 bool QcdUeDQM::trackSelection(const reco::Track &trk, const reco::BeamSpot* bs, const reco::Vertex vtx, int sizevtx )
665 {
666 //-------------Fill basic histograms---------
667 
668 
669 //-------------------------------------------
670 
671  bool goodTrk = false;
672 
673  if(sizevtx!=1) return 0; //selection events with only a vertex
674 
675  //Fill basic information of all the tracks
679  fill1D(hRatioPtErrorPt_,(trk.ptError()/trk.pt()));
680  fill1D(hTrkPt_,trk.pt());
681  fill1D(hTrkEta_,trk.eta());
682  fill1D(hTrkPhi_,trk.phi());
683  fill1D(hRatioDxySigmaDxyBS_,(trk.dxy(bs->position())/trk.dxyError()));
684  fill1D(hRatioDxySigmaDxyPV_,(trk.dxy(vtx.position())/trk.dxyError()));
685  fill1D(hRatioDzSigmaDzBS_,(trk.dz(bs->position())/trk.dzError()));
686  fill1D(hRatioDzSigmaDzPV_,(trk.dz(vtx.position())/trk.dzError()));
688  fill1D(hTrkNdof_,trk.ndof());
689 
690  fill1D(hBeamSpot_x_,bs->x0());
691  fill1D(hBeamSpot_y_,bs->y0());
692  fill1D(hBeamSpot_z_,bs->z0());
693 
694  //number of layers
695  bool layerMinCutbool=false;
698  layerMinCutbool=true;
699 
700 
701  //number of pixel layers
702  bool pxlLayerMinCutbool=false;
703  if (trk.hitPattern().pixelLayersWithMeasurement() >=pxlLayerMinCut_) pxlLayerMinCutbool=true;
704 
705 
706  // cut on the hits in pixel layers
707  bool hasPIX1 = false;
708  if (requirePIX1_) {
709  const reco::HitPattern& p = trk.hitPattern();
710  for (int i=0; i<p.numberOfHits(); i++) {
711  uint32_t hit = p.getHitPattern(i);
712  if (p.validHitFilter(hit) && p.pixelHitFilter(hit) && p.getLayer(hit)==1) hasPIX1 = true;
713  }
714  }else hasPIX1 = true;
715 
716  // cut on the pT error
717  bool ptErrorbool=false;
718  if (trk.ptError()/trk.pt() < ptErr_pt_ ||
719  (trk.hitPattern().trackerLayersWithMeasurement()==3 && trk.hitPattern().pixelLayersWithMeasurement()==3 && allowTriplets_)) ptErrorbool=true;
720  // quality cut
721  bool quality_ok = true;
722  if (quality_.size()!=0) {
723  quality_ok = false;
724  for (unsigned int i = 0; i<quality_.size();++i) {
725  if (trk.quality(quality_[i])){
726  quality_ok = true;
727  break;
728  }
729  }
730  }
731  //-----
732  bool algo_ok = true;
733  if (algorithm_.size()!=0) {
734  if (std::find(algorithm_.begin(),algorithm_.end(),trk.algo())==algorithm_.end()) algo_ok = false;
735  }
736 
737 
738  if(bsuse_==1)
739  {
740  if(hasPIX1 && pxlLayerMinCutbool && layerMinCutbool && (trk.hitPattern().pixelLayersWithMeasurement() + trk.hitPattern().numberOfValidStripLayersWithMonoAndStereo()) >= min3DHit_ && ptErrorbool && fabs(trk.pt()) >= ptMin_ && trk.eta() >= minRapidity_ && trk.eta() <= maxRapidity_ && fabs(trk.dxy(bs->position())/trk.dxyError()) < tip_ && fabs(trk.dz(bs->position())/trk.dzError()) < lip_ && trk.normalizedChi2()<=maxChi2_ && quality_ok && algo_ok)goodTrk=true ;
741  }
742 
743  if(bsuse_==0)
744  {
745  if(hasPIX1 && pxlLayerMinCutbool && layerMinCutbool && (trk.hitPattern().pixelLayersWithMeasurement() + trk.hitPattern().numberOfValidStripLayersWithMonoAndStereo()) >= min3DHit_ && ptErrorbool && fabs(trk.pt()) >= ptMin_ && trk.eta() >= minRapidity_ && trk.eta() <= maxRapidity_ && fabs(trk.dxy(vtx.position())/trk.dxyError()) < tip_ && fabs(trk.dz(vtx.position())/trk.dzError()) < lip_ && trk.normalizedChi2()<=maxChi2_ && quality_ok && algo_ok)goodTrk=true;
746 
747  }
748 
749  return goodTrk;
750 
751  }
752 //--------------------------------------------------------------------------------------------------
754 {
755  const reco::VertexCollection theVertices = *(vtxColl.product());
756  bool goodVtx = false;
757  fill1D(hNvertices_,theVertices.size());
758  for (reco::VertexCollection::const_iterator vertexIt = theVertices.begin(); vertexIt != theVertices.end(); ++vertexIt)
759  {
760  fill1D(hVertex_z_,vertexIt->z());
761  fill1D(hVertex_y_,vertexIt->y());
762  fill1D(hVertex_x_,vertexIt->x());
763  fill1D(hVertex_ndof_,vertexIt->ndof());
764  fill1D(hVertex_rho_,vertexIt->position().rho());
765  fill1D(hVertex_z_bs_,(vertexIt->z() -bs->z0()));
766 
767  if(fabs(vertexIt->z() -bs->z0()) < diffvtxbs_ && vertexIt->ndof() >= 4 && vertexIt->position().rho()<= 2.0)
768  {
769  goodVtx = true;
770  vtx1=(*vertexIt);
771 
772  break;
773  }
774  } // Loop over vertcies
775  return goodVtx;
776 }
777 //--------------------------------------------------------------------------------------------------
778 void QcdUeDQM::fillpTMaxRelated(const std::vector<const reco::Track *> &track)
779  {
780  fill1D(hNgoodTrk_,track.size());
781  if(track.size()>0)
782  {
783  fill1D(hLeadingTrack_pTSpectrum_,track[0]->pt());
786  }
787  for(size_t i = 0; i < track.size(); i++)
788  {
789  fill1D(hGoodTrkPt500_,track[i]->pt());
790  fill1D(hGoodTrkEta500_,track[i]->eta());
791  fill1D(hGoodTrkPhi500_,track[i]->phi());
792  if(track[i]->pt() > 0.9)
793  {
794  fill1D(hGoodTrkPt900_,track[i]->pt());
795  fill1D(hGoodTrkEta900_,track[i]->eta());
796  fill1D(hGoodTrkPhi900_,track[i]->phi());
797  }
798  }
799 
800  }
801 
802 
804 {
805  fill1D(hChargedJetMulti_,trackJets->size());
806  for( reco::TrackJetCollection::const_iterator f = trackJets->begin(); f != trackJets->end(); f++)
807  {
808  if(f != trackJets->begin())continue;
812  }
813 
814 }
815 
816 /*
817 void QcdUeDQM::fillCaloJetSpectra(const edm::Handle<reco::CaloJetCollection> caloJets)
818 {
819  fill1D(hCaloJetMulti_,caloJets->size());
820  for( reco::CaloJetCollection::const_iterator f = caloJets->begin(); f != caloJets->end(); f++)
821  {
822  if(f != caloJets->begin())continue;
823  fill1D(hLeadingCaloJet_pTSpectrum_,f->pt());
824  fill1D(hLeadingCaloJet_etaSpectrum_,f->eta());
825  fill1D(hLeadingCaloJet_phiSpectrum_,f->phi());
826  }
827 
828 }
829 
830 
831 */
832 
833 
834 /*
835  weight for transverse/toward/away region = 0.12
836 
837 
838 */
839 
840 void QcdUeDQM::fillUE_with_MaxpTtrack(const std::vector<const reco::Track*> &track)
841 {
842 double w = 0.119;
843 //double w = 1.;
844 double nTrk500_TransReg = 0;
845 double nTrk500_AwayReg = 0;
846 double nTrk500_TowardReg = 0;
847 
848 double pTSum500_TransReg = 0;
849 double pTSum500_AwayReg = 0;
850 double pTSum500_TowardReg = 0;
851 
852 
853 double nTrk900_TransReg = 0;
854 double nTrk900_AwayReg = 0;
855 double nTrk900_TowardReg = 0;
856 
857 double pTSum900_TransReg = 0;
858 double pTSum900_AwayReg = 0;
859 double pTSum900_TowardReg = 0;
860  if(track.size() > 0)
861  {
862  if(track[0]->pt() > 1.)
863  {
864  for(size_t i = 1; i < track.size();i++)
865  {
866 
867  double dphi = (180./PI)*(deltaPhi(track[0]->phi(),track[i]->phi()));
869  if(fabs(dphi)>60. && fabs(dphi)<120.)
870  {
871  pTSum500_TransReg = pTSum500_TransReg + track[i]->pt();
872  nTrk500_TransReg++;
873  if(track[i]->pt() > 0.9)
874  {
875  pTSum900_TransReg = pTSum900_TransReg + track[i]->pt();
876  nTrk900_TransReg++;
877  }
878  }
879 
880  if(fabs(dphi)>120. && fabs(dphi)<180.)
881  {
882  pTSum500_AwayReg = pTSum500_AwayReg + track[i]->pt();
883  nTrk500_AwayReg++;
884  if(track[i]->pt() > 0.9)
885  {
886  pTSum900_AwayReg = pTSum900_AwayReg + track[i]->pt();
887  nTrk900_AwayReg++;
888 
889  }
890  }
891 
892  if(fabs(dphi)<60.)
893  {
894  pTSum500_TowardReg = pTSum500_TowardReg + track[i]->pt();
895  nTrk500_TowardReg++;
896  if(track[i]->pt() > 0.9)
897  {
898  pTSum900_TowardReg = pTSum900_TowardReg + track[i]->pt();
899  nTrk900_TowardReg++;
900  }
901  }
902  } // track loop
903  }// leading track
904  // non empty collection
905  fillProfile(hdNdEtadPhi_pTMax_Toward500_, track[0]->pt(),nTrk500_TowardReg,w);
906  fillProfile(hdNdEtadPhi_pTMax_Transverse500_, track[0]->pt(),nTrk500_TransReg,w);
907  fillProfile(hdNdEtadPhi_pTMax_Away500_, track[0]->pt(),nTrk500_AwayReg,w);
908 
909  fillProfile(hpTSumdEtadPhi_pTMax_Toward500_,track[0]->pt() ,pTSum500_TowardReg,w);
910  fillProfile(hpTSumdEtadPhi_pTMax_Transverse500_,track[0]->pt(),pTSum500_TransReg,w);
911  fillProfile(hpTSumdEtadPhi_pTMax_Away500_, track[0]->pt(),pTSum500_AwayReg,w);
912 
913  fillProfile(hdNdEtadPhi_pTMax_Toward900_, track[0]->pt(),nTrk900_TowardReg,w);
914  fillProfile(hdNdEtadPhi_pTMax_Transverse900_, track[0]->pt(),nTrk900_TransReg,w);
915  fillProfile(hdNdEtadPhi_pTMax_Away900_, track[0]->pt(),nTrk900_AwayReg,w);
916 
917  fillProfile(hpTSumdEtadPhi_pTMax_Toward900_,track[0]->pt() ,pTSum900_TowardReg,w);
918  fillProfile(hpTSumdEtadPhi_pTMax_Transverse900_,track[0]->pt(),pTSum900_TransReg,w);
919  fillProfile(hpTSumdEtadPhi_pTMax_Away900_, track[0]->pt(),pTSum900_AwayReg,w);
920  }
921 }
922 
923 void QcdUeDQM::fillUE_with_ChargedJets(const std::vector<const reco::Track *> &track, const edm::Handle<reco::TrackJetCollection> &trackJets)
924 {
925 double w = 0.119;
926 double nTrk500_TransReg = 0;
927 double nTrk500_AwayReg = 0;
928 double nTrk500_TowardReg = 0;
929 
930 double pTSum500_TransReg = 0;
931 double pTSum500_AwayReg = 0;
932 double pTSum500_TowardReg = 0;
933 
934 
935 double nTrk900_TransReg = 0;
936 double nTrk900_AwayReg = 0;
937 double nTrk900_TowardReg = 0;
938 
939 double pTSum900_TransReg = 0;
940 double pTSum900_AwayReg = 0;
941 double pTSum900_TowardReg = 0;
942 
943  if(!(trackJets->empty()) && (trackJets->begin())->pt() > 1.)
944  {
945  double jetPhi = (trackJets->begin())->phi();
946  for(size_t i = 0; i < track.size();i++)
947  {
948  double dphi = (180./PI)*(deltaPhi(jetPhi,track[i]->phi()));
950  if(fabs(dphi)>60. && fabs(dphi)<120.)
951  {
952  pTSum500_TransReg = pTSum500_TransReg + track[i]->pt();
953  nTrk500_TransReg++;
954  if(track[i]->pt() > 0.9)
955  {
956  pTSum900_TransReg = pTSum900_TransReg + track[i]->pt();
957  nTrk900_TransReg++;
958  }
959  }
960 
961  if(fabs(dphi)>120. && fabs(dphi)<180.)
962  {
963  pTSum500_AwayReg = pTSum500_AwayReg + track[i]->pt();
964  nTrk500_AwayReg++;
965  if(track[i]->pt() > 0.9)
966  {
967  pTSum900_AwayReg = pTSum900_AwayReg + track[i]->pt();
968  nTrk900_AwayReg++;
969  }
970  }
971  if(fabs(dphi)<60.)
972  {
973  pTSum500_TowardReg = pTSum500_TowardReg + track[i]->pt();
974  nTrk500_TowardReg++;
975  if(track[i]->pt() > 0.9)
976  {
977  pTSum900_TowardReg = pTSum900_TowardReg + track[i]->pt();
978  nTrk900_TowardReg++;
979  }
980  }
981  }// tracks loop
982 
983  }// leading track jet
984 
985  fillProfile(hdNdEtadPhi_trackJet_Toward500_, (trackJets->begin())->pt(),nTrk500_TowardReg,w);
986  fillProfile(hdNdEtadPhi_trackJet_Transverse500_, (trackJets->begin())->pt(),nTrk500_TransReg,w);
987  fillProfile(hdNdEtadPhi_trackJet_Away500_, (trackJets->begin())->pt(),nTrk500_AwayReg,w);
988 
989  fillProfile(hpTSumdEtadPhi_trackJet_Toward500_, (trackJets->begin())->pt(),pTSum500_TowardReg,w);
990  fillProfile(hpTSumdEtadPhi_trackJet_Transverse500_, (trackJets->begin())->pt(),pTSum500_TransReg,w);
991  fillProfile(hpTSumdEtadPhi_trackJet_Away500_, (trackJets->begin())->pt(),pTSum500_AwayReg,w);
992 
993  fillProfile(hdNdEtadPhi_trackJet_Toward900_, (trackJets->begin())->pt(),nTrk900_TowardReg,w);
994  fillProfile(hdNdEtadPhi_trackJet_Transverse900_, (trackJets->begin())->pt(),nTrk900_TransReg,w);
995  fillProfile(hdNdEtadPhi_trackJet_Away900_, (trackJets->begin())->pt(),nTrk900_AwayReg,w);
996 
997  fillProfile(hpTSumdEtadPhi_trackJet_Toward900_, (trackJets->begin())->pt(),pTSum900_TowardReg,w);
998  fillProfile(hpTSumdEtadPhi_trackJet_Transverse900_, (trackJets->begin())->pt(),pTSum900_TransReg,w);
999  fillProfile(hpTSumdEtadPhi_trackJet_Away900_, (trackJets->begin())->pt(),pTSum900_AwayReg,w);
1000 }
1001 
1002 /*
1003 void QcdUeDQM:: fillUE_with_CaloJets(const std::vector<const reco::Track *> &track, const edm::Handle<reco::CaloJetCollection> &caloJets)
1004 {
1005 double w = 0.119;
1006 double nTrk500_TransReg = 0;
1007 double nTrk500_AwayReg = 0;
1008 double nTrk500_TowardReg = 0;
1009 
1010 double pTSum500_TransReg = 0;
1011 double pTSum500_AwayReg = 0;
1012 double pTSum500_TowardReg = 0;
1013 
1014 double nTrk900_TransReg = 0;
1015 double nTrk900_AwayReg = 0;
1016 double nTrk900_TowardReg = 0;
1017 
1018 double pTSum900_TransReg = 0;
1019 double pTSum900_AwayReg = 0;
1020 double pTSum900_TowardReg = 0;
1021  if(!(caloJets->empty()) && (caloJets->begin())->pt() > 1.)
1022  {
1023  double jetPhi = (caloJets->begin())->phi();
1024  for(size_t i = 0; i < track.size();i++)
1025  {
1026  double dphi = (180./PI)*(deltaPhi(jetPhi,track[i]->phi()));
1027  fill1D(hdPhi_caloJet_tracks_,dphi);
1028  if(fabs(dphi)>60. && fabs(dphi)<120.)
1029  {
1030  pTSum500_TransReg = pTSum500_TransReg + track[i]->pt();
1031  nTrk500_TransReg++;
1032  if(track[i]->pt() > 0.9)
1033  {
1034  pTSum900_TransReg = pTSum900_TransReg + track[i]->pt();
1035  nTrk900_TransReg++;
1036  }
1037  }
1038  if(fabs(dphi)>120. && fabs(dphi)<180.)
1039  {
1040  pTSum500_AwayReg = pTSum500_AwayReg + track[i]->pt();
1041  nTrk500_AwayReg++;
1042  if(track[i]->pt() > 0.9)
1043  {
1044  pTSum900_AwayReg = pTSum900_AwayReg + track[i]->pt();
1045  nTrk900_AwayReg++;
1046  }
1047  }
1048  if(fabs(dphi)<60.)
1049  {
1050  pTSum500_TowardReg = pTSum500_TowardReg + track[i]->pt();
1051  nTrk500_TowardReg++;
1052  if(track[i]->pt() > 0.9)
1053  {
1054  pTSum900_TowardReg = pTSum900_TowardReg + track[i]->pt();
1055  nTrk900_TowardReg++;
1056  }
1057  }
1058  }// tracks loop
1059 
1060  }// leading calo jet
1061  fillProfile(hdNdEtadPhi_caloJet_Toward500_, (caloJets->begin())->pt(),nTrk500_TowardReg,w);
1062  fillProfile(hdNdEtadPhi_caloJet_Transverse500_, (caloJets->begin())->pt(),nTrk500_TransReg,w);
1063  fillProfile(hdNdEtadPhi_caloJet_Away500_, (caloJets->begin())->pt(),nTrk500_AwayReg,w);
1064 
1065  fillProfile(hpTSumdEtadPhi_caloJet_Toward500_, (caloJets->begin())->pt(),pTSum500_TowardReg,w);
1066  fillProfile(hpTSumdEtadPhi_caloJet_Transverse500_, (caloJets->begin())->pt(),pTSum500_TransReg,w);
1067  fillProfile(hpTSumdEtadPhi_caloJet_Away500_, (caloJets->begin())->pt(),pTSum500_AwayReg,w);
1068 
1069  fillProfile(hdNdEtadPhi_caloJet_Toward900_, (caloJets->begin())->pt(),nTrk900_TowardReg,w);
1070  fillProfile(hdNdEtadPhi_caloJet_Transverse900_, (caloJets->begin())->pt(),nTrk900_TransReg,w);
1071  fillProfile(hdNdEtadPhi_caloJet_Away900_, (caloJets->begin())->pt(),nTrk900_AwayReg,w);
1072 
1073  fillProfile(hpTSumdEtadPhi_caloJet_Toward900_, (caloJets->begin())->pt(),pTSum900_TowardReg,w);
1074  fillProfile(hpTSumdEtadPhi_caloJet_Transverse900_, (caloJets->begin())->pt(),pTSum900_TransReg,w);
1075  fillProfile(hpTSumdEtadPhi_caloJet_Away900_, (caloJets->begin())->pt(),pTSum900_AwayReg,w);
1076 
1077 
1078 }
1079 
1080 */
1081 void QcdUeDQM::fillHltBits(const Event &iEvent,const EventSetup &iSetup)
1082 {
1083  // Fill HLT trigger bits.
1084 
1085  Handle<TriggerResults> triggerResultsHLT;
1086  getProduct(hltUsedResName_, triggerResultsHLT, iEvent);
1087 
1088 /* const unsigned int ntrigs(triggerResultsHLT.product()->size());
1089  if( ntrigs != 0 ) {
1090  const edm::TriggerNames & triggerNames = iEvent.triggerNames(*triggerResultsHLT);
1091  for (unsigned int j=0; j!=ntrigs; j++) {
1092 // if(triggerResultsHLT->accept(j)){
1093 // unsigned int hlt_prescale = hltConfig_.prescaleValue(iEvent, iSetup, triggerName);
1094  cout<<"trigger fired"<<triggerNames.triggerName(j)<<endl;
1095  for(unsigned int itrigName = 0; itrigName < hltTrgNames_.size(); itrigName++ ) {
1096  unsigned int hlt_prescale = hltConfig.prescaleValue(iEvent, iSetup, hltTrgNames_[itrigName]);
1097 
1098  if(triggerNames.triggerIndex(hltTrgNames_[itrigName]) >= (unsigned int)ntrigs ) continue;
1099 // if( triggerResultsHLT->accept(triggerNames.triggerIndex(hltTrgNames_[itrigName])) )cout<<hltTrgNames_[itrigName]<<endl;
1100 
1101  }
1102  }
1103  }
1104  // }
1105 */
1106  for(size_t i=0;i<hltTrgBits_.size();++i) {
1107  if (hltTrgBits_.at(i)<0)
1108  continue; //ignore unknown trigger
1109  size_t tbit = hltTrgBits_.at(i);
1110  if (tbit<triggerResultsHLT->size()) {
1111  hltTrgDeci_[i] = triggerResultsHLT->accept(tbit);
1112  }
1113  }
1114  // fill correlation histogram
1115  for(size_t i=0;i<hltTrgBits_.size();++i) {
1116  if (hltTrgDeci_.at(i))
1117  h2TrigCorr_->Fill(i,i);
1118  for(size_t j=i+1;j<hltTrgBits_.size();++j) {
1119  if (hltTrgDeci_.at(i) && hltTrgDeci_.at(j))
1120  h2TrigCorr_->Fill(i,j);
1121  if (hltTrgDeci_.at(i) && !hltTrgDeci_.at(j))
1122  h2TrigCorr_->Fill(j,i);
1123  }
1124  }
1125 }
1126 
1127 
1128 
1129 //--------------------------------------------------------------------------------------------------
1130 
unsigned int size() const
number of trigger paths in trigger table
bool bsuse_
Definition: QcdUeDQM.h:277
std::vector< MonitorElement * > hpTSumdEtadPhi_trackJet_Away500_
Definition: QcdUeDQM.h:234
void endLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &iSetup)
Definition: QcdUeDQM.cc:557
T getParameter(std::string const &) const
double z0() const
z coordinate
Definition: BeamSpot.h:69
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
< trclass="colgroup">< tdclass="colgroup"colspan=5 > Ecal cluster collections</td ></tr >< tr >< td >< ahref="classreco_1_1BasicCluster.html"> reco::BasicCluster</a ></td >< td >< ahref="DataFormats_EgammaReco.html"> reco::BasicClusterCollection</a ></td >< td >< ahref="#"> hybridSuperClusters</a ></td >< tdclass="description"> Basic clusters reconstructed with hybrid algorithm(barrel only)</td >< td >S.Rahatlou</td ></tr >< tr >< td >< a href
dictionary parameters
Definition: Parameters.py:2
std::vector< MonitorElement * > hGoodTrkEta500_
Definition: QcdUeDQM.h:158
std::vector< MonitorElement * > hRatioPtErrorPt_
Definition: QcdUeDQM.h:152
void getProduct(const std::string name, edm::Handle< TYPE > &prod, const edm::Event &event) const
Definition: QcdUeDQM.h:295
std::vector< MonitorElement * > hTrkPt_
Definition: QcdUeDQM.h:153
std::vector< MonitorElement * > hdNdEtadPhi_trackJet_Toward900_
Definition: QcdUeDQM.h:245
std::vector< MonitorElement * > hVertex_ndof_
Definition: QcdUeDQM.h:176
std::vector< MonitorElement * > hNtrackerStripPixelLayer_
Definition: QcdUeDQM.h:151
std::vector< MonitorElement * > hGoodTrkPhi500_
Definition: QcdUeDQM.h:159
void fillHltBits(const edm::Event &iEvent, const edm::EventSetup &iSetup)
Definition: QcdUeDQM.cc:1081
std::vector< MonitorElement * > hBeamSpot_x_
Definition: QcdUeDQM.h:183
const std::string & triggerName(unsigned int triggerIndex) const
std::vector< MonitorElement * > hNvertices_
Definition: QcdUeDQM.h:172
std::vector< MonitorElement * > hGoodTrkPt900_
Definition: QcdUeDQM.h:160
std::vector< MonitorElement * > hpTSumdEtadPhi_trackJet_Transverse500_
Definition: QcdUeDQM.h:233
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:514
#define PI
void fill1D(std::vector< TH1F * > &hs, double val, double w=1.)
Definition: QcdUeDQM.cc:580
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:111
double deltaPhi(float phi1, float phi2)
Definition: VectorUtil.h:30
double dxyError() const
error on dxy
Definition: TrackBase.h:209
virtual ~QcdUeDQM()
Definition: QcdUeDQM.cc:106
void beginJob(void)
Definition: QcdUeDQM.cc:179
void createHistos()
Definition: QcdUeDQM.cc:329
std::vector< MonitorElement * > hdNdEtadPhi_trackJet_Transverse900_
Definition: QcdUeDQM.h:246
std::string hltUsedResName_
Definition: QcdUeDQM.h:140
std::vector< MonitorElement * > hpTSumdEtadPhi_trackJet_Toward900_
Definition: QcdUeDQM.h:258
std::vector< MonitorElement * > hdPhi_chargedJet_tracks_
Definition: QcdUeDQM.h:206
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:10
bool exists(std::string const &parameterName) const
checks if a parameter exists
std::vector< MonitorElement * > hLeadingTrack_pTSpectrum_
Definition: QcdUeDQM.h:186
std::vector< std::string > hltTrgUsedNames_
Definition: QcdUeDQM.h:139
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
edm::InputTag vtxLabel_
Definition: QcdUeDQM.h:283
std::vector< MonitorElement * > hpTSumdEtadPhi_pTMax_Transverse900_
Definition: QcdUeDQM.h:252
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:139
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
std::vector< MonitorElement * > hBeamSpot_y_
Definition: QcdUeDQM.h:182
std::vector< MonitorElement * > hdNdEtadPhi_pTMax_Toward500_
Definition: QcdUeDQM.h:212
bool fillVtxPlots(const reco::BeamSpot *bs, const edm::Handle< reco::VertexCollection > vtxColl)
Definition: QcdUeDQM.cc:753
std::vector< MonitorElement * > hdNdEtadPhi_trackJet_Transverse500_
Definition: QcdUeDQM.h:220
void fillProfile(std::vector< TProfile * > &hs, double valx, double valy, double w=1.)
Definition: QcdUeDQM.cc:639
void fillUE_with_ChargedJets(const std::vector< const reco::Track * > &track, const edm::Handle< reco::TrackJetCollection > &trackJets)
Definition: QcdUeDQM.cc:923
std::vector< MonitorElement * > hpTSumdEtadPhi_pTMax_Transverse500_
Definition: QcdUeDQM.h:226
double ptErr_pt_
Definition: QcdUeDQM.h:270
uint32_t getLayer(uint32_t pattern) const
Definition: HitPattern.cc:219
void setLabel1D(std::vector< MonitorElement * > &mes)
Definition: QcdUeDQM.cc:604
int pixelLayersWithMeasurement() const
Definition: HitPattern.cc:888
T eta() const
void beginRun(const edm::Run &r, const edm::EventSetup &iSetup)
Definition: QcdUeDQM.cc:200
std::vector< MonitorElement * > hVertex_z_bs_
Definition: QcdUeDQM.h:178
int numberOfValidStripLayersWithMonoAndStereo() const
Definition: HitPattern.cc:768
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
void operator()(TH3F *&h)
Definition: QcdUeDQM.cc:51
bool requirePIX1_
Definition: QcdUeDQM.h:274
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:883
const Point & position() const
position
Definition: Vertex.h:93
std::vector< MonitorElement * > hdNdEtadPhi_pTMax_Transverse500_
Definition: QcdUeDQM.h:213
bool trackSelection(const reco::Track &trk, const reco::BeamSpot *bs, const reco::Vertex vtx, int sizevtx)
Definition: QcdUeDQM.cc:664
std::vector< MonitorElement * > hLeadingChargedJet_etaSpectrum_
Definition: QcdUeDQM.h:209
bool isHltConfigSuccessful_
Definition: QcdUeDQM.h:69
void fillUE_with_MaxpTtrack(const std::vector< const reco::Track * > &track)
Definition: QcdUeDQM.cc:840
std::vector< std::string > hltTrgNames_
Definition: QcdUeDQM.h:134
std::vector< MonitorElement * > hTrkChi2_
Definition: QcdUeDQM.h:167
void Fill(long long x)
TrackAlgorithm algo() const
Definition: TrackBase.h:319
std::vector< MonitorElement * > hVertex_rho_
Definition: QcdUeDQM.h:177
std::vector< MonitorElement * > hdNdEtadPhi_trackJet_Toward500_
Definition: QcdUeDQM.h:219
std::vector< MonitorElement * > hpTSumdEtadPhi_pTMax_Away500_
Definition: QcdUeDQM.h:227
std::vector< MonitorElement * > hpTSumdEtadPhi_trackJet_Toward500_
Definition: QcdUeDQM.h:232
int iEvent
Definition: GenABIO.cc:243
edm::InputTag bsLabel_
Definition: QcdUeDQM.h:284
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:141
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup)
Definition: QcdUeDQM.cc:114
std::vector< MonitorElement * > hdPhi_maxpTTrack_tracks_
Definition: QcdUeDQM.h:204
std::vector< std::string > hltProcNames_
Definition: QcdUeDQM.h:133
std::vector< MonitorElement * > hdNdEtadPhi_pTMax_Away900_
Definition: QcdUeDQM.h:240
std::string hltResName_
Definition: QcdUeDQM.h:132
void beginLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &iSetup)
Definition: QcdUeDQM.cc:191
MonitorElement * h2TrigCorr_
Definition: QcdUeDQM.h:146
double ndof() const
number of degrees of freedom of the fit
Definition: TrackBase.h:109
std::vector< MonitorElement * > hdNdEtadPhi_trackJet_Away500_
Definition: QcdUeDQM.h:221
std::vector< MonitorElement * > hTrkPhi_
Definition: QcdUeDQM.h:155
double pt() const
track transverse momentum
Definition: TrackBase.h:131
std::vector< MonitorElement * > hpTSumdEtadPhi_trackJet_Transverse900_
Definition: QcdUeDQM.h:259
double maxChi2_
Definition: QcdUeDQM.h:276
std::vector< int > hltTrgBits_
Definition: QcdUeDQM.h:137
std::vector< MonitorElement * > hLeadingTrack_phiSpectrum_
Definition: QcdUeDQM.h:188
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
Definition: TrackBase.h:194
edm::InputTag trackLabel_
Definition: QcdUeDQM.h:282
HLTConfigProvider hltConfig
Definition: QcdUeDQM.h:130
void book2D(std::vector< MonitorElement * > &mes, const std::string &name, const std::string &title, int nx, double x1, double x2, int ny, double y1, double y2, bool sumw2=1, bool sbox=1)
Definition: QcdUeDQM.cc:287
int numberOfHits() const
Definition: HitPattern.cc:312
int j
Definition: DBlmapReader.cc:9
std::vector< MonitorElement * > hRatioDxySigmaDxyBS_
Definition: QcdUeDQM.h:163
std::vector< MonitorElement * > hRatioDzSigmaDzBS_
Definition: QcdUeDQM.h:165
double lip_
Definition: QcdUeDQM.h:268
TH1 * getTH1(void) const
double f[11][100]
reco::Vertex vtx1
Definition: QcdUeDQM.h:289
std::vector< MonitorElement * > hdNdEtadPhi_pTMax_Toward900_
Definition: QcdUeDQM.h:238
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Definition: DQMStore.cc:828
std::vector< MonitorElement * > hRatioDxySigmaDxyPV_
Definition: QcdUeDQM.h:164
std::vector< MonitorElement * > hdNdEtadPhi_pTMax_Transverse900_
Definition: QcdUeDQM.h:239
std::vector< reco::TrackBase::TrackAlgorithm > algorithm_
Definition: QcdUeDQM.h:286
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:223
bool validHitFilter(uint32_t pattern) const
Definition: HitPattern.cc:264
bool pixelHitFilter(uint32_t pattern) const
Definition: HitPattern.cc:138
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
std::vector< MonitorElement * > hNtrackerPixelLayer_
Definition: QcdUeDQM.h:150
std::vector< MonitorElement * > hChargedJetMulti_
Definition: QcdUeDQM.h:194
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:127
double dzError() const
error on dz
Definition: TrackBase.h:215
tuple cut
Definition: align_tpl.py:88
std::vector< MonitorElement * > hTrkEta_
Definition: QcdUeDQM.h:154
std::vector< MonitorElement * > hNtrackerLayer_
Definition: QcdUeDQM.h:149
std::vector< MonitorElement * > hGoodTrkPt500_
Definition: QcdUeDQM.h:157
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:46
bool allowTriplets_
Definition: QcdUeDQM.h:278
double ptMin_
Definition: QcdUeDQM.h:264
std::vector< MonitorElement * > hVertex_z_
Definition: QcdUeDQM.h:173
std::vector< MonitorElement * > hVertex_y_
Definition: QcdUeDQM.h:174
tuple tracks
Definition: testEve_cfg.py:39
std::vector< MonitorElement * > hdNdEtadPhi_trackJet_Away900_
Definition: QcdUeDQM.h:247
std::vector< MonitorElement * > hLeadingChargedJet_pTSpectrum_
Definition: QcdUeDQM.h:196
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
std::vector< MonitorElement * > hNgoodTrk_
Definition: QcdUeDQM.h:156
edm::InputTag caloJetLabel_
Definition: QcdUeDQM.h:280
double diffvtxbs_
Definition: QcdUeDQM.h:269
std::vector< MonitorElement * > hpTSumdEtadPhi_pTMax_Away900_
Definition: QcdUeDQM.h:253
double minRapidity_
Definition: QcdUeDQM.h:265
int min3DHit_
Definition: QcdUeDQM.h:275
std::vector< MonitorElement * > hpTSumdEtadPhi_pTMax_Toward500_
Definition: QcdUeDQM.h:225
T const * product() const
Definition: Handle.h:74
container selected_
Definition: QcdUeDQM.h:288
bool quality(const TrackQuality) const
Track quality.
Definition: TrackBase.h:364
std::vector< MonitorElement * > hdNdEtadPhi_pTMax_Away500_
Definition: QcdUeDQM.h:214
std::vector< MonitorElement * > hBeamSpot_z_
Definition: QcdUeDQM.h:181
double pxlLayerMinCut_
Definition: QcdUeDQM.h:273
void bookProfile(std::vector< MonitorElement * > &mes, const std::string &name, const std::string &title, int nx, double x1, double x2, double y1, double y2, bool sumw2=1, bool sbox=1)
Definition: QcdUeDQM.cc:312
std::vector< MonitorElement * > hpTSumdEtadPhi_pTMax_Toward900_
Definition: QcdUeDQM.h:251
QcdUeDQM(const edm::ParameterSet &parameters)
Definition: QcdUeDQM.cc:56
static TrackAlgorithm algoByName(const std::string &name)
Definition: TrackBase.cc:55
double y0() const
y coordinate
Definition: BeamSpot.h:67
std::vector< MonitorElement * > hRatioDzSigmaDzPV_
Definition: QcdUeDQM.h:166
std::vector< MonitorElement * > hTrkNdof_
Definition: QcdUeDQM.h:168
std::vector< MonitorElement * > hpTSumdEtadPhi_trackJet_Away900_
Definition: QcdUeDQM.h:260
tuple cout
Definition: gather_cfg.py:41
const Point & position() const
position
Definition: BeamSpot.h:63
std::vector< MonitorElement * > hVertex_x_
Definition: QcdUeDQM.h:175
void fillChargedJetSpectra(const edm::Handle< reco::TrackJetCollection > trackJets)
Definition: QcdUeDQM.cc:803
std::vector< reco::TrackBase::TrackQuality > quality_
Definition: QcdUeDQM.h:285
edm::InputTag chargedJetLabel_
Definition: QcdUeDQM.h:281
std::vector< MonitorElement * > hNevts_
Definition: QcdUeDQM.h:148
DQMStore * theDbe_
Definition: QcdUeDQM.h:143
void fillpTMaxRelated(const std::vector< const reco::Track * > &track)
Definition: QcdUeDQM.cc:778
double maxRapidity_
Definition: QcdUeDQM.h:266
void fill2D(std::vector< TH2F * > &hs, double valx, double valy, double w=1.)
Definition: QcdUeDQM.cc:616
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:642
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:86
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
Definition: TrackBase.h:121
#define CP(level)
Definition: QcdUeDQM.cc:47
int minHit_
Definition: QcdUeDQM.h:272
std::vector< MonitorElement * > hGoodTrkEta900_
Definition: QcdUeDQM.h:161
tuple size
Write out results.
void endRun(const edm::Run &r, const edm::EventSetup &iSetup)
Definition: QcdUeDQM.cc:571
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232
void endJob(void)
Definition: QcdUeDQM.cc:551
Definition: Run.h:32
std::vector< MonitorElement * > hLeadingTrack_etaSpectrum_
Definition: QcdUeDQM.h:187
double tip_
Definition: QcdUeDQM.h:267
double x0() const
x coordinate
Definition: BeamSpot.h:65
std::vector< MonitorElement * > hLeadingChargedJet_phiSpectrum_
Definition: QcdUeDQM.h:210
Definition: DDAxes.h:10
void book1D(std::vector< MonitorElement * > &mes, const std::string &name, const std::string &title, int nx, double x1, double x2, bool sumw2=1, bool sbox=1)
Definition: QcdUeDQM.cc:263
std::vector< bool > hltTrgDeci_
Definition: QcdUeDQM.h:138
std::vector< MonitorElement * > hGoodTrkPhi900_
Definition: QcdUeDQM.h:162