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