CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes
MTVHistoProducerAlgoForTracker Class Reference

#include <MTVHistoProducerAlgoForTracker.h>

Public Types

typedef dqm::reco::DQMStore DQMStore
 
using Histograms = MTVHistoProducerAlgoForTrackerHistograms
 

Public Member Functions

void bookMVAHistos (DQMStore::IBooker &ibook, Histograms &histograms, size_t nMVAs)
 
void bookRecodEdxHistos (DQMStore::IBooker &ibook, Histograms &histograms)
 
void bookRecoHistos (DQMStore::IBooker &ibook, Histograms &histograms, bool doResolutionPlots)
 
void bookRecoPVAssociationHistos (DQMStore::IBooker &ibook, Histograms &histograms)
 
void bookSeedHistos (DQMStore::IBooker &ibook, Histograms &histograms)
 
void bookSimHistos (DQMStore::IBooker &ibook, Histograms &histograms)
 
void bookSimTrackHistos (DQMStore::IBooker &ibook, Histograms &histograms, bool doResolutionPlots)
 
void bookSimTrackPVAssociationHistos (DQMStore::IBooker &ibook, Histograms &histograms)
 
void fill_dedx_recoTrack_histos (const Histograms &histograms, int count, const edm::RefToBase< reco::Track > &trackref, const std::vector< const edm::ValueMap< reco::DeDxData > * > &v_dEdx) const
 
void fill_duplicate_histos (const Histograms &histograms, int count, const reco::Track &track1, const reco::Track &track2) const
 
void fill_generic_recoTrack_histos (const Histograms &histograms, int count, const reco::Track &track, const TrackerTopology &ttopo, const math::XYZPoint &bsPosition, const math::XYZPoint *pvPosition, const TrackingVertex::LorentzVector *simPVPosition, bool isMatched, bool isSigMatched, bool isChargeMatched, int numAssocRecoTracks, int numVertices, int nSimHits, double sharedFraction, double dR, double dR_jet, const std::vector< float > &mvas, unsigned int selectsLoose, unsigned int selectsHP) const
 
void fill_generic_simTrack_histos (const Histograms &histograms, const TrackingParticle::Vector &, const TrackingParticle::Point &vertex, int bx) const
 
void fill_recoAssociated_simTrack_histos (const Histograms &histograms, int count, const reco::GenParticle &tp, const TrackingParticle::Vector &momentumTP, const TrackingParticle::Point &vertexTP, double dxy, double dz, int nSimHits, const reco::Track *track, int numVertices) const
 
void fill_recoAssociated_simTrack_histos (const Histograms &histograms, int count, const TrackingParticle &tp, const TrackingParticle::Vector &momentumTP, const TrackingParticle::Point &vertexTP, double dxy, double dz, double dxyPV, double dzPV, int nSimHits, int nSimLayers, int nSimPixelLayers, int nSimStripMonoAndStereoLayers, const reco::Track *track, int numVertices, double dR, double dR_jet, const math::XYZPoint *pvPosition, const TrackingVertex::LorentzVector *simPVPosition, const math::XYZPoint &bsPosition, const std::vector< float > &mvas, unsigned int selectsLoose, unsigned int selectsHP) const
 
void fill_ResoAndPull_recoTrack_histos (const Histograms &histograms, int count, const TrackingParticle::Vector &momentumTP, const TrackingParticle::Point &vertexTP, int chargeTP, const reco::Track &track, const math::XYZPoint &bsPosition) const
 
void fill_seed_histos (const Histograms &histograms, int count, int seedsFitFailed, int seedsTotal) const
 
void fill_simAssociated_recoTrack_histos (const Histograms &histograms, int count, const reco::Track &track) const
 
void fill_simTrackBased_histos (const Histograms &histograms, int numSimTracks) const
 
void fill_trackBased_histos (const Histograms &histograms, int count, int assTracks, int numRecoTracks, int numRecoTracksSelected, int numSimTracksSelected) const
 
 MTVHistoProducerAlgoForTracker (const edm::ParameterSet &pset, const bool doSeedPlots)
 
 ~MTVHistoProducerAlgoForTracker ()
 

Static Public Member Functions

static std::unique_ptr< RecoTrackSelectorBasemakeRecoTrackSelectorFromTPSelectorParameters (const edm::ParameterSet &pset)
 

Private Types

using SeedingLayerId = std::tuple< SeedingLayerSetsBuilder::SeedingLayerId, bool >
 
using SeedingLayerSetId = std::array< SeedingLayerId, 4 >
 

Private Member Functions

double getEta (double eta) const
 
double getPt (double pt) const
 
void getRecoMomentum (const reco::GsfTrack &gsfTrack, double &pt, double &ptError, double &qoverp, double &qoverpError, double &lambda, double &lambdaError, double &phi, double &phiError) const
 retrieval of reconstructed momentum components based on the mode of a reco::GsfTrack More...
 
void getRecoMomentum (const reco::Track &track, double &pt, double &ptError, double &qoverp, double &qoverpError, double &lambda, double &lambdaError, double &phi, double &phiError) const
 retrieval of reconstructed momentum components from reco::Track (== mean values for GSF) More...
 
unsigned int getSeedingLayerSetBin (const reco::Track &track, const TrackerTopology &ttopo) const
 

Private Attributes

int cotThetaRes_nbin
 
double cotThetaRes_rangeMax
 
double cotThetaRes_rangeMin
 
const bool doMTDPlots_
 
const bool doSeedPlots_
 
double dxyDzZoom
 
int dxyRes_nbin
 
double dxyRes_rangeMax
 
double dxyRes_rangeMin
 
int dzRes_nbin
 
double dzRes_rangeMax
 
double dzRes_rangeMin
 
std::unique_ptr< GenParticleCustomSelectorgeneralGpSelector
 
std::unique_ptr< TrackingParticleSelectorgeneralTpSelector
 
std::unique_ptr< GenParticleCustomSelectorGpSelectorForEfficiencyVsEta
 
std::unique_ptr< GenParticleCustomSelectorGpSelectorForEfficiencyVsPhi
 
std::unique_ptr< GenParticleCustomSelectorGpSelectorForEfficiencyVsPt
 
std::unique_ptr< GenParticleCustomSelectorGpSelectorForEfficiencyVsVTXR
 
std::unique_ptr< GenParticleCustomSelectorGpSelectorForEfficiencyVsVTXZ
 
double maxChi2
 
double maxDeDx
 
double maxdr
 
double maxdrj
 
double maxDxy
 
double maxDz
 
double maxDzpvCum
 
double maxDzpvsigCum
 
double maxEta
 
double maxHit
 
double maxLayers
 
double maxMVA
 
double maxPhi
 
double maxPt
 
double maxPu
 
double maxPVz
 
double maxTracks
 
double maxVertcount
 
double maxVertpos
 
double maxZpos
 
double minChi2
 
double minDeDx
 
double mindr
 
double mindrj
 
double minDxy
 
double minDz
 
double minEta
 
double minHit
 
double minLayers
 
double minMVA
 
double minPhi
 
double minPt
 
double minPu
 
double minPVz
 
double minTracks
 
double minVertcount
 
double minVertpos
 
double minZpos
 
int nintChi2
 
int nintDeDx
 
int nintdr
 
int nintdrj
 
int nintDxy
 
int nintDz
 
int nintDzpvCum
 
int nintDzpvsigCum
 
int nintEta
 
int nintHit
 
int nintLayers
 
int nintMVA
 
int nintPhi
 
int nintPt
 
int nintPu
 
int nintPVz
 
int nintTracks
 
int nintVertcount
 
int nintVertpos
 
int nintZpos
 
int phiRes_nbin
 
double phiRes_rangeMax
 
double phiRes_rangeMin
 
int ptRes_nbin
 
double ptRes_rangeMax
 
double ptRes_rangeMin
 
std::vector< std::string > seedingLayerSetNames
 
std::map< SeedingLayerSetId, unsigned int > seedingLayerSetToBin
 
std::unique_ptr< TrackingParticleSelectorTpSelectorForEfficiencyVsEta
 
std::unique_ptr< TrackingParticleSelectorTpSelectorForEfficiencyVsPhi
 
std::unique_ptr< TrackingParticleSelectorTpSelectorForEfficiencyVsPt
 
std::unique_ptr< TrackingParticleSelectorTpSelectorForEfficiencyVsVTXR
 
std::unique_ptr< TrackingParticleSelectorTpSelectorForEfficiencyVsVTXZ
 
std::unique_ptr< RecoTrackSelectorBasetrackSelectorVsEta
 
std::unique_ptr< RecoTrackSelectorBasetrackSelectorVsPhi
 
std::unique_ptr< RecoTrackSelectorBasetrackSelectorVsPt
 
bool useFabsEta
 
bool useInvPt
 
bool useLogPt
 
bool useLogVertpos
 

Detailed Description

Definition at line 143 of file MTVHistoProducerAlgoForTracker.h.

Member Typedef Documentation

◆ DQMStore

Definition at line 145 of file MTVHistoProducerAlgoForTracker.h.

◆ Histograms

Definition at line 153 of file MTVHistoProducerAlgoForTracker.h.

◆ SeedingLayerId

Definition at line 364 of file MTVHistoProducerAlgoForTracker.h.

◆ SeedingLayerSetId

Definition at line 365 of file MTVHistoProducerAlgoForTracker.h.

Constructor & Destructor Documentation

◆ MTVHistoProducerAlgoForTracker()

MTVHistoProducerAlgoForTracker::MTVHistoProducerAlgoForTracker ( const edm::ParameterSet pset,
const bool  doSeedPlots 
)

Definition at line 140 of file MTVHistoProducerAlgoForTracker.cc.

141  : doSeedPlots_(doSeedPlots), doMTDPlots_(pset.getUntrackedParameter<bool>("doMTDPlots")) {
142  //parameters for _vs_eta plots
143  minEta = pset.getParameter<double>("minEta");
144  maxEta = pset.getParameter<double>("maxEta");
145  nintEta = pset.getParameter<int>("nintEta");
146  useFabsEta = pset.getParameter<bool>("useFabsEta");
147 
148  //parameters for _vs_pt plots
149  minPt = pset.getParameter<double>("minPt");
150  maxPt = pset.getParameter<double>("maxPt");
151  nintPt = pset.getParameter<int>("nintPt");
152  useInvPt = pset.getParameter<bool>("useInvPt");
153  useLogPt = pset.getUntrackedParameter<bool>("useLogPt", false);
154 
155  //parameters for _vs_Hit plots
156  minHit = pset.getParameter<double>("minHit");
157  maxHit = pset.getParameter<double>("maxHit");
158  nintHit = pset.getParameter<int>("nintHit");
159 
160  //parameters for _vs_Pu plots
161  minPu = pset.getParameter<double>("minPu");
162  maxPu = pset.getParameter<double>("maxPu");
163  nintPu = pset.getParameter<int>("nintPu");
164 
165  //parameters for _vs_Layer plots
166  minLayers = pset.getParameter<double>("minLayers");
167  maxLayers = pset.getParameter<double>("maxLayers");
168  nintLayers = pset.getParameter<int>("nintLayers");
169 
170  //parameters for _vs_phi plots
171  minPhi = pset.getParameter<double>("minPhi");
172  maxPhi = pset.getParameter<double>("maxPhi");
173  nintPhi = pset.getParameter<int>("nintPhi");
174 
175  //parameters for _vs_Dxy plots
176  minDxy = pset.getParameter<double>("minDxy");
177  maxDxy = pset.getParameter<double>("maxDxy");
178  nintDxy = pset.getParameter<int>("nintDxy");
179 
180  //parameters for _vs_Dz plots
181  minDz = pset.getParameter<double>("minDz");
182  maxDz = pset.getParameter<double>("maxDz");
183  nintDz = pset.getParameter<int>("nintDz");
184 
185  dxyDzZoom = pset.getParameter<double>("dxyDzZoom");
186 
187  //parameters for _vs_ProductionVertexTransvPosition plots
188  minVertpos = pset.getParameter<double>("minVertpos");
189  maxVertpos = pset.getParameter<double>("maxVertpos");
190  nintVertpos = pset.getParameter<int>("nintVertpos");
191  useLogVertpos = pset.getUntrackedParameter<bool>("useLogVertpos");
192 
193  //parameters for _vs_ProductionVertexZPosition plots
194  minZpos = pset.getParameter<double>("minZpos");
195  maxZpos = pset.getParameter<double>("maxZpos");
196  nintZpos = pset.getParameter<int>("nintZpos");
197 
198  //parameters for _vs_dR plots
199  mindr = pset.getParameter<double>("mindr");
200  maxdr = pset.getParameter<double>("maxdr");
201  nintdr = pset.getParameter<int>("nintdr");
202 
203  //parameters for _vs_dR_jet plots
204  mindrj = pset.getParameter<double>("mindrj");
205  maxdrj = pset.getParameter<double>("maxdrj");
206  nintdrj = pset.getParameter<int>("nintdrj");
207 
208  // paramers for _vs_chi2 plots
209  minChi2 = pset.getParameter<double>("minChi2");
210  maxChi2 = pset.getParameter<double>("maxChi2");
211  nintChi2 = pset.getParameter<int>("nintChi2");
212 
213  //parameters for dE/dx plots
214  minDeDx = pset.getParameter<double>("minDeDx");
215  maxDeDx = pset.getParameter<double>("maxDeDx");
216  nintDeDx = pset.getParameter<int>("nintDeDx");
217 
218  //parameters for Pileup plots
219  minVertcount = pset.getParameter<double>("minVertcount");
220  maxVertcount = pset.getParameter<double>("maxVertcount");
221  nintVertcount = pset.getParameter<int>("nintVertcount");
222 
223  //parameters for number of tracks plots
224  minTracks = pset.getParameter<double>("minTracks");
225  maxTracks = pset.getParameter<double>("maxTracks");
226  nintTracks = pset.getParameter<int>("nintTracks");
227 
228  //parameters for vs. PV z plots
229  minPVz = pset.getParameter<double>("minPVz");
230  maxPVz = pset.getParameter<double>("maxPVz");
231  nintPVz = pset.getParameter<int>("nintPVz");
232 
233  //parameters for vs. MVA plots
234  minMVA = pset.getParameter<double>("minMVA");
235  maxMVA = pset.getParameter<double>("maxMVA");
236  nintMVA = pset.getParameter<int>("nintMVA");
237 
238  //parameters for resolution plots
239  ptRes_rangeMin = pset.getParameter<double>("ptRes_rangeMin");
240  ptRes_rangeMax = pset.getParameter<double>("ptRes_rangeMax");
241  ptRes_nbin = pset.getParameter<int>("ptRes_nbin");
242 
243  phiRes_rangeMin = pset.getParameter<double>("phiRes_rangeMin");
244  phiRes_rangeMax = pset.getParameter<double>("phiRes_rangeMax");
245  phiRes_nbin = pset.getParameter<int>("phiRes_nbin");
246 
247  cotThetaRes_rangeMin = pset.getParameter<double>("cotThetaRes_rangeMin");
248  cotThetaRes_rangeMax = pset.getParameter<double>("cotThetaRes_rangeMax");
249  cotThetaRes_nbin = pset.getParameter<int>("cotThetaRes_nbin");
250 
251  dxyRes_rangeMin = pset.getParameter<double>("dxyRes_rangeMin");
252  dxyRes_rangeMax = pset.getParameter<double>("dxyRes_rangeMax");
253  dxyRes_nbin = pset.getParameter<int>("dxyRes_nbin");
254 
255  dzRes_rangeMin = pset.getParameter<double>("dzRes_rangeMin");
256  dzRes_rangeMax = pset.getParameter<double>("dzRes_rangeMax");
257  dzRes_nbin = pset.getParameter<int>("dzRes_nbin");
258 
259  maxDzpvCum = pset.getParameter<double>("maxDzpvCumulative");
260  nintDzpvCum = pset.getParameter<int>("nintDzpvCumulative");
261 
262  maxDzpvsigCum = pset.getParameter<double>("maxDzpvsigCumulative");
263  nintDzpvsigCum = pset.getParameter<int>("nintDzpvsigCumulative");
264 
265  //--- tracking particle selectors for efficiency measurements
266  using namespace edm;
267  using namespace reco::modules;
268  auto initTPselector = [&](auto& sel, auto& name) {
269  sel = std::make_unique<TrackingParticleSelector>(
271  };
272  auto initTrackSelector = [&](auto& sel, auto& name) {
274  };
275  auto initGPselector = [&](auto& sel, auto& name) {
276  sel = std::make_unique<GenParticleCustomSelector>(
278  };
279 
280  initTPselector(generalTpSelector, "generalTpSelector");
281  initTPselector(TpSelectorForEfficiencyVsEta, "TpSelectorForEfficiencyVsEta");
282  initTPselector(TpSelectorForEfficiencyVsPhi, "TpSelectorForEfficiencyVsPhi");
283  initTPselector(TpSelectorForEfficiencyVsPt, "TpSelectorForEfficiencyVsPt");
284  initTPselector(TpSelectorForEfficiencyVsVTXR, "TpSelectorForEfficiencyVsVTXR");
285  initTPselector(TpSelectorForEfficiencyVsVTXZ, "TpSelectorForEfficiencyVsVTXZ");
286 
287  initTrackSelector(trackSelectorVsEta, "TpSelectorForEfficiencyVsEta");
288  initTrackSelector(trackSelectorVsPhi, "TpSelectorForEfficiencyVsPhi");
289  initTrackSelector(trackSelectorVsPt, "TpSelectorForEfficiencyVsPt");
290 
291  initGPselector(generalGpSelector, "generalGpSelector");
292  initGPselector(GpSelectorForEfficiencyVsEta, "GpSelectorForEfficiencyVsEta");
293  initGPselector(GpSelectorForEfficiencyVsPhi, "GpSelectorForEfficiencyVsPhi");
294  initGPselector(GpSelectorForEfficiencyVsPt, "GpSelectorForEfficiencyVsPt");
295  initGPselector(GpSelectorForEfficiencyVsVTXR, "GpSelectorForEfficiencyVsVTXR");
296  initGPselector(GpSelectorForEfficiencyVsVTXZ, "GpSelectorForEfficiencyVsVTXZ");
297 
298  // SeedingLayerSets
299  // If enabled, use last bin to denote other or unknown cases
300  seedingLayerSetNames = pset.getParameter<std::vector<std::string>>("seedingLayerSets");
301  std::vector<std::pair<SeedingLayerSetId, std::string>> stripPairSets;
302  if (!seedingLayerSetNames.empty()) {
303  std::vector<std::vector<std::string>> layerSets = SeedingLayerSetsBuilder::layerNamesInSets(seedingLayerSetNames);
304  for (size_t i = 0; i < layerSets.size(); ++i) {
305  const auto& layerSet = layerSets[i];
306  if (layerSet.size() > std::tuple_size<SeedingLayerSetId>::value) {
307  throw cms::Exception("Configuration")
308  << "Got seedingLayerSet " << seedingLayerSetNames[i] << " with " << layerSet.size()
309  << " elements, but I have a hard-coded maximum of " << std::tuple_size<SeedingLayerSetId>::value
310  << ". Please increase the maximum in MTVHistoProducerAlgoForTracker.h";
311  }
312  SeedingLayerSetId setId;
313  for (size_t j = 0; j < layerSet.size(); ++j) {
314  // SeedingLayerSetsBuilder::fillDescriptions() kind-of
315  // suggests that the 'M' prefix stands for strip mono hits
316  // (maybe it should force), so making the assumption here is
317  // (still) a bit ugly. But, this is the easiest way.
318  bool isStripMono = !layerSet[j].empty() && layerSet[j][0] == 'M';
319  setId[j] = std::make_tuple(SeedingLayerSetsBuilder::nameToEnumId(layerSet[j]), isStripMono);
320  }
321  // Account for the fact that strip triplet seeding may give pairs
322  if (layerSet.size() == 3 && isTrackerStrip(std::get<GeomDetEnumerators::SubDetector>(std::get<0>(setId[0])))) {
323  SeedingLayerSetId pairId;
324  pairId[0] = setId[0];
325  pairId[1] = setId[1];
326  stripPairSets.emplace_back(pairId, layerSet[0] + "+" + layerSet[1]);
327  }
328 
329  auto inserted = seedingLayerSetToBin.insert(std::make_pair(setId, i));
330  if (!inserted.second)
331  throw cms::Exception("Configuration") << "SeedingLayerSet " << seedingLayerSetNames[i]
332  << " is specified twice, while the set list should be unique.";
333  }
334 
335  // Add the "strip pairs from strip triplets" if they don't otherwise exist
336  for (const auto& setIdName : stripPairSets) {
337  auto inserted = seedingLayerSetToBin.insert(std::make_pair(setIdName.first, seedingLayerSetNames.size()));
338  if (inserted.second)
339  seedingLayerSetNames.push_back(setIdName.second);
340  }
341 
342  seedingLayerSetNames.emplace_back("Other/Unknown");
343  }
344 
345  // fix for the LogScale by Ryan
346  if (useLogPt) {
347  maxPt = log10(maxPt);
348  if (minPt > 0) {
349  minPt = log10(minPt);
350  } else {
351  edm::LogWarning("MultiTrackValidator")
352  << "minPt = " << minPt << " <= 0 out of range while requesting log scale. Using minPt = 0.1.";
353  minPt = log10(0.1);
354  }
355  }
356  if (useLogVertpos) {
357  maxVertpos = std::log10(maxVertpos);
358  if (minVertpos > 0) {
359  minVertpos = std::log10(minVertpos);
360  } else {
361  edm::LogWarning("MultiTrackValidator")
362  << "minVertpos = " << minVertpos << " <= 0 out of range while requesting log scale. Using minVertpos = 0.1.";
363  minVertpos = -1;
364  }
365  }
366 }

References cotThetaRes_nbin, cotThetaRes_rangeMax, cotThetaRes_rangeMin, dxyDzZoom, dxyRes_nbin, dxyRes_rangeMax, dxyRes_rangeMin, dzRes_nbin, dzRes_rangeMax, dzRes_rangeMin, Exception, generalGpSelector, generalTpSelector, GpSelectorForEfficiencyVsEta, GpSelectorForEfficiencyVsPhi, GpSelectorForEfficiencyVsPt, GpSelectorForEfficiencyVsVTXR, GpSelectorForEfficiencyVsVTXZ, mps_fire::i, GeomDetEnumerators::isTrackerStrip(), dqmiolumiharvest::j, SeedingLayerSetsBuilder::layerNamesInSets(), makeRecoTrackSelectorFromTPSelectorParameters(), maxChi2, maxDeDx, maxdr, maxdrj, maxDxy, maxDz, maxDzpvCum, maxDzpvsigCum, maxEta, maxHit, maxLayers, maxMVA, maxPhi, maxPt, maxPu, maxPVz, maxTracks, maxVertcount, maxVertpos, maxZpos, minDeDx, mindr, mindrj, minDxy, minDz, minEta, minHit, minLayers, minMVA, minPhi, minPt, minPu, minPVz, minTracks, minVertcount, minVertpos, minZpos, Skims_PA_cff::name, SeedingLayerSetsBuilder::nameToEnumId(), nintChi2, nintDeDx, nintdr, nintdrj, nintDxy, nintDz, nintDzpvCum, nintDzpvsigCum, nintEta, nintHit, nintLayers, nintMVA, nintPhi, nintPt, nintPu, nintPVz, nintTracks, nintVertcount, nintVertpos, nintZpos, phiRes_nbin, phiRes_rangeMax, phiRes_rangeMin, muonDTDigis_cfi::pset, ptRes_nbin, ptRes_rangeMax, ptRes_rangeMin, seedingLayerSetNames, seedingLayerSetToBin, EgammaValidation_Wenu_cff::sel, TpSelectorForEfficiencyVsEta, TpSelectorForEfficiencyVsPhi, TpSelectorForEfficiencyVsPt, TpSelectorForEfficiencyVsVTXR, TpSelectorForEfficiencyVsVTXZ, trackSelectorVsEta, trackSelectorVsPhi, trackSelectorVsPt, useFabsEta, useInvPt, useLogPt, useLogVertpos, and relativeConstraints::value.

◆ ~MTVHistoProducerAlgoForTracker()

MTVHistoProducerAlgoForTracker::~MTVHistoProducerAlgoForTracker ( )

Definition at line 368 of file MTVHistoProducerAlgoForTracker.cc.

368 {}

Member Function Documentation

◆ bookMVAHistos()

void MTVHistoProducerAlgoForTracker::bookMVAHistos ( DQMStore::IBooker ibook,
Histograms histograms,
size_t  nMVAs 
)

Definition at line 1581 of file MTVHistoProducerAlgoForTracker.cc.

1581  {
1582  histograms.h_reco_mva.emplace_back();
1583  histograms.h_assoc2_mva.emplace_back();
1584 
1585  histograms.h_reco_mvacut.emplace_back();
1586  histograms.h_assoc_mvacut.emplace_back();
1587  histograms.h_assoc2_mvacut.emplace_back();
1588  histograms.h_simul2_mvacut.emplace_back();
1589 
1590  histograms.h_reco_mva_hp.emplace_back();
1591  histograms.h_assoc2_mva_hp.emplace_back();
1592 
1593  histograms.h_reco_mvacut_hp.emplace_back();
1594  histograms.h_assoc_mvacut_hp.emplace_back();
1595  histograms.h_assoc2_mvacut_hp.emplace_back();
1596  histograms.h_simul2_mvacut_hp.emplace_back();
1597 
1598  histograms.h_assoc2_mva_vs_pt.emplace_back();
1599  histograms.h_fake_mva_vs_pt.emplace_back();
1600  histograms.h_assoc2_mva_vs_pt_hp.emplace_back();
1601  histograms.h_fake_mva_vs_pt_hp.emplace_back();
1602  histograms.h_assoc2_mva_vs_eta.emplace_back();
1603  histograms.h_fake_mva_vs_eta.emplace_back();
1604  histograms.h_assoc2_mva_vs_eta_hp.emplace_back();
1605  histograms.h_fake_mva_vs_eta_hp.emplace_back();
1606 
1607  for (size_t i = 1; i <= nMVAs; ++i) {
1608  auto istr = std::to_string(i);
1609  std::string pfix;
1610 
1611  if (i == 1) {
1612  histograms.h_reco_mva_hp.back().emplace_back();
1613  histograms.h_assoc2_mva_hp.back().emplace_back();
1614 
1615  histograms.h_reco_mvacut_hp.back().emplace_back();
1616  histograms.h_assoc_mvacut_hp.back().emplace_back();
1617  histograms.h_assoc2_mvacut_hp.back().emplace_back();
1618  histograms.h_simul2_mvacut_hp.back().emplace_back();
1619 
1620  histograms.h_assoc2_mva_vs_pt_hp.back().emplace_back();
1621  histograms.h_fake_mva_vs_pt_hp.back().emplace_back();
1622  histograms.h_assoc2_mva_vs_eta_hp.back().emplace_back();
1623  histograms.h_fake_mva_vs_eta_hp.back().emplace_back();
1624  } else {
1625  pfix = " (not loose-selected)";
1626  std::string pfix2 = " (not HP-selected)";
1627 
1628  histograms.h_reco_mva_hp.back().push_back(ibook.book1D(
1629  "num_reco_mva" + istr + "_hp", "N of reco track after vs MVA" + istr + pfix2, nintMVA, minMVA, maxMVA));
1630  histograms.h_assoc2_mva_hp.back().push_back(
1631  ibook.book1D("num_assoc(recoToSim)_mva" + istr + "_hp",
1632  "N of associated tracks (recoToSim) vs MVA" + istr + pfix2,
1633  nintMVA,
1634  minMVA,
1635  maxMVA));
1636 
1637  histograms.h_reco_mvacut_hp.back().push_back(ibook.book1D("num_reco_mva" + istr + "cut" + "_hp",
1638  "N of reco track vs cut on MVA" + istr + pfix2,
1639  nintMVA,
1640  minMVA,
1641  maxMVA));
1642  histograms.h_assoc_mvacut_hp.back().push_back(
1643  ibook.book1D("num_assoc(simToReco)_mva" + istr + "cut_hp",
1644  "N of associated tracks (simToReco) vs cut on MVA" + istr + pfix2,
1645  nintMVA,
1646  minMVA,
1647  maxMVA));
1648  histograms.h_assoc2_mvacut_hp.back().push_back(
1649  ibook.book1D("num_assoc(recoToSim)_mva" + istr + "cut_hp",
1650  "N of associated tracks (recoToSim) vs cut on MVA" + istr + pfix2,
1651  nintMVA,
1652  minMVA,
1653  maxMVA));
1654  histograms.h_simul2_mvacut_hp.back().push_back(
1655  ibook.book1D("num_simul2_mva" + istr + "cut_hp",
1656  "N of simulated tracks (associated to any track) vs cut on MVA" + istr + pfix2,
1657  nintMVA,
1658  minMVA,
1659  maxMVA));
1660 
1661  histograms.h_assoc2_mva_vs_pt_hp.back().push_back(
1662  makeProfileIfLogX(ibook,
1663  useLogPt,
1664  ("mva_assoc(recoToSim)_mva" + istr + "_pT_hp").c_str(),
1665  ("MVA" + istr + " of associated tracks (recoToSim) vs. track p_{T}" + pfix2).c_str(),
1666  nintPt,
1667  minPt,
1668  maxPt,
1669  minMVA,
1670  maxMVA));
1671  histograms.h_fake_mva_vs_pt_hp.back().push_back(
1672  makeProfileIfLogX(ibook,
1673  useLogPt,
1674  ("mva_fake_mva" + istr + "pT_hp").c_str(),
1675  ("MVA" + istr + " of non-associated tracks (recoToSim) vs. track p_{T}" + pfix2).c_str(),
1676  nintPt,
1677  minPt,
1678  maxPt,
1679  minMVA,
1680  maxMVA));
1681  histograms.h_assoc2_mva_vs_eta_hp.back().push_back(
1682  ibook.bookProfile("mva_assoc(recoToSim)_mva" + istr + "_eta_hp",
1683  "MVA" + istr + " of associated tracks (recoToSim) vs. track #eta" + pfix2,
1684  nintEta,
1685  minEta,
1686  maxEta,
1687  nintMVA,
1688  minMVA,
1689  maxMVA));
1690  histograms.h_fake_mva_vs_eta_hp.back().push_back(
1691  ibook.bookProfile("mva_fake_mva" + istr + "eta_hp",
1692  "MVA" + istr + " of non-associated tracks (recoToSim) vs. track #eta" + pfix2,
1693  nintEta,
1694  minEta,
1695  maxEta,
1696  nintMVA,
1697  minMVA,
1698  maxMVA));
1699  }
1700 
1701  histograms.h_reco_mva.back().push_back(
1702  ibook.book1D("num_reco_mva" + istr, "N of reco track vs MVA" + istr + pfix, nintMVA, minMVA, maxMVA));
1703  histograms.h_assoc2_mva.back().push_back(ibook.book1D("num_assoc(recoToSim)_mva" + istr,
1704  "N of associated tracks (recoToSim) vs MVA" + istr + pfix,
1705  nintMVA,
1706  minMVA,
1707  maxMVA));
1708 
1709  histograms.h_reco_mvacut.back().push_back(ibook.book1D(
1710  "num_reco_mva" + istr + "cut", "N of reco track vs cut on MVA" + istr + pfix, nintMVA, minMVA, maxMVA));
1711  histograms.h_assoc_mvacut.back().push_back(
1712  ibook.book1D("num_assoc(simToReco)_mva" + istr + "cut",
1713  "N of associated tracks (simToReco) vs cut on MVA" + istr + pfix,
1714  nintMVA,
1715  minMVA,
1716  maxMVA));
1717  histograms.h_assoc2_mvacut.back().push_back(
1718  ibook.book1D("num_assoc(recoToSim)_mva" + istr + "cut",
1719  "N of associated tracks (recoToSim) vs cut on MVA" + istr + pfix,
1720  nintMVA,
1721  minMVA,
1722  maxMVA));
1723  histograms.h_simul2_mvacut.back().push_back(
1724  ibook.book1D("num_simul2_mva" + istr + "cut",
1725  "N of simulated tracks (associated to any track) vs cut on MVA" + istr + pfix,
1726  nintMVA,
1727  minMVA,
1728  maxMVA));
1729 
1730  histograms.h_assoc2_mva_vs_pt.back().push_back(
1731  makeProfileIfLogX(ibook,
1732  useLogPt,
1733  ("mva_assoc(recoToSim)_mva" + istr + "_pT").c_str(),
1734  ("MVA" + istr + " of associated tracks (recoToSim) vs. track p_{T}" + pfix).c_str(),
1735  nintPt,
1736  minPt,
1737  maxPt,
1738  minMVA,
1739  maxMVA));
1740  histograms.h_fake_mva_vs_pt.back().push_back(
1741  makeProfileIfLogX(ibook,
1742  useLogPt,
1743  ("mva_fake_mva" + istr + "_pT").c_str(),
1744  ("MVA" + istr + " of non-associated tracks (recoToSim) vs. track p_{T}" + pfix).c_str(),
1745  nintPt,
1746  minPt,
1747  maxPt,
1748  minMVA,
1749  maxMVA));
1750  histograms.h_assoc2_mva_vs_eta.back().push_back(
1751  ibook.bookProfile("mva_assoc(recoToSim)_mva" + istr + "_eta",
1752  "MVA" + istr + " of associated tracks (recoToSim) vs. track #eta" + pfix,
1753  nintEta,
1754  minEta,
1755  maxEta,
1756  nintMVA,
1757  minMVA,
1758  maxMVA));
1759  histograms.h_fake_mva_vs_eta.back().push_back(
1760  ibook.bookProfile("mva_fake_mva" + istr + "_eta",
1761  "MVA" + istr + " of non-associated tracks (recoToSim) vs. track #eta" + pfix,
1762  nintEta,
1763  minEta,
1764  maxEta,
1765  nintMVA,
1766  minMVA,
1767  maxMVA));
1768  }
1769 }

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::bookProfile(), mps_fire::i, maxEta, maxMVA, maxPt, minEta, minMVA, minPt, nintEta, nintMVA, nintPt, AlCaHLTBitMon_QueryRunRegistry::string, and useLogPt.

◆ bookRecodEdxHistos()

void MTVHistoProducerAlgoForTracker::bookRecodEdxHistos ( DQMStore::IBooker ibook,
Histograms histograms 
)

Definition at line 1553 of file MTVHistoProducerAlgoForTracker.cc.

1553  {
1554  // dE/dx stuff
1555  histograms.h_dedx_estim.emplace_back();
1556  histograms.h_dedx_estim.back().push_back(
1557  ibook.book1D("h_dedx_estim1", "dE/dx estimator 1", nintDeDx, minDeDx, maxDeDx));
1558  histograms.h_dedx_estim.back().push_back(
1559  ibook.book1D("h_dedx_estim2", "dE/dx estimator 2", nintDeDx, minDeDx, maxDeDx));
1560 
1561  histograms.h_dedx_nom.emplace_back();
1562  histograms.h_dedx_nom.back().push_back(
1563  ibook.book1D("h_dedx_nom1", "dE/dx number of measurements", nintHit, minHit, maxHit));
1564  histograms.h_dedx_nom.back().push_back(
1565  ibook.book1D("h_dedx_nom2", "dE/dx number of measurements", nintHit, minHit, maxHit));
1566 
1567  histograms.h_dedx_sat.emplace_back();
1568  histograms.h_dedx_sat.back().push_back(
1569  ibook.book1D("h_dedx_sat1", "dE/dx number of measurements with saturation", nintHit, minHit, maxHit));
1570  histograms.h_dedx_sat.back().push_back(
1571  ibook.book1D("h_dedx_sat2", "dE/dx number of measurements with saturation", nintHit, minHit, maxHit));
1572 }

References dqm::implementation::IBooker::book1D(), maxDeDx, maxHit, minDeDx, minHit, nintDeDx, and nintHit.

◆ bookRecoHistos()

void MTVHistoProducerAlgoForTracker::bookRecoHistos ( DQMStore::IBooker ibook,
Histograms histograms,
bool  doResolutionPlots 
)

these are needed to calculate efficiency during the harvesting for the automated validation

Definition at line 636 of file MTVHistoProducerAlgoForTracker.cc.

638  {
639  histograms.h_tracks.push_back(
640  ibook.book1D("tracks", "number of reconstructed tracks", nintTracks, minTracks, maxTracks));
641  histograms.h_fakes.push_back(ibook.book1D("fakes", "number of fake reco tracks", nintTracks, minTracks, maxTracks));
642  histograms.h_charge.push_back(ibook.book1D("charge", "charge", 3, -1.5, 1.5));
643 
644  histograms.h_hits.push_back(ibook.book1D("hits", "number of hits per track", nintHit, minHit, maxHit));
645  histograms.h_losthits.push_back(ibook.book1D("losthits", "number of lost hits per track", nintHit, minHit, maxHit));
646  histograms.h_nchi2.push_back(ibook.book1D("chi2", "normalized #chi^{2}", 200, 0, 20));
647  histograms.h_nchi2_prob.push_back(ibook.book1D("chi2_prob", "normalized #chi^{2} probability", 100, 0, 1));
648 
649  histograms.h_nmisslayers_inner.push_back(
650  ibook.book1D("missing_inner_layers", "number of missing inner layers", nintLayers, minLayers, maxLayers));
651  histograms.h_nmisslayers_outer.push_back(
652  ibook.book1D("missing_outer_layers", "number of missing outer layers", nintLayers, minLayers, maxLayers));
653 
654  histograms.h_algo.push_back(
655  ibook.book1D("h_algo", "Tracks by algo", reco::TrackBase::algoSize, 0., double(reco::TrackBase::algoSize)));
656  for (size_t ibin = 0; ibin < reco::TrackBase::algoSize - 1; ibin++)
657  histograms.h_algo.back()->setBinLabel(ibin + 1, reco::TrackBase::algoNames[ibin]);
658  histograms.h_algo.back()->disableAlphanumeric();
659 
661  histograms.h_recoeta.push_back(ibook.book1D("num_reco_eta", "N of reco track vs eta", nintEta, minEta, maxEta));
662  histograms.h_reco2eta.push_back(
663  ibook.book1D("num_reco2_eta", "N of selected reco track vs eta", nintEta, minEta, maxEta));
664  histograms.h_assoc2eta.push_back(
665  ibook.book1D("num_assoc(recoToSim)_eta", "N of associated (recoToSim) tracks vs eta", nintEta, minEta, maxEta));
666  histograms.h_loopereta.push_back(ibook.book1D(
667  "num_duplicate_eta", "N of associated (recoToSim) duplicate tracks vs eta", nintEta, minEta, maxEta));
668  if (!doSeedPlots_)
669  histograms.h_misideta.push_back(ibook.book1D(
670  "num_chargemisid_eta", "N of associated (recoToSim) charge misIDed tracks vs eta", nintEta, minEta, maxEta));
671  histograms.h_pileupeta.push_back(
672  ibook.book1D("num_pileup_eta", "N of associated (recoToSim) pileup tracks vs eta", nintEta, minEta, maxEta));
673  //
674  histograms.h_recopT.push_back(
675  make1DIfLogX(ibook, useLogPt, "num_reco_pT", "N of reco track vs pT", nintPt, minPt, maxPt));
676  histograms.h_reco2pT.push_back(
677  make1DIfLogX(ibook, useLogPt, "num_reco2_pT", "N of selected reco track vs pT", nintPt, minPt, maxPt));
678  histograms.h_assoc2pT.push_back(make1DIfLogX(
679  ibook, useLogPt, "num_assoc(recoToSim)_pT", "N of associated (recoToSim) tracks vs pT", nintPt, minPt, maxPt));
680  histograms.h_looperpT.push_back(make1DIfLogX(
681  ibook, useLogPt, "num_duplicate_pT", "N of associated (recoToSim) duplicate tracks vs pT", nintPt, minPt, maxPt));
682  if (!doSeedPlots_)
683  histograms.h_misidpT.push_back(make1DIfLogX(ibook,
684  useLogPt,
685  "num_chargemisid_pT",
686  "N of associated (recoToSim) charge misIDed tracks vs pT",
687  nintPt,
688  minPt,
689  maxPt));
690  histograms.h_pileuppT.push_back(make1DIfLogX(
691  ibook, useLogPt, "num_pileup_pT", "N of associated (recoToSim) pileup tracks vs pT", nintPt, minPt, maxPt));
692  //
693  histograms.h_recopTvseta.push_back(make2DIfLogY(ibook,
694  useLogPt,
695  "num_reco_pTvseta",
696  "N of reco track in (pT-eta) plane",
697  nintEta,
698  minEta,
699  maxEta,
700  nintPt,
701  minPt,
702  maxPt));
703  histograms.h_reco2pTvseta.push_back(make2DIfLogY(ibook,
704  useLogPt,
705  "num_reco2_pTvseta",
706  "N of selected reco track in (pT-eta) plane",
707  nintEta,
708  minEta,
709  maxEta,
710  nintPt,
711  minPt,
712  maxPt));
713  histograms.h_assoc2pTvseta.push_back(make2DIfLogY(ibook,
714  useLogPt,
715  "num_assoc(recoToSim)_pTvseta",
716  "N of associated (recoToSim) tracks in (pT-eta) plane",
717  nintEta,
718  minEta,
719  maxEta,
720  nintPt,
721  minPt,
722  maxPt));
723  histograms.h_looperpTvseta.push_back(make2DIfLogY(ibook,
724  useLogPt,
725  "num_duplicate_pTvseta",
726  "N of associated (recoToSim) duplicate tracks in (pT-eta) plane",
727  nintEta,
728  minEta,
729  maxEta,
730  nintPt,
731  minPt,
732  maxPt));
733  if (!doSeedPlots_)
734  histograms.h_misidpTvseta.push_back(
735  make2DIfLogY(ibook,
736  useLogPt,
737  "num_chargemisid_pTvseta",
738  "N of associated (recoToSim) charge misIDed tracks in (pT-eta) plane",
739  nintEta,
740  minEta,
741  maxEta,
742  nintPt,
743  minPt,
744  maxPt));
745  histograms.h_pileuppTvseta.push_back(make2DIfLogY(ibook,
746  useLogPt,
747  "num_pileup_pTvseta",
748  "N of associated (recoToSim) pileup tracks in (pT-eta) plane",
749  nintEta,
750  minEta,
751  maxEta,
752  nintPt,
753  minPt,
754  maxPt));
755  //
756  histograms.h_recohit.push_back(ibook.book1D("num_reco_hit", "N of reco track vs hit", nintHit, minHit, maxHit));
757  histograms.h_assoc2hit.push_back(
758  ibook.book1D("num_assoc(recoToSim)_hit", "N of associated (recoToSim) tracks vs hit", nintHit, minHit, maxHit));
759  histograms.h_looperhit.push_back(ibook.book1D(
760  "num_duplicate_hit", "N of associated (recoToSim) duplicate tracks vs hit", nintHit, minHit, maxHit));
761  if (!doSeedPlots_)
762  histograms.h_misidhit.push_back(ibook.book1D(
763  "num_chargemisid_hit", "N of associated (recoToSim) charge misIDed tracks vs hit", nintHit, minHit, maxHit));
764  histograms.h_pileuphit.push_back(
765  ibook.book1D("num_pileup_hit", "N of associated (recoToSim) pileup tracks vs hit", nintHit, minHit, maxHit));
766  //
767  histograms.h_recolayer.push_back(
768  ibook.book1D("num_reco_layer", "N of reco track vs layer", nintLayers, minLayers, maxLayers));
769  histograms.h_assoc2layer.push_back(ibook.book1D(
770  "num_assoc(recoToSim)_layer", "N of associated (recoToSim) tracks vs layer", nintLayers, minLayers, maxLayers));
771  histograms.h_looperlayer.push_back(ibook.book1D(
772  "num_duplicate_layer", "N of associated (recoToSim) duplicate tracks vs layer", nintLayers, minLayers, maxLayers));
773  if (!doSeedPlots_)
774  histograms.h_misidlayer.push_back(ibook.book1D("num_chargemisid_layer",
775  "N of associated (recoToSim) charge misIDed tracks vs layer",
776  nintLayers,
777  minLayers,
778  maxLayers));
779  histograms.h_pileuplayer.push_back(ibook.book1D(
780  "num_pileup_layer", "N of associated (recoToSim) pileup tracks vs layer", nintLayers, minLayers, maxLayers));
781  //
782  histograms.h_recopixellayer.push_back(
783  ibook.book1D("num_reco_pixellayer", "N of reco track vs pixellayer", nintLayers, minLayers, maxLayers));
784  histograms.h_assoc2pixellayer.push_back(ibook.book1D("num_assoc(recoToSim)_pixellayer",
785  "N of associated (recoToSim) tracks vs pixellayer",
786  nintLayers,
787  minLayers,
788  maxLayers));
789  histograms.h_looperpixellayer.push_back(ibook.book1D("num_duplicate_pixellayer",
790  "N of associated (recoToSim) duplicate tracks vs pixellayer",
791  nintLayers,
792  minLayers,
793  maxLayers));
794  if (!doSeedPlots_)
795  histograms.h_misidpixellayer.push_back(
796  ibook.book1D("num_chargemisid_pixellayer",
797  "N of associated (recoToSim) charge misIDed tracks vs pixellayer",
798  nintLayers,
799  minLayers,
800  maxLayers));
801  histograms.h_pileuppixellayer.push_back(ibook.book1D("num_pileup_pixellayer",
802  "N of associated (recoToSim) pileup tracks vs pixellayer",
803  nintLayers,
804  minLayers,
805  maxLayers));
806  //
807  histograms.h_reco3Dlayer.push_back(
808  ibook.book1D("num_reco_3Dlayer", "N of reco track vs 3D layer", nintLayers, minLayers, maxLayers));
809  histograms.h_assoc23Dlayer.push_back(ibook.book1D("num_assoc(recoToSim)_3Dlayer",
810  "N of associated (recoToSim) tracks vs 3D layer",
811  nintLayers,
812  minLayers,
813  maxLayers));
814  histograms.h_looper3Dlayer.push_back(ibook.book1D("num_duplicate_3Dlayer",
815  "N of associated (recoToSim) duplicate tracks vs 3D layer",
816  nintLayers,
817  minLayers,
818  maxLayers));
819  if (!doSeedPlots_)
820  histograms.h_misid3Dlayer.push_back(ibook.book1D("num_chargemisid_3Dlayer",
821  "N of associated (recoToSim) charge misIDed tracks vs 3D layer",
822  nintLayers,
823  minLayers,
824  maxLayers));
825  histograms.h_pileup3Dlayer.push_back(ibook.book1D(
826  "num_pileup_3Dlayer", "N of associated (recoToSim) pileup tracks vs 3D layer", nintLayers, minLayers, maxLayers));
827  //
828  histograms.h_recopu.push_back(ibook.book1D("num_reco_pu", "N of reco track vs pu", nintPu, minPu, maxPu));
829  histograms.h_reco2pu.push_back(ibook.book1D("num_reco2_pu", "N of selected reco track vs pu", nintPu, minPu, maxPu));
830  histograms.h_assoc2pu.push_back(
831  ibook.book1D("num_assoc(recoToSim)_pu", "N of associated (recoToSim) tracks vs pu", nintPu, minPu, maxPu));
832  histograms.h_looperpu.push_back(
833  ibook.book1D("num_duplicate_pu", "N of associated (recoToSim) duplicate tracks vs pu", nintPu, minPu, maxPu));
834  if (!doSeedPlots_)
835  histograms.h_misidpu.push_back(ibook.book1D(
836  "num_chargemisid_pu", "N of associated (recoToSim) charge misIDed tracks vs pu", nintPu, minPu, maxPu));
837  histograms.h_pileuppu.push_back(
838  ibook.book1D("num_pileup_pu", "N of associated (recoToSim) pileup tracks vs pu", nintPu, minPu, maxPu));
839  //
840  histograms.h_recophi.push_back(ibook.book1D("num_reco_phi", "N of reco track vs phi", nintPhi, minPhi, maxPhi));
841  histograms.h_assoc2phi.push_back(
842  ibook.book1D("num_assoc(recoToSim)_phi", "N of associated (recoToSim) tracks vs phi", nintPhi, minPhi, maxPhi));
843  histograms.h_looperphi.push_back(ibook.book1D(
844  "num_duplicate_phi", "N of associated (recoToSim) duplicate tracks vs phi", nintPhi, minPhi, maxPhi));
845  if (!doSeedPlots_)
846  histograms.h_misidphi.push_back(ibook.book1D(
847  "num_chargemisid_phi", "N of associated (recoToSim) charge misIDed tracks vs phi", nintPhi, minPhi, maxPhi));
848  histograms.h_pileupphi.push_back(
849  ibook.book1D("num_pileup_phi", "N of associated (recoToSim) pileup tracks vs phi", nintPhi, minPhi, maxPhi));
850 
851  histograms.h_recodxy.push_back(ibook.book1D("num_reco_dxy", "N of reco track vs dxy", nintDxy, minDxy, maxDxy));
852  histograms.h_assoc2dxy.push_back(
853  ibook.book1D("num_assoc(recoToSim)_dxy", "N of associated (recoToSim) tracks vs dxy", nintDxy, minDxy, maxDxy));
854  histograms.h_looperdxy.push_back(
855  ibook.book1D("num_duplicate_dxy", "N of associated (recoToSim) looper tracks vs dxy", nintDxy, minDxy, maxDxy));
856  if (!doSeedPlots_)
857  histograms.h_misiddxy.push_back(ibook.book1D(
858  "num_chargemisid_dxy", "N of associated (recoToSim) charge misIDed tracks vs dxy", nintDxy, minDxy, maxDxy));
859  histograms.h_pileupdxy.push_back(
860  ibook.book1D("num_pileup_dxy", "N of associated (recoToSim) pileup tracks vs dxy", nintDxy, minDxy, maxDxy));
861 
862  histograms.h_recodz.push_back(ibook.book1D("num_reco_dz", "N of reco track vs dz", nintDz, minDz, maxDz));
863  histograms.h_assoc2dz.push_back(
864  ibook.book1D("num_assoc(recoToSim)_dz", "N of associated (recoToSim) tracks vs dz", nintDz, minDz, maxDz));
865  histograms.h_looperdz.push_back(
866  ibook.book1D("num_duplicate_dz", "N of associated (recoToSim) looper tracks vs dz", nintDz, minDz, maxDz));
867  if (!doSeedPlots_)
868  histograms.h_misiddz.push_back(ibook.book1D(
869  "num_chargemisid_versus_dz", "N of associated (recoToSim) charge misIDed tracks vs dz", nintDz, minDz, maxDz));
870  histograms.h_pileupdz.push_back(
871  ibook.book1D("num_pileup_dz", "N of associated (recoToSim) pileup tracks vs dz", nintDz, minDz, maxDz));
872 
873  histograms.h_recovertpos.push_back(make1DIfLogX(ibook,
875  "num_reco_vertpos",
876  "N of reconstructed tracks vs transverse ref point position",
877  nintVertpos,
878  minVertpos,
879  maxVertpos));
880  histograms.h_assoc2vertpos.push_back(
881  make1DIfLogX(ibook,
883  "num_assoc(recoToSim)_vertpos",
884  "N of associated (recoToSim) tracks vs transverse ref point position",
885  nintVertpos,
886  minVertpos,
887  maxVertpos));
888  histograms.h_loopervertpos.push_back(
889  make1DIfLogX(ibook,
891  "num_duplicate_vertpos",
892  "N of associated (recoToSim) looper tracks vs transverse ref point position",
893  nintVertpos,
894  minVertpos,
895  maxVertpos));
896  histograms.h_pileupvertpos.push_back(
897  make1DIfLogX(ibook,
899  "num_pileup_vertpos",
900  "N of associated (recoToSim) pileup tracks vs transverse ref point position",
901  nintVertpos,
902  minVertpos,
903  maxVertpos));
904 
905  histograms.h_recozpos.push_back(ibook.book1D(
906  "num_reco_zpos", "N of reconstructed tracks vs transverse ref point position", nintZpos, minZpos, maxZpos));
907  histograms.h_assoc2zpos.push_back(ibook.book1D("num_assoc(recoToSim)_zpos",
908  "N of associated (recoToSim) tracks vs transverse ref point position",
909  nintZpos,
910  minZpos,
911  maxZpos));
912  histograms.h_looperzpos.push_back(
913  ibook.book1D("num_duplicate_zpos",
914  "N of associated (recoToSim) looper tracks vs transverse ref point position",
915  nintZpos,
916  minZpos,
917  maxZpos));
918  histograms.h_pileupzpos.push_back(
919  ibook.book1D("num_pileup_zpos",
920  "N of associated (recoToSim) pileup tracks vs transverse ref point position",
921  nintZpos,
922  minZpos,
923  maxZpos));
924 
925  histograms.h_recodr.push_back(
926  make1DIfLogX(ibook, true, "num_reco_dr", "N of reconstructed tracks vs dR", nintdr, log10(mindr), log10(maxdr)));
927  histograms.h_assoc2dr.push_back(make1DIfLogX(ibook,
928  true,
929  "num_assoc(recoToSim)_dr",
930  "N of associated tracks (recoToSim) vs dR",
931  nintdr,
932  log10(mindr),
933  log10(maxdr)));
934  histograms.h_looperdr.push_back(make1DIfLogX(ibook,
935  true,
936  "num_duplicate_dr",
937  "N of associated (recoToSim) looper tracks vs dR",
938  nintdr,
939  log10(mindr),
940  log10(maxdr)));
941  histograms.h_pileupdr.push_back(make1DIfLogX(ibook,
942  true,
943  "num_pileup_dr",
944  "N of associated (recoToSim) pileup tracks vs dR",
945  nintdr,
946  log10(mindr),
947  log10(maxdr)));
948 
949  histograms.h_recodrj.push_back(make1DIfLogX(
950  ibook, true, "num_reco_drj", "N of reconstructed tracks vs dR(track,jet)", nintdrj, log10(mindrj), log10(maxdrj)));
951  histograms.h_assoc2drj.push_back(make1DIfLogX(ibook,
952  true,
953  "num_assoc(recoToSim)_drj",
954  "N of associated tracks (recoToSim) vs dR(track,jet)",
955  nintdrj,
956  log10(mindrj),
957  log10(maxdrj)));
958  histograms.h_looperdrj.push_back(make1DIfLogX(ibook,
959  true,
960  "num_duplicate_drj",
961  "N of associated (recoToSim) looper tracks vs dR(track,jet)",
962  nintdrj,
963  log10(mindrj),
964  log10(maxdrj)));
965  histograms.h_pileupdrj.push_back(make1DIfLogX(ibook,
966  true,
967  "num_pileup_drj",
968  "N of associated (recoToSim) pileup tracks vs dR(track,jet)",
969  nintdrj,
970  log10(mindrj),
971  log10(maxdrj)));
972 
973  histograms.h_reco_simpvz.push_back(
974  ibook.book1D("num_reco_simpvz", "N of reco track vs. sim PV z", nintPVz, minPVz, maxPVz));
975  histograms.h_assoc2_simpvz.push_back(ibook.book1D(
976  "num_assoc(recoToSim)_simpvz", "N of associated tracks (recoToSim) vs. sim PV z", nintPVz, minPVz, maxPVz));
977  histograms.h_looper_simpvz.push_back(ibook.book1D(
978  "num_duplicate_simpvz", "N of associated (recoToSim) looper tracks vs. sim PV z", nintPVz, minPVz, maxPVz));
979  histograms.h_pileup_simpvz.push_back(ibook.book1D(
980  "num_pileup_simpvz", "N of associated (recoToSim) pileup tracks vs. sim PV z", nintPVz, minPVz, maxPVz));
981 
982  histograms.h_recochi2.push_back(
983  ibook.book1D("num_reco_chi2", "N of reco track vs normalized #chi^{2}", nintChi2, minChi2, maxChi2));
984  histograms.h_assoc2chi2.push_back(ibook.book1D("num_assoc(recoToSim)_chi2",
985  "N of associated (recoToSim) tracks vs normalized #chi^{2}",
986  nintChi2,
987  minChi2,
988  maxChi2));
989  histograms.h_looperchi2.push_back(ibook.book1D("num_duplicate_chi2",
990  "N of associated (recoToSim) looper tracks vs normalized #chi^{2}",
991  nintChi2,
992  minChi2,
993  maxChi2));
994  if (!doSeedPlots_)
995  histograms.h_misidchi2.push_back(
996  ibook.book1D("num_chargemisid_chi2",
997  "N of associated (recoToSim) charge misIDed tracks vs normalized #chi^{2}",
998  nintChi2,
999  minChi2,
1000  maxChi2));
1001  histograms.h_pileupchi2.push_back(ibook.book1D("num_pileup_chi2",
1002  "N of associated (recoToSim) pileup tracks vs normalized #chi^{2}",
1003  nintChi2,
1004  minChi2,
1005  maxChi2));
1006 
1007  histograms.h_recochi2prob.push_back(
1008  ibook.book1D("num_reco_chi2prob", "N of reco track vs normalized #chi^{2}", 100, 0., 1.));
1009  histograms.h_assoc2chi2prob.push_back(ibook.book1D(
1010  "num_assoc(recoToSim)_chi2prob", "N of associated (recoToSim) tracks vs normalized #chi^{2}", 100, 0., 1.));
1011  histograms.h_looperchi2prob.push_back(ibook.book1D(
1012  "num_duplicate_chi2prob", "N of associated (recoToSim) looper tracks vs normalized #chi^{2}", 100, 0., 1.));
1013  if (!doSeedPlots_)
1014  histograms.h_misidchi2prob.push_back(
1015  ibook.book1D("num_chargemisid_chi2prob",
1016  "N of associated (recoToSim) charge misIDed tracks vs normalized #chi^{2}",
1017  100,
1018  0.,
1019  1.));
1020  histograms.h_pileupchi2prob.push_back(ibook.book1D(
1021  "num_pileup_chi2prob", "N of associated (recoToSim) pileup tracks vs normalized #chi^{2}", 100, 0., 1.));
1022 
1023  if (!seedingLayerSetNames.empty()) {
1024  const auto size = seedingLayerSetNames.size();
1025  histograms.h_reco_seedingLayerSet.push_back(
1026  ibook.book1D("num_reco_seedingLayerSet", "N of reco track vs. seedingLayerSet", size, 0, size));
1027  histograms.h_assoc2_seedingLayerSet.push_back(
1028  ibook.book1D("num_assoc(recoToSim)_seedingLayerSet",
1029  "N of associated track (recoToSim) tracks vs. seedingLayerSet",
1030  size,
1031  0,
1032  size));
1033  histograms.h_looper_seedingLayerSet.push_back(ibook.book1D(
1034  "num_duplicate_seedingLayerSet", "N of reco associated (recoToSim) looper vs. seedingLayerSet", size, 0, size));
1035  histograms.h_pileup_seedingLayerSet.push_back(ibook.book1D(
1036  "num_pileup_seedingLayerSet", "N of reco associated (recoToSim) pileup vs. seedingLayerSet", size, 0, size));
1037 
1038  setBinLabels(histograms.h_reco_seedingLayerSet.back(), seedingLayerSetNames);
1039  setBinLabels(histograms.h_assoc2_seedingLayerSet.back(), seedingLayerSetNames);
1040  setBinLabels(histograms.h_looper_seedingLayerSet.back(), seedingLayerSetNames);
1041  setBinLabels(histograms.h_pileup_seedingLayerSet.back(), seedingLayerSetNames);
1042  }
1043 
1045 
1046  auto bookResolutionPlots1D = [&](std::vector<dqm::reco::MonitorElement*>& vec, auto&&... params) {
1047  vec.push_back(doResolutionPlots ? ibook.book1D(std::forward<decltype(params)>(params)...) : nullptr);
1048  };
1049  auto bookResolutionPlots2D = [&](std::vector<dqm::reco::MonitorElement*>& vec, bool logx, auto&&... params) {
1050  vec.push_back(doResolutionPlots ? make2DIfLogX(ibook, logx, std::forward<decltype(params)>(params)...) : nullptr);
1051  };
1052  auto bookResolutionPlotsProfile2D = [&](std::vector<dqm::reco::MonitorElement*>& vec, auto&&... params) {
1053  vec.push_back(doResolutionPlots ? ibook.bookProfile2D(std::forward<decltype(params)>(params)...) : nullptr);
1054  };
1055 
1056  bookResolutionPlots1D(histograms.h_eta, "eta", "pseudorapidity residue", 1000, -0.1, 0.1);
1057  bookResolutionPlots1D(histograms.h_pt, "pullPt", "pull of p_{t}", 100, -10, 10);
1058  bookResolutionPlots1D(histograms.h_pullTheta, "pullTheta", "pull of #theta parameter", 250, -25, 25);
1059  bookResolutionPlots1D(histograms.h_pullPhi, "pullPhi", "pull of #phi parameter", 250, -25, 25);
1060  bookResolutionPlots1D(histograms.h_pullDxy, "pullDxy", "pull of dxy parameter", 250, -25, 25);
1061  bookResolutionPlots1D(histograms.h_pullDz, "pullDz", "pull of dz parameter", 250, -25, 25);
1062  bookResolutionPlots1D(histograms.h_pullQoverp, "pullQoverp", "pull of qoverp parameter", 250, -25, 25);
1063 
1064  /* TO BE FIXED -----------
1065  if (associators[ww]=="TrackAssociatorByChi2"){
1066  histograms.h_assochi2.push_back( ibook.book1D("assocChi2","track association #chi^{2}",1000000,0,100000) );
1067  histograms.h_assochi2_prob.push_back(ibook.book1D("assocChi2_prob","probability of association #chi^{2}",100,0,1));
1068  } else if (associators[ww]=="quickTrackAssociatorByHits"){
1069  histograms.h_assocFraction.push_back( ibook.book1D("assocFraction","fraction of shared hits",200,0,2) );
1070  histograms.h_assocSharedHit.push_back(ibook.book1D("assocSharedHit","number of shared hits",20,0,20));
1071  }
1072  */
1073  histograms.h_assocFraction.push_back(ibook.book1D("assocFraction", "fraction of shared hits", 200, 0, 2));
1074  histograms.h_assocSharedHit.push_back(ibook.book1D("assocSharedHit", "number of shared hits", 41, -0.5, 40.5));
1075  // ----------------------
1076 
1077  // use the standard error of the mean as the errors in the profile
1078  histograms.chi2_vs_nhits.push_back(
1079  ibook.bookProfile("chi2mean_vs_nhits", "mean #chi^{2} vs nhits", nintHit, minHit, maxHit, 100, 0, 10, " "));
1080 
1081  bookResolutionPlots2D(
1082  histograms.etares_vs_eta, false, "etares_vs_eta", "etaresidue vs eta", nintEta, minEta, maxEta, 200, -0.1, 0.1);
1083  bookResolutionPlots2D(
1084  histograms.nrec_vs_nsim,
1085  false,
1086  "nrec_vs_nsim",
1087  "Number of selected reco tracks vs. number of selected sim tracks;TrackingParticles;Reco tracks",
1088  nintTracks,
1089  minTracks,
1090  maxTracks,
1091  nintTracks,
1092  minTracks,
1093  maxTracks);
1094 
1095  histograms.chi2_vs_eta.push_back(
1096  ibook.bookProfile("chi2mean", "mean #chi^{2} vs #eta", nintEta, minEta, maxEta, 200, 0, 20, " "));
1097  histograms.chi2_vs_phi.push_back(
1098  ibook.bookProfile("chi2mean_vs_phi", "mean #chi^{2} vs #phi", nintPhi, minPhi, maxPhi, 200, 0, 20, " "));
1099  histograms.chi2_vs_pt.push_back(
1100  makeProfileIfLogX(ibook, useLogPt, "chi2mean_vs_pt", "mean #chi^{2} vs p_{T}", nintPt, minPt, maxPt, 0, 20));
1101 
1102  histograms.assoc_chi2_vs_eta.push_back(
1103  ibook.bookProfile("assoc_chi2mean", "mean #chi^{2} vs #eta", nintEta, minEta, maxEta, 200, 0., 20., " "));
1104  histograms.assoc_chi2prob_vs_eta.push_back(ibook.bookProfile(
1105  "assoc_chi2prob_vs_eta", "mean #chi^{2} probability vs #eta", nintEta, minEta, maxEta, 100, 0., 1., " "));
1106  histograms.assoc_chi2_vs_pt.push_back(makeProfileIfLogX(
1107  ibook, useLogPt, "assoc_chi2mean_vs_pt", "mean #chi^{2} vs p_{T}", nintPt, minPt, maxPt, 0., 20.));
1108  histograms.assoc_chi2prob_vs_pt.push_back(makeProfileIfLogX(
1109  ibook, useLogPt, "assoc_chi2prob_vs_pt", "mean #chi^{2} probability vs p_{T}", nintPt, minPt, maxPt, 0., 20.));
1110 
1111  histograms.nhits_vs_eta.push_back(
1112  ibook.bookProfile("hits_eta", "mean hits vs eta", nintEta, minEta, maxEta, nintHit, minHit, maxHit, " "));
1113  histograms.nPXBhits_vs_eta.push_back(ibook.bookProfile(
1114  "PXBhits_vs_eta", "mean # PXB its vs eta", nintEta, minEta, maxEta, nintHit, minHit, maxHit, " "));
1115  histograms.nPXFhits_vs_eta.push_back(ibook.bookProfile(
1116  "PXFhits_vs_eta", "mean # PXF hits vs eta", nintEta, minEta, maxEta, nintHit, minHit, maxHit, " "));
1117  histograms.nPXLhits_vs_eta.push_back(ibook.bookProfile(
1118  "PXLhits_vs_eta", "mean # PXL hits vs eta", nintEta, minEta, maxEta, nintHit, minHit, maxHit, " "));
1119  histograms.nTIBhits_vs_eta.push_back(ibook.bookProfile(
1120  "TIBhits_vs_eta", "mean # TIB hits vs eta", nintEta, minEta, maxEta, nintHit, minHit, maxHit, " "));
1121  histograms.nTIDhits_vs_eta.push_back(ibook.bookProfile(
1122  "TIDhits_vs_eta", "mean # TID hits vs eta", nintEta, minEta, maxEta, nintHit, minHit, maxHit, " "));
1123  histograms.nTOBhits_vs_eta.push_back(ibook.bookProfile(
1124  "TOBhits_vs_eta", "mean # TOB hits vs eta", nintEta, minEta, maxEta, nintHit, minHit, maxHit, " "));
1125  histograms.nTEChits_vs_eta.push_back(ibook.bookProfile(
1126  "TEChits_vs_eta", "mean # TEC hits vs eta", nintEta, minEta, maxEta, nintHit, minHit, maxHit, " "));
1127  histograms.nSTRIPhits_vs_eta.push_back(ibook.bookProfile(
1128  "STRIPhits_vs_eta", "mean # STRIP hits vs eta", nintEta, minEta, maxEta, nintHit, minHit, maxHit, " "));
1129 
1130  histograms.nLayersWithMeas_vs_eta.push_back(ibook.bookProfile("LayersWithMeas_eta",
1131  "mean # Layers with measurement vs eta",
1132  nintEta,
1133  minEta,
1134  maxEta,
1135  nintLayers,
1136  minLayers,
1137  maxLayers,
1138  " "));
1139  histograms.nPXLlayersWithMeas_vs_eta.push_back(ibook.bookProfile("PXLlayersWithMeas_vs_eta",
1140  "mean # PXL Layers with measurement vs eta",
1141  nintEta,
1142  minEta,
1143  maxEta,
1144  nintLayers,
1145  minLayers,
1146  maxLayers,
1147  " "));
1148  histograms.nSTRIPlayersWithMeas_vs_eta.push_back(ibook.bookProfile("STRIPlayersWithMeas_vs_eta",
1149  "mean # STRIP Layers with measurement vs eta",
1150  nintEta,
1151  minEta,
1152  maxEta,
1153  nintLayers,
1154  minLayers,
1155  maxLayers,
1156  " "));
1157  histograms.nSTRIPlayersWith1dMeas_vs_eta.push_back(ibook.bookProfile("STRIPlayersWith1dMeas_vs_eta",
1158  "mean # STRIP Layers with 1D measurement vs eta",
1159  nintEta,
1160  minEta,
1161  maxEta,
1162  nintLayers,
1163  minLayers,
1164  maxLayers,
1165  " "));
1166  histograms.nSTRIPlayersWith2dMeas_vs_eta.push_back(ibook.bookProfile("STRIPlayersWith2dMeas_vs_eta",
1167  "mean # STRIP Layers with 2D measurement vs eta",
1168  nintEta,
1169  minEta,
1170  maxEta,
1171  nintLayers,
1172  minLayers,
1173  maxLayers,
1174  " "));
1175 
1176  if (doMTDPlots_) {
1177  histograms.nMTDhits_vs_eta.push_back(ibook.bookProfile(
1178  "MTDhits_vs_eta", "mean # MTD hits vs eta", nintEta, minEta, maxEta, nintHit, minHit, maxHit, " "));
1179 
1180  histograms.nBTLhits_vs_eta.push_back(ibook.bookProfile(
1181  "BTLhits_vs_eta", "mean # BTL hits vs eta", nintEta, minEta, maxEta, nintHit, minHit, maxHit, " "));
1182 
1183  histograms.nETLhits_vs_eta.push_back(ibook.bookProfile(
1184  "ETLhits_vs_eta", "mean # ETL hits vs eta", nintEta, minEta, maxEta, nintHit, minHit, maxHit, " "));
1185  }
1186 
1187  histograms.nhits_vs_phi.push_back(
1188  ibook.bookProfile("hits_phi", "mean # hits vs #phi", nintPhi, minPhi, maxPhi, nintHit, minHit, maxHit, " "));
1189 
1190  histograms.nlosthits_vs_eta.push_back(ibook.bookProfile(
1191  "losthits_vs_eta", "mean # lost hits vs eta", nintEta, minEta, maxEta, nintHit, minHit, maxHit, " "));
1192 
1193  //resolution of track parameters
1194  // dPt/Pt cotTheta Phi TIP LIP
1195  // log10(pt)<0.5 100,0.1 240,0.08 100,0.015 100,0.1000 150,0.3000
1196  // 0.5<log10(pt)<1.5 100,0.1 120,0.01 100,0.003 100,0.0100 150,0.0500
1197  // >1.5 100,0.3 100,0.005 100,0.0008 100,0.0060 120,0.0300
1198 
1199  bookResolutionPlots2D(histograms.ptres_vs_eta,
1200  false,
1201  "ptres_vs_eta",
1202  "ptres_vs_eta",
1203  nintEta,
1204  minEta,
1205  maxEta,
1206  ptRes_nbin,
1208  ptRes_rangeMax);
1209 
1210  bookResolutionPlots2D(histograms.ptres_vs_phi,
1211  false,
1212  "ptres_vs_phi",
1213  "p_{t} res vs #phi",
1214  nintPhi,
1215  minPhi,
1216  maxPhi,
1217  ptRes_nbin,
1219  ptRes_rangeMax);
1220 
1221  bookResolutionPlots2D(histograms.ptres_vs_pt,
1222  useLogPt,
1223  "ptres_vs_pt",
1224  "ptres_vs_pt",
1225  nintPt,
1226  minPt,
1227  maxPt,
1228  ptRes_nbin,
1230  ptRes_rangeMax);
1231 
1232  bookResolutionPlots2D(histograms.cotThetares_vs_eta,
1233  false,
1234  "cotThetares_vs_eta",
1235  "cotThetares_vs_eta",
1236  nintEta,
1237  minEta,
1238  maxEta,
1242 
1243  bookResolutionPlots2D(histograms.cotThetares_vs_pt,
1244  useLogPt,
1245  "cotThetares_vs_pt",
1246  "cotThetares_vs_pt",
1247  nintPt,
1248  minPt,
1249  maxPt,
1253 
1254  bookResolutionPlots2D(histograms.phires_vs_eta,
1255  false,
1256  "phires_vs_eta",
1257  "phires_vs_eta",
1258  nintEta,
1259  minEta,
1260  maxEta,
1261  phiRes_nbin,
1263  phiRes_rangeMax);
1264 
1265  bookResolutionPlots2D(histograms.phires_vs_pt,
1266  useLogPt,
1267  "phires_vs_pt",
1268  "phires_vs_pt",
1269  nintPt,
1270  minPt,
1271  maxPt,
1272  phiRes_nbin,
1274  phiRes_rangeMax);
1275 
1276  bookResolutionPlots2D(histograms.phires_vs_phi,
1277  false,
1278  "phires_vs_phi",
1279  "#phi res vs #phi",
1280  nintPhi,
1281  minPhi,
1282  maxPhi,
1283  phiRes_nbin,
1285  phiRes_rangeMax);
1286 
1287  bookResolutionPlots2D(histograms.dxyres_vs_eta,
1288  false,
1289  "dxyres_vs_eta",
1290  "dxyres_vs_eta",
1291  nintEta,
1292  minEta,
1293  maxEta,
1294  dxyRes_nbin,
1296  dxyRes_rangeMax);
1297 
1298  bookResolutionPlots2D(histograms.dxyres_vs_pt,
1299  useLogPt,
1300  "dxyres_vs_pt",
1301  "dxyres_vs_pt",
1302  nintPt,
1303  minPt,
1304  maxPt,
1305  dxyRes_nbin,
1307  dxyRes_rangeMax);
1308 
1309  bookResolutionPlots2D(histograms.dxyres_vs_phi,
1310  false,
1311  "dxyres_vs_phi",
1312  "dxyres_vs_phi",
1313  nintPhi,
1314  minPhi,
1315  maxPhi,
1316  dxyRes_nbin,
1318  dxyRes_rangeMax);
1319 
1320  bookResolutionPlots2D(histograms.dzres_vs_eta,
1321  false,
1322  "dzres_vs_eta",
1323  "dzres_vs_eta",
1324  nintEta,
1325  minEta,
1326  maxEta,
1327  dzRes_nbin,
1329  dzRes_rangeMax);
1330 
1331  bookResolutionPlots2D(histograms.dzres_vs_pt,
1332  useLogPt,
1333  "dzres_vs_pt",
1334  "dzres_vs_pt",
1335  nintPt,
1336  minPt,
1337  maxPt,
1338  dzRes_nbin,
1340  dzRes_rangeMax);
1341 
1342  bookResolutionPlots2D(histograms.dzres_vs_phi,
1343  false,
1344  "dzres_vs_phi",
1345  "dzres_vs_phi",
1346  nintPhi,
1347  minPhi,
1348  maxPhi,
1349  dzRes_nbin,
1351  dzRes_rangeMax);
1352 
1353  bookResolutionPlotsProfile2D(histograms.ptmean_vs_eta_phi,
1354  "ptmean_vs_eta_phi",
1355  "mean p_{t} vs #eta and #phi",
1356  nintPhi,
1357  minPhi,
1358  maxPhi,
1359  nintEta,
1360  minEta,
1361  maxEta,
1362  1000,
1363  0,
1364  1000);
1365  bookResolutionPlotsProfile2D(histograms.phimean_vs_eta_phi,
1366  "phimean_vs_eta_phi",
1367  "mean #phi vs #eta and #phi",
1368  nintPhi,
1369  minPhi,
1370  maxPhi,
1371  nintEta,
1372  minEta,
1373  maxEta,
1374  nintPhi,
1375  minPhi,
1376  maxPhi);
1377 
1378  //pulls of track params vs eta: to be used with fitslicesytool
1379  bookResolutionPlots2D(
1380  histograms.dxypull_vs_eta, false, "dxypull_vs_eta", "dxypull_vs_eta", nintEta, minEta, maxEta, 100, -10, 10);
1381  bookResolutionPlots2D(
1382  histograms.ptpull_vs_eta, false, "ptpull_vs_eta", "ptpull_vs_eta", nintEta, minEta, maxEta, 100, -10, 10);
1383  bookResolutionPlots2D(
1384  histograms.dzpull_vs_eta, false, "dzpull_vs_eta", "dzpull_vs_eta", nintEta, minEta, maxEta, 100, -10, 10);
1385  bookResolutionPlots2D(
1386  histograms.phipull_vs_eta, false, "phipull_vs_eta", "phipull_vs_eta", nintEta, minEta, maxEta, 100, -10, 10);
1387  bookResolutionPlots2D(
1388  histograms.thetapull_vs_eta, false, "thetapull_vs_eta", "thetapull_vs_eta", nintEta, minEta, maxEta, 100, -10, 10);
1389 
1390  // histograms.h_ptshiftetamean.push_back( ibook.book1D("h_ptshifteta_Mean","<#deltapT/pT>[%] vs #eta",nintEta,minEta,maxEta) );
1391 
1392  //pulls of track params vs phi
1393  bookResolutionPlots2D(
1394  histograms.ptpull_vs_phi, false, "ptpull_vs_phi", "p_{t} pull vs #phi", nintPhi, minPhi, maxPhi, 100, -10, 10);
1395  bookResolutionPlots2D(
1396  histograms.phipull_vs_phi, false, "phipull_vs_phi", "#phi pull vs #phi", nintPhi, minPhi, maxPhi, 100, -10, 10);
1397  bookResolutionPlots2D(histograms.thetapull_vs_phi,
1398  false,
1399  "thetapull_vs_phi",
1400  "#theta pull vs #phi",
1401  nintPhi,
1402  minPhi,
1403  maxPhi,
1404  100,
1405  -10,
1406  10);
1407 
1408  bookResolutionPlots2D(histograms.nrecHit_vs_nsimHit_rec2sim,
1409  false,
1410  "nrecHit_vs_nsimHit_rec2sim",
1411  "nrecHit vs nsimHit (Rec2simAssoc)",
1412  nintHit,
1413  minHit,
1414  maxHit,
1415  nintHit,
1416  minHit,
1417  maxHit);
1418 }

References reco::TrackBase::algoNames, reco::TrackBase::algoSize, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::bookProfile(), dqm::implementation::IBooker::bookProfile2D(), cotThetaRes_nbin, cotThetaRes_rangeMax, cotThetaRes_rangeMin, doMTDPlots_, doSeedPlots_, dxyRes_nbin, dxyRes_rangeMax, dxyRes_rangeMin, dzRes_nbin, dzRes_rangeMax, dzRes_rangeMin, maxChi2, maxdr, maxdrj, maxDxy, maxDz, maxEta, maxHit, maxLayers, maxPhi, maxPt, maxPu, maxPVz, maxTracks, maxVertpos, maxZpos, mindr, mindrj, minDxy, minDz, minEta, minHit, minLayers, minPhi, minPt, minPu, minPVz, minTracks, minVertpos, minZpos, nintChi2, nintdr, nintdrj, nintDxy, nintDz, nintEta, nintHit, nintLayers, nintPhi, nintPt, nintPu, nintPVz, nintTracks, nintVertpos, nintZpos, CalibrationSummaryClient_cfi::params, phiRes_nbin, phiRes_rangeMax, phiRes_rangeMin, ptRes_nbin, ptRes_rangeMax, ptRes_rangeMin, seedingLayerSetNames, HcalObjRepresent::setBinLabels(), findQualityFiles::size, useLogPt, and useLogVertpos.

◆ bookRecoPVAssociationHistos()

void MTVHistoProducerAlgoForTracker::bookRecoPVAssociationHistos ( DQMStore::IBooker ibook,
Histograms histograms 
)

Definition at line 1420 of file MTVHistoProducerAlgoForTracker.cc.

1420  {
1421  histograms.h_recodxypv.push_back(
1422  ibook.book1D("num_reco_dxypv", "N of reco track vs dxy(PV)", nintDxy, minDxy, maxDxy));
1423  histograms.h_assoc2dxypv.push_back(ibook.book1D(
1424  "num_assoc(recoToSim)_dxypv", "N of associated (recoToSim) tracks vs dxy(PV)", nintDxy, minDxy, maxDxy));
1425  histograms.h_looperdxypv.push_back(ibook.book1D(
1426  "num_duplicate_dxypv", "N of associated (recoToSim) looper tracks vs dxy(PV)", nintDxy, minDxy, maxDxy));
1427  if (!doSeedPlots_)
1428  histograms.h_misiddxypv.push_back(ibook.book1D("num_chargemisid_dxypv",
1429  "N of associated (recoToSim) charge misIDed tracks vs dxy(PV)",
1430  nintDxy,
1431  minDxy,
1432  maxDxy));
1433  histograms.h_pileupdxypv.push_back(ibook.book1D(
1434  "num_pileup_dxypv", "N of associated (recoToSim) pileup tracks vs dxy(PV)", nintDxy, minDxy, maxDxy));
1435 
1436  histograms.h_recodzpv.push_back(ibook.book1D("num_reco_dzpv", "N of reco track vs dz(PV)", nintDz, minDz, maxDz));
1437  histograms.h_assoc2dzpv.push_back(
1438  ibook.book1D("num_assoc(recoToSim)_dzpv", "N of associated (recoToSim) tracks vs dz(PV)", nintDz, minDz, maxDz));
1439  histograms.h_looperdzpv.push_back(
1440  ibook.book1D("num_duplicate_dzpv", "N of associated (recoToSim) looper tracks vs dz(PV)", nintDz, minDz, maxDz));
1441  if (!doSeedPlots_)
1442  histograms.h_misiddzpv.push_back(ibook.book1D("num_chargemisid_versus_dzpv",
1443  "N of associated (recoToSim) charge misIDed tracks vs dz(PV)",
1444  nintDz,
1445  minDz,
1446  maxDz));
1447  histograms.h_pileupdzpv.push_back(
1448  ibook.book1D("num_pileup_dzpv", "N of associated (recoToSim) pileup tracks vs dz(PV)", nintDz, minDz, maxDz));
1449 
1450  histograms.h_recodxypvzoomed.push_back(ibook.book1D(
1451  "num_reco_dxypv_zoomed", "N of reco track vs dxy(PV)", nintDxy, minDxy / dxyDzZoom, maxDxy / dxyDzZoom));
1452  histograms.h_assoc2dxypvzoomed.push_back(ibook.book1D("num_assoc(recoToSim)_dxypv_zoomed",
1453  "N of associated (recoToSim) tracks vs dxy(PV)",
1454  nintDxy,
1455  minDxy / dxyDzZoom,
1456  maxDxy / dxyDzZoom));
1457  histograms.h_looperdxypvzoomed.push_back(ibook.book1D("num_duplicate_dxypv_zoomed",
1458  "N of associated (recoToSim) looper tracks vs dxy(PV)",
1459  nintDxy,
1460  minDxy / dxyDzZoom,
1461  maxDxy / dxyDzZoom));
1462  if (!doSeedPlots_)
1463  histograms.h_misiddxypvzoomed.push_back(ibook.book1D("num_chargemisid_dxypv_zoomed",
1464  "N of associated (recoToSim) charge misIDed tracks vs dxy(PV)",
1465  nintDxy,
1466  minDxy / dxyDzZoom,
1467  maxDxy / dxyDzZoom));
1468  histograms.h_pileupdxypvzoomed.push_back(ibook.book1D("num_pileup_dxypv_zoomed",
1469  "N of associated (recoToSim) pileup tracks vs dxy(PV)",
1470  nintDxy,
1471  minDxy / dxyDzZoom,
1472  maxDxy / dxyDzZoom));
1473 
1474  histograms.h_recodzpvzoomed.push_back(
1475  ibook.book1D("num_reco_dzpv_zoomed", "N of reco track vs dz(PV)", nintDz, minDz / dxyDzZoom, maxDz / dxyDzZoom));
1476  histograms.h_assoc2dzpvzoomed.push_back(ibook.book1D("num_assoc(recoToSim)_dzpv_zoomed",
1477  "N of associated (recoToSim) tracks vs dz(PV)",
1478  nintDz,
1479  minDz / dxyDzZoom,
1480  maxDz / dxyDzZoom));
1481  histograms.h_looperdzpvzoomed.push_back(ibook.book1D("num_duplicate_dzpv_zoomed",
1482  "N of associated (recoToSim) looper tracks vs dz(PV)",
1483  nintDz,
1484  minDz / dxyDzZoom,
1485  maxDz / dxyDzZoom));
1486  if (!doSeedPlots_)
1487  histograms.h_misiddzpvzoomed.push_back(ibook.book1D("num_chargemisid_versus_dzpv_zoomed",
1488  "N of associated (recoToSim) charge misIDed tracks vs dz(PV)",
1489  nintDz,
1490  minDz / dxyDzZoom,
1491  maxDz / dxyDzZoom));
1492  histograms.h_pileupdzpvzoomed.push_back(ibook.book1D("num_pileup_dzpv_zoomed",
1493  "N of associated (recoToSim) pileup tracks vs dz(PV)",
1494  nintDz,
1495  minDz / dxyDzZoom,
1496  maxDz / dxyDzZoom));
1497 
1498  histograms.h_reco_dzpvcut.push_back(
1499  ibook.book1D("num_reco_dzpvcut", "N of reco track vs dz(PV)", nintDzpvCum, 0, maxDzpvCum));
1500  histograms.h_assoc2_dzpvcut.push_back(ibook.book1D(
1501  "num_assoc(recoToSim)_dzpvcut", "N of associated (recoToSim) tracks vs dz(PV)", nintDzpvCum, 0, maxDzpvCum));
1502  histograms.h_pileup_dzpvcut.push_back(ibook.book1D(
1503  "num_pileup_dzpvcut", "N of associated (recoToSim) pileup tracks vs dz(PV)", nintDzpvCum, 0, maxDzpvCum));
1504 
1505  histograms.h_reco_dzpvcut_pt.push_back(
1506  ibook.book1D("num_reco_dzpvcut_pt", "#sump_{T} of reco track vs dz(PV)", nintDzpvCum, 0, maxDzpvCum));
1507  histograms.h_assoc2_dzpvcut_pt.push_back(ibook.book1D("num_assoc(recoToSim)_dzpvcut_pt",
1508  "#sump_{T} of associated (recoToSim) tracks vs dz(PV)",
1509  nintDzpvCum,
1510  0,
1511  maxDzpvCum));
1512  histograms.h_pileup_dzpvcut_pt.push_back(ibook.book1D("num_pileup_dzpvcut_pt",
1513  "#sump_{T} of associated (recoToSim) pileup tracks vs dz(PV)",
1514  nintDzpvCum,
1515  0,
1516  maxDzpvCum));
1517  histograms.h_reco_dzpvcut_pt.back()->enableSumw2();
1518  histograms.h_assoc2_dzpvcut_pt.back()->enableSumw2();
1519  histograms.h_pileup_dzpvcut_pt.back()->enableSumw2();
1520 
1521  histograms.h_reco_dzpvsigcut.push_back(
1522  ibook.book1D("num_reco_dzpvsigcut", "N of reco track vs dz(PV)/dzError", nintDzpvsigCum, 0, maxDzpvsigCum));
1523  histograms.h_assoc2_dzpvsigcut.push_back(ibook.book1D("num_assoc(recoToSim)_dzpvsigcut",
1524  "N of associated (recoToSim) tracks vs dz(PV)/dzError",
1526  0,
1527  maxDzpvsigCum));
1528  histograms.h_pileup_dzpvsigcut.push_back(ibook.book1D("num_pileup_dzpvsigcut",
1529  "N of associated (recoToSim) pileup tracks vs dz(PV)/dzError",
1531  0,
1532  maxDzpvsigCum));
1533 
1534  histograms.h_reco_dzpvsigcut_pt.push_back(ibook.book1D(
1535  "num_reco_dzpvsigcut_pt", "#sump_{T} of reco track vs dz(PV)/dzError", nintDzpvsigCum, 0, maxDzpvsigCum));
1536  histograms.h_assoc2_dzpvsigcut_pt.push_back(
1537  ibook.book1D("num_assoc(recoToSim)_dzpvsigcut_pt",
1538  "#sump_{T} of associated (recoToSim) tracks vs dz(PV)/dzError",
1540  0,
1541  maxDzpvsigCum));
1542  histograms.h_pileup_dzpvsigcut_pt.push_back(
1543  ibook.book1D("num_pileup_dzpvsigcut_pt",
1544  "#sump_{T} of associated (recoToSim) pileup tracks vs dz(PV)/dzError",
1546  0,
1547  maxDzpvsigCum));
1548  histograms.h_reco_dzpvsigcut_pt.back()->enableSumw2();
1549  histograms.h_assoc2_dzpvsigcut_pt.back()->enableSumw2();
1550  histograms.h_pileup_dzpvsigcut_pt.back()->enableSumw2();
1551 }

References dqm::implementation::IBooker::book1D(), doSeedPlots_, dxyDzZoom, maxDxy, maxDz, maxDzpvCum, maxDzpvsigCum, minDxy, minDz, nintDxy, nintDz, nintDzpvCum, and nintDzpvsigCum.

◆ bookSeedHistos()

void MTVHistoProducerAlgoForTracker::bookSeedHistos ( DQMStore::IBooker ibook,
Histograms histograms 
)

Definition at line 1574 of file MTVHistoProducerAlgoForTracker.cc.

1574  {
1575  histograms.h_seedsFitFailed.push_back(
1576  ibook.book1D("seeds_fitFailed", "Number of seeds for which the fit failed", nintTracks, minTracks, maxTracks));
1577  histograms.h_seedsFitFailedFraction.push_back(
1578  ibook.book1D("seeds_fitFailedFraction", "Fraction of seeds for which the fit failed", 100, 0, 1));
1579 }

References dqm::implementation::IBooker::book1D(), maxTracks, minTracks, and nintTracks.

◆ bookSimHistos()

void MTVHistoProducerAlgoForTracker::bookSimHistos ( DQMStore::IBooker ibook,
Histograms histograms 
)

Definition at line 394 of file MTVHistoProducerAlgoForTracker.cc.

394  {
395  histograms.h_ptSIM = make1DIfLogX(ibook, useLogPt, "ptSIM", "generated p_{t}", nintPt, minPt, maxPt);
396  histograms.h_etaSIM = ibook.book1D("etaSIM", "generated pseudorapidity", nintEta, minEta, maxEta);
397  histograms.h_phiSIM = ibook.book1D("phiSIM", "generated phi", nintPhi, minPhi, maxPhi);
398  histograms.h_tracksSIM =
399  ibook.book1D("tracksSIM", "number of simulated tracks", nintTracks, minTracks, maxTracks * 10);
400  histograms.h_vertposSIM =
401  ibook.book1D("vertposSIM", "Transverse position of sim vertices", nintVertpos, minVertpos, maxVertpos);
402  histograms.h_bunchxSIM = ibook.book1D("bunchxSIM", "bunch crossing", 21, -15.5, 5.5);
403 }

References dqm::implementation::IBooker::book1D(), maxEta, maxPhi, maxPt, maxTracks, maxVertpos, minEta, minPhi, minPt, minTracks, minVertpos, nintEta, nintPhi, nintPt, nintTracks, nintVertpos, and useLogPt.

◆ bookSimTrackHistos()

void MTVHistoProducerAlgoForTracker::bookSimTrackHistos ( DQMStore::IBooker ibook,
Histograms histograms,
bool  doResolutionPlots 
)

Definition at line 405 of file MTVHistoProducerAlgoForTracker.cc.

407  {
408  histograms.h_assoceta.push_back(
409  ibook.book1D("num_assoc(simToReco)_eta", "N of associated tracks (simToReco) vs eta", nintEta, minEta, maxEta));
410  histograms.h_simuleta.push_back(
411  ibook.book1D("num_simul_eta", "N of simulated tracks vs eta", nintEta, minEta, maxEta));
412 
413  histograms.h_assocpT.push_back(make1DIfLogX(
414  ibook, useLogPt, "num_assoc(simToReco)_pT", "N of associated tracks (simToReco) vs pT", nintPt, minPt, maxPt));
415  histograms.h_simulpT.push_back(
416  make1DIfLogX(ibook, useLogPt, "num_simul_pT", "N of simulated tracks vs pT", nintPt, minPt, maxPt));
417 
418  histograms.h_assocpTvseta.push_back(make2DIfLogY(ibook,
419  useLogPt,
420  "num_assoc(simToReco)_pTvseta",
421  "N of associated tracks (simToReco) in (pT-eta) please",
422  nintEta,
423  minEta,
424  maxEta,
425  nintPt,
426  minPt,
427  maxPt));
428  histograms.h_simulpTvseta.push_back(make2DIfLogY(ibook,
429  useLogPt,
430  "num_simul_pTvseta",
431  "N of simulated tracks in (pT-eta) plane",
432  nintEta,
433  minEta,
434  maxEta,
435  nintPt,
436  minPt,
437  maxPt));
438 
439  histograms.h_assochit.push_back(
440  ibook.book1D("num_assoc(simToReco)_hit", "N of associated tracks (simToReco) vs hit", nintHit, minHit, maxHit));
441  histograms.h_simulhit.push_back(
442  ibook.book1D("num_simul_hit", "N of simulated tracks vs hit", nintHit, minHit, maxHit));
443 
444  histograms.h_assoclayer.push_back(ibook.book1D(
445  "num_assoc(simToReco)_layer", "N of associated tracks (simToReco) vs layer", nintLayers, minLayers, maxLayers));
446  histograms.h_simullayer.push_back(
447  ibook.book1D("num_simul_layer", "N of simulated tracks vs layer", nintLayers, minLayers, maxLayers));
448 
449  histograms.h_assocpixellayer.push_back(ibook.book1D("num_assoc(simToReco)_pixellayer",
450  "N of associated tracks (simToReco) vs pixel layer",
451  nintLayers,
452  minLayers,
453  maxLayers));
454  histograms.h_simulpixellayer.push_back(
455  ibook.book1D("num_simul_pixellayer", "N of simulated tracks vs pixel layer", nintLayers, minLayers, maxLayers));
456 
457  histograms.h_assoc3Dlayer.push_back(ibook.book1D("num_assoc(simToReco)_3Dlayer",
458  "N of associated tracks (simToReco) vs 3D layer",
459  nintLayers,
460  minLayers,
461  maxLayers));
462  histograms.h_simul3Dlayer.push_back(
463  ibook.book1D("num_simul_3Dlayer", "N of simulated tracks vs 3D layer", nintLayers, minLayers, maxLayers));
464 
465  histograms.h_assocpu.push_back(
466  ibook.book1D("num_assoc(simToReco)_pu", "N of associated tracks (simToReco) vs pu", nintPu, minPu, maxPu));
467  histograms.h_simulpu.push_back(ibook.book1D("num_simul_pu", "N of simulated tracks vs pu", nintPu, minPu, maxPu));
468 
469  histograms.h_assocphi.push_back(
470  ibook.book1D("num_assoc(simToReco)_phi", "N of associated tracks (simToReco) vs phi", nintPhi, minPhi, maxPhi));
471  histograms.h_simulphi.push_back(
472  ibook.book1D("num_simul_phi", "N of simulated tracks vs phi", nintPhi, minPhi, maxPhi));
473 
474  histograms.h_assocdxy.push_back(
475  ibook.book1D("num_assoc(simToReco)_dxy", "N of associated tracks (simToReco) vs dxy", nintDxy, minDxy, maxDxy));
476  histograms.h_simuldxy.push_back(
477  ibook.book1D("num_simul_dxy", "N of simulated tracks vs dxy", nintDxy, minDxy, maxDxy));
478 
479  histograms.h_assocdz.push_back(
480  ibook.book1D("num_assoc(simToReco)_dz", "N of associated tracks (simToReco) vs dz", nintDz, minDz, maxDz));
481  histograms.h_simuldz.push_back(ibook.book1D("num_simul_dz", "N of simulated tracks vs dz", nintDz, minDz, maxDz));
482 
483  histograms.h_assocvertpos.push_back(make1DIfLogX(ibook,
485  "num_assoc(simToReco)_vertpos",
486  "N of associated tracks (simToReco) vs transverse vert position",
487  nintVertpos,
488  minVertpos,
489  maxVertpos));
490  histograms.h_simulvertpos.push_back(make1DIfLogX(ibook,
492  "num_simul_vertpos",
493  "N of simulated tracks vs transverse vert position",
494  nintVertpos,
495  minVertpos,
496  maxVertpos));
497 
498  histograms.h_assoczpos.push_back(ibook.book1D(
499  "num_assoc(simToReco)_zpos", "N of associated tracks (simToReco) vs z vert position", nintZpos, minZpos, maxZpos));
500  histograms.h_simulzpos.push_back(
501  ibook.book1D("num_simul_zpos", "N of simulated tracks vs z vert position", nintZpos, minZpos, maxZpos));
502 
503  histograms.h_assocdr.push_back(make1DIfLogX(ibook,
504  true,
505  "num_assoc(simToReco)_dr",
506  "N of associated tracks (simToReco) vs dR",
507  nintdr,
508  log10(mindr),
509  log10(maxdr)));
510  histograms.h_simuldr.push_back(
511  make1DIfLogX(ibook, true, "num_simul_dr", "N of simulated tracks vs dR", nintdr, log10(mindr), log10(maxdr)));
512 
513  histograms.h_assocdrj.push_back(make1DIfLogX(ibook,
514  true,
515  "num_assoc(simToReco)_drj",
516  "N of associated tracks (simToReco) vs dR(TP,jet)",
517  nintdrj,
518  log10(mindrj),
519  log10(maxdrj)));
520  histograms.h_simuldrj.push_back(make1DIfLogX(
521  ibook, true, "num_simul_drj", "N of simulated tracks vs dR(TP,jet)", nintdrj, log10(mindrj), log10(maxdrj)));
522 
523  histograms.h_simul_simpvz.push_back(
524  ibook.book1D("num_simul_simpvz", "N of simulated tracks vs. sim PV z", nintPVz, minPVz, maxPVz));
525  histograms.h_assoc_simpvz.push_back(ibook.book1D(
526  "num_assoc(simToReco)_simpvz", "N of associated tracks (simToReco) vs. sim PV z", nintPVz, minPVz, maxPVz));
527 
528  histograms.nrecHit_vs_nsimHit_sim2rec.push_back(doResolutionPlots ? ibook.book2D("nrecHit_vs_nsimHit_sim2rec",
529  "nrecHit vs nsimHit (Sim2RecAssoc)",
530  nintHit,
531  minHit,
532  maxHit,
533  nintHit,
534  minHit,
535  maxHit)
536  : nullptr);
537 
538  // TODO: use the dynamic track algo priority order also here
539  constexpr auto nalgos = reco::TrackBase::algoSize;
540  histograms.h_duplicates_oriAlgo_vs_oriAlgo.push_back(ibook.book2D("duplicates_oriAlgo_vs_oriAlgo",
541  "Duplicate tracks: originalAlgo vs originalAlgo",
542  nalgos,
543  0,
544  nalgos,
545  nalgos,
546  0,
547  nalgos));
548  setBinLabelsAlgo(histograms.h_duplicates_oriAlgo_vs_oriAlgo.back(), 1);
549  setBinLabelsAlgo(histograms.h_duplicates_oriAlgo_vs_oriAlgo.back(), 2);
550 }

References reco::TrackBase::algoSize, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), maxdr, maxdrj, maxDxy, maxDz, maxEta, maxHit, maxLayers, maxPhi, maxPt, maxPu, maxPVz, maxVertpos, maxZpos, mindr, mindrj, minDxy, minDz, minEta, minHit, minLayers, minPhi, minPt, minPu, minPVz, minVertpos, minZpos, nintdr, nintdrj, nintDxy, nintDz, nintEta, nintHit, nintLayers, nintPhi, nintPt, nintPu, nintPVz, nintVertpos, nintZpos, useLogPt, and useLogVertpos.

◆ bookSimTrackPVAssociationHistos()

void MTVHistoProducerAlgoForTracker::bookSimTrackPVAssociationHistos ( DQMStore::IBooker ibook,
Histograms histograms 
)

Definition at line 552 of file MTVHistoProducerAlgoForTracker.cc.

552  {
553  histograms.h_assocdxypv.push_back(ibook.book1D(
554  "num_assoc(simToReco)_dxypv", "N of associated tracks (simToReco) vs dxy(PV)", nintDxy, minDxy, maxDxy));
555  histograms.h_simuldxypv.push_back(
556  ibook.book1D("num_simul_dxypv", "N of simulated tracks vs dxy(PV)", nintDxy, minDxy, maxDxy));
557 
558  histograms.h_assocdzpv.push_back(
559  ibook.book1D("num_assoc(simToReco)_dzpv", "N of associated tracks (simToReco) vs dz(PV)", nintDz, minDz, maxDz));
560  histograms.h_simuldzpv.push_back(
561  ibook.book1D("num_simul_dzpv", "N of simulated tracks vs dz(PV)", nintDz, minDz, maxDz));
562 
563  histograms.h_assocdxypvzoomed.push_back(ibook.book1D("num_assoc(simToReco)_dxypv_zoomed",
564  "N of associated tracks (simToReco) vs dxy(PV)",
565  nintDxy,
566  minDxy / dxyDzZoom,
567  maxDxy / dxyDzZoom));
568  histograms.h_simuldxypvzoomed.push_back(ibook.book1D(
569  "num_simul_dxypv_zoomed", "N of simulated tracks vs dxy(PV)", nintDxy, minDxy / dxyDzZoom, maxDxy / dxyDzZoom));
570 
571  histograms.h_assocdzpvzoomed.push_back(ibook.book1D("num_assoc(simToReco)_dzpv_zoomed",
572  "N of associated tracks (simToReco) vs dz(PV)",
573  nintDz,
574  minDz / dxyDzZoom,
575  maxDz / dxyDzZoom));
576  histograms.h_simuldzpvzoomed.push_back(ibook.book1D(
577  "num_simul_dzpv_zoomed", "N of simulated tracks vs dz(PV)", nintDz, minDz / dxyDzZoom, maxDz / dxyDzZoom));
578 
579  histograms.h_assoc_dzpvcut.push_back(ibook.book1D(
580  "num_assoc(simToReco)_dzpvcut", "N of associated tracks (simToReco) vs dz(PV)", nintDzpvCum, 0, maxDzpvCum));
581  histograms.h_simul_dzpvcut.push_back(
582  ibook.book1D("num_simul_dzpvcut", "N of simulated tracks from sim PV", nintDzpvCum, 0, maxDzpvCum));
583  histograms.h_simul2_dzpvcut.push_back(ibook.book1D(
584  "num_simul2_dzpvcut", "N of simulated tracks (associated to any track) from sim PV", nintDzpvCum, 0, maxDzpvCum));
585 
586  histograms.h_assoc_dzpvcut_pt.push_back(ibook.book1D("num_assoc(simToReco)_dzpvcut_pt",
587  "#sump_{T} of associated tracks (simToReco) vs dz(PV)",
588  nintDzpvCum,
589  0,
590  maxDzpvCum));
591  histograms.h_simul_dzpvcut_pt.push_back(
592  ibook.book1D("num_simul_dzpvcut_pt", "#sump_{T} of simulated tracks from sim PV", nintDzpvCum, 0, maxDzpvCum));
593  histograms.h_simul2_dzpvcut_pt.push_back(
594  ibook.book1D("num_simul2_dzpvcut_pt",
595  "#sump_{T} of simulated tracks (associated to any track) from sim PV",
596  nintDzpvCum,
597  0,
598  maxDzpvCum));
599  histograms.h_assoc_dzpvcut_pt.back()->enableSumw2();
600  histograms.h_simul_dzpvcut_pt.back()->enableSumw2();
601  histograms.h_simul2_dzpvcut_pt.back()->enableSumw2();
602 
603  histograms.h_assoc_dzpvsigcut.push_back(ibook.book1D("num_assoc(simToReco)_dzpvsigcut",
604  "N of associated tracks (simToReco) vs dz(PV)/dzError",
606  0,
607  maxDzpvsigCum));
608  histograms.h_simul_dzpvsigcut.push_back(ibook.book1D(
609  "num_simul_dzpvsigcut", "N of simulated tracks from sim PV/dzError", nintDzpvsigCum, 0, maxDzpvsigCum));
610  histograms.h_simul2_dzpvsigcut.push_back(
611  ibook.book1D("num_simul2_dzpvsigcut",
612  "N of simulated tracks (associated to any track) from sim PV/dzError",
614  0,
615  maxDzpvsigCum));
616 
617  histograms.h_assoc_dzpvsigcut_pt.push_back(
618  ibook.book1D("num_assoc(simToReco)_dzpvsigcut_pt",
619  "#sump_{T} of associated tracks (simToReco) vs dz(PV)/dzError",
621  0,
622  maxDzpvsigCum));
623  histograms.h_simul_dzpvsigcut_pt.push_back(ibook.book1D(
624  "num_simul_dzpvsigcut_pt", "#sump_{T} of simulated tracks from sim PV/dzError", nintDzpvsigCum, 0, maxDzpvsigCum));
625  histograms.h_simul2_dzpvsigcut_pt.push_back(
626  ibook.book1D("num_simul2_dzpvsigcut_pt",
627  "#sump_{T} of simulated tracks (associated to any track) from sim PV/dzError",
629  0,
630  maxDzpvsigCum));
631  histograms.h_assoc_dzpvsigcut_pt.back()->enableSumw2();
632  histograms.h_simul_dzpvsigcut_pt.back()->enableSumw2();
633  histograms.h_simul2_dzpvsigcut_pt.back()->enableSumw2();
634 }

References dqm::implementation::IBooker::book1D(), dxyDzZoom, maxDxy, maxDz, maxDzpvCum, maxDzpvsigCum, minDxy, minDz, nintDxy, nintDz, nintDzpvCum, and nintDzpvsigCum.

◆ fill_dedx_recoTrack_histos()

void MTVHistoProducerAlgoForTracker::fill_dedx_recoTrack_histos ( const Histograms histograms,
int  count,
const edm::RefToBase< reco::Track > &  trackref,
const std::vector< const edm::ValueMap< reco::DeDxData > * > &  v_dEdx 
) const

Definition at line 1954 of file MTVHistoProducerAlgoForTracker.cc.

1958  {
1959  for (unsigned int i = 0; i < v_dEdx.size(); i++) {
1960  const edm::ValueMap<reco::DeDxData>& dEdxTrack = *(v_dEdx[i]);
1961  const reco::DeDxData& dedx = dEdxTrack[trackref];
1962  histograms.h_dedx_estim[count][i]->Fill(dedx.dEdx());
1963  histograms.h_dedx_nom[count][i]->Fill(dedx.numberOfMeasurements());
1964  histograms.h_dedx_sat[count][i]->Fill(dedx.numberOfSaturatedMeasurements());
1965  }
1966 }

References KineDebug3::count(), reco::DeDxData::dEdx(), mps_fire::i, reco::DeDxData::numberOfMeasurements(), and reco::DeDxData::numberOfSaturatedMeasurements().

◆ fill_duplicate_histos()

void MTVHistoProducerAlgoForTracker::fill_duplicate_histos ( const Histograms histograms,
int  count,
const reco::Track track1,
const reco::Track track2 
) const

Definition at line 1942 of file MTVHistoProducerAlgoForTracker.cc.

1945  {
1946  histograms.h_duplicates_oriAlgo_vs_oriAlgo[count]->Fill(track1.originalAlgo(), track2.originalAlgo());
1947 }

References KineDebug3::count(), and reco::TrackBase::originalAlgo().

◆ fill_generic_recoTrack_histos()

void MTVHistoProducerAlgoForTracker::fill_generic_recoTrack_histos ( const Histograms histograms,
int  count,
const reco::Track track,
const TrackerTopology ttopo,
const math::XYZPoint bsPosition,
const math::XYZPoint pvPosition,
const TrackingVertex::LorentzVector simPVPosition,
bool  isMatched,
bool  isSigMatched,
bool  isChargeMatched,
int  numAssocRecoTracks,
int  numVertices,
int  nSimHits,
double  sharedFraction,
double  dR,
double  dR_jet,
const std::vector< float > &  mvas,
unsigned int  selectsLoose,
unsigned int  selectsHP 
) const

Definition at line 1968 of file MTVHistoProducerAlgoForTracker.cc.

1986  {
1987  //Fill track algo histogram
1988  histograms.h_algo[count]->Fill(track.algo());
1989  int sharedHits = sharedFraction * track.numberOfValidHits();
1990 
1991  //Compute fake rate vs eta
1992  const auto eta = getEta(track.momentum().eta());
1993  const auto phi = track.momentum().phi();
1994  const auto pt = getPt(sqrt(track.momentum().perp2()));
1995  const auto dxy = track.dxy(bsPosition);
1996  const auto dz = track.dz(bsPosition);
1997  const auto dxypv = pvPosition ? track.dxy(*pvPosition) : 0.0;
1998  const auto dzpv = pvPosition ? track.dz(*pvPosition) : 0.0;
1999  const auto dzpvsig = pvPosition ? dzpv / track.dzError() : 0.0;
2000  const auto nhits = track.found();
2001  const auto nlayers = track.hitPattern().trackerLayersWithMeasurement();
2002  const auto nPixelLayers = track.hitPattern().pixelLayersWithMeasurement();
2003  const auto n3DLayers = nPixelLayers + track.hitPattern().numberOfValidStripLayersWithMonoAndStereo();
2004  const auto refPointWrtBS = track.referencePoint() - bsPosition;
2005  const auto vertxy = std::sqrt(refPointWrtBS.perp2());
2006  const auto vertz = refPointWrtBS.z();
2007  const auto chi2 = track.normalizedChi2();
2008  const auto chi2prob = TMath::Prob(track.chi2(), (int)track.ndof());
2009  const bool fillSeedingLayerSets = !seedingLayerSetNames.empty();
2010  const unsigned int seedingLayerSetBin = fillSeedingLayerSets ? getSeedingLayerSetBin(track, ttopo) : 0;
2011  const auto simpvz = simPVPosition ? simPVPosition->z() : 0.0;
2012 
2013  const bool paramsValid = !trackFromSeedFitFailed(track);
2014 
2015  if (paramsValid) {
2016  histograms.h_recoeta[count]->Fill(eta);
2017  histograms.h_recophi[count]->Fill(phi);
2018  histograms.h_recopT[count]->Fill(pt);
2019  histograms.h_recopTvseta[count]->Fill(eta, pt);
2020  histograms.h_recodxy[count]->Fill(dxy);
2021  histograms.h_recodz[count]->Fill(dz);
2022  histograms.h_recochi2[count]->Fill(chi2);
2023  histograms.h_recochi2prob[count]->Fill(chi2prob);
2024  histograms.h_recovertpos[count]->Fill(vertxy);
2025  histograms.h_recozpos[count]->Fill(vertz);
2026  histograms.h_recodr[count]->Fill(dR);
2027  histograms.h_recodrj[count]->Fill(dRJet);
2028  if (fillSeedingLayerSets)
2029  histograms.h_reco_seedingLayerSet[count]->Fill(seedingLayerSetBin);
2030  if (pvPosition) {
2031  histograms.h_recodxypv[count]->Fill(dxypv);
2032  histograms.h_recodzpv[count]->Fill(dzpv);
2033  histograms.h_recodxypvzoomed[count]->Fill(dxypv);
2034  histograms.h_recodzpvzoomed[count]->Fill(dzpv);
2035 
2036  histograms.h_reco_dzpvcut[count]->Fill(std::abs(dzpv));
2037  histograms.h_reco_dzpvsigcut[count]->Fill(std::abs(dzpvsig));
2038  histograms.h_reco_dzpvcut_pt[count]->Fill(std::abs(dzpv), pt);
2039  histograms.h_reco_dzpvsigcut_pt[count]->Fill(std::abs(dzpvsig), pt);
2040  }
2041  if (simPVPosition) {
2042  histograms.h_reco_simpvz[count]->Fill(simpvz);
2043  }
2044  if ((*trackSelectorVsEta)(track, bsPosition)) {
2045  histograms.h_reco2eta[count]->Fill(eta);
2046  }
2047  if ((*trackSelectorVsPt)(track, bsPosition)) {
2048  histograms.h_reco2pT[count]->Fill(pt);
2049  histograms.h_reco2pTvseta[count]->Fill(eta, pt);
2050  }
2051  }
2052  histograms.h_recohit[count]->Fill(nhits);
2053  histograms.h_recolayer[count]->Fill(nlayers);
2054  histograms.h_recopixellayer[count]->Fill(nPixelLayers);
2055  histograms.h_reco3Dlayer[count]->Fill(n3DLayers);
2056  histograms.h_recopu[count]->Fill(numVertices);
2057  if ((*trackSelectorVsPhi)(track, bsPosition)) {
2058  histograms.h_reco2pu[count]->Fill(numVertices);
2059  }
2060 
2061  fillMVAHistos(histograms.h_reco_mva[count],
2062  histograms.h_reco_mvacut[count],
2063  histograms.h_reco_mva_hp[count],
2064  histograms.h_reco_mvacut_hp[count],
2065  mvas,
2066  selectsLoose,
2067  selectsHP);
2068 
2069  if (isMatched) {
2070  if (paramsValid) {
2071  histograms.h_assoc2eta[count]->Fill(eta);
2072  histograms.h_assoc2phi[count]->Fill(phi);
2073  histograms.h_assoc2pT[count]->Fill(pt);
2074  histograms.h_assoc2pTvseta[count]->Fill(eta, pt);
2075  histograms.h_assoc2dxy[count]->Fill(dxy);
2076  histograms.h_assoc2dz[count]->Fill(dz);
2077  histograms.h_assoc2hit[count]->Fill(nhits);
2078  histograms.h_assoc2chi2[count]->Fill(chi2);
2079  histograms.h_assoc2chi2prob[count]->Fill(chi2prob);
2080  histograms.assoc_chi2_vs_eta[count]->Fill(eta, chi2);
2081  histograms.assoc_chi2prob_vs_eta[count]->Fill(eta, chi2prob);
2082  histograms.assoc_chi2_vs_pt[count]->Fill(pt, chi2);
2083  histograms.assoc_chi2prob_vs_pt[count]->Fill(pt, chi2prob);
2084  histograms.h_assoc2vertpos[count]->Fill(vertxy);
2085  histograms.h_assoc2zpos[count]->Fill(vertz);
2086  histograms.h_assoc2dr[count]->Fill(dR);
2087  histograms.h_assoc2drj[count]->Fill(dRJet);
2088  if (fillSeedingLayerSets)
2089  histograms.h_assoc2_seedingLayerSet[count]->Fill(seedingLayerSetBin);
2090  if (pvPosition) {
2091  histograms.h_assoc2dxypv[count]->Fill(dxypv);
2092  histograms.h_assoc2dzpv[count]->Fill(dzpv);
2093  histograms.h_assoc2dxypvzoomed[count]->Fill(dxypv);
2094  histograms.h_assoc2dzpvzoomed[count]->Fill(dzpv);
2095 
2096  histograms.h_assoc2_dzpvcut[count]->Fill(std::abs(dzpv));
2097  histograms.h_assoc2_dzpvsigcut[count]->Fill(std::abs(dzpvsig));
2098  histograms.h_assoc2_dzpvcut_pt[count]->Fill(std::abs(dzpv), pt);
2099  histograms.h_assoc2_dzpvsigcut_pt[count]->Fill(std::abs(dzpvsig), pt);
2100  }
2101  if (simPVPosition) {
2102  histograms.h_assoc2_simpvz[count]->Fill(simpvz);
2103  }
2104  }
2105  histograms.h_assoc2layer[count]->Fill(nlayers);
2106  histograms.h_assoc2pixellayer[count]->Fill(nPixelLayers);
2107  histograms.h_assoc23Dlayer[count]->Fill(n3DLayers);
2108  histograms.h_assoc2pu[count]->Fill(numVertices);
2109 
2110  fillMVAHistos(histograms.h_assoc2_mva[count],
2111  histograms.h_assoc2_mvacut[count],
2112  histograms.h_assoc2_mva_hp[count],
2113  histograms.h_assoc2_mvacut_hp[count],
2114  mvas,
2115  selectsLoose,
2116  selectsHP);
2117  fillMVAHistos(pt,
2118  histograms.h_assoc2_mva_vs_pt[count],
2119  histograms.h_assoc2_mva_vs_pt_hp[count],
2120  mvas,
2121  selectsLoose,
2122  selectsHP);
2123  fillMVAHistos(eta,
2124  histograms.h_assoc2_mva_vs_eta[count],
2125  histograms.h_assoc2_mva_vs_eta_hp[count],
2126  mvas,
2127  selectsLoose,
2128  selectsHP);
2129 
2130  if (histograms.nrecHit_vs_nsimHit_rec2sim[count])
2131  histograms.nrecHit_vs_nsimHit_rec2sim[count]->Fill(track.numberOfValidHits(), nSimHits);
2132  histograms.h_assocFraction[count]->Fill(sharedFraction);
2133  histograms.h_assocSharedHit[count]->Fill(sharedHits);
2134 
2135  if (!doSeedPlots_ && !isChargeMatched) {
2136  histograms.h_misideta[count]->Fill(eta);
2137  histograms.h_misidphi[count]->Fill(phi);
2138  histograms.h_misidpT[count]->Fill(pt);
2139  histograms.h_misidpTvseta[count]->Fill(eta, pt);
2140  histograms.h_misiddxy[count]->Fill(dxy);
2141  histograms.h_misiddz[count]->Fill(dz);
2142  histograms.h_misidhit[count]->Fill(nhits);
2143  histograms.h_misidlayer[count]->Fill(nlayers);
2144  histograms.h_misidpixellayer[count]->Fill(nPixelLayers);
2145  histograms.h_misid3Dlayer[count]->Fill(n3DLayers);
2146  histograms.h_misidpu[count]->Fill(numVertices);
2147  histograms.h_misidchi2[count]->Fill(chi2);
2148  histograms.h_misidchi2prob[count]->Fill(chi2prob);
2149  if (pvPosition) {
2150  histograms.h_misiddxypv[count]->Fill(dxypv);
2151  histograms.h_misiddzpv[count]->Fill(dzpv);
2152  histograms.h_misiddxypvzoomed[count]->Fill(dxypv);
2153  histograms.h_misiddzpvzoomed[count]->Fill(dzpv);
2154  }
2155  }
2156 
2157  if (numAssocRecoTracks > 1) {
2158  if (paramsValid) {
2159  histograms.h_loopereta[count]->Fill(eta);
2160  histograms.h_looperphi[count]->Fill(phi);
2161  histograms.h_looperpT[count]->Fill(pt);
2162  histograms.h_looperpTvseta[count]->Fill(eta, pt);
2163  histograms.h_looperdxy[count]->Fill(dxy);
2164  histograms.h_looperdz[count]->Fill(dz);
2165  histograms.h_looperchi2[count]->Fill(chi2);
2166  histograms.h_looperchi2prob[count]->Fill(chi2prob);
2167  histograms.h_loopervertpos[count]->Fill(vertxy);
2168  histograms.h_looperzpos[count]->Fill(vertz);
2169  histograms.h_looperdr[count]->Fill(dR);
2170  histograms.h_looperdrj[count]->Fill(dRJet);
2171  if (fillSeedingLayerSets)
2172  histograms.h_looper_seedingLayerSet[count]->Fill(seedingLayerSetBin);
2173  if (pvPosition) {
2174  histograms.h_looperdxypv[count]->Fill(dxypv);
2175  histograms.h_looperdzpv[count]->Fill(dzpv);
2176  histograms.h_looperdxypvzoomed[count]->Fill(dxypv);
2177  histograms.h_looperdzpvzoomed[count]->Fill(dzpv);
2178  }
2179  if (simPVPosition) {
2180  histograms.h_looper_simpvz[count]->Fill(simpvz);
2181  }
2182  }
2183  histograms.h_looperhit[count]->Fill(nhits);
2184  histograms.h_looperlayer[count]->Fill(nlayers);
2185  histograms.h_looperpixellayer[count]->Fill(nPixelLayers);
2186  histograms.h_looper3Dlayer[count]->Fill(n3DLayers);
2187  histograms.h_looperpu[count]->Fill(numVertices);
2188  }
2189  if (!isSigMatched) {
2190  if (paramsValid) {
2191  histograms.h_pileupeta[count]->Fill(eta);
2192  histograms.h_pileupphi[count]->Fill(phi);
2193  histograms.h_pileuppT[count]->Fill(pt);
2194  histograms.h_pileuppTvseta[count]->Fill(eta, pt);
2195  histograms.h_pileupdxy[count]->Fill(dxy);
2196  histograms.h_pileupdz[count]->Fill(dz);
2197  histograms.h_pileupchi2[count]->Fill(chi2);
2198  histograms.h_pileupchi2prob[count]->Fill(chi2prob);
2199  histograms.h_pileupvertpos[count]->Fill(vertxy);
2200  histograms.h_pileupzpos[count]->Fill(vertz);
2201  histograms.h_pileupdr[count]->Fill(dR);
2202  histograms.h_pileupdrj[count]->Fill(dRJet);
2203  if (fillSeedingLayerSets)
2204  histograms.h_pileup_seedingLayerSet[count]->Fill(seedingLayerSetBin);
2205  if (pvPosition) {
2206  histograms.h_pileupdxypv[count]->Fill(dxypv);
2207  histograms.h_pileupdzpv[count]->Fill(dzpv);
2208  histograms.h_pileupdxypvzoomed[count]->Fill(dxypv);
2209  histograms.h_pileupdzpvzoomed[count]->Fill(dzpv);
2210 
2211  histograms.h_pileup_dzpvcut[count]->Fill(std::abs(dzpv));
2212  histograms.h_pileup_dzpvsigcut[count]->Fill(std::abs(dzpvsig));
2213  histograms.h_pileup_dzpvcut_pt[count]->Fill(std::abs(dzpv), pt);
2214  histograms.h_pileup_dzpvsigcut_pt[count]->Fill(std::abs(dzpvsig), pt);
2215  }
2216  if (simPVPosition) {
2217  histograms.h_pileup_simpvz[count]->Fill(simpvz);
2218  }
2219  }
2220  histograms.h_pileuphit[count]->Fill(nhits);
2221  histograms.h_pileuplayer[count]->Fill(nlayers);
2222  histograms.h_pileuppixellayer[count]->Fill(nPixelLayers);
2223  histograms.h_pileup3Dlayer[count]->Fill(n3DLayers);
2224  histograms.h_pileuppu[count]->Fill(numVertices);
2225  }
2226  } else { // !isMatched
2227  fillMVAHistos(
2228  pt, histograms.h_fake_mva_vs_pt[count], histograms.h_fake_mva_vs_pt_hp[count], mvas, selectsLoose, selectsHP);
2229  fillMVAHistos(
2230  eta, histograms.h_fake_mva_vs_eta[count], histograms.h_fake_mva_vs_eta_hp[count], mvas, selectsLoose, selectsHP);
2231  }
2232 }

References funct::abs(), hltPixelTracks_cff::chi2, KineDebug3::count(), doSeedPlots_, HGC3DClusterGenMatchSelector_cfi::dR, PVValHelper::dxy, PVValHelper::dz, PVValHelper::eta, getEta(), getPt(), getSeedingLayerSetBin(), createfilelist::int, trackerHitRTTI::isMatched(), nhits, nlayers, phi, DiDispStaMuonMonitor_cfi::pt, seedingLayerSetNames, muonCosmicCompatibility_cfi::sharedHits, mathSSE::sqrt(), HLT_2018_cff::track, trackFromSeedFitFailed(), trackSelectorVsEta, trackSelectorVsPhi, and trackSelectorVsPt.

◆ fill_generic_simTrack_histos()

void MTVHistoProducerAlgoForTracker::fill_generic_simTrack_histos ( const Histograms histograms,
const TrackingParticle::Vector momentumTP,
const TrackingParticle::Point vertex,
int  bx 
) const

Definition at line 1771 of file MTVHistoProducerAlgoForTracker.cc.

1774  {
1775  if (bx == 0) {
1776  histograms.h_ptSIM->Fill(sqrt(momentumTP.perp2()));
1777  histograms.h_etaSIM->Fill(momentumTP.eta());
1778  histograms.h_phiSIM->Fill(momentumTP.phi());
1779  histograms.h_vertposSIM->Fill(sqrt(vertexTP.perp2()));
1780  }
1781  histograms.h_bunchxSIM->Fill(bx);
1782 }

References l1GtPatternGenerator_cfi::bx, and mathSSE::sqrt().

◆ fill_recoAssociated_simTrack_histos() [1/2]

void MTVHistoProducerAlgoForTracker::fill_recoAssociated_simTrack_histos ( const Histograms histograms,
int  count,
const reco::GenParticle tp,
const TrackingParticle::Vector momentumTP,
const TrackingParticle::Point vertexTP,
double  dxy,
double  dz,
int  nSimHits,
const reco::Track track,
int  numVertices 
) const

Definition at line 2596 of file MTVHistoProducerAlgoForTracker.cc.

2605  {
2606  bool isMatched = track;
2607 
2608  if ((*GpSelectorForEfficiencyVsEta)(tp)) {
2609  //effic vs eta
2610  histograms.h_simuleta[count]->Fill(getEta(momentumTP.eta()));
2611  if (isMatched)
2612  histograms.h_assoceta[count]->Fill(getEta(momentumTP.eta()));
2613  }
2614 
2615  if ((*GpSelectorForEfficiencyVsPhi)(tp)) {
2616  histograms.h_simulphi[count]->Fill(momentumTP.phi());
2617  if (isMatched)
2618  histograms.h_assocphi[count]->Fill(momentumTP.phi());
2619  //effic vs hits
2620  histograms.h_simulhit[count]->Fill((int)nSimHits);
2621  if (isMatched) {
2622  histograms.h_assochit[count]->Fill((int)nSimHits);
2623  if (histograms.nrecHit_vs_nsimHit_sim2rec[count])
2624  histograms.nrecHit_vs_nsimHit_sim2rec[count]->Fill(track->numberOfValidHits(), nSimHits);
2625  }
2626  //effic vs pu
2627  histograms.h_simulpu[count]->Fill(numVertices);
2628  if (isMatched)
2629  histograms.h_assocpu[count]->Fill(numVertices);
2630  //efficiency vs dR
2631  //not implemented for now
2632  }
2633 
2634  if ((*GpSelectorForEfficiencyVsPt)(tp)) {
2635  histograms.h_simulpT[count]->Fill(getPt(sqrt(momentumTP.perp2())));
2636  histograms.h_simulpTvseta[count]->Fill(getEta(momentumTP.eta()), getPt(sqrt(momentumTP.perp2())));
2637  if (isMatched) {
2638  histograms.h_assocpT[count]->Fill(getPt(sqrt(momentumTP.perp2())));
2639  histograms.h_assocpTvseta[count]->Fill(getEta(momentumTP.eta()), getPt(sqrt(momentumTP.perp2())));
2640  }
2641  }
2642 
2644  histograms.h_simuldxy[count]->Fill(dxySim);
2645  if (isMatched)
2646  histograms.h_assocdxy[count]->Fill(dxySim);
2647 
2648  histograms.h_simulvertpos[count]->Fill(sqrt(vertexTP.perp2()));
2649  if (isMatched)
2650  histograms.h_assocvertpos[count]->Fill(sqrt(vertexTP.perp2()));
2651  }
2652 
2654  histograms.h_simuldz[count]->Fill(dzSim);
2655  if (isMatched)
2656  histograms.h_assocdz[count]->Fill(dzSim);
2657 
2658  histograms.h_simulzpos[count]->Fill(vertexTP.z());
2659  if (isMatched)
2660  histograms.h_assoczpos[count]->Fill(vertexTP.z());
2661  }
2662 }

References KineDebug3::count(), getEta(), getPt(), GpSelectorForEfficiencyVsEta, GpSelectorForEfficiencyVsPhi, GpSelectorForEfficiencyVsPt, GpSelectorForEfficiencyVsVTXR, GpSelectorForEfficiencyVsVTXZ, trackerHitRTTI::isMatched(), mathSSE::sqrt(), cmsswSequenceInfo::tp, and HLT_2018_cff::track.

◆ fill_recoAssociated_simTrack_histos() [2/2]

void MTVHistoProducerAlgoForTracker::fill_recoAssociated_simTrack_histos ( const Histograms histograms,
int  count,
const TrackingParticle tp,
const TrackingParticle::Vector momentumTP,
const TrackingParticle::Point vertexTP,
double  dxy,
double  dz,
double  dxyPV,
double  dzPV,
int  nSimHits,
int  nSimLayers,
int  nSimPixelLayers,
int  nSimStripMonoAndStereoLayers,
const reco::Track track,
int  numVertices,
double  dR,
double  dR_jet,
const math::XYZPoint pvPosition,
const TrackingVertex::LorentzVector simPVPosition,
const math::XYZPoint bsPosition,
const std::vector< float > &  mvas,
unsigned int  selectsLoose,
unsigned int  selectsHP 
) const

Definition at line 1784 of file MTVHistoProducerAlgoForTracker.cc.

1807  {
1808  bool isMatched = track;
1809  const auto eta = getEta(momentumTP.eta());
1810  const auto phi = momentumTP.phi();
1811  const auto pt = getPt(sqrt(momentumTP.perp2()));
1812  const auto nSim3DLayers = nSimPixelLayers + nSimStripMonoAndStereoLayers;
1813 
1814  const auto vertexTPwrtBS = vertexTP - bsPosition;
1815  const auto vertxy = std::sqrt(vertexTPwrtBS.perp2());
1816  const auto vertz = vertexTPwrtBS.z();
1817 
1818  //efficiency vs. cut on MVA
1819  //
1820  // Note that this includes also pileup TPs, as "signalOnly"
1821  // selection is applied only in the TpSelector*. Have to think if
1822  // this is really what we want.
1823  if (isMatched) {
1824  for (size_t i = 0; i < mvas.size(); ++i) {
1825  if (i <= selectsLoose) {
1826  histograms.h_simul2_mvacut[count][i]->Fill(maxMVA);
1827  histograms.h_assoc_mvacut[count][i]->Fill(mvas[i]);
1828  }
1829  if (i >= 1 && i <= selectsHP) {
1830  histograms.h_simul2_mvacut_hp[count][i]->Fill(maxMVA);
1831  histograms.h_assoc_mvacut_hp[count][i]->Fill(mvas[i]);
1832  }
1833  }
1834  }
1835 
1836  if ((*TpSelectorForEfficiencyVsEta)(tp)) {
1837  //effic vs eta
1838  histograms.h_simuleta[count]->Fill(eta);
1839  if (isMatched)
1840  histograms.h_assoceta[count]->Fill(eta);
1841  }
1842 
1843  if ((*TpSelectorForEfficiencyVsPhi)(tp)) {
1844  histograms.h_simulphi[count]->Fill(phi);
1845  if (isMatched)
1846  histograms.h_assocphi[count]->Fill(phi);
1847  //effic vs hits
1848  histograms.h_simulhit[count]->Fill(nSimHits);
1849  histograms.h_simullayer[count]->Fill(nSimLayers);
1850  histograms.h_simulpixellayer[count]->Fill(nSimPixelLayers);
1851  histograms.h_simul3Dlayer[count]->Fill(nSim3DLayers);
1852  if (isMatched) {
1853  histograms.h_assochit[count]->Fill(nSimHits);
1854  histograms.h_assoclayer[count]->Fill(nSimLayers);
1855  histograms.h_assocpixellayer[count]->Fill(nSimPixelLayers);
1856  histograms.h_assoc3Dlayer[count]->Fill(nSim3DLayers);
1857  if (histograms.nrecHit_vs_nsimHit_sim2rec[count])
1858  histograms.nrecHit_vs_nsimHit_sim2rec[count]->Fill(track->numberOfValidHits(), nSimHits);
1859  }
1860  //effic vs pu
1861  histograms.h_simulpu[count]->Fill(numVertices);
1862  if (isMatched)
1863  histograms.h_assocpu[count]->Fill(numVertices);
1864  //efficiency vs dR
1865  histograms.h_simuldr[count]->Fill(dR);
1866  if (isMatched)
1867  histograms.h_assocdr[count]->Fill(dR);
1868  //efficiency vs dR jet
1869  histograms.h_simuldrj[count]->Fill(dRJet);
1870  if (isMatched)
1871  histograms.h_assocdrj[count]->Fill(dRJet);
1872  }
1873 
1874  if ((*TpSelectorForEfficiencyVsPt)(tp)) {
1875  histograms.h_simulpT[count]->Fill(pt);
1876  if (isMatched)
1877  histograms.h_assocpT[count]->Fill(pt);
1878  }
1879 
1881  histograms.h_simuldxy[count]->Fill(dxySim);
1882  if (isMatched)
1883  histograms.h_assocdxy[count]->Fill(dxySim);
1884  if (pvPosition) {
1885  histograms.h_simuldxypv[count]->Fill(dxyPVSim);
1886  histograms.h_simuldxypvzoomed[count]->Fill(dxyPVSim);
1887  if (isMatched) {
1888  histograms.h_assocdxypv[count]->Fill(dxyPVSim);
1889  histograms.h_assocdxypvzoomed[count]->Fill(dxyPVSim);
1890  }
1891  }
1892 
1893  histograms.h_simulvertpos[count]->Fill(vertxy);
1894  if (isMatched)
1895  histograms.h_assocvertpos[count]->Fill(vertxy);
1896  }
1897 
1899  histograms.h_simuldz[count]->Fill(dzSim);
1900  if (isMatched)
1901  histograms.h_assocdz[count]->Fill(dzSim);
1902 
1903  histograms.h_simulzpos[count]->Fill(vertz);
1904  if (isMatched)
1905  histograms.h_assoczpos[count]->Fill(vertz);
1906 
1907  if (pvPosition) {
1908  histograms.h_simuldzpv[count]->Fill(dzPVSim);
1909  histograms.h_simuldzpvzoomed[count]->Fill(dzPVSim);
1910 
1911  histograms.h_simul_dzpvcut[count]->Fill(0);
1912  histograms.h_simul_dzpvsigcut[count]->Fill(0);
1913  histograms.h_simul_dzpvcut_pt[count]->Fill(0, pt);
1914  histograms.h_simul_dzpvsigcut_pt[count]->Fill(0, pt);
1915 
1916  if (isMatched) {
1917  histograms.h_assocdzpv[count]->Fill(dzPVSim);
1918  histograms.h_assocdzpvzoomed[count]->Fill(dzPVSim);
1919 
1920  histograms.h_simul2_dzpvcut[count]->Fill(0);
1921  histograms.h_simul2_dzpvsigcut[count]->Fill(0);
1922  histograms.h_simul2_dzpvcut_pt[count]->Fill(0, pt);
1923  histograms.h_simul2_dzpvsigcut_pt[count]->Fill(0, pt);
1924  const double dzpvcut = std::abs(track->dz(*pvPosition));
1925  const double dzpvsigcut = dzpvcut / track->dzError();
1926  histograms.h_assoc_dzpvcut[count]->Fill(dzpvcut);
1927  histograms.h_assoc_dzpvsigcut[count]->Fill(dzpvsigcut);
1928  histograms.h_assoc_dzpvcut_pt[count]->Fill(dzpvcut, pt);
1929  histograms.h_assoc_dzpvsigcut_pt[count]->Fill(dzpvsigcut, pt);
1930  }
1931  }
1932  if (simPVPosition) {
1933  const auto simpvz = simPVPosition->z();
1934  histograms.h_simul_simpvz[count]->Fill(simpvz);
1935  if (isMatched) {
1936  histograms.h_assoc_simpvz[count]->Fill(simpvz);
1937  }
1938  }
1939  }
1940 }

References funct::abs(), KineDebug3::count(), HGC3DClusterGenMatchSelector_cfi::dR, PVValHelper::eta, getEta(), getPt(), mps_fire::i, trackerHitRTTI::isMatched(), maxMVA, phi, DiDispStaMuonMonitor_cfi::pt, mathSSE::sqrt(), cmsswSequenceInfo::tp, TpSelectorForEfficiencyVsEta, TpSelectorForEfficiencyVsPhi, TpSelectorForEfficiencyVsPt, TpSelectorForEfficiencyVsVTXR, TpSelectorForEfficiencyVsVTXZ, and HLT_2018_cff::track.

◆ fill_ResoAndPull_recoTrack_histos()

void MTVHistoProducerAlgoForTracker::fill_ResoAndPull_recoTrack_histos ( const Histograms histograms,
int  count,
const TrackingParticle::Vector momentumTP,
const TrackingParticle::Point vertexTP,
int  chargeTP,
const reco::Track track,
const math::XYZPoint bsPosition 
) const

Definition at line 2304 of file MTVHistoProducerAlgoForTracker.cc.

2310  {
2312  return;
2313 
2314  // evaluation of TP parameters
2315  double qoverpSim = chargeTP / sqrt(momentumTP.x() * momentumTP.x() + momentumTP.y() * momentumTP.y() +
2316  momentumTP.z() * momentumTP.z());
2317  double lambdaSim = M_PI / 2 - momentumTP.theta();
2318  double phiSim = momentumTP.phi();
2319  double dxySim = TrackingParticleIP::dxy(vertexTP, momentumTP, bsPosition);
2320  double dzSim = TrackingParticleIP::dz(vertexTP, momentumTP, bsPosition);
2321 
2322  // reco::Track::ParameterVector rParameters = track.parameters(); // UNUSED
2323 
2324  double qoverpRec(0);
2325  double qoverpErrorRec(0);
2326  double ptRec(0);
2327  double ptErrorRec(0);
2328  double lambdaRec(0);
2329  double lambdaErrorRec(0);
2330  double phiRec(0);
2331  double phiErrorRec(0);
2332 
2333  /* TO BE FIXED LATER -----------
2334  //loop to decide whether to take gsfTrack (utilisation of mode-function) or common track
2335  const GsfTrack* gsfTrack(0);
2336  if(useGsf){
2337  gsfTrack = dynamic_cast<const GsfTrack*>(&(*track));
2338  if (gsfTrack==0) edm::LogInfo("TrackValidator") << "Trying to access mode for a non-GsfTrack";
2339  }
2340 
2341  if (gsfTrack) {
2342  // get values from mode
2343  getRecoMomentum(*gsfTrack, ptRec, ptErrorRec, qoverpRec, qoverpErrorRec,
2344  lambdaRec,lambdaErrorRec, phiRec, phiErrorRec);
2345  }
2346 
2347  else {
2348  // get values from track (without mode)
2349  getRecoMomentum(*track, ptRec, ptErrorRec, qoverpRec, qoverpErrorRec,
2350  lambdaRec,lambdaErrorRec, phiRec, phiErrorRec);
2351  }
2352  */
2353  getRecoMomentum(track, ptRec, ptErrorRec, qoverpRec, qoverpErrorRec, lambdaRec, lambdaErrorRec, phiRec, phiErrorRec);
2354  // -------------
2355 
2356  double ptError = ptErrorRec;
2357  double ptres = ptRec - sqrt(momentumTP.perp2());
2358  double etares = track.eta() - momentumTP.Eta();
2359 
2360  double dxyRec = track.dxy(bsPosition);
2361  double dzRec = track.dz(bsPosition);
2362 
2363  const auto phiRes = phiRec - phiSim;
2364  const auto dxyRes = dxyRec - dxySim;
2365  const auto dzRes = dzRec - dzSim;
2366  const auto cotThetaRes = 1 / tan(M_PI * 0.5 - lambdaRec) - 1 / tan(M_PI * 0.5 - lambdaSim);
2367 
2368  // eta residue; pt, k, theta, phi, dxy, dz pulls
2369  double qoverpPull = (qoverpRec - qoverpSim) / qoverpErrorRec;
2370  double thetaPull = (lambdaRec - lambdaSim) / lambdaErrorRec;
2371  double phiPull = phiRes / phiErrorRec;
2372  double dxyPull = dxyRes / track.dxyError();
2373  double dzPull = dzRes / track.dzError();
2374 
2375 #ifdef EDM_ML_DEBUG
2376  double contrib_Qoverp = ((qoverpRec - qoverpSim) / qoverpErrorRec) * ((qoverpRec - qoverpSim) / qoverpErrorRec) / 5;
2377  double contrib_dxy = ((dxyRec - dxySim) / track.dxyError()) * ((dxyRec - dxySim) / track.dxyError()) / 5;
2378  double contrib_dz = ((dzRec - dzSim) / track.dzError()) * ((dzRec - dzSim) / track.dzError()) / 5;
2379  double contrib_theta = ((lambdaRec - lambdaSim) / lambdaErrorRec) * ((lambdaRec - lambdaSim) / lambdaErrorRec) / 5;
2380  double contrib_phi = ((phiRec - phiSim) / phiErrorRec) * ((phiRec - phiSim) / phiErrorRec) / 5;
2381 
2382  LogTrace("TrackValidatorTEST")
2383  //<< "assocChi2=" << tp.begin()->second << "\n"
2384  << ""
2385  << "\n"
2386  << "ptREC=" << ptRec << "\n"
2387  << "etaREC=" << track.eta() << "\n"
2388  << "qoverpREC=" << qoverpRec << "\n"
2389  << "dxyREC=" << dxyRec << "\n"
2390  << "dzREC=" << dzRec << "\n"
2391  << "thetaREC=" << track.theta() << "\n"
2392  << "phiREC=" << phiRec << "\n"
2393  << ""
2394  << "\n"
2395  << "qoverpError()=" << qoverpErrorRec << "\n"
2396  << "dxyError()=" << track.dxyError() << "\n"
2397  << "dzError()=" << track.dzError() << "\n"
2398  << "thetaError()=" << lambdaErrorRec << "\n"
2399  << "phiError()=" << phiErrorRec << "\n"
2400  << ""
2401  << "\n"
2402  << "ptSIM=" << sqrt(momentumTP.perp2()) << "\n"
2403  << "etaSIM=" << momentumTP.Eta() << "\n"
2404  << "qoverpSIM=" << qoverpSim << "\n"
2405  << "dxySIM=" << dxySim << "\n"
2406  << "dzSIM=" << dzSim << "\n"
2407  << "thetaSIM=" << M_PI / 2 - lambdaSim << "\n"
2408  << "phiSIM=" << phiSim << "\n"
2409  << ""
2410  << "\n"
2411  << "contrib_Qoverp=" << contrib_Qoverp << "\n"
2412  << "contrib_dxy=" << contrib_dxy << "\n"
2413  << "contrib_dz=" << contrib_dz << "\n"
2414  << "contrib_theta=" << contrib_theta << "\n"
2415  << "contrib_phi=" << contrib_phi << "\n"
2416  << ""
2417  << "\n"
2418  << "chi2PULL=" << contrib_Qoverp + contrib_dxy + contrib_dz + contrib_theta + contrib_phi << "\n";
2419 #endif
2420 
2421  histograms.h_pullQoverp[count]->Fill(qoverpPull);
2422  histograms.h_pullTheta[count]->Fill(thetaPull);
2423  histograms.h_pullPhi[count]->Fill(phiPull);
2424  histograms.h_pullDxy[count]->Fill(dxyPull);
2425  histograms.h_pullDz[count]->Fill(dzPull);
2426 
2427  const auto etaSim = getEta(momentumTP.eta());
2428  const auto ptSim = getPt(sqrt(momentumTP.perp2()));
2429 
2430  histograms.h_pt[count]->Fill(ptres / ptError);
2431  histograms.h_eta[count]->Fill(etares);
2432  //histograms.etares_vs_eta[count]->Fill(getEta(track.eta()),etares);
2433  histograms.etares_vs_eta[count]->Fill(etaSim, etares);
2434 
2435  //resolution of track params: fill 2D histos
2436  histograms.dxyres_vs_eta[count]->Fill(etaSim, dxyRes);
2437  histograms.ptres_vs_eta[count]->Fill(etaSim, ptres / ptRec);
2438  histograms.dzres_vs_eta[count]->Fill(etaSim, dzRes);
2439  histograms.phires_vs_eta[count]->Fill(etaSim, phiRes);
2440  histograms.cotThetares_vs_eta[count]->Fill(etaSim, cotThetaRes);
2441 
2442  //same as before but vs pT
2443  histograms.dxyres_vs_pt[count]->Fill(ptSim, dxyRes);
2444  histograms.ptres_vs_pt[count]->Fill(ptSim, ptres / ptRec);
2445  histograms.dzres_vs_pt[count]->Fill(ptSim, dzRes);
2446  histograms.phires_vs_pt[count]->Fill(ptSim, phiRes);
2447  histograms.cotThetares_vs_pt[count]->Fill(ptSim, cotThetaRes);
2448 
2449  //pulls of track params vs eta: fill 2D histos
2450  histograms.dxypull_vs_eta[count]->Fill(etaSim, dxyPull);
2451  histograms.ptpull_vs_eta[count]->Fill(etaSim, ptres / ptError);
2452  histograms.dzpull_vs_eta[count]->Fill(etaSim, dzPull);
2453  histograms.phipull_vs_eta[count]->Fill(etaSim, phiPull);
2454  histograms.thetapull_vs_eta[count]->Fill(etaSim, thetaPull);
2455 
2456  //plots vs phi
2457  histograms.nhits_vs_phi[count]->Fill(phiRec, track.numberOfValidHits());
2458  histograms.chi2_vs_phi[count]->Fill(phiRec, track.normalizedChi2());
2459  histograms.ptmean_vs_eta_phi[count]->Fill(phiRec, getEta(track.eta()), ptRec);
2460  histograms.phimean_vs_eta_phi[count]->Fill(phiRec, getEta(track.eta()), phiRec);
2461 
2462  histograms.dxyres_vs_phi[count]->Fill(phiSim, dxyRes);
2463  histograms.ptres_vs_phi[count]->Fill(phiSim, ptres / ptRec);
2464  histograms.dzres_vs_phi[count]->Fill(phiSim, dzRes);
2465  histograms.phires_vs_phi[count]->Fill(phiSim, phiRes);
2466 
2467  histograms.ptpull_vs_phi[count]->Fill(phiSim, ptres / ptError);
2468  histograms.phipull_vs_phi[count]->Fill(phiSim, phiPull);
2469  histograms.thetapull_vs_phi[count]->Fill(phiSim, thetaPull);
2470 }

References KineDebug3::count(), TrackingParticleIP::dxy(), TrackingParticleIP::dz(), getEta(), getPt(), getRecoMomentum(), LogTrace, M_PI, mathSSE::sqrt(), funct::tan(), HLT_2018_cff::track, and trackFromSeedFitFailed().

◆ fill_seed_histos()

void MTVHistoProducerAlgoForTracker::fill_seed_histos ( const Histograms histograms,
int  count,
int  seedsFitFailed,
int  seedsTotal 
) const

Definition at line 2664 of file MTVHistoProducerAlgoForTracker.cc.

2667  {
2668  histograms.h_seedsFitFailed[count]->Fill(seedsFitFailed);
2669  histograms.h_seedsFitFailedFraction[count]->Fill(static_cast<double>(seedsFitFailed) / seedsTotal);
2670 }

References KineDebug3::count().

◆ fill_simAssociated_recoTrack_histos()

void MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos ( const Histograms histograms,
int  count,
const reco::Track track 
) const

Definition at line 2234 of file MTVHistoProducerAlgoForTracker.cc.

2236  {
2237  //nchi2 and hits global distributions
2238  histograms.h_hits[count]->Fill(track.numberOfValidHits());
2239  histograms.h_losthits[count]->Fill(track.numberOfLostHits());
2240  histograms.h_nmisslayers_inner[count]->Fill(
2241  track.hitPattern().numberOfLostHits(reco::HitPattern::MISSING_INNER_HITS));
2242  histograms.h_nmisslayers_outer[count]->Fill(
2243  track.hitPattern().numberOfLostHits(reco::HitPattern::MISSING_OUTER_HITS));
2245  return;
2246 
2247  histograms.h_nchi2[count]->Fill(track.normalizedChi2());
2248  histograms.h_nchi2_prob[count]->Fill(TMath::Prob(track.chi2(), (int)track.ndof()));
2249  histograms.chi2_vs_nhits[count]->Fill(track.numberOfValidHits(), track.normalizedChi2());
2250  histograms.h_charge[count]->Fill(track.charge());
2251 
2252  //chi2 and #hit vs eta: fill 2D histos
2253  const auto eta = getEta(track.eta());
2254  histograms.chi2_vs_eta[count]->Fill(eta, track.normalizedChi2());
2255  histograms.nhits_vs_eta[count]->Fill(eta, track.numberOfValidHits());
2256  const auto pt = getPt(sqrt(track.momentum().perp2()));
2257  histograms.chi2_vs_pt[count]->Fill(pt, track.normalizedChi2());
2258  const auto pxbHits = track.hitPattern().numberOfValidPixelBarrelHits();
2259  const auto pxfHits = track.hitPattern().numberOfValidPixelEndcapHits();
2260  const auto tibHits = track.hitPattern().numberOfValidStripTIBHits();
2261  const auto tidHits = track.hitPattern().numberOfValidStripTIDHits();
2262  const auto tobHits = track.hitPattern().numberOfValidStripTOBHits();
2263  const auto tecHits = track.hitPattern().numberOfValidStripTECHits();
2264  histograms.nPXBhits_vs_eta[count]->Fill(eta, pxbHits);
2265  histograms.nPXFhits_vs_eta[count]->Fill(eta, pxfHits);
2266  histograms.nPXLhits_vs_eta[count]->Fill(eta, pxbHits + pxfHits);
2267  histograms.nTIBhits_vs_eta[count]->Fill(eta, tibHits);
2268  histograms.nTIDhits_vs_eta[count]->Fill(eta, tidHits);
2269  histograms.nTOBhits_vs_eta[count]->Fill(eta, tobHits);
2270  histograms.nTEChits_vs_eta[count]->Fill(eta, tecHits);
2271  histograms.nSTRIPhits_vs_eta[count]->Fill(eta, tibHits + tidHits + tobHits + tecHits);
2272  histograms.nLayersWithMeas_vs_eta[count]->Fill(eta, track.hitPattern().trackerLayersWithMeasurement());
2273  histograms.nPXLlayersWithMeas_vs_eta[count]->Fill(eta, track.hitPattern().pixelLayersWithMeasurement());
2274  if (doMTDPlots_) {
2275  // const auto mtdHits = track.hitPattern().numberOfValidTimingHits();
2276  const auto btlHits = track.hitPattern().numberOfValidTimingBTLHits();
2277  const auto etlHits = track.hitPattern().numberOfValidTimingETLHits();
2278  histograms.nMTDhits_vs_eta[count]->Fill(eta, btlHits + etlHits);
2279  histograms.nBTLhits_vs_eta[count]->Fill(eta, btlHits);
2280  histograms.nETLhits_vs_eta[count]->Fill(eta, etlHits);
2281  }
2282  int LayersAll = track.hitPattern().stripLayersWithMeasurement();
2283  int Layers2D = track.hitPattern().numberOfValidStripLayersWithMonoAndStereo();
2284  int Layers1D = LayersAll - Layers2D;
2285  histograms.nSTRIPlayersWithMeas_vs_eta[count]->Fill(eta, LayersAll);
2286  histograms.nSTRIPlayersWith1dMeas_vs_eta[count]->Fill(eta, Layers1D);
2287  histograms.nSTRIPlayersWith2dMeas_vs_eta[count]->Fill(eta, Layers2D);
2288 
2289  histograms.nlosthits_vs_eta[count]->Fill(eta, track.numberOfLostHits());
2290 }

References KineDebug3::count(), doMTDPlots_, PVValHelper::eta, getEta(), getPt(), createfilelist::int, reco::HitPattern::MISSING_INNER_HITS, reco::HitPattern::MISSING_OUTER_HITS, DiDispStaMuonMonitor_cfi::pt, mathSSE::sqrt(), HLT_2018_cff::track, and trackFromSeedFitFailed().

◆ fill_simTrackBased_histos()

void MTVHistoProducerAlgoForTracker::fill_simTrackBased_histos ( const Histograms histograms,
int  numSimTracks 
) const

Definition at line 1949 of file MTVHistoProducerAlgoForTracker.cc.

1949  {
1950  histograms.h_tracksSIM->Fill(numSimTracks);
1951 }

◆ fill_trackBased_histos()

void MTVHistoProducerAlgoForTracker::fill_trackBased_histos ( const Histograms histograms,
int  count,
int  assTracks,
int  numRecoTracks,
int  numRecoTracksSelected,
int  numSimTracksSelected 
) const

Definition at line 2292 of file MTVHistoProducerAlgoForTracker.cc.

2297  {
2298  histograms.h_tracks[count]->Fill(assTracks);
2299  histograms.h_fakes[count]->Fill(numRecoTracks - assTracks);
2300  if (histograms.nrec_vs_nsim[count])
2301  histograms.nrec_vs_nsim[count]->Fill(numSimTracksSelected, numRecoTracksSelected);
2302 }

References KineDebug3::count().

◆ getEta()

double MTVHistoProducerAlgoForTracker::getEta ( double  eta) const
private

Definition at line 2512 of file MTVHistoProducerAlgoForTracker.cc.

2512  {
2513  if (useFabsEta)
2514  return fabs(eta);
2515  else
2516  return eta;
2517 }

References PVValHelper::eta, and useFabsEta.

Referenced by fill_generic_recoTrack_histos(), fill_recoAssociated_simTrack_histos(), fill_ResoAndPull_recoTrack_histos(), and fill_simAssociated_recoTrack_histos().

◆ getPt()

double MTVHistoProducerAlgoForTracker::getPt ( double  pt) const
private

Definition at line 2519 of file MTVHistoProducerAlgoForTracker.cc.

2519  {
2520  if (useInvPt && pt != 0)
2521  return 1 / pt;
2522  else
2523  return pt;
2524 }

References DiDispStaMuonMonitor_cfi::pt, and useInvPt.

Referenced by fill_generic_recoTrack_histos(), fill_recoAssociated_simTrack_histos(), fill_ResoAndPull_recoTrack_histos(), and fill_simAssociated_recoTrack_histos().

◆ getRecoMomentum() [1/2]

void MTVHistoProducerAlgoForTracker::getRecoMomentum ( const reco::GsfTrack gsfTrack,
double &  pt,
double &  ptError,
double &  qoverp,
double &  qoverpError,
double &  lambda,
double &  lambdaError,
double &  phi,
double &  phiError 
) const
private

retrieval of reconstructed momentum components based on the mode of a reco::GsfTrack

Definition at line 2492 of file MTVHistoProducerAlgoForTracker.cc.

2500  {
2501  pt = gsfTrack.ptMode();
2502  ptError = gsfTrack.ptModeError();
2503  qoverp = gsfTrack.qoverpMode();
2504  qoverpError = gsfTrack.qoverpModeError();
2505  lambda = gsfTrack.lambdaMode();
2506  lambdaError = gsfTrack.lambdaModeError();
2507  phi = gsfTrack.phiMode();
2508  phiError = gsfTrack.phiModeError();
2509  // cout <<"test2" << endl;
2510 }

References reco::GsfTrack::lambdaMode(), reco::GsfTrack::lambdaModeError(), phi, muonME0PseudoDigis_cfi::phiError, reco::GsfTrack::phiMode(), reco::GsfTrack::phiModeError(), DiDispStaMuonMonitor_cfi::pt, reco::GsfTrack::ptMode(), reco::GsfTrack::ptModeError(), reco::GsfTrack::qoverpMode(), and reco::GsfTrack::qoverpModeError().

◆ getRecoMomentum() [2/2]

void MTVHistoProducerAlgoForTracker::getRecoMomentum ( const reco::Track track,
double &  pt,
double &  ptError,
double &  qoverp,
double &  qoverpError,
double &  lambda,
double &  lambdaError,
double &  phi,
double &  phiError 
) const
private

retrieval of reconstructed momentum components from reco::Track (== mean values for GSF)

Definition at line 2472 of file MTVHistoProducerAlgoForTracker.cc.

2480  {
2481  pt = track.pt();
2482  ptError = track.ptError();
2483  qoverp = track.qoverp();
2484  qoverpError = track.qoverpError();
2485  lambda = track.lambda();
2486  lambdaError = track.lambdaError();
2487  phi = track.phi();
2488  phiError = track.phiError();
2489  // cout <<"test1" << endl;
2490 }

References phi, muonME0PseudoDigis_cfi::phiError, DiDispStaMuonMonitor_cfi::pt, and HLT_2018_cff::track.

Referenced by fill_ResoAndPull_recoTrack_histos().

◆ getSeedingLayerSetBin()

unsigned int MTVHistoProducerAlgoForTracker::getSeedingLayerSetBin ( const reco::Track track,
const TrackerTopology ttopo 
) const
private

Definition at line 2526 of file MTVHistoProducerAlgoForTracker.cc.

2527  {
2528  if (track.seedRef().isNull() || !track.seedRef().isAvailable())
2529  return seedingLayerSetNames.size() - 1;
2530 
2531  const TrajectorySeed& seed = *(track.seedRef());
2532  const auto hitRange = seed.recHits();
2533  SeedingLayerSetId searchId;
2534  const int nhits = std::distance(hitRange.first, hitRange.second);
2535  if (nhits > static_cast<int>(std::tuple_size<SeedingLayerSetId>::value)) {
2536  LogDebug("TrackValidator") << "Got seed with " << nhits << " hits, but I have a hard-coded maximum of "
2538  << ", classifying the seed as 'unknown'. Please increase the maximum in "
2539  "MTVHistoProducerAlgoForTracker.h if needed.";
2540  return seedingLayerSetNames.size() - 1;
2541  }
2542  int i = 0;
2543  for (auto iHit = hitRange.first; iHit != hitRange.second; ++iHit, ++i) {
2544  DetId detId = iHit->geographicalId();
2545 
2546  if (detId.det() != DetId::Tracker) {
2547  throw cms::Exception("LogicError") << "Encountered seed hit detId " << detId.rawId() << " not from Tracker, but "
2548  << detId.det();
2549  }
2550 
2552  bool subdetStrip = false;
2553  switch (detId.subdetId()) {
2556  break;
2559  break;
2560  case StripSubdetector::TIB:
2561  subdet = GeomDetEnumerators::TIB;
2562  subdetStrip = true;
2563  break;
2564  case StripSubdetector::TID:
2565  subdet = GeomDetEnumerators::TID;
2566  subdetStrip = true;
2567  break;
2568  case StripSubdetector::TOB:
2569  subdet = GeomDetEnumerators::TOB;
2570  subdetStrip = true;
2571  break;
2572  case StripSubdetector::TEC:
2573  subdet = GeomDetEnumerators::TEC;
2574  subdetStrip = true;
2575  break;
2576  default:
2577  throw cms::Exception("LogicError") << "Unknown subdetId " << detId.subdetId();
2578  };
2579 
2580  TrackerDetSide side = static_cast<TrackerDetSide>(ttopo.side(detId));
2581 
2582  // Even with the recent addition of
2583  // SeedingLayerSetsBuilder::fillDescription() this assumption is a
2584  // bit ugly.
2585  const bool isStripMono = subdetStrip && trackerHitRTTI::isSingle(*iHit);
2586  searchId[i] =
2587  SeedingLayerId(SeedingLayerSetsBuilder::SeedingLayerId(subdet, side, ttopo.layer(detId)), isStripMono);
2588  }
2589  auto found = seedingLayerSetToBin.find(searchId);
2590  if (found == seedingLayerSetToBin.end()) {
2591  return seedingLayerSetNames.size() - 1;
2592  }
2593  return found->second;
2594 }

References DetId::det(), HLT_2018_cff::distance, Exception, newFWLiteAna::found, mps_fire::i, trackerHitRTTI::isSingle(), TrackerTopology::layer(), LogDebug, nhits, PixelSubdetector::PixelBarrel, GeomDetEnumerators::PixelBarrel, PixelSubdetector::PixelEndcap, GeomDetEnumerators::PixelEndcap, DetId::rawId(), SurveyInfoScenario_cff::seed, seedingLayerSetNames, seedingLayerSetToBin, TrackerTopology::side(), DetId::subdetId(), GeomDetEnumerators::TEC, StripSubdetector::TEC, GeomDetEnumerators::TIB, StripSubdetector::TIB, GeomDetEnumerators::TID, StripSubdetector::TID, GeomDetEnumerators::TOB, StripSubdetector::TOB, HLT_2018_cff::track, DetId::Tracker, and relativeConstraints::value.

Referenced by fill_generic_recoTrack_histos().

◆ makeRecoTrackSelectorFromTPSelectorParameters()

std::unique_ptr< RecoTrackSelectorBase > MTVHistoProducerAlgoForTracker::makeRecoTrackSelectorFromTPSelectorParameters ( const edm::ParameterSet pset)
static

Definition at line 370 of file MTVHistoProducerAlgoForTracker.cc.

371  {
372  edm::ParameterSet psetTrack;
373  psetTrack.copyForModify(pset);
374  psetTrack.eraseSimpleParameter("minHit");
375  psetTrack.eraseSimpleParameter("signalOnly");
376  psetTrack.eraseSimpleParameter("intimeOnly");
377  psetTrack.eraseSimpleParameter("chargedOnly");
378  psetTrack.eraseSimpleParameter("stableOnly");
379  psetTrack.addParameter("maxChi2", 1e10);
380  psetTrack.addParameter("minHit", 0);
381  psetTrack.addParameter("minPixelHit", 0);
382  psetTrack.addParameter("minLayer", 0);
383  psetTrack.addParameter("min3DLayer", 0);
384  psetTrack.addParameter("quality", std::vector<std::string>{});
385  psetTrack.addParameter("algorithm", std::vector<std::string>{});
386  psetTrack.addParameter("originalAlgorithm", std::vector<std::string>{});
387  psetTrack.addParameter("algorithmMaskContains", std::vector<std::string>{});
388  psetTrack.addParameter("invertRapidityCut", false);
389  psetTrack.addParameter("minPhi", -3.2);
390  psetTrack.addParameter("maxPhi", 3.2);
391  return std::make_unique<RecoTrackSelectorBase>(psetTrack);
392 }

References edm::ParameterSet::addParameter(), edm::ParameterSet::copyForModify(), edm::ParameterSet::eraseSimpleParameter(), and muonDTDigis_cfi::pset.

Referenced by MTVHistoProducerAlgoForTracker(), and MultiTrackValidator::MultiTrackValidator().

Member Data Documentation

◆ cotThetaRes_nbin

int MTVHistoProducerAlgoForTracker::cotThetaRes_nbin
private

◆ cotThetaRes_rangeMax

double MTVHistoProducerAlgoForTracker::cotThetaRes_rangeMax
private

◆ cotThetaRes_rangeMin

double MTVHistoProducerAlgoForTracker::cotThetaRes_rangeMin
private

◆ doMTDPlots_

const bool MTVHistoProducerAlgoForTracker::doMTDPlots_
private

◆ doSeedPlots_

const bool MTVHistoProducerAlgoForTracker::doSeedPlots_
private

◆ dxyDzZoom

double MTVHistoProducerAlgoForTracker::dxyDzZoom
private

◆ dxyRes_nbin

int MTVHistoProducerAlgoForTracker::dxyRes_nbin
private

◆ dxyRes_rangeMax

double MTVHistoProducerAlgoForTracker::dxyRes_rangeMax
private

◆ dxyRes_rangeMin

double MTVHistoProducerAlgoForTracker::dxyRes_rangeMin
private

◆ dzRes_nbin

int MTVHistoProducerAlgoForTracker::dzRes_nbin
private

◆ dzRes_rangeMax

double MTVHistoProducerAlgoForTracker::dzRes_rangeMax
private

◆ dzRes_rangeMin

double MTVHistoProducerAlgoForTracker::dzRes_rangeMin
private

◆ generalGpSelector

std::unique_ptr<GenParticleCustomSelector> MTVHistoProducerAlgoForTracker::generalGpSelector
private

Definition at line 293 of file MTVHistoProducerAlgoForTracker.h.

Referenced by MTVHistoProducerAlgoForTracker().

◆ generalTpSelector

std::unique_ptr<TrackingParticleSelector> MTVHistoProducerAlgoForTracker::generalTpSelector
private

Definition at line 282 of file MTVHistoProducerAlgoForTracker.h.

Referenced by MTVHistoProducerAlgoForTracker().

◆ GpSelectorForEfficiencyVsEta

std::unique_ptr<GenParticleCustomSelector> MTVHistoProducerAlgoForTracker::GpSelectorForEfficiencyVsEta
private

◆ GpSelectorForEfficiencyVsPhi

std::unique_ptr<GenParticleCustomSelector> MTVHistoProducerAlgoForTracker::GpSelectorForEfficiencyVsPhi
private

◆ GpSelectorForEfficiencyVsPt

std::unique_ptr<GenParticleCustomSelector> MTVHistoProducerAlgoForTracker::GpSelectorForEfficiencyVsPt
private

◆ GpSelectorForEfficiencyVsVTXR

std::unique_ptr<GenParticleCustomSelector> MTVHistoProducerAlgoForTracker::GpSelectorForEfficiencyVsVTXR
private

◆ GpSelectorForEfficiencyVsVTXZ

std::unique_ptr<GenParticleCustomSelector> MTVHistoProducerAlgoForTracker::GpSelectorForEfficiencyVsVTXZ
private

◆ maxChi2

double MTVHistoProducerAlgoForTracker::maxChi2
private

◆ maxDeDx

double MTVHistoProducerAlgoForTracker::maxDeDx
private

◆ maxdr

double MTVHistoProducerAlgoForTracker::maxdr
private

◆ maxdrj

double MTVHistoProducerAlgoForTracker::maxdrj
private

◆ maxDxy

double MTVHistoProducerAlgoForTracker::maxDxy
private

◆ maxDz

double MTVHistoProducerAlgoForTracker::maxDz
private

◆ maxDzpvCum

double MTVHistoProducerAlgoForTracker::maxDzpvCum
private

◆ maxDzpvsigCum

double MTVHistoProducerAlgoForTracker::maxDzpvsigCum
private

◆ maxEta

double MTVHistoProducerAlgoForTracker::maxEta
private

◆ maxHit

double MTVHistoProducerAlgoForTracker::maxHit
private

◆ maxLayers

double MTVHistoProducerAlgoForTracker::maxLayers
private

◆ maxMVA

double MTVHistoProducerAlgoForTracker::maxMVA
private

◆ maxPhi

double MTVHistoProducerAlgoForTracker::maxPhi
private

◆ maxPt

double MTVHistoProducerAlgoForTracker::maxPt
private

◆ maxPu

double MTVHistoProducerAlgoForTracker::maxPu
private

◆ maxPVz

double MTVHistoProducerAlgoForTracker::maxPVz
private

◆ maxTracks

double MTVHistoProducerAlgoForTracker::maxTracks
private

◆ maxVertcount

double MTVHistoProducerAlgoForTracker::maxVertcount
private

Definition at line 333 of file MTVHistoProducerAlgoForTracker.h.

Referenced by MTVHistoProducerAlgoForTracker().

◆ maxVertpos

double MTVHistoProducerAlgoForTracker::maxVertpos
private

◆ maxZpos

double MTVHistoProducerAlgoForTracker::maxZpos
private

◆ minChi2

double MTVHistoProducerAlgoForTracker::minChi2
private

Definition at line 329 of file MTVHistoProducerAlgoForTracker.h.

◆ minDeDx

double MTVHistoProducerAlgoForTracker::minDeDx
private

◆ mindr

double MTVHistoProducerAlgoForTracker::mindr
private

◆ mindrj

double MTVHistoProducerAlgoForTracker::mindrj
private

◆ minDxy

double MTVHistoProducerAlgoForTracker::minDxy
private

◆ minDz

double MTVHistoProducerAlgoForTracker::minDz
private

◆ minEta

double MTVHistoProducerAlgoForTracker::minEta
private

◆ minHit

double MTVHistoProducerAlgoForTracker::minHit
private

◆ minLayers

double MTVHistoProducerAlgoForTracker::minLayers
private

◆ minMVA

double MTVHistoProducerAlgoForTracker::minMVA
private

◆ minPhi

double MTVHistoProducerAlgoForTracker::minPhi
private

◆ minPt

double MTVHistoProducerAlgoForTracker::minPt
private

◆ minPu

double MTVHistoProducerAlgoForTracker::minPu
private

◆ minPVz

double MTVHistoProducerAlgoForTracker::minPVz
private

◆ minTracks

double MTVHistoProducerAlgoForTracker::minTracks
private

◆ minVertcount

double MTVHistoProducerAlgoForTracker::minVertcount
private

Definition at line 333 of file MTVHistoProducerAlgoForTracker.h.

Referenced by MTVHistoProducerAlgoForTracker().

◆ minVertpos

double MTVHistoProducerAlgoForTracker::minVertpos
private

◆ minZpos

double MTVHistoProducerAlgoForTracker::minZpos
private

◆ nintChi2

int MTVHistoProducerAlgoForTracker::nintChi2
private

◆ nintDeDx

int MTVHistoProducerAlgoForTracker::nintDeDx
private

◆ nintdr

int MTVHistoProducerAlgoForTracker::nintdr
private

◆ nintdrj

int MTVHistoProducerAlgoForTracker::nintdrj
private

◆ nintDxy

int MTVHistoProducerAlgoForTracker::nintDxy
private

◆ nintDz

int MTVHistoProducerAlgoForTracker::nintDz
private

◆ nintDzpvCum

int MTVHistoProducerAlgoForTracker::nintDzpvCum
private

◆ nintDzpvsigCum

int MTVHistoProducerAlgoForTracker::nintDzpvsigCum
private

◆ nintEta

int MTVHistoProducerAlgoForTracker::nintEta
private

◆ nintHit

int MTVHistoProducerAlgoForTracker::nintHit
private

◆ nintLayers

int MTVHistoProducerAlgoForTracker::nintLayers
private

◆ nintMVA

int MTVHistoProducerAlgoForTracker::nintMVA
private

◆ nintPhi

int MTVHistoProducerAlgoForTracker::nintPhi
private

◆ nintPt

int MTVHistoProducerAlgoForTracker::nintPt
private

◆ nintPu

int MTVHistoProducerAlgoForTracker::nintPu
private

◆ nintPVz

int MTVHistoProducerAlgoForTracker::nintPVz
private

◆ nintTracks

int MTVHistoProducerAlgoForTracker::nintTracks
private

◆ nintVertcount

int MTVHistoProducerAlgoForTracker::nintVertcount
private

Definition at line 334 of file MTVHistoProducerAlgoForTracker.h.

Referenced by MTVHistoProducerAlgoForTracker().

◆ nintVertpos

int MTVHistoProducerAlgoForTracker::nintVertpos
private

◆ nintZpos

int MTVHistoProducerAlgoForTracker::nintZpos
private

◆ phiRes_nbin

int MTVHistoProducerAlgoForTracker::phiRes_nbin
private

◆ phiRes_rangeMax

double MTVHistoProducerAlgoForTracker::phiRes_rangeMax
private

◆ phiRes_rangeMin

double MTVHistoProducerAlgoForTracker::phiRes_rangeMin
private

◆ ptRes_nbin

int MTVHistoProducerAlgoForTracker::ptRes_nbin
private

◆ ptRes_rangeMax

double MTVHistoProducerAlgoForTracker::ptRes_rangeMax
private

◆ ptRes_rangeMin

double MTVHistoProducerAlgoForTracker::ptRes_rangeMin
private

◆ seedingLayerSetNames

std::vector<std::string> MTVHistoProducerAlgoForTracker::seedingLayerSetNames
private

◆ seedingLayerSetToBin

std::map<SeedingLayerSetId, unsigned int> MTVHistoProducerAlgoForTracker::seedingLayerSetToBin
private

◆ TpSelectorForEfficiencyVsEta

std::unique_ptr<TrackingParticleSelector> MTVHistoProducerAlgoForTracker::TpSelectorForEfficiencyVsEta
private

◆ TpSelectorForEfficiencyVsPhi

std::unique_ptr<TrackingParticleSelector> MTVHistoProducerAlgoForTracker::TpSelectorForEfficiencyVsPhi
private

◆ TpSelectorForEfficiencyVsPt

std::unique_ptr<TrackingParticleSelector> MTVHistoProducerAlgoForTracker::TpSelectorForEfficiencyVsPt
private

◆ TpSelectorForEfficiencyVsVTXR

std::unique_ptr<TrackingParticleSelector> MTVHistoProducerAlgoForTracker::TpSelectorForEfficiencyVsVTXR
private

◆ TpSelectorForEfficiencyVsVTXZ

std::unique_ptr<TrackingParticleSelector> MTVHistoProducerAlgoForTracker::TpSelectorForEfficiencyVsVTXZ
private

◆ trackSelectorVsEta

std::unique_ptr<RecoTrackSelectorBase> MTVHistoProducerAlgoForTracker::trackSelectorVsEta
private

◆ trackSelectorVsPhi

std::unique_ptr<RecoTrackSelectorBase> MTVHistoProducerAlgoForTracker::trackSelectorVsPhi
private

◆ trackSelectorVsPt

std::unique_ptr<RecoTrackSelectorBase> MTVHistoProducerAlgoForTracker::trackSelectorVsPt
private

◆ useFabsEta

bool MTVHistoProducerAlgoForTracker::useFabsEta
private

Definition at line 302 of file MTVHistoProducerAlgoForTracker.h.

Referenced by getEta(), and MTVHistoProducerAlgoForTracker().

◆ useInvPt

bool MTVHistoProducerAlgoForTracker::useInvPt
private

Definition at line 305 of file MTVHistoProducerAlgoForTracker.h.

Referenced by getPt(), and MTVHistoProducerAlgoForTracker().

◆ useLogPt

bool MTVHistoProducerAlgoForTracker::useLogPt
private

◆ useLogVertpos

bool MTVHistoProducerAlgoForTracker::useLogVertpos
private
MTVHistoProducerAlgoForTracker::trackSelectorVsEta
std::unique_ptr< RecoTrackSelectorBase > trackSelectorVsEta
Definition: MTVHistoProducerAlgoForTracker.h:289
reco::GsfTrack::ptMode
double ptMode() const
track transverse momentum from mode
Definition: GsfTrack.h:47
MTVHistoProducerAlgoForTracker::maxPt
double maxPt
Definition: MTVHistoProducerAlgoForTracker.h:303
GeomDetEnumerators::SubDetector
SubDetector
Definition: GeomDetEnumerators.h:10
reco::HitPattern::MISSING_OUTER_HITS
Definition: HitPattern.h:155
reco::GsfTrack::lambdaModeError
double lambdaModeError() const
error on lambda from mode
Definition: GsfTrack.h:92
MTVHistoProducerAlgoForTracker::maxHit
double maxHit
Definition: MTVHistoProducerAlgoForTracker.h:307
TrackerTopology::side
unsigned int side(const DetId &id) const
Definition: TrackerTopology.cc:28
reco::GsfTrack::phiModeError
double phiModeError() const
error on phi from mode
Definition: GsfTrack.h:96
MTVHistoProducerAlgoForTracker::nintTracks
int nintTracks
Definition: MTVHistoProducerAlgoForTracker.h:336
MTVHistoProducerAlgoForTracker::useInvPt
bool useInvPt
Definition: MTVHistoProducerAlgoForTracker.h:305
MTVHistoProducerAlgoForTracker::maxTracks
double maxTracks
Definition: MTVHistoProducerAlgoForTracker.h:335
mps_fire.i
i
Definition: mps_fire.py:355
MTVHistoProducerAlgoForTracker::minPu
double minPu
Definition: MTVHistoProducerAlgoForTracker.h:309
MTVHistoProducerAlgoForTracker::generalGpSelector
std::unique_ptr< GenParticleCustomSelector > generalGpSelector
Definition: MTVHistoProducerAlgoForTracker.h:293
MTVHistoProducerAlgoForTracker::minDxy
double minDxy
Definition: MTVHistoProducerAlgoForTracker.h:315
reco::GsfTrack::qoverpMode
double qoverpMode() const
q/p from mode
Definition: GsfTrack.h:39
MTVHistoProducerAlgoForTracker::getSeedingLayerSetBin
unsigned int getSeedingLayerSetBin(const reco::Track &track, const TrackerTopology &ttopo) const
Definition: MTVHistoProducerAlgoForTracker.cc:2526
PixelSubdetector::PixelEndcap
Definition: PixelSubdetector.h:11
MTVHistoProducerAlgoForTracker::minDz
double minDz
Definition: MTVHistoProducerAlgoForTracker.h:317
PixelSubdetector::PixelBarrel
Definition: PixelSubdetector.h:11
GeomDetEnumerators::TID
Definition: GeomDetEnumerators.h:15
MTVHistoProducerAlgoForTracker::phiRes_rangeMin
double phiRes_rangeMin
Definition: MTVHistoProducerAlgoForTracker.h:348
MTVHistoProducerAlgoForTracker::GpSelectorForEfficiencyVsEta
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsEta
Definition: MTVHistoProducerAlgoForTracker.h:294
trackerHitRTTI::isSingle
bool isSingle(TrackingRecHit const &hit)
Definition: trackerHitRTTI.h:25
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
MTVHistoProducerAlgoForTracker::TpSelectorForEfficiencyVsVTXR
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsVTXR
Definition: MTVHistoProducerAlgoForTracker.h:286
MTVHistoProducerAlgoForTracker::nintDeDx
int nintDeDx
Definition: MTVHistoProducerAlgoForTracker.h:332
MTVHistoProducerAlgoForTracker::useFabsEta
bool useFabsEta
Definition: MTVHistoProducerAlgoForTracker.h:302
CalibrationSummaryClient_cfi.params
params
Definition: CalibrationSummaryClient_cfi.py:14
MTVHistoProducerAlgoForTracker::useLogPt
bool useLogPt
Definition: MTVHistoProducerAlgoForTracker.h:306
MTVHistoProducerAlgoForTracker::GpSelectorForEfficiencyVsPt
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsPt
Definition: MTVHistoProducerAlgoForTracker.h:296
MTVHistoProducerAlgoForTracker::GpSelectorForEfficiencyVsVTXZ
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsVTXZ
Definition: MTVHistoProducerAlgoForTracker.h:298
edm
HLT enums.
Definition: AlignableModifier.h:19
DetId::det
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
reco::GsfTrack::lambdaMode
double lambdaMode() const
Lambda angle from mode.
Definition: GsfTrack.h:43
GeomDetEnumerators::TIB
Definition: GeomDetEnumerators.h:13
MTVHistoProducerAlgoForTracker::maxMVA
double maxMVA
Definition: MTVHistoProducerAlgoForTracker.h:339
MTVHistoProducerAlgoForTracker::maxDeDx
double maxDeDx
Definition: MTVHistoProducerAlgoForTracker.h:331
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
MTVHistoProducerAlgoForTracker::maxLayers
double maxLayers
Definition: MTVHistoProducerAlgoForTracker.h:311
HLT_2018_cff.distance
distance
Definition: HLT_2018_cff.py:6417
MTVHistoProducerAlgoForTracker::maxdr
double maxdr
Definition: MTVHistoProducerAlgoForTracker.h:325
TrackerTopology::layer
unsigned int layer(const DetId &id) const
Definition: TrackerTopology.cc:47
GeomDetEnumerators::TOB
Definition: GeomDetEnumerators.h:14
MTVHistoProducerAlgoForTracker::TpSelectorForEfficiencyVsEta
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsEta
Definition: MTVHistoProducerAlgoForTracker.h:283
MTVHistoProducerAlgoForTracker::nintDzpvCum
int nintDzpvCum
Definition: MTVHistoProducerAlgoForTracker.h:358
MTVHistoProducerAlgoForTracker::trackSelectorVsPhi
std::unique_ptr< RecoTrackSelectorBase > trackSelectorVsPhi
Definition: MTVHistoProducerAlgoForTracker.h:290
MTVHistoProducerAlgoForTracker::TpSelectorForEfficiencyVsPt
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsPt
Definition: MTVHistoProducerAlgoForTracker.h:285
reco::TrackBase::originalAlgo
TrackAlgorithm originalAlgo() const
Definition: TrackBase.h:533
MTVHistoProducerAlgoForTracker::maxChi2
double maxChi2
Definition: MTVHistoProducerAlgoForTracker.h:329
edm::ParameterSet::copyForModify
void copyForModify(ParameterSet const &other)
Definition: ParameterSet.cc:93
reco::GsfTrack::phiMode
double phiMode() const
azimuthal angle of momentum vector from mode
Definition: GsfTrack.h:55
hltPixelTracks_cff.chi2
chi2
Definition: hltPixelTracks_cff.py:25
muonCosmicCompatibility_cfi.sharedHits
sharedHits
Definition: muonCosmicCompatibility_cfi.py:31
newFWLiteAna.found
found
Definition: newFWLiteAna.py:118
MTVHistoProducerAlgoForTracker::GpSelectorForEfficiencyVsPhi
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsPhi
Definition: MTVHistoProducerAlgoForTracker.h:295
MTVHistoProducerAlgoForTracker::minHit
double minHit
Definition: MTVHistoProducerAlgoForTracker.h:307
MTVHistoProducerAlgoForTracker::dxyRes_rangeMax
double dxyRes_rangeMax
Definition: MTVHistoProducerAlgoForTracker.h:352
DetId
Definition: DetId.h:17
GeomDetEnumerators::PixelBarrel
Definition: GeomDetEnumerators.h:11
MTVHistoProducerAlgoForTracker::nintEta
int nintEta
Definition: MTVHistoProducerAlgoForTracker.h:301
MTVHistoProducerAlgoForTracker::minPt
double minPt
Definition: MTVHistoProducerAlgoForTracker.h:303
MTVHistoProducerAlgoForTracker::nintPt
int nintPt
Definition: MTVHistoProducerAlgoForTracker.h:304
TrackingParticleIP::dxy
auto dxy(const T_Vertex &vertex, const T_Momentum &momentum, const T_Point &point)
Definition: TrackingParticleIP.h:11
MTVHistoProducerAlgoForTracker::mindr
double mindr
Definition: MTVHistoProducerAlgoForTracker.h:325
MTVHistoProducerAlgoForTracker::maxEta
double maxEta
Definition: MTVHistoProducerAlgoForTracker.h:300
MTVHistoProducerAlgoForTracker::dzRes_rangeMin
double dzRes_rangeMin
Definition: MTVHistoProducerAlgoForTracker.h:354
MTVHistoProducerAlgoForTracker::minEta
double minEta
Definition: MTVHistoProducerAlgoForTracker.h:300
PVValHelper::eta
Definition: PVValidationHelpers.h:69
MTVHistoProducerAlgoForTracker::minZpos
double minZpos
Definition: MTVHistoProducerAlgoForTracker.h:323
MTVHistoProducerAlgoForTracker::phiRes_nbin
int phiRes_nbin
Definition: MTVHistoProducerAlgoForTracker.h:349
reco::DeDxData::numberOfMeasurements
unsigned int numberOfMeasurements() const
Definition: DeDxData.cc:18
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
MTVHistoProducerAlgoForTracker::minVertpos
double minVertpos
Definition: MTVHistoProducerAlgoForTracker.h:320
MTVHistoProducerAlgoForTracker::nintLayers
int nintLayers
Definition: MTVHistoProducerAlgoForTracker.h:312
reco::DeDxData::numberOfSaturatedMeasurements
int numberOfSaturatedMeasurements() const
Definition: DeDxData.cc:20
TrackerDetSide
TrackerDetSide
Definition: TrackerDetSide.h:4
MTVHistoProducerAlgoForTracker::maxZpos
double maxZpos
Definition: MTVHistoProducerAlgoForTracker.h:323
MTVHistoProducerAlgoForTracker::nintDz
int nintDz
Definition: MTVHistoProducerAlgoForTracker.h:318
SeedingLayerSetsBuilder::SeedingLayerId
std::tuple< GeomDetEnumerators::SubDetector, TrackerDetSide, int > SeedingLayerId
Definition: SeedingLayerSetsBuilder.h:33
MTVHistoProducerAlgoForTracker::nintDxy
int nintDxy
Definition: MTVHistoProducerAlgoForTracker.h:316
StripSubdetector::TIB
static constexpr auto TIB
Definition: StripSubdetector.h:16
MTVHistoProducerAlgoForTracker::minPhi
double minPhi
Definition: MTVHistoProducerAlgoForTracker.h:313
nhits
Definition: HIMultiTrackSelector.h:42
cmsswSequenceInfo.tp
tp
Definition: cmsswSequenceInfo.py:17
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
MTVHistoProducerAlgoForTracker::minVertcount
double minVertcount
Definition: MTVHistoProducerAlgoForTracker.h:333
MTVHistoProducerAlgoForTracker::maxPVz
double maxPVz
Definition: MTVHistoProducerAlgoForTracker.h:337
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
MTVHistoProducerAlgoForTracker::nintVertpos
int nintVertpos
Definition: MTVHistoProducerAlgoForTracker.h:321
edm::LogWarning
Definition: MessageLogger.h:141
edm::ParameterSet::eraseSimpleParameter
void eraseSimpleParameter(std::string const &name)
Definition: ParameterSet.cc:124
trackFromSeedFitFailed
bool trackFromSeedFitFailed(const reco::Track &track)
Definition: trackFromSeedFitFailed.h:6
trackerHitRTTI::isMatched
bool isMatched(TrackingRecHit const &hit)
Definition: trackerHitRTTI.h:32
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
MTVHistoProducerAlgoForTracker::minPVz
double minPVz
Definition: MTVHistoProducerAlgoForTracker.h:337
edm::ParameterSet
Definition: ParameterSet.h:36
reco::modules
Definition: IMASelector.h:46
DetId::Tracker
Definition: DetId.h:25
MTVHistoProducerAlgoForTracker::phiRes_rangeMax
double phiRes_rangeMax
Definition: MTVHistoProducerAlgoForTracker.h:348
MTVHistoProducerAlgoForTracker::minLayers
double minLayers
Definition: MTVHistoProducerAlgoForTracker.h:311
MTVHistoProducerAlgoForTracker::doMTDPlots_
const bool doMTDPlots_
Definition: MTVHistoProducerAlgoForTracker.h:343
MTVHistoProducerAlgoForTracker::doSeedPlots_
const bool doSeedPlots_
Definition: MTVHistoProducerAlgoForTracker.h:342
MultiTrackValidator_cfi.doSeedPlots
doSeedPlots
Definition: MultiTrackValidator_cfi.py:97
MTVHistoProducerAlgoForTracker::SeedingLayerSetId
std::array< SeedingLayerId, 4 > SeedingLayerSetId
Definition: MTVHistoProducerAlgoForTracker.h:365
MTVHistoProducerAlgoForTracker::trackSelectorVsPt
std::unique_ptr< RecoTrackSelectorBase > trackSelectorVsPt
Definition: MTVHistoProducerAlgoForTracker.h:291
MTVHistoProducerAlgoForTracker::SeedingLayerId
std::tuple< SeedingLayerSetsBuilder::SeedingLayerId, bool > SeedingLayerId
Definition: MTVHistoProducerAlgoForTracker.h:364
GeomDetEnumerators::TEC
Definition: GeomDetEnumerators.h:16
KineDebug3::count
void count()
Definition: KinematicConstrainedVertexUpdatorT.h:21
MTVHistoProducerAlgoForTracker::minMVA
double minMVA
Definition: MTVHistoProducerAlgoForTracker.h:339
MTVHistoProducerAlgoForTracker::nintPhi
int nintPhi
Definition: MTVHistoProducerAlgoForTracker.h:314
MTVHistoProducerAlgoForTracker::maxVertcount
double maxVertcount
Definition: MTVHistoProducerAlgoForTracker.h:333
MTVHistoProducerAlgoForTracker::maxDz
double maxDz
Definition: MTVHistoProducerAlgoForTracker.h:317
edm::ParameterSet::addParameter
void addParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:124
funct::tan
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
MTVHistoProducerAlgoForTracker::maxVertpos
double maxVertpos
Definition: MTVHistoProducerAlgoForTracker.h:320
createfilelist.int
int
Definition: createfilelist.py:10
MTVHistoProducerAlgoForTracker::maxDxy
double maxDxy
Definition: MTVHistoProducerAlgoForTracker.h:315
MTVHistoProducerAlgoForTracker::nintdrj
int nintdrj
Definition: MTVHistoProducerAlgoForTracker.h:328
MTVHistoProducerAlgoForTracker::TpSelectorForEfficiencyVsVTXZ
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsVTXZ
Definition: MTVHistoProducerAlgoForTracker.h:287
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:50
HcalObjRepresent::setBinLabels
void setBinLabels(std::vector< TH2F > &depth)
Definition: HcalObjRepresent.h:548
MTVHistoProducerAlgoForTracker::maxDzpvCum
double maxDzpvCum
Definition: MTVHistoProducerAlgoForTracker.h:357
histograms
Definition: histograms.py:1
MTVHistoProducerAlgoForTracker::cotThetaRes_rangeMin
double cotThetaRes_rangeMin
Definition: MTVHistoProducerAlgoForTracker.h:350
MTVHistoProducerAlgoForTracker::nintdr
int nintdr
Definition: MTVHistoProducerAlgoForTracker.h:326
MTVHistoProducerAlgoForTracker::useLogVertpos
bool useLogVertpos
Definition: MTVHistoProducerAlgoForTracker.h:322
SeedingLayerSetsBuilder::nameToEnumId
static SeedingLayerId nameToEnumId(const std::string &name)
Definition: SeedingLayerSetsBuilder.cc:32
MTVHistoProducerAlgoForTracker::getRecoMomentum
void getRecoMomentum(const reco::Track &track, double &pt, double &ptError, double &qoverp, double &qoverpError, double &lambda, double &lambdaError, double &phi, double &phiError) const
retrieval of reconstructed momentum components from reco::Track (== mean values for GSF)
Definition: MTVHistoProducerAlgoForTracker.cc:2472
MTVHistoProducerAlgoForTracker::minDeDx
double minDeDx
Definition: MTVHistoProducerAlgoForTracker.h:331
MTVHistoProducerAlgoForTracker::nintHit
int nintHit
Definition: MTVHistoProducerAlgoForTracker.h:308
DDAxes::phi
MTVHistoProducerAlgoForTracker::mindrj
double mindrj
Definition: MTVHistoProducerAlgoForTracker.h:327
MTVHistoProducerAlgoForTracker::getEta
double getEta(double eta) const
Definition: MTVHistoProducerAlgoForTracker.cc:2512
MTVHistoProducerAlgoForTracker::minTracks
double minTracks
Definition: MTVHistoProducerAlgoForTracker.h:335
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
MTVHistoProducerAlgoForTracker::ptRes_rangeMin
double ptRes_rangeMin
Definition: MTVHistoProducerAlgoForTracker.h:346
StripSubdetector::TEC
static constexpr auto TEC
Definition: StripSubdetector.h:19
MTVHistoProducerAlgoForTracker::getPt
double getPt(double pt) const
Definition: MTVHistoProducerAlgoForTracker.cc:2519
reco::DeDxData::dEdx
float dEdx() const
Definition: DeDxData.cc:11
PVValHelper::dxy
Definition: PVValidationHelpers.h:47
MTVHistoProducerAlgoForTracker::dxyDzZoom
double dxyDzZoom
Definition: MTVHistoProducerAlgoForTracker.h:319
MTVHistoProducerAlgoForTracker::nintZpos
int nintZpos
Definition: MTVHistoProducerAlgoForTracker.h:324
reco::TrackBase::algoSize
Definition: TrackBase.h:141
PVValHelper::dz
Definition: PVValidationHelpers.h:50
edm::ValueMap
Definition: ValueMap.h:107
relativeConstraints.value
value
Definition: relativeConstraints.py:53
Exception
Definition: hltDiff.cc:246
reco::HitPattern::MISSING_INNER_HITS
Definition: HitPattern.h:155
MTVHistoProducerAlgoForTracker::nintPu
int nintPu
Definition: MTVHistoProducerAlgoForTracker.h:310
MTVHistoProducerAlgoForTracker::nintDzpvsigCum
int nintDzpvsigCum
Definition: MTVHistoProducerAlgoForTracker.h:360
MTVHistoProducerAlgoForTracker::seedingLayerSetNames
std::vector< std::string > seedingLayerSetNames
Definition: MTVHistoProducerAlgoForTracker.h:362
MTVHistoProducerAlgoForTracker::generalTpSelector
std::unique_ptr< TrackingParticleSelector > generalTpSelector
Definition: MTVHistoProducerAlgoForTracker.h:282
StripSubdetector::TOB
static constexpr auto TOB
Definition: StripSubdetector.h:18
SeedingLayerSetsBuilder::layerNamesInSets
static std::vector< std::vector< std::string > > layerNamesInSets(const std::vector< std::string > &namesPSet)
Definition: SeedingLayerSetsBuilder.cc:272
TrajectorySeed
Definition: TrajectorySeed.h:17
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
GeomDetEnumerators::PixelEndcap
Definition: GeomDetEnumerators.h:12
MTVHistoProducerAlgoForTracker::nintChi2
int nintChi2
Definition: MTVHistoProducerAlgoForTracker.h:330
MTVHistoProducerAlgoForTracker::ptRes_rangeMax
double ptRes_rangeMax
Definition: MTVHistoProducerAlgoForTracker.h:346
MTVHistoProducerAlgoForTracker::nintMVA
int nintMVA
Definition: MTVHistoProducerAlgoForTracker.h:340
minChi2
Definition: JetCombinatorics.h:265
MTVHistoProducerAlgoForTracker::nintPVz
int nintPVz
Definition: MTVHistoProducerAlgoForTracker.h:338
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
MTVHistoProducerAlgoForTracker::ptRes_nbin
int ptRes_nbin
Definition: MTVHistoProducerAlgoForTracker.h:347
MTVHistoProducerAlgoForTracker::maxdrj
double maxdrj
Definition: MTVHistoProducerAlgoForTracker.h:327
reco::DeDxData
Definition: DeDxData.h:8
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
reco::GsfTrack::ptModeError
double ptModeError() const
error on Pt (set to 1000 TeV if charge==0 for safety) from mode
Definition: GsfTrack.h:81
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:671
HGC3DClusterGenMatchSelector_cfi.dR
dR
Definition: HGC3DClusterGenMatchSelector_cfi.py:7
MTVHistoProducerAlgoForTracker::dzRes_rangeMax
double dzRes_rangeMax
Definition: MTVHistoProducerAlgoForTracker.h:354
MTVHistoProducerAlgoForTracker::nintVertcount
int nintVertcount
Definition: MTVHistoProducerAlgoForTracker.h:334
EgammaValidation_Wenu_cff.sel
sel
Definition: EgammaValidation_Wenu_cff.py:33
MTVHistoProducerAlgoForTracker::maxPu
double maxPu
Definition: MTVHistoProducerAlgoForTracker.h:309
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
MTVHistoProducerAlgoForTracker::dxyRes_nbin
int dxyRes_nbin
Definition: MTVHistoProducerAlgoForTracker.h:353
MTVHistoProducerAlgoForTracker::cotThetaRes_nbin
int cotThetaRes_nbin
Definition: MTVHistoProducerAlgoForTracker.h:351
MTVHistoProducerAlgoForTracker::GpSelectorForEfficiencyVsVTXR
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsVTXR
Definition: MTVHistoProducerAlgoForTracker.h:297
reco::TrackBase::algoNames
static const std::string algoNames[]
Definition: TrackBase.h:147
MTVHistoProducerAlgoForTracker::makeRecoTrackSelectorFromTPSelectorParameters
static std::unique_ptr< RecoTrackSelectorBase > makeRecoTrackSelectorFromTPSelectorParameters(const edm::ParameterSet &pset)
Definition: MTVHistoProducerAlgoForTracker.cc:370
MTVHistoProducerAlgoForTracker::dzRes_nbin
int dzRes_nbin
Definition: MTVHistoProducerAlgoForTracker.h:355
GeomDetEnumerators::isTrackerStrip
bool isTrackerStrip(GeomDetEnumerators::SubDetector m)
Definition: GeomDetEnumerators.cc:64
MTVHistoProducerAlgoForTracker::cotThetaRes_rangeMax
double cotThetaRes_rangeMax
Definition: MTVHistoProducerAlgoForTracker.h:350
MTVHistoProducerAlgoForTracker::maxDzpvsigCum
double maxDzpvsigCum
Definition: MTVHistoProducerAlgoForTracker.h:359
StripSubdetector::TID
static constexpr auto TID
Definition: StripSubdetector.h:17
reco::modules::ParameterAdapter
Definition: ParameterAdapter.h:12
MTVHistoProducerAlgoForTracker::dxyRes_rangeMin
double dxyRes_rangeMin
Definition: MTVHistoProducerAlgoForTracker.h:352
SurveyInfoScenario_cff.seed
seed
Definition: SurveyInfoScenario_cff.py:295
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
reco::GsfTrack::qoverpModeError
double qoverpModeError() const
error on signed transverse curvature from mode
Definition: GsfTrack.h:79
MTVHistoProducerAlgoForTracker::seedingLayerSetToBin
std::map< SeedingLayerSetId, unsigned int > seedingLayerSetToBin
Definition: MTVHistoProducerAlgoForTracker.h:366
muonME0PseudoDigis_cfi.phiError
phiError
Definition: muonME0PseudoDigis_cfi.py:9
MTVHistoProducerAlgoForTracker::TpSelectorForEfficiencyVsPhi
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsPhi
Definition: MTVHistoProducerAlgoForTracker.h:284
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
nlayers
Definition: HIMultiTrackSelector.h:48
MTVHistoProducerAlgoForTracker::maxPhi
double maxPhi
Definition: MTVHistoProducerAlgoForTracker.h:313
TrackingParticleIP::dz
auto dz(const T_Vertex &vertex, const T_Momentum &momentum, const T_Point &point)
Definition: TrackingParticleIP.h:16