CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MuonTrackValidatorBase.h
Go to the documentation of this file.
1 #ifndef MuonTrackValidatorBase_h
2 #define MuonTrackValidatorBase_h
3 
9 #include <memory>
10 
15 
18 
22 
24 
25 
28 
32 
33 #include <iostream>
34 #include <sstream>
35 #include <string>
36 #include <TH1F.h>
37 #include <TH2F.h>
38 
39 class DQMStore;
41  public:
44  {
48  for (unsigned int www=0;www<label.size();www++){
50  }
51  }
52 
54  label(pset.getParameter< std::vector<edm::InputTag> >("label")),
55  usetracker(pset.getParameter<bool>("usetracker")),
56  usemuon(pset.getParameter<bool>("usemuon")),
57  bsSrc(pset.getParameter< edm::InputTag >("beamSpot")),
58  label_tp_effic(pset.getParameter< edm::InputTag >("label_tp_effic")),
59  label_tp_fake(pset.getParameter< edm::InputTag >("label_tp_fake")),
60  associators(pset.getParameter< std::vector<std::string> >("associators")),
61  out(pset.getParameter<std::string>("outputFile")),
62  parametersDefiner(pset.getParameter<std::string>("parametersDefiner")),
63  min(pset.getParameter<double>("min")),
64  max(pset.getParameter<double>("max")),
65  nint(pset.getParameter<int>("nint")),
66  useFabs(pset.getParameter<bool>("useFabsEta")),
67  minpT(pset.getParameter<double>("minpT")),
68  maxpT(pset.getParameter<double>("maxpT")),
69  nintpT(pset.getParameter<int>("nintpT")),
70  minHit(pset.getParameter<double>("minHit")),
71  maxHit(pset.getParameter<double>("maxHit")),
72  nintHit(pset.getParameter<int>("nintHit")),
73  minPhi(pset.getParameter<double>("minPhi")),
74  maxPhi(pset.getParameter<double>("maxPhi")),
75  nintPhi(pset.getParameter<int>("nintPhi")),
76  minDxy(pset.getParameter<double>("minDxy")),
77  maxDxy(pset.getParameter<double>("maxDxy")),
78  nintDxy(pset.getParameter<int>("nintDxy")),
79  minDz(pset.getParameter<double>("minDz")),
80  maxDz(pset.getParameter<double>("maxDz")),
81  nintDz(pset.getParameter<int>("nintDz")),
82  minVertpos(pset.getParameter<double>("minVertpos")),
83  maxVertpos(pset.getParameter<double>("maxVertpos")),
84  nintVertpos(pset.getParameter<int>("nintVertpos")),
85  minZpos(pset.getParameter<double>("minZpos")),
86  maxZpos(pset.getParameter<double>("maxZpos")),
87  nintZpos(pset.getParameter<int>("nintZpos")),
88  useInvPt(pset.getParameter<bool>("useInvPt")),
89  //
90  ptRes_rangeMin(pset.getParameter<double>("ptRes_rangeMin")),
91  ptRes_rangeMax(pset.getParameter<double>("ptRes_rangeMax")),
92  phiRes_rangeMin(pset.getParameter<double>("phiRes_rangeMin")),
93  phiRes_rangeMax(pset.getParameter<double>("phiRes_rangeMax")),
94  cotThetaRes_rangeMin(pset.getParameter<double>("cotThetaRes_rangeMin")),
95  cotThetaRes_rangeMax(pset.getParameter<double>("cotThetaRes_rangeMax")),
96  dxyRes_rangeMin(pset.getParameter<double>("dxyRes_rangeMin")),
97  dxyRes_rangeMax(pset.getParameter<double>("dxyRes_rangeMax")),
98  dzRes_rangeMin(pset.getParameter<double>("dzRes_rangeMin")),
99  dzRes_rangeMax(pset.getParameter<double>("dzRes_rangeMax")),
100  ptRes_nbin(pset.getParameter<int>("ptRes_nbin")),
101  cotThetaRes_nbin(pset.getParameter<int>("cotThetaRes_nbin")),
102  phiRes_nbin(pset.getParameter<int>("phiRes_nbin")),
103  dxyRes_nbin(pset.getParameter<int>("dxyRes_nbin")),
104  dzRes_nbin(pset.getParameter<int>("dzRes_nbin")),
105  ignoremissingtkcollection_(pset.getUntrackedParameter<bool>("ignoremissingtrackcollection",false)),
106  useLogPt(pset.getUntrackedParameter<bool>("useLogPt",false))
107  //
108  {
110  if(useLogPt){
111  maxpT=log10(maxpT);
112  minpT=log10(minpT);
113  }
114  }
115 
118 
119  virtual void doProfileX(TH2 * th2, MonitorElement* me){
120  if (th2->GetNbinsX()==me->getNbinsX()){
121  TProfile * p1 = (TProfile*) th2->ProfileX();
122  p1->Copy(*me->getTProfile());
123  delete p1;
124  } else {
125  throw cms::Exception("MuonTrackValidator") << "Different number of bins!";
126  }
127  }
128 
129  virtual void doProfileX(MonitorElement * th2m, MonitorElement* me) {
130  doProfileX(th2m->getTH2F(), me);
131  }
132 
133  virtual double getEta(double eta) {
134  if (useFabs) return fabs(eta);
135  else return eta;
136  }
137 
138  virtual double getPt(double pt) {
139  if (useInvPt && pt!=0) return 1/pt;
140  else return pt;
141  }
142 
143  void fillPlotFromVector(MonitorElement* h, std::vector<int>& vec) {
144  for (unsigned int j=0; j<vec.size(); j++){
145  h->setBinContent(j+1, vec[j]);
146  }
147  }
148 
149  void fillPlotFromVectors(MonitorElement* h, std::vector<int>& numerator, std::vector<int>& denominator,std::string type){
150  double value,err;
151  for (unsigned int j=0; j<numerator.size(); j++){
152  if (denominator[j]!=0){
153 if (type=="effic")
154 value = ((double) numerator[j])/((double) denominator[j]);
155 else if (type=="fakerate")
156 value = 1-((double) numerator[j])/((double) denominator[j]);
157 else return;
158 err = sqrt( value*(1-value)/(double) denominator[j] );
159 h->setBinContent(j+1, value);
160 h->setBinError(j+1,err);
161  }
162  else {
163 h->setBinContent(j+1, 0);
164  }
165  }
166  }
167 
168  void BinLogX(TH1*h)
169  {
170 
171  TAxis *axis = h->GetXaxis();
172  int bins = axis->GetNbins();
173 
174  float from = axis->GetXmin();
175  float to = axis->GetXmax();
176  float width = (to - from) / bins;
177  float *new_bins = new float[bins + 1];
178 
179  for (int i = 0; i <= bins; i++) {
180  new_bins[i] = TMath::Power(10, from + i * width);
181 
182  }
183  axis->Set(bins, new_bins);
184  delete[] new_bins;
185  }
186 
187  void setUpVectors() {
188  std::vector<double> etaintervalsv;
189  std::vector<double> phiintervalsv;
190  std::vector<double> pTintervalsv;
191  std::vector<double> dxyintervalsv;
192  std::vector<double> dzintervalsv;
193  std::vector<double> vertposintervalsv;
194  std::vector<double> zposintervalsv;
195  std::vector<int> totSIMveta,totASSveta,totASS2veta,totRECveta;
196  std::vector<int> totSIMvpT,totASSvpT,totASS2vpT,totRECvpT;
197  std::vector<int> totSIMv_hit,totASSv_hit,totASS2v_hit,totRECv_hit;
198  std::vector<int> totSIMv_phi,totASSv_phi,totASS2v_phi,totRECv_phi;
199  std::vector<int> totSIMv_dxy,totASSv_dxy,totASS2v_dxy,totRECv_dxy;
200  std::vector<int> totSIMv_dz,totASSv_dz,totASS2v_dz,totRECv_dz;
201  std::vector<int> totSIMv_vertpos,totASSv_vertpos,totSIMv_zpos,totASSv_zpos;
202 
203  // for muon Validation
204  std::vector<int> totASSveta_Quality05, totASSveta_Quality075;
205  std::vector<int> totASSvpT_Quality05, totASSvpT_Quality075;
206  std::vector<int> totASSv_phi_Quality05, totASSv_phi_Quality075;
207 
208  double step=(max-min)/nint;
209  std::ostringstream title,name;
210  etaintervalsv.push_back(min);
211  for (int k=1;k<nint+1;k++) {
212  double d=min+k*step;
213  etaintervalsv.push_back(d);
214  totSIMveta.push_back(0);
215  totASSveta.push_back(0);
216  totASS2veta.push_back(0);
217  totRECveta.push_back(0);
218  //
219  totASSveta_Quality05.push_back(0);
220  totASSveta_Quality075.push_back(0);
221  }
222  etaintervals.push_back(etaintervalsv);
223  totSIMeta.push_back(totSIMveta);
224  totASSeta.push_back(totASSveta);
225  totASS2eta.push_back(totASS2veta);
226  totRECeta.push_back(totRECveta);
227  //
228  totASSeta_Quality05.push_back(totASSveta_Quality05);
229  totASSeta_Quality075.push_back(totASSveta_Quality075);
230 
231  double steppT = (maxpT-minpT)/nintpT;
232  pTintervalsv.push_back(minpT);
233  for (int k=1;k<nintpT+1;k++) {
234  double d=0;
235  if(useLogPt)d=pow(10,minpT+k*steppT);
236  else d=minpT+k*steppT;
237  pTintervalsv.push_back(d);
238  totSIMvpT.push_back(0);
239  totASSvpT.push_back(0);
240  totASS2vpT.push_back(0);
241  totRECvpT.push_back(0);
242  //
243  totASSvpT_Quality05.push_back(0);
244  totASSvpT_Quality075.push_back(0);
245  }
246  pTintervals.push_back(pTintervalsv);
247  totSIMpT.push_back(totSIMvpT);
248  totASSpT.push_back(totASSvpT);
249  totASS2pT.push_back(totASS2vpT);
250  totRECpT.push_back(totRECvpT);
251  //
252  totASSpT_Quality05.push_back(totASSvpT_Quality05);
253  totASSpT_Quality075.push_back(totASSvpT_Quality075);
254 
255  for (int k=1;k<nintHit+1;k++) {
256  totSIMv_hit.push_back(0);
257  totASSv_hit.push_back(0);
258  totASS2v_hit.push_back(0);
259  totRECv_hit.push_back(0);
260  }
261  totSIM_hit.push_back(totSIMv_hit);
262  totASS_hit.push_back(totASSv_hit);
263  totASS2_hit.push_back(totASS2v_hit);
264  totREC_hit.push_back(totRECv_hit);
265 
266  double stepPhi = (maxPhi-minPhi)/nintPhi;
267  phiintervalsv.push_back(minPhi);
268  for (int k=1;k<nintPhi+1;k++) {
269  double d=minPhi+k*stepPhi;
270  phiintervalsv.push_back(d);
271  totSIMv_phi.push_back(0);
272  totASSv_phi.push_back(0);
273  totASS2v_phi.push_back(0);
274  totRECv_phi.push_back(0);
275  //
276  totASSv_phi_Quality05.push_back(0);
277  totASSv_phi_Quality075.push_back(0);
278  }
279  phiintervals.push_back(phiintervalsv);
280  totSIM_phi.push_back(totSIMv_phi);
281  totASS_phi.push_back(totASSv_phi);
282  totASS2_phi.push_back(totASS2v_phi);
283  totREC_phi.push_back(totRECv_phi);
284  //
285  totASS_phi_Quality05.push_back(totASSv_phi_Quality05);
286  totASS_phi_Quality075.push_back(totASSv_phi_Quality075);
287 
288  double stepDxy = (maxDxy-minDxy)/nintDxy;
289  dxyintervalsv.push_back(minDxy);
290  for (int k=1;k<nintDxy+1;k++) {
291  double d=minDxy+k*stepDxy;
292  dxyintervalsv.push_back(d);
293  totSIMv_dxy.push_back(0);
294  totASSv_dxy.push_back(0);
295  totASS2v_dxy.push_back(0);
296  totRECv_dxy.push_back(0);
297  }
298  dxyintervals.push_back(dxyintervalsv);
299  totSIM_dxy.push_back(totSIMv_dxy);
300  totASS_dxy.push_back(totASSv_dxy);
301  totASS2_dxy.push_back(totASS2v_dxy);
302  totREC_dxy.push_back(totRECv_dxy);
303 
304 
305  double stepDz = (maxDz-minDz)/nintDz;
306  dzintervalsv.push_back(minDz);
307  for (int k=1;k<nintDz+1;k++) {
308  double d=minDz+k*stepDz;
309  dzintervalsv.push_back(d);
310  totSIMv_dz.push_back(0);
311  totASSv_dz.push_back(0);
312  totASS2v_dz.push_back(0);
313  totRECv_dz.push_back(0);
314  }
315  dzintervals.push_back(dzintervalsv);
316  totSIM_dz.push_back(totSIMv_dz);
317  totASS_dz.push_back(totASSv_dz);
318  totASS2_dz.push_back(totASS2v_dz);
319  totREC_dz.push_back(totRECv_dz);
320 
321  double stepVertpos = (maxVertpos-minVertpos)/nintVertpos;
322  vertposintervalsv.push_back(minVertpos);
323  for (int k=1;k<nintVertpos+1;k++) {
324  double d=minVertpos+k*stepVertpos;
325  vertposintervalsv.push_back(d);
326  totSIMv_vertpos.push_back(0);
327  totASSv_vertpos.push_back(0);
328  }
329  vertposintervals.push_back(vertposintervalsv);
330  totSIM_vertpos.push_back(totSIMv_vertpos);
331  totASS_vertpos.push_back(totASSv_vertpos);
332 
333  double stepZpos = (maxZpos-minZpos)/nintZpos;
334  zposintervalsv.push_back(minZpos);
335  for (int k=1;k<nintZpos+1;k++) {
336  double d=minZpos+k*stepZpos;
337  zposintervalsv.push_back(d);
338  totSIMv_zpos.push_back(0);
339  totASSv_zpos.push_back(0);
340  }
341  zposintervals.push_back(zposintervalsv);
342  totSIM_zpos.push_back(totSIMv_zpos);
343  totASS_zpos.push_back(totASSv_zpos);
344 
345  }
346 
347  protected:
348 
350 
351  std::vector<edm::InputTag> label;
353  bool usemuon;
357  std::vector<std::string> associators;
360  std::vector<edm::EDGetTokenT<edm::View<reco::Track> > > track_Collection_Token;
364 
365  double min, max;
366  int nint;
367  bool useFabs;
368  double minpT, maxpT;
369  int nintpT;
370  double minHit, maxHit;
371  int nintHit;
372  double minPhi, maxPhi;
373  int nintPhi;
374  double minDxy, maxDxy;
375  int nintDxy;
376  double minDz, maxDz;
377  int nintDz;
380  double minZpos, maxZpos;
381  int nintZpos;
382  bool useInvPt;
383  //
389  bool useLogPt;
390 
392  std::vector<const TrackAssociatorBase*> associator;
393 
394  //sim
395  std::vector<MonitorElement*> h_ptSIM, h_etaSIM, h_tracksSIM, h_vertposSIM;
396 
397  //1D
398  std::vector<MonitorElement*> h_tracks, h_fakes, h_hits, h_charge;
399  std::vector<MonitorElement*> h_recoeta, h_assoceta, h_assoc2eta, h_simuleta;
400  std::vector<MonitorElement*> h_recopT, h_assocpT, h_assoc2pT, h_simulpT;
401  std::vector<MonitorElement*> h_recohit, h_assochit, h_assoc2hit, h_simulhit;
402  std::vector<MonitorElement*> h_recophi, h_assocphi, h_assoc2phi, h_simulphi;
403  std::vector<MonitorElement*> h_recodxy, h_assocdxy, h_assoc2dxy, h_simuldxy;
404  std::vector<MonitorElement*> h_recodz, h_assocdz, h_assoc2dz, h_simuldz;
405  std::vector<MonitorElement*> h_assocvertpos, h_simulvertpos, h_assoczpos, h_simulzpos;
407 
408  std::vector<MonitorElement*> h_assoceta_Quality05, h_assoceta_Quality075;
409  std::vector<MonitorElement*> h_assocpT_Quality05, h_assocpT_Quality075;
410  std::vector<MonitorElement*> h_assocphi_Quality05, h_assocphi_Quality075;
411 
412 
413  //2D
414  std::vector<MonitorElement*> nrec_vs_nsim;
415  std::vector<MonitorElement*> nrecHit_vs_nsimHit_sim2rec;
416  std::vector<MonitorElement*> nrecHit_vs_nsimHit_rec2sim;
417 
418  //assoc hits
419  std::vector<MonitorElement*> h_assocFraction, h_assocSharedHit;
420 
421  //#hit vs eta: to be used with doProfileX
422  std::vector<MonitorElement*> nhits_vs_eta,
424 
425  std::vector<MonitorElement*> h_hits_eta,
427 
428 
429  std::vector< std::vector<double> > etaintervals;
430  std::vector< std::vector<double> > pTintervals;
431  std::vector< std::vector<double> > phiintervals;
432  std::vector< std::vector<double> > dxyintervals;
433  std::vector< std::vector<double> > dzintervals;
434  std::vector< std::vector<double> > vertposintervals;
435  std::vector< std::vector<double> > zposintervals;
436  std::vector< std::vector<int> > totSIMeta,totRECeta,totASSeta,totASS2eta;
437  std::vector< std::vector<int> > totSIMpT,totRECpT,totASSpT,totASS2pT;
438  std::vector< std::vector<int> > totSIM_hit,totREC_hit,totASS_hit,totASS2_hit;
439  std::vector< std::vector<int> > totSIM_phi,totREC_phi,totASS_phi,totASS2_phi;
440  std::vector< std::vector<int> > totSIM_dxy,totREC_dxy,totASS_dxy,totASS2_dxy;
441  std::vector< std::vector<int> > totSIM_dz,totREC_dz,totASS_dz,totASS2_dz;
442  std::vector< std::vector<int> > totSIM_vertpos,totASS_vertpos,totSIM_zpos,totASS_zpos;
443 
444  // for muon Validation (SimToReco distributions for Quality > 0.5, 0.75)
445  std::vector<MonitorElement*> h_PurityVsQuality;
446  std::vector< std::vector<int> > totASSeta_Quality05,totASSeta_Quality075;
447  std::vector< std::vector<int> > totASSpT_Quality05, totASSpT_Quality075;
448  std::vector< std::vector<int> > totASS_phi_Quality05, totASS_phi_Quality075;
449 
450 };
451 
452 
453 #endif
std::vector< MonitorElement * > h_assoc2phi
std::vector< MonitorElement * > h_recoeta
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
type
Definition: HCALResponse.h:21
std::vector< MonitorElement * > nrecHit_vs_nsimHit_sim2rec
std::vector< MonitorElement * > h_DThits_eta
std::vector< MonitorElement * > h_assoc2hit
std::vector< std::vector< int > > totASS_zpos
int i
Definition: DBlmapReader.cc:9
std::vector< MonitorElement * > h_PurityVsQuality
std::vector< std::vector< int > > totASSeta_Quality05
std::vector< MonitorElement * > h_recopT
edm::ESHandle< MagneticField > theMF
void setBinContent(int binx, double content)
set content of bin (1-D)
std::vector< std::vector< int > > totREC_phi
std::vector< MonitorElement * > h_assoc2dxy
list numerator
Definition: cuy.py:483
std::vector< MonitorElement * > nrecHit_vs_nsimHit_rec2sim
std::vector< std::vector< int > > totASS2_hit
std::vector< edm::EDGetTokenT< edm::View< reco::Track > > > track_Collection_Token
void fillPlotFromVectors(MonitorElement *h, std::vector< int > &numerator, std::vector< int > &denominator, std::string type)
std::vector< MonitorElement * > h_assocpT_Quality075
std::vector< std::vector< int > > totRECpT
std::vector< TrackingParticle > TrackingParticleCollection
std::vector< std::vector< int > > totREC_dz
std::vector< MonitorElement * > nrec_vs_nsim
std::vector< MonitorElement * > h_pullDz
std::vector< MonitorElement * > h_recohit
std::vector< MonitorElement * > h_etaSIM
std::vector< MonitorElement * > h_assocvertpos
std::vector< MonitorElement * > h_fakes
virtual double getEta(double eta)
std::vector< MonitorElement * > h_eta
std::vector< std::vector< int > > totASS_dz
std::vector< std::vector< double > > etaintervals
std::vector< MonitorElement * > h_pt
std::vector< MonitorElement * > h_pullQoverp
std::vector< std::vector< int > > totSIM_zpos
std::vector< MonitorElement * > h_CSChits_eta
std::vector< std::vector< int > > totASS2_dz
std::vector< std::vector< int > > totASS_phi_Quality05
T eta() const
std::vector< MonitorElement * > h_assoceta
std::vector< MonitorElement * > h_tracks
std::vector< std::vector< double > > dxyintervals
std::vector< MonitorElement * > h_assoceta_Quality075
std::vector< MonitorElement * > nDThits_vs_eta
std::vector< std::vector< int > > totASS_phi
std::vector< std::vector< int > > totASS_dxy
std::vector< MonitorElement * > h_simuldxy
std::vector< std::vector< int > > totSIM_dxy
std::vector< MonitorElement * > h_simuldz
std::vector< std::vector< int > > totASSeta_Quality075
std::vector< MonitorElement * > nhits_vs_eta
virtual double getPt(double pt)
std::vector< MonitorElement * > h_assoczpos
std::vector< MonitorElement * > h_simulphi
list denominator
Definition: cuy.py:484
std::vector< std::vector< int > > totASS2pT
std::vector< MonitorElement * > h_vertposSIM
edm::EDGetTokenT< TrackingParticleCollection > tp_fake_Token
virtual void doProfileX(TH2 *th2, MonitorElement *me)
std::vector< edm::InputTag > label
std::vector< MonitorElement * > h_assocSharedHit
std::vector< std::vector< double > > pTintervals
virtual ~MuonTrackValidatorBase()
Destructor.
std::vector< std::vector< int > > totASS2eta
T sqrt(T t)
Definition: SSEVec.h:48
std::vector< std::vector< int > > totSIMpT
std::vector< std::vector< int > > totREC_dxy
std::vector< MonitorElement * > h_assoc2dz
MuonTrackValidatorBase(const edm::ParameterSet &pset, edm::ConsumesCollector iC)
Constructor.
std::vector< MonitorElement * > h_pullPhi
std::vector< std::vector< int > > totSIM_hit
std::vector< MonitorElement * > h_recophi
std::vector< std::vector< int > > totASSpT
int j
Definition: DBlmapReader.cc:9
std::vector< std::vector< int > > totASS_phi_Quality075
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 * > h_pullTheta
std::vector< std::vector< int > > totSIM_vertpos
std::vector< std::vector< int > > totASSpT_Quality05
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
std::vector< std::vector< int > > totREC_hit
std::vector< MonitorElement * > h_simulhit
std::vector< std::vector< int > > totSIMeta
std::vector< std::vector< int > > totASS2_dxy
std::vector< MonitorElement * > h_charge
std::vector< MonitorElement * > h_assocphi
virtual void doProfileX(MonitorElement *th2m, MonitorElement *me)
std::vector< std::vector< int > > totASS2_phi
std::vector< std::vector< double > > phiintervals
int k[5][pyjets_maxn]
std::vector< std::vector< int > > totASSpT_Quality075
std::vector< MonitorElement * > h_assocpT
std::vector< MonitorElement * > h_pullDxy
std::vector< MonitorElement * > h_simulpT
std::vector< MonitorElement * > h_tracksSIM
std::vector< MonitorElement * > h_assocphi_Quality05
std::vector< MonitorElement * > h_simulzpos
std::vector< MonitorElement * > h_recodz
std::vector< MonitorElement * > h_assocphi_Quality075
std::vector< std::vector< int > > totSIM_phi
void fillPlotFromVector(MonitorElement *h, std::vector< int > &vec)
std::vector< MonitorElement * > h_hits_eta
std::vector< MonitorElement * > h_hits
double p1[4]
Definition: TauolaWrapper.h:89
std::vector< std::vector< int > > totASSeta
std::vector< MonitorElement * > h_simulvertpos
MuonTrackValidatorBase(const edm::ParameterSet &pset)
std::vector< const TrackAssociatorBase * > associator
TProfile * getTProfile(void) const
std::vector< std::vector< int > > totRECeta
std::vector< std::vector< double > > vertposintervals
std::vector< std::vector< double > > dzintervals
std::vector< MonitorElement * > h_recodxy
std::vector< MonitorElement * > h_ptSIM
int getNbinsX(void) const
get # of bins in X-axis
std::vector< MonitorElement * > h_assocdz
std::vector< std::vector< double > > zposintervals
std::vector< MonitorElement * > h_assocpT_Quality05
std::vector< MonitorElement * > h_RPChits_eta
std::vector< MonitorElement * > h_assoc2pT
std::vector< MonitorElement * > h_assocFraction
volatile std::atomic< bool > shutdown_flag false
TH2F * getTH2F(void) const
std::vector< std::vector< int > > totSIM_dz
std::vector< std::string > associators
std::vector< MonitorElement * > h_assoceta_Quality05
std::vector< MonitorElement * > h_assocdxy
edm::EDGetTokenT< TrackingParticleCollection > tp_effic_Token
std::vector< MonitorElement * > nRPChits_vs_eta
std::vector< std::vector< int > > totASS_vertpos
std::vector< MonitorElement * > h_assochit
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
std::vector< std::vector< int > > totASS_hit
std::vector< MonitorElement * > nCSChits_vs_eta
std::vector< MonitorElement * > h_simuleta
std::vector< MonitorElement * > h_assoc2eta
edm::EDGetTokenT< reco::BeamSpot > bsSrc_Token