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

using Histograms = MTVHistoProducerAlgoForTrackerHistograms
 

Public Member Functions

void bookMVAHistos (DQMStore::ConcurrentBooker &ibook, Histograms &histograms, size_t nMVAs)
 
void bookRecodEdxHistos (DQMStore::ConcurrentBooker &ibook, Histograms &histograms)
 
void bookRecoHistos (DQMStore::ConcurrentBooker &ibook, Histograms &histograms, bool doResolutionPlots)
 
void bookRecoPVAssociationHistos (DQMStore::ConcurrentBooker &ibook, Histograms &histograms)
 
void bookSeedHistos (DQMStore::ConcurrentBooker &ibook, Histograms &histograms)
 
void bookSimHistos (DQMStore::ConcurrentBooker &ibook, Histograms &histograms)
 
void bookSimTrackHistos (DQMStore::ConcurrentBooker &ibook, Histograms &histograms, bool doResolutionPlots)
 
void bookSimTrackPVAssociationHistos (DQMStore::ConcurrentBooker &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, 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 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, 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_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_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::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...
 
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...
 
unsigned int getSeedingLayerSetBin (const reco::Track &track, const TrackerTopology &ttopo) const
 

Private Attributes

int cotThetaRes_nbin
 
double cotThetaRes_rangeMax
 
double cotThetaRes_rangeMin
 
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 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 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 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 130 of file MTVHistoProducerAlgoForTracker.h.

Member Typedef Documentation

Definition at line 137 of file MTVHistoProducerAlgoForTracker.h.

Definition at line 291 of file MTVHistoProducerAlgoForTracker.h.

Definition at line 292 of file MTVHistoProducerAlgoForTracker.h.

Constructor & Destructor Documentation

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

Definition at line 108 of file MTVHistoProducerAlgoForTracker.cc.

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

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

Definition at line 331 of file MTVHistoProducerAlgoForTracker.cc.

331 {}

Member Function Documentation

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

Definition at line 779 of file MTVHistoProducerAlgoForTracker.cc.

References DQMStore::ConcurrentBooker::book1D(), DQMStore::ConcurrentBooker::bookProfile(), MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_mva, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_mva_hp, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_mva_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_mva_vs_eta_hp, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_mva_vs_pt, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_mva_vs_pt_hp, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_mvacut, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_mvacut_hp, MTVHistoProducerAlgoForTrackerHistograms::h_assoc_mvacut, MTVHistoProducerAlgoForTrackerHistograms::h_assoc_mvacut_hp, MTVHistoProducerAlgoForTrackerHistograms::h_fake_mva_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::h_fake_mva_vs_eta_hp, MTVHistoProducerAlgoForTrackerHistograms::h_fake_mva_vs_pt, MTVHistoProducerAlgoForTrackerHistograms::h_fake_mva_vs_pt_hp, MTVHistoProducerAlgoForTrackerHistograms::h_reco_mva, MTVHistoProducerAlgoForTrackerHistograms::h_reco_mva_hp, MTVHistoProducerAlgoForTrackerHistograms::h_reco_mvacut, MTVHistoProducerAlgoForTrackerHistograms::h_reco_mvacut_hp, MTVHistoProducerAlgoForTrackerHistograms::h_simul2_mvacut, MTVHistoProducerAlgoForTrackerHistograms::h_simul2_mvacut_hp, mps_fire::i, maxEta, maxMVA, maxPt, minEta, minMVA, minPt, nintEta, nintMVA, nintPt, AlCaHLTBitMon_QueryRunRegistry::string, and useLogPt.

779  {
780  histograms.h_reco_mva.emplace_back();
781  histograms.h_assoc2_mva.emplace_back();
782 
783  histograms.h_reco_mvacut.emplace_back();
784  histograms.h_assoc_mvacut.emplace_back();
785  histograms.h_assoc2_mvacut.emplace_back();
786  histograms.h_simul2_mvacut.emplace_back();
787 
788  histograms.h_reco_mva_hp.emplace_back();
789  histograms.h_assoc2_mva_hp.emplace_back();
790 
791  histograms.h_reco_mvacut_hp.emplace_back();
792  histograms.h_assoc_mvacut_hp.emplace_back();
793  histograms.h_assoc2_mvacut_hp.emplace_back();
794  histograms.h_simul2_mvacut_hp.emplace_back();
795 
796  histograms.h_assoc2_mva_vs_pt.emplace_back();
797  histograms.h_fake_mva_vs_pt.emplace_back();
798  histograms.h_assoc2_mva_vs_pt_hp.emplace_back();
799  histograms.h_fake_mva_vs_pt_hp.emplace_back();
800  histograms.h_assoc2_mva_vs_eta.emplace_back();
801  histograms.h_fake_mva_vs_eta.emplace_back();
802  histograms.h_assoc2_mva_vs_eta_hp.emplace_back();
803  histograms.h_fake_mva_vs_eta_hp.emplace_back();
804 
805  for(size_t i=1; i <= nMVAs; ++i) {
806  auto istr = std::to_string(i);
807  std::string pfix;
808 
809  if(i==1) {
810  histograms.h_reco_mva_hp.back().emplace_back();
811  histograms.h_assoc2_mva_hp.back().emplace_back();
812 
813  histograms.h_reco_mvacut_hp.back().emplace_back();
814  histograms.h_assoc_mvacut_hp.back().emplace_back();
815  histograms.h_assoc2_mvacut_hp.back().emplace_back();
816  histograms.h_simul2_mvacut_hp.back().emplace_back();
817 
818  histograms.h_assoc2_mva_vs_pt_hp.back().emplace_back();
819  histograms.h_fake_mva_vs_pt_hp.back().emplace_back();
820  histograms.h_assoc2_mva_vs_eta_hp.back().emplace_back();
821  histograms.h_fake_mva_vs_eta_hp.back().emplace_back();
822  }
823  else {
824  pfix = " (not loose-selected)";
825  std::string pfix2 = " (not HP-selected)";
826 
827  histograms.h_reco_mva_hp.back().push_back(ibook.book1D("num_reco_mva"+istr+"_hp", "N of reco track after vs MVA"+istr+pfix2, nintMVA, minMVA, maxMVA) );
828  histograms.h_assoc2_mva_hp.back().push_back(ibook.book1D("num_assoc(recoToSim)_mva"+istr+"_hp", "N of associated tracks (recoToSim) vs MVA"+istr+pfix2, nintMVA, minMVA, maxMVA) );
829 
830  histograms.h_reco_mvacut_hp.back().push_back(ibook.book1D("num_reco_mva"+istr+"cut"+"_hp", "N of reco track vs cut on MVA"+istr+pfix2, nintMVA, minMVA, maxMVA) );
831  histograms.h_assoc_mvacut_hp.back().push_back(ibook.book1D("num_assoc(simToReco)_mva"+istr+"cut_hp", "N of associated tracks (simToReco) vs cut on MVA"+istr+pfix2, nintMVA, minMVA, maxMVA) );
832  histograms.h_assoc2_mvacut_hp.back().push_back(ibook.book1D("num_assoc(recoToSim)_mva"+istr+"cut_hp", "N of associated tracks (recoToSim) vs cut on MVA"+istr+pfix2, nintMVA, minMVA, maxMVA) );
833  histograms.h_simul2_mvacut_hp.back().push_back(ibook.book1D("num_simul2_mva"+istr+"cut_hp", "N of simulated tracks (associated to any track) vs cut on MVA"+istr+pfix2, nintMVA, minMVA, maxMVA) );
834 
835  histograms.h_assoc2_mva_vs_pt_hp.back().push_back(makeProfileIfLogX(ibook, useLogPt, ("mva_assoc(recoToSim)_mva"+istr+"_pT_hp").c_str(), ("MVA"+istr+" of associated tracks (recoToSim) vs. track p_{T}"+pfix2).c_str(), nintPt, minPt, maxPt, minMVA, maxMVA));
836  histograms.h_fake_mva_vs_pt_hp.back().push_back(makeProfileIfLogX(ibook, useLogPt, ("mva_fake_mva"+istr+"pT_hp").c_str(), ("MVA"+istr+" of non-associated tracks (recoToSim) vs. track p_{T}"+pfix2).c_str(), nintPt, minPt, maxPt, minMVA, maxMVA));
837  histograms.h_assoc2_mva_vs_eta_hp.back().push_back(ibook.bookProfile("mva_assoc(recoToSim)_mva"+istr+"_eta_hp", "MVA"+istr+" of associated tracks (recoToSim) vs. track #eta"+pfix2, nintEta, minEta, maxEta, nintMVA, minMVA, maxMVA));
838  histograms.h_fake_mva_vs_eta_hp.back().push_back(ibook.bookProfile("mva_fake_mva"+istr+"eta_hp", "MVA"+istr+" of non-associated tracks (recoToSim) vs. track #eta"+pfix2, nintEta, minEta, maxEta, nintMVA, minMVA, maxMVA));
839  }
840 
841  histograms.h_reco_mva.back().push_back(ibook.book1D("num_reco_mva"+istr, "N of reco track vs MVA"+istr+pfix, nintMVA, minMVA, maxMVA) );
842  histograms.h_assoc2_mva.back().push_back(ibook.book1D("num_assoc(recoToSim)_mva"+istr, "N of associated tracks (recoToSim) vs MVA"+istr+pfix, nintMVA, minMVA, maxMVA) );
843 
844  histograms.h_reco_mvacut.back().push_back(ibook.book1D("num_reco_mva"+istr+"cut", "N of reco track vs cut on MVA"+istr+pfix, nintMVA, minMVA, maxMVA) );
845  histograms.h_assoc_mvacut.back().push_back(ibook.book1D("num_assoc(simToReco)_mva"+istr+"cut", "N of associated tracks (simToReco) vs cut on MVA"+istr+pfix, nintMVA, minMVA, maxMVA) );
846  histograms.h_assoc2_mvacut.back().push_back(ibook.book1D("num_assoc(recoToSim)_mva"+istr+"cut", "N of associated tracks (recoToSim) vs cut on MVA"+istr+pfix, nintMVA, minMVA, maxMVA) );
847  histograms.h_simul2_mvacut.back().push_back(ibook.book1D("num_simul2_mva"+istr+"cut", "N of simulated tracks (associated to any track) vs cut on MVA"+istr+pfix, nintMVA, minMVA, maxMVA) );
848 
849  histograms.h_assoc2_mva_vs_pt.back().push_back(makeProfileIfLogX(ibook, useLogPt, ("mva_assoc(recoToSim)_mva"+istr+"_pT").c_str(), ("MVA"+istr+" of associated tracks (recoToSim) vs. track p_{T}"+pfix).c_str(), nintPt, minPt, maxPt, minMVA, maxMVA));
850  histograms.h_fake_mva_vs_pt.back().push_back(makeProfileIfLogX(ibook, useLogPt, ("mva_fake_mva"+istr+"_pT").c_str(), ("MVA"+istr+" of non-associated tracks (recoToSim) vs. track p_{T}"+pfix).c_str(), nintPt, minPt, maxPt, minMVA, maxMVA));
851  histograms.h_assoc2_mva_vs_eta.back().push_back(ibook.bookProfile("mva_assoc(recoToSim)_mva"+istr+"_eta", "MVA"+istr+" of associated tracks (recoToSim) vs. track #eta"+pfix, nintEta, minEta, maxEta, nintMVA, minMVA, maxMVA));
852  histograms.h_fake_mva_vs_eta.back().push_back(ibook.bookProfile("mva_fake_mva"+istr+"_eta", "MVA"+istr+" of non-associated tracks (recoToSim) vs. track #eta"+pfix, nintEta, minEta, maxEta, nintMVA, minMVA, maxMVA));
853  }
854 }
ConcurrentMonitorElement bookProfile(Args &&...args)
Definition: DQMStore.h:272
ConcurrentMonitorElement book1D(Args &&...args)
Definition: DQMStore.h:223
void MTVHistoProducerAlgoForTracker::bookRecodEdxHistos ( DQMStore::ConcurrentBooker ibook,
Histograms histograms 
)

Definition at line 759 of file MTVHistoProducerAlgoForTracker.cc.

References DQMStore::ConcurrentBooker::book1D(), MTVHistoProducerAlgoForTrackerHistograms::h_dedx_estim, MTVHistoProducerAlgoForTrackerHistograms::h_dedx_nom, MTVHistoProducerAlgoForTrackerHistograms::h_dedx_sat, maxDeDx, maxHit, minDeDx, minHit, nintDeDx, and nintHit.

759  {
760  // dE/dx stuff
761  histograms.h_dedx_estim.emplace_back();
762  histograms.h_dedx_estim.back().push_back(ibook.book1D("h_dedx_estim1","dE/dx estimator 1",nintDeDx,minDeDx,maxDeDx));
763  histograms.h_dedx_estim.back().push_back(ibook.book1D("h_dedx_estim2","dE/dx estimator 2",nintDeDx,minDeDx,maxDeDx));
764 
765  histograms.h_dedx_nom.emplace_back();
766  histograms.h_dedx_nom.back().push_back(ibook.book1D("h_dedx_nom1","dE/dx number of measurements",nintHit,minHit,maxHit));
767  histograms.h_dedx_nom.back().push_back(ibook.book1D("h_dedx_nom2","dE/dx number of measurements",nintHit,minHit,maxHit));
768 
769  histograms.h_dedx_sat.emplace_back();
770  histograms.h_dedx_sat.back().push_back(ibook.book1D("h_dedx_sat1","dE/dx number of measurements with saturation",nintHit,minHit,maxHit));
771  histograms.h_dedx_sat.back().push_back(ibook.book1D("h_dedx_sat2","dE/dx number of measurements with saturation",nintHit,minHit,maxHit));
772 }
ConcurrentMonitorElement book1D(Args &&...args)
Definition: DQMStore.h:223
void MTVHistoProducerAlgoForTracker::bookRecoHistos ( DQMStore::ConcurrentBooker ibook,
Histograms histograms,
bool  doResolutionPlots 
)

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

Definition at line 457 of file MTVHistoProducerAlgoForTracker.cc.

References reco::TrackBase::algoNames, DQMStore::ConcurrentBooker::book1D(), DQMStore::ConcurrentBooker::bookProfile(), DQMStore::ConcurrentBooker::bookProfile2D(), MTVHistoProducerAlgoForTrackerHistograms::chi2_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::chi2_vs_nhits, MTVHistoProducerAlgoForTrackerHistograms::chi2_vs_phi, cotThetaRes_nbin, cotThetaRes_rangeMax, cotThetaRes_rangeMin, MTVHistoProducerAlgoForTrackerHistograms::cotThetares_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::cotThetares_vs_pt, doSeedPlots_, MTVHistoProducerAlgoForTrackerHistograms::dxypull_vs_eta, dxyRes_nbin, dxyRes_rangeMax, dxyRes_rangeMin, MTVHistoProducerAlgoForTrackerHistograms::dxyres_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::dxyres_vs_pt, MTVHistoProducerAlgoForTrackerHistograms::dzpull_vs_eta, dzRes_nbin, dzRes_rangeMax, dzRes_rangeMin, MTVHistoProducerAlgoForTrackerHistograms::dzres_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::dzres_vs_pt, MTVHistoProducerAlgoForTrackerHistograms::etares_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::h_algo, MTVHistoProducerAlgoForTrackerHistograms::h_assoc23Dlayer, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_seedingLayerSet, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_simpvz, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2chi2, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2dr, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2dxy, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2dz, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2eta, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2hit, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2layer, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2phi, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2pixellayer, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2pT, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2pu, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2vertpos, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2zpos, MTVHistoProducerAlgoForTrackerHistograms::h_assocFraction, MTVHistoProducerAlgoForTrackerHistograms::h_assocSharedHit, MTVHistoProducerAlgoForTrackerHistograms::h_charge, MTVHistoProducerAlgoForTrackerHistograms::h_eta, MTVHistoProducerAlgoForTrackerHistograms::h_fakes, MTVHistoProducerAlgoForTrackerHistograms::h_hits, MTVHistoProducerAlgoForTrackerHistograms::h_looper3Dlayer, MTVHistoProducerAlgoForTrackerHistograms::h_looper_seedingLayerSet, MTVHistoProducerAlgoForTrackerHistograms::h_looper_simpvz, MTVHistoProducerAlgoForTrackerHistograms::h_looperchi2, MTVHistoProducerAlgoForTrackerHistograms::h_looperdr, MTVHistoProducerAlgoForTrackerHistograms::h_looperdxy, MTVHistoProducerAlgoForTrackerHistograms::h_looperdz, MTVHistoProducerAlgoForTrackerHistograms::h_loopereta, MTVHistoProducerAlgoForTrackerHistograms::h_looperhit, MTVHistoProducerAlgoForTrackerHistograms::h_looperlayer, MTVHistoProducerAlgoForTrackerHistograms::h_looperphi, MTVHistoProducerAlgoForTrackerHistograms::h_looperpixellayer, MTVHistoProducerAlgoForTrackerHistograms::h_looperpT, MTVHistoProducerAlgoForTrackerHistograms::h_looperpu, MTVHistoProducerAlgoForTrackerHistograms::h_loopervertpos, MTVHistoProducerAlgoForTrackerHistograms::h_looperzpos, MTVHistoProducerAlgoForTrackerHistograms::h_losthits, MTVHistoProducerAlgoForTrackerHistograms::h_misid3Dlayer, MTVHistoProducerAlgoForTrackerHistograms::h_misidchi2, MTVHistoProducerAlgoForTrackerHistograms::h_misiddxy, MTVHistoProducerAlgoForTrackerHistograms::h_misiddz, MTVHistoProducerAlgoForTrackerHistograms::h_misideta, MTVHistoProducerAlgoForTrackerHistograms::h_misidhit, MTVHistoProducerAlgoForTrackerHistograms::h_misidlayer, MTVHistoProducerAlgoForTrackerHistograms::h_misidphi, MTVHistoProducerAlgoForTrackerHistograms::h_misidpixellayer, MTVHistoProducerAlgoForTrackerHistograms::h_misidpT, MTVHistoProducerAlgoForTrackerHistograms::h_misidpu, MTVHistoProducerAlgoForTrackerHistograms::h_nchi2, MTVHistoProducerAlgoForTrackerHistograms::h_nchi2_prob, MTVHistoProducerAlgoForTrackerHistograms::h_nmisslayers_inner, MTVHistoProducerAlgoForTrackerHistograms::h_nmisslayers_outer, MTVHistoProducerAlgoForTrackerHistograms::h_pileup3Dlayer, MTVHistoProducerAlgoForTrackerHistograms::h_pileup_seedingLayerSet, MTVHistoProducerAlgoForTrackerHistograms::h_pileup_simpvz, MTVHistoProducerAlgoForTrackerHistograms::h_pileupchi2, MTVHistoProducerAlgoForTrackerHistograms::h_pileupdr, MTVHistoProducerAlgoForTrackerHistograms::h_pileupdxy, MTVHistoProducerAlgoForTrackerHistograms::h_pileupdz, MTVHistoProducerAlgoForTrackerHistograms::h_pileupeta, MTVHistoProducerAlgoForTrackerHistograms::h_pileuphit, MTVHistoProducerAlgoForTrackerHistograms::h_pileuplayer, MTVHistoProducerAlgoForTrackerHistograms::h_pileupphi, MTVHistoProducerAlgoForTrackerHistograms::h_pileuppixellayer, MTVHistoProducerAlgoForTrackerHistograms::h_pileuppT, MTVHistoProducerAlgoForTrackerHistograms::h_pileuppu, MTVHistoProducerAlgoForTrackerHistograms::h_pileupvertpos, MTVHistoProducerAlgoForTrackerHistograms::h_pileupzpos, MTVHistoProducerAlgoForTrackerHistograms::h_pt, MTVHistoProducerAlgoForTrackerHistograms::h_pullDxy, MTVHistoProducerAlgoForTrackerHistograms::h_pullDz, MTVHistoProducerAlgoForTrackerHistograms::h_pullPhi, MTVHistoProducerAlgoForTrackerHistograms::h_pullQoverp, MTVHistoProducerAlgoForTrackerHistograms::h_pullTheta, MTVHistoProducerAlgoForTrackerHistograms::h_reco2eta, MTVHistoProducerAlgoForTrackerHistograms::h_reco2pT, MTVHistoProducerAlgoForTrackerHistograms::h_reco2pu, MTVHistoProducerAlgoForTrackerHistograms::h_reco3Dlayer, MTVHistoProducerAlgoForTrackerHistograms::h_reco_seedingLayerSet, MTVHistoProducerAlgoForTrackerHistograms::h_reco_simpvz, MTVHistoProducerAlgoForTrackerHistograms::h_recochi2, MTVHistoProducerAlgoForTrackerHistograms::h_recodr, MTVHistoProducerAlgoForTrackerHistograms::h_recodxy, MTVHistoProducerAlgoForTrackerHistograms::h_recodz, MTVHistoProducerAlgoForTrackerHistograms::h_recoeta, MTVHistoProducerAlgoForTrackerHistograms::h_recohit, MTVHistoProducerAlgoForTrackerHistograms::h_recolayer, MTVHistoProducerAlgoForTrackerHistograms::h_recophi, MTVHistoProducerAlgoForTrackerHistograms::h_recopixellayer, MTVHistoProducerAlgoForTrackerHistograms::h_recopT, MTVHistoProducerAlgoForTrackerHistograms::h_recopu, MTVHistoProducerAlgoForTrackerHistograms::h_recovertpos, MTVHistoProducerAlgoForTrackerHistograms::h_recozpos, MTVHistoProducerAlgoForTrackerHistograms::h_tracks, maxChi2, maxdr, maxDxy, maxDz, maxEta, maxHit, maxLayers, maxPhi, maxPt, maxPu, maxPVz, maxTracks, maxVertpos, maxZpos, mindr, minDxy, minDz, minEta, minHit, minLayers, minPhi, minPt, minPu, minPVz, minTracks, minVertpos, minZpos, MTVHistoProducerAlgoForTrackerHistograms::nhits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nhits_vs_phi, nintChi2, nintdr, nintDxy, nintDz, nintEta, nintHit, nintLayers, nintPhi, nintPt, nintPu, nintPVz, nintTracks, nintVertpos, nintZpos, MTVHistoProducerAlgoForTrackerHistograms::nLayersWithMeas_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nlosthits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nPXBhits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nPXFhits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nPXLhits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nPXLlayersWithMeas_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nrec_vs_nsim, MTVHistoProducerAlgoForTrackerHistograms::nrecHit_vs_nsimHit_rec2sim, MTVHistoProducerAlgoForTrackerHistograms::nSTRIPhits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nSTRIPlayersWith1dMeas_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nSTRIPlayersWith2dMeas_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nSTRIPlayersWithMeas_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nTEChits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nTIBhits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nTIDhits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nTOBhits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::phimean_vs_eta_phi, MTVHistoProducerAlgoForTrackerHistograms::phipull_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::phipull_vs_phi, phiRes_nbin, phiRes_rangeMax, phiRes_rangeMin, MTVHistoProducerAlgoForTrackerHistograms::phires_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::phires_vs_phi, MTVHistoProducerAlgoForTrackerHistograms::phires_vs_pt, MTVHistoProducerAlgoForTrackerHistograms::ptmean_vs_eta_phi, MTVHistoProducerAlgoForTrackerHistograms::ptpull_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::ptpull_vs_phi, ptRes_nbin, ptRes_rangeMax, ptRes_rangeMin, MTVHistoProducerAlgoForTrackerHistograms::ptres_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::ptres_vs_phi, MTVHistoProducerAlgoForTrackerHistograms::ptres_vs_pt, seedingLayerSetNames, HcalObjRepresent::setBinLabels(), findQualityFiles::size, MTVHistoProducerAlgoForTrackerHistograms::thetapull_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::thetapull_vs_phi, useLogPt, and useLogVertpos.

457  {
458  histograms.h_tracks.push_back( ibook.book1D("tracks","number of reconstructed tracks", nintTracks, minTracks, maxTracks) );
459  histograms.h_fakes.push_back( ibook.book1D("fakes","number of fake reco tracks", nintTracks, minTracks, maxTracks) );
460  histograms.h_charge.push_back( ibook.book1D("charge","charge",3,-1.5,1.5) );
461 
462  histograms.h_hits.push_back( ibook.book1D("hits", "number of hits per track", nintHit,minHit,maxHit ) );
463  histograms.h_losthits.push_back( ibook.book1D("losthits", "number of lost hits per track", nintHit,minHit,maxHit) );
464  histograms.h_nchi2.push_back( ibook.book1D("chi2", "normalized #chi^{2}", 200, 0, 20 ) );
465  histograms.h_nchi2_prob.push_back( ibook.book1D("chi2_prob", "normalized #chi^{2} probability",100,0,1));
466 
467  histograms.h_nmisslayers_inner.push_back( ibook.book1D("missing_inner_layers", "number of missing inner layers", nintLayers,minLayers,maxLayers ) );
468  histograms.h_nmisslayers_outer.push_back( ibook.book1D("missing_outer_layers", "number of missing outer layers", nintLayers,minLayers,maxLayers ) );
469 
470  histograms.h_algo.push_back( ibook.book1D("h_algo","Tracks by algo",reco::TrackBase::algoSize, 0., double(reco::TrackBase::algoSize) ) );
471  for (size_t ibin=0; ibin<reco::TrackBase::algoSize-1; ibin++)
472  histograms.h_algo.back().setBinLabel(ibin+1,reco::TrackBase::algoNames[ibin]);
473 
475  histograms.h_recoeta.push_back( ibook.book1D("num_reco_eta","N of reco track vs eta",nintEta,minEta,maxEta) );
476  histograms.h_reco2eta.push_back( ibook.book1D("num_reco2_eta","N of selected reco track vs eta",nintEta,minEta,maxEta) );
477  histograms.h_assoc2eta.push_back( ibook.book1D("num_assoc(recoToSim)_eta","N of associated (recoToSim) tracks vs eta",nintEta,minEta,maxEta) );
478  histograms.h_loopereta.push_back( ibook.book1D("num_duplicate_eta","N of associated (recoToSim) duplicate tracks vs eta",nintEta,minEta,maxEta) );
479  if(!doSeedPlots_) histograms.h_misideta.push_back( ibook.book1D("num_chargemisid_eta","N of associated (recoToSim) charge misIDed tracks vs eta",nintEta,minEta,maxEta) );
480  histograms.h_pileupeta.push_back( ibook.book1D("num_pileup_eta","N of associated (recoToSim) pileup tracks vs eta",nintEta,minEta,maxEta) );
481  //
482  histograms.h_recopT.push_back( make1DIfLogX(ibook, useLogPt, "num_reco_pT","N of reco track vs pT",nintPt,minPt,maxPt) );
483  histograms.h_reco2pT.push_back( make1DIfLogX(ibook, useLogPt, "num_reco2_pT","N of selected reco track vs pT",nintPt,minPt,maxPt) );
484  histograms.h_assoc2pT.push_back( make1DIfLogX(ibook, useLogPt, "num_assoc(recoToSim)_pT","N of associated (recoToSim) tracks vs pT",nintPt,minPt,maxPt) );
485  histograms.h_looperpT.push_back( make1DIfLogX(ibook, useLogPt, "num_duplicate_pT","N of associated (recoToSim) duplicate tracks vs pT",nintPt,minPt,maxPt) );
486  if(!doSeedPlots_) histograms.h_misidpT.push_back( make1DIfLogX(ibook, useLogPt, "num_chargemisid_pT","N of associated (recoToSim) charge misIDed tracks vs pT",nintPt,minPt,maxPt) );
487  histograms.h_pileuppT.push_back( make1DIfLogX(ibook, useLogPt, "num_pileup_pT","N of associated (recoToSim) pileup tracks vs pT",nintPt,minPt,maxPt) );
488  //
489  histograms.h_recohit.push_back( ibook.book1D("num_reco_hit","N of reco track vs hit",nintHit,minHit,maxHit) );
490  histograms.h_assoc2hit.push_back( ibook.book1D("num_assoc(recoToSim)_hit","N of associated (recoToSim) tracks vs hit",nintHit,minHit,maxHit) );
491  histograms.h_looperhit.push_back( ibook.book1D("num_duplicate_hit","N of associated (recoToSim) duplicate tracks vs hit",nintHit,minHit,maxHit) );
492  if(!doSeedPlots_) histograms.h_misidhit.push_back( ibook.book1D("num_chargemisid_hit","N of associated (recoToSim) charge misIDed tracks vs hit",nintHit,minHit,maxHit) );
493  histograms.h_pileuphit.push_back( ibook.book1D("num_pileup_hit","N of associated (recoToSim) pileup tracks vs hit",nintHit,minHit,maxHit) );
494  //
495  histograms.h_recolayer.push_back( ibook.book1D("num_reco_layer","N of reco track vs layer",nintLayers,minLayers,maxLayers) );
496  histograms.h_assoc2layer.push_back( ibook.book1D("num_assoc(recoToSim)_layer","N of associated (recoToSim) tracks vs layer",nintLayers,minLayers,maxLayers) );
497  histograms.h_looperlayer.push_back( ibook.book1D("num_duplicate_layer","N of associated (recoToSim) duplicate tracks vs layer",nintLayers,minLayers,maxLayers) );
498  if(!doSeedPlots_) histograms.h_misidlayer.push_back( ibook.book1D("num_chargemisid_layer","N of associated (recoToSim) charge misIDed tracks vs layer",nintLayers,minLayers,maxLayers) );
499  histograms.h_pileuplayer.push_back( ibook.book1D("num_pileup_layer","N of associated (recoToSim) pileup tracks vs layer",nintLayers,minLayers,maxLayers) );
500  //
501  histograms.h_recopixellayer.push_back( ibook.book1D("num_reco_pixellayer","N of reco track vs pixellayer",nintLayers,minLayers,maxLayers) );
502  histograms.h_assoc2pixellayer.push_back( ibook.book1D("num_assoc(recoToSim)_pixellayer","N of associated (recoToSim) tracks vs pixellayer",nintLayers,minLayers,maxLayers) );
503  histograms.h_looperpixellayer.push_back( ibook.book1D("num_duplicate_pixellayer","N of associated (recoToSim) duplicate tracks vs pixellayer",nintLayers,minLayers,maxLayers) );
504  if(!doSeedPlots_) histograms.h_misidpixellayer.push_back( ibook.book1D("num_chargemisid_pixellayer","N of associated (recoToSim) charge misIDed tracks vs pixellayer",nintLayers,minLayers,maxLayers) );
505  histograms.h_pileuppixellayer.push_back( ibook.book1D("num_pileup_pixellayer","N of associated (recoToSim) pileup tracks vs pixellayer",nintLayers,minLayers,maxLayers) );
506  //
507  histograms.h_reco3Dlayer.push_back( ibook.book1D("num_reco_3Dlayer","N of reco track vs 3D layer",nintLayers,minLayers,maxLayers) );
508  histograms.h_assoc23Dlayer.push_back( ibook.book1D("num_assoc(recoToSim)_3Dlayer","N of associated (recoToSim) tracks vs 3D layer",nintLayers,minLayers,maxLayers) );
509  histograms.h_looper3Dlayer.push_back( ibook.book1D("num_duplicate_3Dlayer","N of associated (recoToSim) duplicate tracks vs 3D layer",nintLayers,minLayers,maxLayers) );
510  if(!doSeedPlots_) histograms.h_misid3Dlayer.push_back( ibook.book1D("num_chargemisid_3Dlayer","N of associated (recoToSim) charge misIDed tracks vs 3D layer",nintLayers,minLayers,maxLayers) );
511  histograms.h_pileup3Dlayer.push_back( ibook.book1D("num_pileup_3Dlayer","N of associated (recoToSim) pileup tracks vs 3D layer",nintLayers,minLayers,maxLayers) );
512  //
513  histograms.h_recopu.push_back( ibook.book1D("num_reco_pu","N of reco track vs pu",nintPu,minPu,maxPu) );
514  histograms.h_reco2pu.push_back( ibook.book1D("num_reco2_pu","N of selected reco track vs pu",nintPu,minPu,maxPu) );
515  histograms.h_assoc2pu.push_back( ibook.book1D("num_assoc(recoToSim)_pu","N of associated (recoToSim) tracks vs pu",nintPu,minPu,maxPu) );
516  histograms.h_looperpu.push_back( ibook.book1D("num_duplicate_pu","N of associated (recoToSim) duplicate tracks vs pu",nintPu,minPu,maxPu) );
517  if(!doSeedPlots_) histograms.h_misidpu.push_back( ibook.book1D("num_chargemisid_pu","N of associated (recoToSim) charge misIDed tracks vs pu",nintPu,minPu,maxPu) );
518  histograms.h_pileuppu.push_back( ibook.book1D("num_pileup_pu","N of associated (recoToSim) pileup tracks vs pu",nintPu,minPu,maxPu) );
519  //
520  histograms.h_recophi.push_back( ibook.book1D("num_reco_phi","N of reco track vs phi",nintPhi,minPhi,maxPhi) );
521  histograms.h_assoc2phi.push_back( ibook.book1D("num_assoc(recoToSim)_phi","N of associated (recoToSim) tracks vs phi",nintPhi,minPhi,maxPhi) );
522  histograms.h_looperphi.push_back( ibook.book1D("num_duplicate_phi","N of associated (recoToSim) duplicate tracks vs phi",nintPhi,minPhi,maxPhi) );
523  if(!doSeedPlots_) histograms.h_misidphi.push_back( ibook.book1D("num_chargemisid_phi","N of associated (recoToSim) charge misIDed tracks vs phi",nintPhi,minPhi,maxPhi) );
524  histograms.h_pileupphi.push_back( ibook.book1D("num_pileup_phi","N of associated (recoToSim) pileup tracks vs phi",nintPhi,minPhi,maxPhi) );
525 
526  histograms.h_recodxy.push_back( ibook.book1D("num_reco_dxy","N of reco track vs dxy",nintDxy,minDxy,maxDxy) );
527  histograms.h_assoc2dxy.push_back( ibook.book1D("num_assoc(recoToSim)_dxy","N of associated (recoToSim) tracks vs dxy",nintDxy,minDxy,maxDxy) );
528  histograms.h_looperdxy.push_back( ibook.book1D("num_duplicate_dxy","N of associated (recoToSim) looper tracks vs dxy",nintDxy,minDxy,maxDxy) );
529  if(!doSeedPlots_) histograms.h_misiddxy.push_back( ibook.book1D("num_chargemisid_dxy","N of associated (recoToSim) charge misIDed tracks vs dxy",nintDxy,minDxy,maxDxy) );
530  histograms.h_pileupdxy.push_back( ibook.book1D("num_pileup_dxy","N of associated (recoToSim) pileup tracks vs dxy",nintDxy,minDxy,maxDxy) );
531 
532  histograms.h_recodz.push_back( ibook.book1D("num_reco_dz","N of reco track vs dz",nintDz,minDz,maxDz) );
533  histograms.h_assoc2dz.push_back( ibook.book1D("num_assoc(recoToSim)_dz","N of associated (recoToSim) tracks vs dz",nintDz,minDz,maxDz) );
534  histograms.h_looperdz.push_back( ibook.book1D("num_duplicate_dz","N of associated (recoToSim) looper tracks vs dz",nintDz,minDz,maxDz) );
535  if(!doSeedPlots_) histograms.h_misiddz.push_back( ibook.book1D("num_chargemisid_versus_dz","N of associated (recoToSim) charge misIDed tracks vs dz",nintDz,minDz,maxDz) );
536  histograms.h_pileupdz.push_back( ibook.book1D("num_pileup_dz","N of associated (recoToSim) pileup tracks vs dz",nintDz,minDz,maxDz) );
537 
538  histograms.h_recovertpos.push_back( make1DIfLogX(ibook, useLogVertpos, "num_reco_vertpos","N of reconstructed tracks vs transverse ref point position",nintVertpos,minVertpos,maxVertpos) );
539  histograms.h_assoc2vertpos.push_back( make1DIfLogX(ibook, useLogVertpos, "num_assoc(recoToSim)_vertpos","N of associated (recoToSim) tracks vs transverse ref point position",nintVertpos,minVertpos,maxVertpos) );
540  histograms.h_loopervertpos.push_back( make1DIfLogX(ibook, useLogVertpos, "num_duplicate_vertpos","N of associated (recoToSim) looper tracks vs transverse ref point position",nintVertpos,minVertpos,maxVertpos) );
541  histograms.h_pileupvertpos.push_back( make1DIfLogX(ibook, useLogVertpos, "num_pileup_vertpos","N of associated (recoToSim) pileup tracks vs transverse ref point position",nintVertpos,minVertpos,maxVertpos) );
542 
543  histograms.h_recozpos.push_back( ibook.book1D("num_reco_zpos","N of reconstructed tracks vs transverse ref point position",nintZpos,minZpos,maxZpos) );
544  histograms.h_assoc2zpos.push_back( ibook.book1D("num_assoc(recoToSim)_zpos","N of associated (recoToSim) tracks vs transverse ref point position",nintZpos,minZpos,maxZpos) );
545  histograms.h_looperzpos.push_back( ibook.book1D("num_duplicate_zpos","N of associated (recoToSim) looper tracks vs transverse ref point position",nintZpos,minZpos,maxZpos) );
546  histograms.h_pileupzpos.push_back( ibook.book1D("num_pileup_zpos","N of associated (recoToSim) pileup tracks vs transverse ref point position",nintZpos,minZpos,maxZpos) );
547 
548  histograms.h_recodr.push_back( make1DIfLogX(ibook, true, "num_reco_dr","N of reconstructed tracks vs dR",nintdr,log10(mindr),log10(maxdr)) );
549  histograms.h_assoc2dr.push_back( make1DIfLogX(ibook, true, "num_assoc(recoToSim)_dr","N of associated tracks (recoToSim) vs dR",nintdr,log10(mindr),log10(maxdr)) );
550  histograms.h_looperdr.push_back( make1DIfLogX(ibook, true, "num_duplicate_dr","N of associated (recoToSim) looper tracks vs dR",nintdr,log10(mindr),log10(maxdr)) );
551  histograms.h_pileupdr.push_back( make1DIfLogX(ibook, true, "num_pileup_dr","N of associated (recoToSim) pileup tracks vs dR",nintdr,log10(mindr),log10(maxdr)) );
552 
553  histograms.h_reco_simpvz.push_back( ibook.book1D("num_reco_simpvz", "N of reco track vs. sim PV z", nintPVz, minPVz, maxPVz) );
554  histograms.h_assoc2_simpvz.push_back( ibook.book1D("num_assoc(recoToSim)_simpvz", "N of associated tracks (recoToSim) vs. sim PV z", nintPVz, minPVz, maxPVz) );
555  histograms.h_looper_simpvz.push_back( ibook.book1D("num_duplicate_simpvz", "N of associated (recoToSim) looper tracks vs. sim PV z", nintPVz, minPVz, maxPVz) );
556  histograms.h_pileup_simpvz.push_back( ibook.book1D("num_pileup_simpvz", "N of associated (recoToSim) pileup tracks vs. sim PV z", nintPVz, minPVz, maxPVz) );
557 
558  histograms.h_recochi2.push_back( ibook.book1D("num_reco_chi2","N of reco track vs normalized #chi^{2}",nintChi2,minChi2,maxChi2) );
559  histograms.h_assoc2chi2.push_back( ibook.book1D("num_assoc(recoToSim)_chi2","N of associated (recoToSim) tracks vs normalized #chi^{2}",nintChi2,minChi2,maxChi2) );
560  histograms.h_looperchi2.push_back( ibook.book1D("num_duplicate_chi2","N of associated (recoToSim) looper tracks vs normalized #chi^{2}",nintChi2,minChi2,maxChi2) );
561  if(!doSeedPlots_) histograms.h_misidchi2.push_back( ibook.book1D("num_chargemisid_chi2","N of associated (recoToSim) charge misIDed tracks vs normalized #chi^{2}",nintChi2,minChi2,maxChi2) );
562  histograms.h_pileupchi2.push_back( ibook.book1D("num_pileup_chi2","N of associated (recoToSim) pileup tracks vs normalized #chi^{2}",nintChi2,minChi2,maxChi2) );
563 
564 
565  if(!seedingLayerSetNames.empty()) {
566  const auto size = seedingLayerSetNames.size();
567  histograms.h_reco_seedingLayerSet.push_back(ibook.book1D("num_reco_seedingLayerSet", "N of reco track vs. seedingLayerSet", size,0,size));
568  histograms.h_assoc2_seedingLayerSet.push_back(ibook.book1D("num_assoc(recoToSim)_seedingLayerSet", "N of associated track (recoToSim) tracks vs. seedingLayerSet", size,0,size));
569  histograms.h_looper_seedingLayerSet.push_back(ibook.book1D("num_duplicate_seedingLayerSet", "N of reco associated (recoToSim) looper vs. seedingLayerSet", size,0,size));
570  histograms.h_pileup_seedingLayerSet.push_back(ibook.book1D("num_pileup_seedingLayerSet", "N of reco associated (recoToSim) pileup vs. seedingLayerSet", size,0,size));
571 
572  setBinLabels(histograms.h_reco_seedingLayerSet.back(), seedingLayerSetNames);
573  setBinLabels(histograms.h_assoc2_seedingLayerSet.back(), seedingLayerSetNames);
574  setBinLabels(histograms.h_looper_seedingLayerSet.back(), seedingLayerSetNames);
575  setBinLabels(histograms.h_pileup_seedingLayerSet.back(), seedingLayerSetNames);
576  }
577 
579 
580  auto bookResolutionPlots1D = [&](std::vector<ConcurrentMonitorElement>& vec, auto&&... params) {
581  vec.push_back( doResolutionPlots ? ibook.book1D(std::forward<decltype(params)>(params)...) : ConcurrentMonitorElement{} );
582  };
583  auto bookResolutionPlots2D = [&](std::vector<ConcurrentMonitorElement>& vec, bool logx, auto&&... params) {
584  vec.push_back( doResolutionPlots ? make2DIfLogX(ibook, logx, std::forward<decltype(params)>(params)...) : ConcurrentMonitorElement{} );
585  };
586  auto bookResolutionPlotsProfile2D = [&](std::vector<ConcurrentMonitorElement>& vec, auto&&... params) {
587  vec.push_back( doResolutionPlots ? ibook.bookProfile2D(std::forward<decltype(params)>(params)...) : ConcurrentMonitorElement{} );
588  };
589 
590  bookResolutionPlots1D(histograms.h_eta, "eta", "pseudorapidity residue", 1000, -0.1, 0.1);
591  bookResolutionPlots1D(histograms.h_pt, "pullPt", "pull of p_{t}", 100, -10, 10 );
592  bookResolutionPlots1D(histograms.h_pullTheta, "pullTheta","pull of #theta parameter",250,-25,25);
593  bookResolutionPlots1D(histograms.h_pullPhi, "pullPhi","pull of #phi parameter",250,-25,25);
594  bookResolutionPlots1D(histograms.h_pullDxy, "pullDxy","pull of dxy parameter",250,-25,25);
595  bookResolutionPlots1D(histograms.h_pullDz, "pullDz","pull of dz parameter",250,-25,25);
596  bookResolutionPlots1D(histograms.h_pullQoverp, "pullQoverp","pull of qoverp parameter",250,-25,25);
597 
598  /* TO BE FIXED -----------
599  if (associators[ww]=="TrackAssociatorByChi2"){
600  histograms.h_assochi2.push_back( ibook.book1D("assocChi2","track association #chi^{2}",1000000,0,100000) );
601  histograms.h_assochi2_prob.push_back(ibook.book1D("assocChi2_prob","probability of association #chi^{2}",100,0,1));
602  } else if (associators[ww]=="quickTrackAssociatorByHits"){
603  histograms.h_assocFraction.push_back( ibook.book1D("assocFraction","fraction of shared hits",200,0,2) );
604  histograms.h_assocSharedHit.push_back(ibook.book1D("assocSharedHit","number of shared hits",20,0,20));
605  }
606  */
607  histograms.h_assocFraction.push_back( ibook.book1D("assocFraction","fraction of shared hits",200,0,2) );
608  histograms.h_assocSharedHit.push_back(ibook.book1D("assocSharedHit","number of shared hits",41,-0.5,40.5));
609  // ----------------------
610 
611  // use the standard error of the mean as the errors in the profile
612  histograms.chi2_vs_nhits.push_back( ibook.bookProfile("chi2mean_vs_nhits","mean #chi^{2} vs nhits",nintHit,minHit,maxHit, 100,0,10, " ") );
613 
614  bookResolutionPlots2D(histograms.etares_vs_eta, false, "etares_vs_eta","etaresidue vs eta",nintEta,minEta,maxEta,200,-0.1,0.1);
615  bookResolutionPlots2D(histograms.nrec_vs_nsim, false, "nrec_vs_nsim","Number of selected reco tracks vs. number of selected sim tracks;TrackingParticles;Reco tracks", nintTracks,minTracks,maxTracks, nintTracks,minTracks,maxTracks);
616 
617  histograms.chi2_vs_eta.push_back( ibook.bookProfile("chi2mean","mean #chi^{2} vs #eta",nintEta,minEta,maxEta, 200, 0, 20, " " ));
618  histograms.chi2_vs_phi.push_back( ibook.bookProfile("chi2mean_vs_phi","mean #chi^{2} vs #phi",nintPhi,minPhi,maxPhi, 200, 0, 20, " " ) );
619 
620  histograms.nhits_vs_eta.push_back( ibook.bookProfile("hits_eta","mean hits vs eta",nintEta,minEta,maxEta,nintHit,minHit,maxHit, " ") );
621  histograms.nPXBhits_vs_eta.push_back( ibook.bookProfile("PXBhits_vs_eta","mean # PXB its vs eta",nintEta,minEta,maxEta,nintHit,minHit,maxHit, " ") );
622  histograms.nPXFhits_vs_eta.push_back( ibook.bookProfile("PXFhits_vs_eta","mean # PXF hits vs eta",nintEta,minEta,maxEta,nintHit,minHit,maxHit, " ") );
623  histograms.nPXLhits_vs_eta.push_back( ibook.bookProfile("PXLhits_vs_eta","mean # PXL hits vs eta",nintEta,minEta,maxEta,nintHit,minHit,maxHit, " ") );
624  histograms.nTIBhits_vs_eta.push_back( ibook.bookProfile("TIBhits_vs_eta","mean # TIB hits vs eta",nintEta,minEta,maxEta,nintHit,minHit,maxHit, " ") );
625  histograms.nTIDhits_vs_eta.push_back( ibook.bookProfile("TIDhits_vs_eta","mean # TID hits vs eta",nintEta,minEta,maxEta,nintHit,minHit,maxHit, " ") );
626  histograms.nTOBhits_vs_eta.push_back( ibook.bookProfile("TOBhits_vs_eta","mean # TOB hits vs eta",nintEta,minEta,maxEta,nintHit,minHit,maxHit, " ") );
627  histograms.nTEChits_vs_eta.push_back( ibook.bookProfile("TEChits_vs_eta","mean # TEC hits vs eta",nintEta,minEta,maxEta,nintHit,minHit,maxHit, " ") );
628  histograms.nSTRIPhits_vs_eta.push_back( ibook.bookProfile("STRIPhits_vs_eta","mean # STRIP hits vs eta",nintEta,minEta,maxEta,nintHit,minHit,maxHit, " ") );
629 
630  histograms.nLayersWithMeas_vs_eta.push_back( ibook.bookProfile("LayersWithMeas_eta","mean # Layers with measurement vs eta",
632  histograms.nPXLlayersWithMeas_vs_eta.push_back( ibook.bookProfile("PXLlayersWithMeas_vs_eta","mean # PXL Layers with measurement vs eta",
634  histograms.nSTRIPlayersWithMeas_vs_eta.push_back( ibook.bookProfile("STRIPlayersWithMeas_vs_eta","mean # STRIP Layers with measurement vs eta",
636  histograms.nSTRIPlayersWith1dMeas_vs_eta.push_back( ibook.bookProfile("STRIPlayersWith1dMeas_vs_eta","mean # STRIP Layers with 1D measurement vs eta",
638  histograms.nSTRIPlayersWith2dMeas_vs_eta.push_back( ibook.bookProfile("STRIPlayersWith2dMeas_vs_eta","mean # STRIP Layers with 2D measurement vs eta",
640 
641  histograms.nhits_vs_phi.push_back( ibook.bookProfile("hits_phi","mean # hits vs #phi",nintPhi,minPhi,maxPhi,nintHit,minHit,maxHit, " ") );
642 
643  histograms.nlosthits_vs_eta.push_back( ibook.bookProfile("losthits_vs_eta","mean # lost hits vs eta",nintEta,minEta,maxEta,nintHit,minHit,maxHit, " ") );
644 
645  //resolution of track parameters
646  // dPt/Pt cotTheta Phi TIP LIP
647  // log10(pt)<0.5 100,0.1 240,0.08 100,0.015 100,0.1000 150,0.3000
648  // 0.5<log10(pt)<1.5 100,0.1 120,0.01 100,0.003 100,0.0100 150,0.0500
649  // >1.5 100,0.3 100,0.005 100,0.0008 100,0.0060 120,0.0300
650 
651  bookResolutionPlots2D(histograms.ptres_vs_eta, false, "ptres_vs_eta","ptres_vs_eta",
653 
654  bookResolutionPlots2D(histograms.ptres_vs_phi, false, "ptres_vs_phi","p_{t} res vs #phi",
656 
657  bookResolutionPlots2D(histograms.ptres_vs_pt, useLogPt, "ptres_vs_pt","ptres_vs_pt",nintPt,minPt,maxPt, ptRes_nbin, ptRes_rangeMin, ptRes_rangeMax);
658 
659  bookResolutionPlots2D(histograms.cotThetares_vs_eta, false, "cotThetares_vs_eta","cotThetares_vs_eta",
661 
662  bookResolutionPlots2D(histograms.cotThetares_vs_pt, useLogPt, "cotThetares_vs_pt","cotThetares_vs_pt",
664 
665 
666  bookResolutionPlots2D(histograms.phires_vs_eta, false, "phires_vs_eta","phires_vs_eta",
668 
669  bookResolutionPlots2D(histograms.phires_vs_pt, useLogPt, "phires_vs_pt","phires_vs_pt",
671 
672  bookResolutionPlots2D(histograms.phires_vs_phi, false, "phires_vs_phi","#phi res vs #phi",
674 
675  bookResolutionPlots2D(histograms.dxyres_vs_eta, false, "dxyres_vs_eta","dxyres_vs_eta",
677 
678  bookResolutionPlots2D(histograms.dxyres_vs_pt, useLogPt, "dxyres_vs_pt","dxyres_vs_pt",
680 
681  bookResolutionPlots2D(histograms.dzres_vs_eta, false, "dzres_vs_eta","dzres_vs_eta",
683 
684  bookResolutionPlots2D(histograms.dzres_vs_pt, useLogPt, "dzres_vs_pt","dzres_vs_pt",nintPt,minPt,maxPt,dzRes_nbin, dzRes_rangeMin, dzRes_rangeMax);
685 
686  bookResolutionPlotsProfile2D(histograms.ptmean_vs_eta_phi, "ptmean_vs_eta_phi","mean p_{t} vs #eta and #phi",
687  nintPhi,minPhi,maxPhi,nintEta,minEta,maxEta,1000,0,1000);
688  bookResolutionPlotsProfile2D(histograms.phimean_vs_eta_phi, "phimean_vs_eta_phi","mean #phi vs #eta and #phi",
690 
691  //pulls of track params vs eta: to be used with fitslicesytool
692  bookResolutionPlots2D(histograms.dxypull_vs_eta, false, "dxypull_vs_eta","dxypull_vs_eta",nintEta,minEta,maxEta,100,-10,10);
693  bookResolutionPlots2D(histograms.ptpull_vs_eta, false, "ptpull_vs_eta","ptpull_vs_eta",nintEta,minEta,maxEta,100,-10,10);
694  bookResolutionPlots2D(histograms.dzpull_vs_eta, false, "dzpull_vs_eta","dzpull_vs_eta",nintEta,minEta,maxEta,100,-10,10);
695  bookResolutionPlots2D(histograms.phipull_vs_eta, false, "phipull_vs_eta","phipull_vs_eta",nintEta,minEta,maxEta,100,-10,10);
696  bookResolutionPlots2D(histograms.thetapull_vs_eta, false, "thetapull_vs_eta","thetapull_vs_eta",nintEta,minEta,maxEta,100,-10,10);
697 
698  // histograms.h_ptshiftetamean.push_back( ibook.book1D("h_ptshifteta_Mean","<#deltapT/pT>[%] vs #eta",nintEta,minEta,maxEta) );
699 
700 
701  //pulls of track params vs phi
702  bookResolutionPlots2D(histograms.ptpull_vs_phi, false, "ptpull_vs_phi","p_{t} pull vs #phi",nintPhi,minPhi,maxPhi,100,-10,10);
703  bookResolutionPlots2D(histograms.phipull_vs_phi, false, "phipull_vs_phi","#phi pull vs #phi",nintPhi,minPhi,maxPhi,100,-10,10);
704  bookResolutionPlots2D(histograms.thetapull_vs_phi, false, "thetapull_vs_phi","#theta pull vs #phi",nintPhi,minPhi,maxPhi,100,-10,10);
705 
706 
707  bookResolutionPlots2D(histograms.nrecHit_vs_nsimHit_rec2sim, false, "nrecHit_vs_nsimHit_rec2sim","nrecHit vs nsimHit (Rec2simAssoc)", nintHit,minHit,maxHit, nintHit,minHit,maxHit);
708 }
size
Write out results.
ConcurrentMonitorElement bookProfile(Args &&...args)
Definition: DQMStore.h:272
ConcurrentMonitorElement bookProfile2D(Args &&...args)
Definition: DQMStore.h:279
ConcurrentMonitorElement book1D(Args &&...args)
Definition: DQMStore.h:223
static const std::string algoNames[]
Definition: TrackBase.h:148
std::vector< std::string > seedingLayerSetNames
void setBinLabels(std::vector< TH2F > &depth)
void MTVHistoProducerAlgoForTracker::bookRecoPVAssociationHistos ( DQMStore::ConcurrentBooker ibook,
Histograms histograms 
)

Definition at line 710 of file MTVHistoProducerAlgoForTracker.cc.

References DQMStore::ConcurrentBooker::book1D(), doSeedPlots_, dxyDzZoom, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_dzpvcut, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_dzpvcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_dzpvsigcut, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_dzpvsigcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2dxypv, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2dxypvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2dzpv, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2dzpvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_looperdxypv, MTVHistoProducerAlgoForTrackerHistograms::h_looperdxypvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_looperdzpv, MTVHistoProducerAlgoForTrackerHistograms::h_looperdzpvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_misiddxypv, MTVHistoProducerAlgoForTrackerHistograms::h_misiddxypvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_misiddzpv, MTVHistoProducerAlgoForTrackerHistograms::h_misiddzpvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_pileup_dzpvcut, MTVHistoProducerAlgoForTrackerHistograms::h_pileup_dzpvcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_pileup_dzpvsigcut, MTVHistoProducerAlgoForTrackerHistograms::h_pileup_dzpvsigcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_pileupdxypv, MTVHistoProducerAlgoForTrackerHistograms::h_pileupdxypvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_pileupdzpv, MTVHistoProducerAlgoForTrackerHistograms::h_pileupdzpvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_reco_dzpvcut, MTVHistoProducerAlgoForTrackerHistograms::h_reco_dzpvcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_reco_dzpvsigcut, MTVHistoProducerAlgoForTrackerHistograms::h_reco_dzpvsigcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_recodxypv, MTVHistoProducerAlgoForTrackerHistograms::h_recodxypvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_recodzpv, MTVHistoProducerAlgoForTrackerHistograms::h_recodzpvzoomed, maxDxy, maxDz, maxDzpvCum, maxDzpvsigCum, minDxy, minDz, nintDxy, nintDz, nintDzpvCum, and nintDzpvsigCum.

710  {
711  histograms.h_recodxypv.push_back( ibook.book1D("num_reco_dxypv","N of reco track vs dxy(PV)",nintDxy,minDxy,maxDxy) );
712  histograms.h_assoc2dxypv.push_back( ibook.book1D("num_assoc(recoToSim)_dxypv","N of associated (recoToSim) tracks vs dxy(PV)",nintDxy,minDxy,maxDxy) );
713  histograms.h_looperdxypv.push_back( ibook.book1D("num_duplicate_dxypv","N of associated (recoToSim) looper tracks vs dxy(PV)",nintDxy,minDxy,maxDxy) );
714  if(!doSeedPlots_) histograms.h_misiddxypv.push_back( ibook.book1D("num_chargemisid_dxypv","N of associated (recoToSim) charge misIDed tracks vs dxy(PV)",nintDxy,minDxy,maxDxy) );
715  histograms.h_pileupdxypv.push_back( ibook.book1D("num_pileup_dxypv","N of associated (recoToSim) pileup tracks vs dxy(PV)",nintDxy,minDxy,maxDxy) );
716 
717  histograms.h_recodzpv.push_back( ibook.book1D("num_reco_dzpv","N of reco track vs dz(PV)",nintDz,minDz,maxDz) );
718  histograms.h_assoc2dzpv.push_back( ibook.book1D("num_assoc(recoToSim)_dzpv","N of associated (recoToSim) tracks vs dz(PV)",nintDz,minDz,maxDz) );
719  histograms.h_looperdzpv.push_back( ibook.book1D("num_duplicate_dzpv","N of associated (recoToSim) looper tracks vs dz(PV)",nintDz,minDz,maxDz) );
720  if(!doSeedPlots_) histograms.h_misiddzpv.push_back( ibook.book1D("num_chargemisid_versus_dzpv","N of associated (recoToSim) charge misIDed tracks vs dz(PV)",nintDz,minDz,maxDz) );
721  histograms.h_pileupdzpv.push_back( ibook.book1D("num_pileup_dzpv","N of associated (recoToSim) pileup tracks vs dz(PV)",nintDz,minDz,maxDz) );
722 
723  histograms.h_recodxypvzoomed.push_back( ibook.book1D("num_reco_dxypv_zoomed","N of reco track vs dxy(PV)",nintDxy,minDxy/dxyDzZoom,maxDxy/dxyDzZoom) );
724  histograms.h_assoc2dxypvzoomed.push_back( ibook.book1D("num_assoc(recoToSim)_dxypv_zoomed","N of associated (recoToSim) tracks vs dxy(PV)",nintDxy,minDxy/dxyDzZoom,maxDxy/dxyDzZoom) );
725  histograms.h_looperdxypvzoomed.push_back( ibook.book1D("num_duplicate_dxypv_zoomed","N of associated (recoToSim) looper tracks vs dxy(PV)",nintDxy,minDxy/dxyDzZoom,maxDxy/dxyDzZoom) );
726  if(!doSeedPlots_) histograms.h_misiddxypvzoomed.push_back( ibook.book1D("num_chargemisid_dxypv_zoomed","N of associated (recoToSim) charge misIDed tracks vs dxy(PV)",nintDxy,minDxy/dxyDzZoom,maxDxy/dxyDzZoom) );
727  histograms.h_pileupdxypvzoomed.push_back( ibook.book1D("num_pileup_dxypv_zoomed","N of associated (recoToSim) pileup tracks vs dxy(PV)",nintDxy,minDxy/dxyDzZoom,maxDxy/dxyDzZoom) );
728 
729  histograms.h_recodzpvzoomed.push_back( ibook.book1D("num_reco_dzpv_zoomed","N of reco track vs dz(PV)",nintDz,minDz/dxyDzZoom,maxDz/dxyDzZoom) );
730  histograms.h_assoc2dzpvzoomed.push_back( ibook.book1D("num_assoc(recoToSim)_dzpv_zoomed","N of associated (recoToSim) tracks vs dz(PV)",nintDz,minDz/dxyDzZoom,maxDz/dxyDzZoom) );
731  histograms.h_looperdzpvzoomed.push_back( ibook.book1D("num_duplicate_dzpv_zoomed","N of associated (recoToSim) looper tracks vs dz(PV)",nintDz,minDz/dxyDzZoom,maxDz/dxyDzZoom) );
732  if(!doSeedPlots_) histograms.h_misiddzpvzoomed.push_back( ibook.book1D("num_chargemisid_versus_dzpv_zoomed","N of associated (recoToSim) charge misIDed tracks vs dz(PV)",nintDz,minDz/dxyDzZoom,maxDz/dxyDzZoom) );
733  histograms.h_pileupdzpvzoomed.push_back( ibook.book1D("num_pileup_dzpv_zoomed","N of associated (recoToSim) pileup tracks vs dz(PV)",nintDz,minDz/dxyDzZoom,maxDz/dxyDzZoom) );
734 
735  histograms.h_reco_dzpvcut.push_back( ibook.book1D("num_reco_dzpvcut","N of reco track vs dz(PV)",nintDzpvCum,0,maxDzpvCum) );
736  histograms.h_assoc2_dzpvcut.push_back( ibook.book1D("num_assoc(recoToSim)_dzpvcut","N of associated (recoToSim) tracks vs dz(PV)",nintDzpvCum,0,maxDzpvCum) );
737  histograms.h_pileup_dzpvcut.push_back( ibook.book1D("num_pileup_dzpvcut", "N of associated (recoToSim) pileup tracks vs dz(PV)",nintDzpvCum,0,maxDzpvCum) );
738 
739  histograms.h_reco_dzpvcut_pt.push_back( ibook.book1D("num_reco_dzpvcut_pt","#sump_{T} of reco track vs dz(PV)",nintDzpvCum,0,maxDzpvCum) );
740  histograms.h_assoc2_dzpvcut_pt.push_back( ibook.book1D("num_assoc(recoToSim)_dzpvcut_pt","#sump_{T} of associated (recoToSim) tracks vs dz(PV)",nintDzpvCum,0,maxDzpvCum) );
741  histograms.h_pileup_dzpvcut_pt.push_back( ibook.book1D("num_pileup_dzpvcut_pt", "#sump_{T} of associated (recoToSim) pileup tracks vs dz(PV)",nintDzpvCum,0,maxDzpvCum) );
742  histograms.h_reco_dzpvcut_pt.back().enableSumw2();
743  histograms.h_assoc2_dzpvcut_pt.back().enableSumw2();
744  histograms.h_pileup_dzpvcut_pt.back().enableSumw2();
745 
746  histograms.h_reco_dzpvsigcut.push_back( ibook.book1D("num_reco_dzpvsigcut","N of reco track vs dz(PV)/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
747  histograms.h_assoc2_dzpvsigcut.push_back( ibook.book1D("num_assoc(recoToSim)_dzpvsigcut","N of associated (recoToSim) tracks vs dz(PV)/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
748  histograms.h_pileup_dzpvsigcut.push_back( ibook.book1D("num_pileup_dzpvsigcut","N of associated (recoToSim) pileup tracks vs dz(PV)/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
749 
750  histograms.h_reco_dzpvsigcut_pt.push_back( ibook.book1D("num_reco_dzpvsigcut_pt","#sump_{T} of reco track vs dz(PV)/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
751  histograms.h_assoc2_dzpvsigcut_pt.push_back( ibook.book1D("num_assoc(recoToSim)_dzpvsigcut_pt","#sump_{T} of associated (recoToSim) tracks vs dz(PV)/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
752  histograms.h_pileup_dzpvsigcut_pt.push_back( ibook.book1D("num_pileup_dzpvsigcut_pt","#sump_{T} of associated (recoToSim) pileup tracks vs dz(PV)/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
753  histograms.h_reco_dzpvsigcut_pt.back().enableSumw2();
754  histograms.h_assoc2_dzpvsigcut_pt.back().enableSumw2();
755  histograms.h_pileup_dzpvsigcut_pt.back().enableSumw2();
756 
757 }
ConcurrentMonitorElement book1D(Args &&...args)
Definition: DQMStore.h:223
void MTVHistoProducerAlgoForTracker::bookSeedHistos ( DQMStore::ConcurrentBooker ibook,
Histograms histograms 
)

Definition at line 774 of file MTVHistoProducerAlgoForTracker.cc.

References DQMStore::ConcurrentBooker::book1D(), MTVHistoProducerAlgoForTrackerHistograms::h_seedsFitFailed, MTVHistoProducerAlgoForTrackerHistograms::h_seedsFitFailedFraction, maxTracks, minTracks, and nintTracks.

774  {
775  histograms.h_seedsFitFailed.push_back(ibook.book1D("seeds_fitFailed", "Number of seeds for which the fit failed", nintTracks, minTracks, maxTracks));
776  histograms.h_seedsFitFailedFraction.push_back(ibook.book1D("seeds_fitFailedFraction", "Fraction of seeds for which the fit failed", 100, 0, 1));
777 }
ConcurrentMonitorElement book1D(Args &&...args)
Definition: DQMStore.h:223
void MTVHistoProducerAlgoForTracker::bookSimHistos ( DQMStore::ConcurrentBooker ibook,
Histograms histograms 
)

Definition at line 354 of file MTVHistoProducerAlgoForTracker.cc.

References DQMStore::ConcurrentBooker::book1D(), MTVHistoProducerAlgoForTrackerHistograms::h_bunchxSIM, MTVHistoProducerAlgoForTrackerHistograms::h_etaSIM, MTVHistoProducerAlgoForTrackerHistograms::h_ptSIM, MTVHistoProducerAlgoForTrackerHistograms::h_tracksSIM, MTVHistoProducerAlgoForTrackerHistograms::h_vertposSIM, maxEta, maxPt, maxTracks, maxVertpos, minEta, minPt, minTracks, minVertpos, nintEta, nintPt, nintTracks, nintVertpos, and useLogPt.

354  {
355  histograms.h_ptSIM = make1DIfLogX(ibook, useLogPt, "ptSIM", "generated p_{t}", nintPt, minPt, maxPt);
356  histograms.h_etaSIM = ibook.book1D("etaSIM", "generated pseudorapidity", nintEta, minEta, maxEta);
357  histograms.h_tracksSIM = ibook.book1D("tracksSIM","number of simulated tracks", nintTracks, minTracks, maxTracks*10);
358  histograms.h_vertposSIM = ibook.book1D("vertposSIM","Transverse position of sim vertices", nintVertpos, minVertpos, maxVertpos);
359  histograms.h_bunchxSIM = ibook.book1D("bunchxSIM", "bunch crossing", 21, -15.5, 5.5 );
360 }
ConcurrentMonitorElement book1D(Args &&...args)
Definition: DQMStore.h:223
void MTVHistoProducerAlgoForTracker::bookSimTrackHistos ( DQMStore::ConcurrentBooker ibook,
Histograms histograms,
bool  doResolutionPlots 
)

Definition at line 362 of file MTVHistoProducerAlgoForTracker.cc.

References reco::TrackBase::algoSize, DQMStore::ConcurrentBooker::book1D(), DQMStore::ConcurrentBooker::book2D(), constexpr, MTVHistoProducerAlgoForTrackerHistograms::h_assoc3Dlayer, MTVHistoProducerAlgoForTrackerHistograms::h_assoc_simpvz, MTVHistoProducerAlgoForTrackerHistograms::h_assocdr, MTVHistoProducerAlgoForTrackerHistograms::h_assocdxy, MTVHistoProducerAlgoForTrackerHistograms::h_assocdz, MTVHistoProducerAlgoForTrackerHistograms::h_assoceta, MTVHistoProducerAlgoForTrackerHistograms::h_assochit, MTVHistoProducerAlgoForTrackerHistograms::h_assoclayer, MTVHistoProducerAlgoForTrackerHistograms::h_assocphi, MTVHistoProducerAlgoForTrackerHistograms::h_assocpixellayer, MTVHistoProducerAlgoForTrackerHistograms::h_assocpT, MTVHistoProducerAlgoForTrackerHistograms::h_assocpu, MTVHistoProducerAlgoForTrackerHistograms::h_assocvertpos, MTVHistoProducerAlgoForTrackerHistograms::h_assoczpos, MTVHistoProducerAlgoForTrackerHistograms::h_duplicates_oriAlgo_vs_oriAlgo, MTVHistoProducerAlgoForTrackerHistograms::h_simul3Dlayer, MTVHistoProducerAlgoForTrackerHistograms::h_simul_simpvz, MTVHistoProducerAlgoForTrackerHistograms::h_simuldr, MTVHistoProducerAlgoForTrackerHistograms::h_simuldxy, MTVHistoProducerAlgoForTrackerHistograms::h_simuldz, MTVHistoProducerAlgoForTrackerHistograms::h_simuleta, MTVHistoProducerAlgoForTrackerHistograms::h_simulhit, MTVHistoProducerAlgoForTrackerHistograms::h_simullayer, MTVHistoProducerAlgoForTrackerHistograms::h_simulphi, MTVHistoProducerAlgoForTrackerHistograms::h_simulpixellayer, MTVHistoProducerAlgoForTrackerHistograms::h_simulpT, MTVHistoProducerAlgoForTrackerHistograms::h_simulpu, MTVHistoProducerAlgoForTrackerHistograms::h_simulvertpos, MTVHistoProducerAlgoForTrackerHistograms::h_simulzpos, maxdr, maxDxy, maxDz, maxEta, maxHit, maxLayers, maxPhi, maxPt, maxPu, maxPVz, maxVertpos, maxZpos, mindr, minDxy, minDz, minEta, minHit, minLayers, minPhi, minPt, minPu, minPVz, minVertpos, minZpos, nintdr, nintDxy, nintDz, nintEta, nintHit, nintLayers, nintPhi, nintPt, nintPu, nintPVz, nintVertpos, nintZpos, MTVHistoProducerAlgoForTrackerHistograms::nrecHit_vs_nsimHit_sim2rec, useLogPt, and useLogVertpos.

362  {
363  histograms.h_assoceta.push_back( ibook.book1D("num_assoc(simToReco)_eta","N of associated tracks (simToReco) vs eta",nintEta,minEta,maxEta) );
364  histograms.h_simuleta.push_back( ibook.book1D("num_simul_eta","N of simulated tracks vs eta",nintEta,minEta,maxEta) );
365 
366  histograms.h_assocpT.push_back( make1DIfLogX(ibook, useLogPt, "num_assoc(simToReco)_pT","N of associated tracks (simToReco) vs pT",nintPt,minPt,maxPt) );
367  histograms.h_simulpT.push_back( make1DIfLogX(ibook, useLogPt, "num_simul_pT","N of simulated tracks vs pT",nintPt,minPt,maxPt) );
368 
369  histograms.h_assochit.push_back( ibook.book1D("num_assoc(simToReco)_hit","N of associated tracks (simToReco) vs hit",nintHit,minHit,maxHit) );
370  histograms.h_simulhit.push_back( ibook.book1D("num_simul_hit","N of simulated tracks vs hit",nintHit,minHit,maxHit) );
371 
372  histograms.h_assoclayer.push_back( ibook.book1D("num_assoc(simToReco)_layer","N of associated tracks (simToReco) vs layer",nintLayers,minLayers,maxLayers) );
373  histograms.h_simullayer.push_back( ibook.book1D("num_simul_layer","N of simulated tracks vs layer",nintLayers,minLayers,maxLayers) );
374 
375  histograms.h_assocpixellayer.push_back( ibook.book1D("num_assoc(simToReco)_pixellayer","N of associated tracks (simToReco) vs pixel layer",nintLayers,minLayers,maxLayers) );
376  histograms.h_simulpixellayer.push_back( ibook.book1D("num_simul_pixellayer","N of simulated tracks vs pixel layer",nintLayers,minLayers,maxLayers) );
377 
378  histograms.h_assoc3Dlayer.push_back( ibook.book1D("num_assoc(simToReco)_3Dlayer","N of associated tracks (simToReco) vs 3D layer",nintLayers,minLayers,maxLayers) );
379  histograms.h_simul3Dlayer.push_back( ibook.book1D("num_simul_3Dlayer","N of simulated tracks vs 3D layer",nintLayers,minLayers,maxLayers) );
380 
381  histograms.h_assocpu.push_back( ibook.book1D("num_assoc(simToReco)_pu","N of associated tracks (simToReco) vs pu",nintPu,minPu,maxPu) );
382  histograms.h_simulpu.push_back( ibook.book1D("num_simul_pu","N of simulated tracks vs pu",nintPu,minPu,maxPu) );
383 
384  histograms.h_assocphi.push_back( ibook.book1D("num_assoc(simToReco)_phi","N of associated tracks (simToReco) vs phi",nintPhi,minPhi,maxPhi) );
385  histograms.h_simulphi.push_back( ibook.book1D("num_simul_phi","N of simulated tracks vs phi",nintPhi,minPhi,maxPhi) );
386 
387  histograms.h_assocdxy.push_back( ibook.book1D("num_assoc(simToReco)_dxy","N of associated tracks (simToReco) vs dxy",nintDxy,minDxy,maxDxy) );
388  histograms.h_simuldxy.push_back( ibook.book1D("num_simul_dxy","N of simulated tracks vs dxy",nintDxy,minDxy,maxDxy) );
389 
390  histograms.h_assocdz.push_back( ibook.book1D("num_assoc(simToReco)_dz","N of associated tracks (simToReco) vs dz",nintDz,minDz,maxDz) );
391  histograms.h_simuldz.push_back( ibook.book1D("num_simul_dz","N of simulated tracks vs dz",nintDz,minDz,maxDz) );
392 
393  histograms.h_assocvertpos.push_back( make1DIfLogX(ibook, useLogVertpos, "num_assoc(simToReco)_vertpos",
394  "N of associated tracks (simToReco) vs transverse vert position",
396  histograms.h_simulvertpos.push_back( make1DIfLogX(ibook, useLogVertpos, "num_simul_vertpos","N of simulated tracks vs transverse vert position",
398 
399  histograms.h_assoczpos.push_back( ibook.book1D("num_assoc(simToReco)_zpos","N of associated tracks (simToReco) vs z vert position",
401  histograms.h_simulzpos.push_back( ibook.book1D("num_simul_zpos","N of simulated tracks vs z vert position",nintZpos,minZpos,maxZpos) );
402 
403  histograms.h_assocdr.push_back( make1DIfLogX(ibook, true, "num_assoc(simToReco)_dr","N of associated tracks (simToReco) vs dR",nintdr,log10(mindr),log10(maxdr)) );
404  histograms.h_simuldr.push_back( make1DIfLogX(ibook, true, "num_simul_dr","N of simulated tracks vs dR",nintdr,log10(mindr),log10(maxdr)) );
405 
406  histograms.h_simul_simpvz.push_back( ibook.book1D("num_simul_simpvz", "N of simulated tracks vs. sim PV z", nintPVz, minPVz, maxPVz) );
407  histograms.h_assoc_simpvz.push_back( ibook.book1D("num_assoc(simToReco)_simpvz", "N of associated tracks (simToReco) vs. sim PV z", nintPVz, minPVz, maxPVz) );
408 
409  histograms.nrecHit_vs_nsimHit_sim2rec.push_back( doResolutionPlots ? ibook.book2D("nrecHit_vs_nsimHit_sim2rec","nrecHit vs nsimHit (Sim2RecAssoc)",
412 
413  // TODO: use the dynamic track algo priority order also here
414  constexpr auto nalgos = reco::TrackBase::algoSize;
415  histograms.h_duplicates_oriAlgo_vs_oriAlgo.push_back( ibook.book2D("duplicates_oriAlgo_vs_oriAlgo", "Duplicate tracks: originalAlgo vs originalAlgo",
416  nalgos,0,nalgos, nalgos,0,nalgos) );
417  setBinLabelsAlgo(histograms.h_duplicates_oriAlgo_vs_oriAlgo.back(), 1);
418  setBinLabelsAlgo(histograms.h_duplicates_oriAlgo_vs_oriAlgo.back(), 2);
419 }
#define constexpr
ConcurrentMonitorElement book2D(Args &&...args)
Definition: DQMStore.h:244
ConcurrentMonitorElement book1D(Args &&...args)
Definition: DQMStore.h:223
void MTVHistoProducerAlgoForTracker::bookSimTrackPVAssociationHistos ( DQMStore::ConcurrentBooker ibook,
Histograms histograms 
)

Definition at line 421 of file MTVHistoProducerAlgoForTracker.cc.

References DQMStore::ConcurrentBooker::book1D(), dxyDzZoom, MTVHistoProducerAlgoForTrackerHistograms::h_assoc_dzpvcut, MTVHistoProducerAlgoForTrackerHistograms::h_assoc_dzpvcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_assoc_dzpvsigcut, MTVHistoProducerAlgoForTrackerHistograms::h_assoc_dzpvsigcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_assocdxypv, MTVHistoProducerAlgoForTrackerHistograms::h_assocdxypvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_assocdzpv, MTVHistoProducerAlgoForTrackerHistograms::h_assocdzpvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_simul2_dzpvcut, MTVHistoProducerAlgoForTrackerHistograms::h_simul2_dzpvcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_simul2_dzpvsigcut, MTVHistoProducerAlgoForTrackerHistograms::h_simul2_dzpvsigcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_simul_dzpvcut, MTVHistoProducerAlgoForTrackerHistograms::h_simul_dzpvcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_simul_dzpvsigcut, MTVHistoProducerAlgoForTrackerHistograms::h_simul_dzpvsigcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_simuldxypv, MTVHistoProducerAlgoForTrackerHistograms::h_simuldxypvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_simuldzpv, MTVHistoProducerAlgoForTrackerHistograms::h_simuldzpvzoomed, maxDxy, maxDz, maxDzpvCum, maxDzpvsigCum, minDxy, minDz, nintDxy, nintDz, nintDzpvCum, and nintDzpvsigCum.

421  {
422  histograms.h_assocdxypv.push_back( ibook.book1D("num_assoc(simToReco)_dxypv","N of associated tracks (simToReco) vs dxy(PV)",nintDxy,minDxy,maxDxy) );
423  histograms.h_simuldxypv.push_back( ibook.book1D("num_simul_dxypv","N of simulated tracks vs dxy(PV)",nintDxy,minDxy,maxDxy) );
424 
425  histograms.h_assocdzpv.push_back( ibook.book1D("num_assoc(simToReco)_dzpv","N of associated tracks (simToReco) vs dz(PV)",nintDz,minDz,maxDz) );
426  histograms.h_simuldzpv.push_back( ibook.book1D("num_simul_dzpv","N of simulated tracks vs dz(PV)",nintDz,minDz,maxDz) );
427 
428  histograms.h_assocdxypvzoomed.push_back( ibook.book1D("num_assoc(simToReco)_dxypv_zoomed","N of associated tracks (simToReco) vs dxy(PV)",nintDxy,minDxy/dxyDzZoom,maxDxy/dxyDzZoom) );
429  histograms.h_simuldxypvzoomed.push_back( ibook.book1D("num_simul_dxypv_zoomed","N of simulated tracks vs dxy(PV)",nintDxy,minDxy/dxyDzZoom,maxDxy/dxyDzZoom) );
430 
431  histograms.h_assocdzpvzoomed.push_back( ibook.book1D("num_assoc(simToReco)_dzpv_zoomed","N of associated tracks (simToReco) vs dz(PV)",nintDz,minDz/dxyDzZoom,maxDz/dxyDzZoom) );
432  histograms.h_simuldzpvzoomed.push_back( ibook.book1D("num_simul_dzpv_zoomed","N of simulated tracks vs dz(PV)",nintDz,minDz/dxyDzZoom,maxDz/dxyDzZoom) );
433 
434  histograms.h_assoc_dzpvcut.push_back( ibook.book1D("num_assoc(simToReco)_dzpvcut","N of associated tracks (simToReco) vs dz(PV)",nintDzpvCum,0,maxDzpvCum) );
435  histograms.h_simul_dzpvcut.push_back( ibook.book1D("num_simul_dzpvcut","N of simulated tracks from sim PV",nintDzpvCum,0,maxDzpvCum) );
436  histograms.h_simul2_dzpvcut.push_back( ibook.book1D("num_simul2_dzpvcut","N of simulated tracks (associated to any track) from sim PV",nintDzpvCum,0,maxDzpvCum) );
437 
438  histograms.h_assoc_dzpvcut_pt.push_back( ibook.book1D("num_assoc(simToReco)_dzpvcut_pt","#sump_{T} of associated tracks (simToReco) vs dz(PV)",nintDzpvCum,0,maxDzpvCum) );
439  histograms.h_simul_dzpvcut_pt.push_back( ibook.book1D("num_simul_dzpvcut_pt","#sump_{T} of simulated tracks from sim PV",nintDzpvCum,0,maxDzpvCum) );
440  histograms.h_simul2_dzpvcut_pt.push_back( ibook.book1D("num_simul2_dzpvcut_pt","#sump_{T} of simulated tracks (associated to any track) from sim PV",nintDzpvCum,0,maxDzpvCum) );
441  histograms.h_assoc_dzpvcut_pt.back().enableSumw2();
442  histograms.h_simul_dzpvcut_pt.back().enableSumw2();
443  histograms.h_simul2_dzpvcut_pt.back().enableSumw2();
444 
445  histograms.h_assoc_dzpvsigcut.push_back( ibook.book1D("num_assoc(simToReco)_dzpvsigcut","N of associated tracks (simToReco) vs dz(PV)/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
446  histograms.h_simul_dzpvsigcut.push_back( ibook.book1D("num_simul_dzpvsigcut","N of simulated tracks from sim PV/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
447  histograms.h_simul2_dzpvsigcut.push_back( ibook.book1D("num_simul2_dzpvsigcut","N of simulated tracks (associated to any track) from sim PV/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
448 
449  histograms.h_assoc_dzpvsigcut_pt.push_back( ibook.book1D("num_assoc(simToReco)_dzpvsigcut_pt","#sump_{T} of associated tracks (simToReco) vs dz(PV)/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
450  histograms.h_simul_dzpvsigcut_pt.push_back( ibook.book1D("num_simul_dzpvsigcut_pt","#sump_{T} of simulated tracks from sim PV/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
451  histograms.h_simul2_dzpvsigcut_pt.push_back( ibook.book1D("num_simul2_dzpvsigcut_pt","#sump_{T} of simulated tracks (associated to any track) from sim PV/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
452  histograms.h_assoc_dzpvsigcut_pt.back().enableSumw2();
453  histograms.h_simul_dzpvsigcut_pt.back().enableSumw2();
454  histograms.h_simul2_dzpvsigcut_pt.back().enableSumw2();
455 }
ConcurrentMonitorElement book1D(Args &&...args)
Definition: DQMStore.h:223
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 1021 of file MTVHistoProducerAlgoForTracker.cc.

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

1021  {
1022  for (unsigned int i=0; i<v_dEdx.size(); i++) {
1023  const edm::ValueMap<reco::DeDxData>& dEdxTrack = *(v_dEdx[i]);
1024  const reco::DeDxData& dedx = dEdxTrack[trackref];
1025  histograms.h_dedx_estim[count][i].fill(dedx.dEdx());
1026  histograms.h_dedx_nom[count][i].fill(dedx.numberOfMeasurements());
1027  histograms.h_dedx_sat[count][i].fill(dedx.numberOfSaturatedMeasurements());
1028  }
1029 }
float dEdx() const
Definition: DeDxData.cc:26
unsigned int numberOfMeasurements() const
Definition: DeDxData.cc:37
int numberOfSaturatedMeasurements() const
Definition: DeDxData.cc:42
void MTVHistoProducerAlgoForTracker::fill_duplicate_histos ( const Histograms histograms,
int  count,
const reco::Track track1,
const reco::Track track2 
) const

Definition at line 1009 of file MTVHistoProducerAlgoForTracker.cc.

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

1012  {
1013  histograms.h_duplicates_oriAlgo_vs_oriAlgo[count].fill(track1.originalAlgo(), track2.originalAlgo());
1014 }
TrackAlgorithm originalAlgo() const
Definition: TrackBase.h:501
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,
const std::vector< float > &  mvas,
unsigned int  selectsLoose,
unsigned int  selectsHP 
) const

Definition at line 1032 of file MTVHistoProducerAlgoForTracker.cc.

References funct::abs(), reco::TrackBase::algo(), vertices_cff::chi2, KineDebug3::count(), doSeedPlots_, PVValHelper::dxy, reco::TrackBase::dxy(), PVValHelper::dz, reco::TrackBase::dz(), reco::TrackBase::dzError(), PVValHelper::eta, reco::Track::found(), getEta(), getPt(), getSeedingLayerSetBin(), MTVHistoProducerAlgoForTrackerHistograms::h_algo, MTVHistoProducerAlgoForTrackerHistograms::h_assoc23Dlayer, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_dzpvcut, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_dzpvcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_dzpvsigcut, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_dzpvsigcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_mva, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_mva_hp, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_mva_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_mva_vs_eta_hp, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_mva_vs_pt, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_mva_vs_pt_hp, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_mvacut, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_mvacut_hp, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_seedingLayerSet, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2_simpvz, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2chi2, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2dr, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2dxy, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2dxypv, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2dxypvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2dz, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2dzpv, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2dzpvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2eta, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2hit, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2layer, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2phi, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2pixellayer, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2pT, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2pu, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2vertpos, MTVHistoProducerAlgoForTrackerHistograms::h_assoc2zpos, MTVHistoProducerAlgoForTrackerHistograms::h_assocFraction, MTVHistoProducerAlgoForTrackerHistograms::h_assocSharedHit, MTVHistoProducerAlgoForTrackerHistograms::h_fake_mva_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::h_fake_mva_vs_eta_hp, MTVHistoProducerAlgoForTrackerHistograms::h_fake_mva_vs_pt, MTVHistoProducerAlgoForTrackerHistograms::h_fake_mva_vs_pt_hp, MTVHistoProducerAlgoForTrackerHistograms::h_looper3Dlayer, MTVHistoProducerAlgoForTrackerHistograms::h_looper_seedingLayerSet, MTVHistoProducerAlgoForTrackerHistograms::h_looper_simpvz, MTVHistoProducerAlgoForTrackerHistograms::h_looperchi2, MTVHistoProducerAlgoForTrackerHistograms::h_looperdr, MTVHistoProducerAlgoForTrackerHistograms::h_looperdxy, MTVHistoProducerAlgoForTrackerHistograms::h_looperdxypv, MTVHistoProducerAlgoForTrackerHistograms::h_looperdxypvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_looperdz, MTVHistoProducerAlgoForTrackerHistograms::h_looperdzpv, MTVHistoProducerAlgoForTrackerHistograms::h_looperdzpvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_loopereta, MTVHistoProducerAlgoForTrackerHistograms::h_looperhit, MTVHistoProducerAlgoForTrackerHistograms::h_looperlayer, MTVHistoProducerAlgoForTrackerHistograms::h_looperphi, MTVHistoProducerAlgoForTrackerHistograms::h_looperpixellayer, MTVHistoProducerAlgoForTrackerHistograms::h_looperpT, MTVHistoProducerAlgoForTrackerHistograms::h_looperpu, MTVHistoProducerAlgoForTrackerHistograms::h_loopervertpos, MTVHistoProducerAlgoForTrackerHistograms::h_looperzpos, MTVHistoProducerAlgoForTrackerHistograms::h_misid3Dlayer, MTVHistoProducerAlgoForTrackerHistograms::h_misidchi2, MTVHistoProducerAlgoForTrackerHistograms::h_misiddxy, MTVHistoProducerAlgoForTrackerHistograms::h_misiddxypv, MTVHistoProducerAlgoForTrackerHistograms::h_misiddxypvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_misiddz, MTVHistoProducerAlgoForTrackerHistograms::h_misiddzpv, MTVHistoProducerAlgoForTrackerHistograms::h_misiddzpvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_misideta, MTVHistoProducerAlgoForTrackerHistograms::h_misidhit, MTVHistoProducerAlgoForTrackerHistograms::h_misidlayer, MTVHistoProducerAlgoForTrackerHistograms::h_misidphi, MTVHistoProducerAlgoForTrackerHistograms::h_misidpixellayer, MTVHistoProducerAlgoForTrackerHistograms::h_misidpT, MTVHistoProducerAlgoForTrackerHistograms::h_misidpu, MTVHistoProducerAlgoForTrackerHistograms::h_pileup3Dlayer, MTVHistoProducerAlgoForTrackerHistograms::h_pileup_dzpvcut, MTVHistoProducerAlgoForTrackerHistograms::h_pileup_dzpvcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_pileup_dzpvsigcut, MTVHistoProducerAlgoForTrackerHistograms::h_pileup_dzpvsigcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_pileup_seedingLayerSet, MTVHistoProducerAlgoForTrackerHistograms::h_pileup_simpvz, MTVHistoProducerAlgoForTrackerHistograms::h_pileupchi2, MTVHistoProducerAlgoForTrackerHistograms::h_pileupdr, MTVHistoProducerAlgoForTrackerHistograms::h_pileupdxy, MTVHistoProducerAlgoForTrackerHistograms::h_pileupdxypv, MTVHistoProducerAlgoForTrackerHistograms::h_pileupdxypvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_pileupdz, MTVHistoProducerAlgoForTrackerHistograms::h_pileupdzpv, MTVHistoProducerAlgoForTrackerHistograms::h_pileupdzpvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_pileupeta, MTVHistoProducerAlgoForTrackerHistograms::h_pileuphit, MTVHistoProducerAlgoForTrackerHistograms::h_pileuplayer, MTVHistoProducerAlgoForTrackerHistograms::h_pileupphi, MTVHistoProducerAlgoForTrackerHistograms::h_pileuppixellayer, MTVHistoProducerAlgoForTrackerHistograms::h_pileuppT, MTVHistoProducerAlgoForTrackerHistograms::h_pileuppu, MTVHistoProducerAlgoForTrackerHistograms::h_pileupvertpos, MTVHistoProducerAlgoForTrackerHistograms::h_pileupzpos, MTVHistoProducerAlgoForTrackerHistograms::h_reco2eta, MTVHistoProducerAlgoForTrackerHistograms::h_reco2pT, MTVHistoProducerAlgoForTrackerHistograms::h_reco2pu, MTVHistoProducerAlgoForTrackerHistograms::h_reco3Dlayer, MTVHistoProducerAlgoForTrackerHistograms::h_reco_dzpvcut, MTVHistoProducerAlgoForTrackerHistograms::h_reco_dzpvcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_reco_dzpvsigcut, MTVHistoProducerAlgoForTrackerHistograms::h_reco_dzpvsigcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_reco_mva, MTVHistoProducerAlgoForTrackerHistograms::h_reco_mva_hp, MTVHistoProducerAlgoForTrackerHistograms::h_reco_mvacut, MTVHistoProducerAlgoForTrackerHistograms::h_reco_mvacut_hp, MTVHistoProducerAlgoForTrackerHistograms::h_reco_seedingLayerSet, MTVHistoProducerAlgoForTrackerHistograms::h_reco_simpvz, MTVHistoProducerAlgoForTrackerHistograms::h_recochi2, MTVHistoProducerAlgoForTrackerHistograms::h_recodr, MTVHistoProducerAlgoForTrackerHistograms::h_recodxy, MTVHistoProducerAlgoForTrackerHistograms::h_recodxypv, MTVHistoProducerAlgoForTrackerHistograms::h_recodxypvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_recodz, MTVHistoProducerAlgoForTrackerHistograms::h_recodzpv, MTVHistoProducerAlgoForTrackerHistograms::h_recodzpvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_recoeta, MTVHistoProducerAlgoForTrackerHistograms::h_recohit, MTVHistoProducerAlgoForTrackerHistograms::h_recolayer, MTVHistoProducerAlgoForTrackerHistograms::h_recophi, MTVHistoProducerAlgoForTrackerHistograms::h_recopixellayer, MTVHistoProducerAlgoForTrackerHistograms::h_recopT, MTVHistoProducerAlgoForTrackerHistograms::h_recopu, MTVHistoProducerAlgoForTrackerHistograms::h_recovertpos, MTVHistoProducerAlgoForTrackerHistograms::h_recozpos, reco::TrackBase::hitPattern(), reco::TrackBase::momentum(), nhits, nlayers, reco::TrackBase::normalizedChi2(), MTVHistoProducerAlgoForTrackerHistograms::nrecHit_vs_nsimHit_rec2sim, reco::TrackBase::numberOfValidHits(), reco::HitPattern::numberOfValidStripLayersWithMonoAndStereo(), phi, reco::HitPattern::pixelLayersWithMeasurement(), EnergyCorrector::pt, reco::TrackBase::referencePoint(), seedingLayerSetNames, muonCosmicCompatibility_cfi::sharedHits, mathSSE::sqrt(), reco::HitPattern::trackerLayersWithMeasurement(), trackFromSeedFitFailed(), trackSelectorVsEta, trackSelectorVsPhi, and trackSelectorVsPt.

1048  {
1049 
1050  //Fill track algo histogram
1051  histograms.h_algo[count].fill(track.algo());
1052  int sharedHits = sharedFraction * track.numberOfValidHits();
1053 
1054  //Compute fake rate vs eta
1055  const auto eta = getEta(track.momentum().eta());
1056  const auto phi = track.momentum().phi();
1057  const auto pt = getPt(sqrt(track.momentum().perp2()));
1058  const auto dxy = track.dxy(bsPosition);
1059  const auto dz = track.dz(bsPosition);
1060  const auto dxypv = pvPosition ? track.dxy(*pvPosition) : 0.0;
1061  const auto dzpv = pvPosition ? track.dz(*pvPosition) : 0.0;
1062  const auto dzpvsig = pvPosition ? dzpv / track.dzError() : 0.0;
1063  const auto nhits = track.found();
1064  const auto nlayers = track.hitPattern().trackerLayersWithMeasurement();
1065  const auto nPixelLayers = track.hitPattern().pixelLayersWithMeasurement();
1066  const auto n3DLayers = nPixelLayers + track.hitPattern().numberOfValidStripLayersWithMonoAndStereo();
1067  const auto refPointWrtBS = track.referencePoint() - bsPosition;
1068  const auto vertxy = std::sqrt(refPointWrtBS.perp2());
1069  const auto vertz = refPointWrtBS.z();
1070  const auto chi2 = track.normalizedChi2();
1071  const bool fillSeedingLayerSets = !seedingLayerSetNames.empty();
1072  const unsigned int seedingLayerSetBin = fillSeedingLayerSets ? getSeedingLayerSetBin(track, ttopo) : 0;
1073  const auto simpvz = simPVPosition ? simPVPosition->z() : 0.0;
1074 
1075  const bool paramsValid = !trackFromSeedFitFailed(track);
1076 
1077  if(paramsValid) {
1078  histograms.h_recoeta[count].fill(eta);
1079  histograms.h_recophi[count].fill(phi);
1080  histograms.h_recopT[count].fill(pt);
1081  histograms.h_recodxy[count].fill(dxy);
1082  histograms.h_recodz[count].fill(dz);
1083  histograms.h_recochi2[count].fill(chi2);
1084  histograms.h_recovertpos[count].fill(vertxy);
1085  histograms.h_recozpos[count].fill(vertz);
1086  histograms.h_recodr[count].fill(dR);
1087  if(fillSeedingLayerSets) histograms.h_reco_seedingLayerSet[count].fill(seedingLayerSetBin);
1088  if(pvPosition) {
1089  histograms.h_recodxypv[count].fill(dxypv);
1090  histograms.h_recodzpv[count].fill(dzpv);
1091  histograms.h_recodxypvzoomed[count].fill(dxypv);
1092  histograms.h_recodzpvzoomed[count].fill(dzpv);
1093 
1094  histograms.h_reco_dzpvcut[count].fill(std::abs(dzpv));
1095  histograms.h_reco_dzpvsigcut[count].fill(std::abs(dzpvsig));
1096  histograms.h_reco_dzpvcut_pt[count].fill(std::abs(dzpv), pt);
1097  histograms.h_reco_dzpvsigcut_pt[count].fill(std::abs(dzpvsig), pt);
1098  }
1099  if(simPVPosition) {
1100  histograms.h_reco_simpvz[count].fill(simpvz);
1101  }
1102  if((*trackSelectorVsEta)(track, bsPosition)) {
1103  histograms.h_reco2eta[count].fill(eta);
1104  }
1105  if((*trackSelectorVsPt)(track, bsPosition)) {
1106  histograms.h_reco2pT[count].fill(pt);
1107  }
1108  }
1109  histograms.h_recohit[count].fill(nhits);
1110  histograms.h_recolayer[count].fill(nlayers);
1111  histograms.h_recopixellayer[count].fill(nPixelLayers);
1112  histograms.h_reco3Dlayer[count].fill(n3DLayers);
1113  histograms.h_recopu[count].fill(numVertices);
1114  if((*trackSelectorVsPhi)(track, bsPosition)) {
1115  histograms.h_reco2pu[count].fill(numVertices);
1116  }
1117 
1118  fillMVAHistos(histograms.h_reco_mva[count], histograms.h_reco_mvacut[count], histograms.h_reco_mva_hp[count], histograms.h_reco_mvacut_hp[count], mvas, selectsLoose, selectsHP);
1119 
1120  if (isMatched) {
1121  if(paramsValid) {
1122  histograms.h_assoc2eta[count].fill(eta);
1123  histograms.h_assoc2phi[count].fill(phi);
1124  histograms.h_assoc2pT[count].fill(pt);
1125  histograms.h_assoc2dxy[count].fill(dxy);
1126  histograms.h_assoc2dz[count].fill(dz);
1127  histograms.h_assoc2hit[count].fill(nhits);
1128  histograms.h_assoc2chi2[count].fill(chi2);
1129  histograms.h_assoc2vertpos[count].fill(vertxy);
1130  histograms.h_assoc2zpos[count].fill(vertz);
1131  histograms.h_assoc2dr[count].fill(dR);
1132  if(fillSeedingLayerSets) histograms.h_assoc2_seedingLayerSet[count].fill(seedingLayerSetBin);
1133  if(pvPosition) {
1134  histograms.h_assoc2dxypv[count].fill(dxypv);
1135  histograms.h_assoc2dzpv[count].fill(dzpv);
1136  histograms.h_assoc2dxypvzoomed[count].fill(dxypv);
1137  histograms.h_assoc2dzpvzoomed[count].fill(dzpv);
1138 
1139  histograms.h_assoc2_dzpvcut[count].fill(std::abs(dzpv));
1140  histograms.h_assoc2_dzpvsigcut[count].fill(std::abs(dzpvsig));
1141  histograms.h_assoc2_dzpvcut_pt[count].fill(std::abs(dzpv), pt);
1142  histograms.h_assoc2_dzpvsigcut_pt[count].fill(std::abs(dzpvsig), pt);
1143  }
1144  if(simPVPosition) {
1145  histograms.h_assoc2_simpvz[count].fill(simpvz);
1146  }
1147  }
1148  histograms.h_assoc2layer[count].fill(nlayers);
1149  histograms.h_assoc2pixellayer[count].fill(nPixelLayers);
1150  histograms.h_assoc23Dlayer[count].fill(n3DLayers);
1151  histograms.h_assoc2pu[count].fill(numVertices);
1152 
1153  fillMVAHistos(histograms.h_assoc2_mva[count], histograms.h_assoc2_mvacut[count], histograms.h_assoc2_mva_hp[count], histograms.h_assoc2_mvacut_hp[count], mvas, selectsLoose, selectsHP);
1154  fillMVAHistos(pt, histograms.h_assoc2_mva_vs_pt[count], histograms.h_assoc2_mva_vs_pt_hp[count], mvas, selectsLoose, selectsHP);
1155  fillMVAHistos(eta, histograms.h_assoc2_mva_vs_eta[count], histograms.h_assoc2_mva_vs_eta_hp[count], mvas, selectsLoose, selectsHP);
1156 
1157  if(histograms.nrecHit_vs_nsimHit_rec2sim[count]) histograms.nrecHit_vs_nsimHit_rec2sim[count].fill( track.numberOfValidHits(),nSimHits);
1158  histograms.h_assocFraction[count].fill( sharedFraction);
1159  histograms.h_assocSharedHit[count].fill( sharedHits);
1160 
1161  if (!doSeedPlots_ && !isChargeMatched) {
1162  histograms.h_misideta[count].fill(eta);
1163  histograms.h_misidphi[count].fill(phi);
1164  histograms.h_misidpT[count].fill(pt);
1165  histograms.h_misiddxy[count].fill(dxy);
1166  histograms.h_misiddz[count].fill(dz);
1167  histograms.h_misidhit[count].fill(nhits);
1168  histograms.h_misidlayer[count].fill(nlayers);
1169  histograms.h_misidpixellayer[count].fill(nPixelLayers);
1170  histograms.h_misid3Dlayer[count].fill(n3DLayers);
1171  histograms.h_misidpu[count].fill(numVertices);
1172  histograms.h_misidchi2[count].fill(chi2);
1173  if(pvPosition) {
1174  histograms.h_misiddxypv[count].fill(dxypv);
1175  histograms.h_misiddzpv[count].fill(dzpv);
1176  histograms.h_misiddxypvzoomed[count].fill(dxypv);
1177  histograms.h_misiddzpvzoomed[count].fill(dzpv);
1178  }
1179  }
1180 
1181  if (numAssocRecoTracks>1) {
1182  if(paramsValid) {
1183  histograms.h_loopereta[count].fill(eta);
1184  histograms.h_looperphi[count].fill(phi);
1185  histograms.h_looperpT[count].fill(pt);
1186  histograms.h_looperdxy[count].fill(dxy);
1187  histograms.h_looperdz[count].fill(dz);
1188  histograms.h_looperchi2[count].fill(chi2);
1189  histograms.h_loopervertpos[count].fill(vertxy);
1190  histograms.h_looperzpos[count].fill(vertz);
1191  histograms.h_looperdr[count].fill(dR);
1192  if(fillSeedingLayerSets) histograms.h_looper_seedingLayerSet[count].fill(seedingLayerSetBin);
1193  if(pvPosition) {
1194  histograms.h_looperdxypv[count].fill(dxypv);
1195  histograms.h_looperdzpv[count].fill(dzpv);
1196  histograms.h_looperdxypvzoomed[count].fill(dxypv);
1197  histograms.h_looperdzpvzoomed[count].fill(dzpv);
1198  }
1199  if(simPVPosition) {
1200  histograms.h_looper_simpvz[count].fill(simpvz);
1201  }
1202  }
1203  histograms.h_looperhit[count].fill(nhits);
1204  histograms.h_looperlayer[count].fill(nlayers);
1205  histograms.h_looperpixellayer[count].fill(nPixelLayers);
1206  histograms.h_looper3Dlayer[count].fill(n3DLayers);
1207  histograms.h_looperpu[count].fill(numVertices);
1208  }
1209  if(!isSigMatched) {
1210  if(paramsValid) {
1211  histograms.h_pileupeta[count].fill(eta);
1212  histograms.h_pileupphi[count].fill(phi);
1213  histograms.h_pileuppT[count].fill(pt);
1214  histograms.h_pileupdxy[count].fill(dxy);
1215  histograms.h_pileupdz[count].fill(dz);
1216  histograms.h_pileupchi2[count].fill(chi2);
1217  histograms.h_pileupvertpos[count].fill(vertxy);
1218  histograms.h_pileupzpos[count].fill(vertz);
1219  histograms.h_pileupdr[count].fill(dR);
1220  if(fillSeedingLayerSets) histograms.h_pileup_seedingLayerSet[count].fill(seedingLayerSetBin);
1221  if(pvPosition) {
1222  histograms.h_pileupdxypv[count].fill(dxypv);
1223  histograms.h_pileupdzpv[count].fill(dzpv);
1224  histograms.h_pileupdxypvzoomed[count].fill(dxypv);
1225  histograms.h_pileupdzpvzoomed[count].fill(dzpv);
1226 
1227  histograms.h_pileup_dzpvcut[count].fill(std::abs(dzpv));
1228  histograms.h_pileup_dzpvsigcut[count].fill(std::abs(dzpvsig));
1229  histograms.h_pileup_dzpvcut_pt[count].fill(std::abs(dzpv), pt);
1230  histograms.h_pileup_dzpvsigcut_pt[count].fill(std::abs(dzpvsig), pt);
1231  }
1232  if(simPVPosition) {
1233  histograms.h_pileup_simpvz[count].fill(simpvz);
1234  }
1235  }
1236  histograms.h_pileuphit[count].fill(nhits);
1237  histograms.h_pileuplayer[count].fill(nlayers);
1238  histograms.h_pileuppixellayer[count].fill(nPixelLayers);
1239  histograms.h_pileup3Dlayer[count].fill(n3DLayers);
1240  histograms.h_pileuppu[count].fill(numVertices);
1241  }
1242  }
1243  else { // !isMatched
1244  fillMVAHistos(pt, histograms.h_fake_mva_vs_pt[count], histograms.h_fake_mva_vs_pt_hp[count], mvas, selectsLoose, selectsHP);
1245  fillMVAHistos(eta, histograms.h_fake_mva_vs_eta[count], histograms.h_fake_mva_vs_eta_hp[count], mvas, selectsLoose, selectsHP);
1246  }
1247 }
const Point & referencePoint() const
Reference point on the track.
Definition: TrackBase.h:681
bool trackFromSeedFitFailed(const reco::Track &track)
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:561
std::unique_ptr< RecoTrackSelectorBase > trackSelectorVsPhi
int pixelLayersWithMeasurement() const
Definition: HitPattern.cc:499
const Vector & momentum() const
track momentum vector
Definition: TrackBase.h:675
unsigned int getSeedingLayerSetBin(const reco::Track &track, const TrackerTopology &ttopo) const
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:518
TrackAlgorithm algo() const
Definition: TrackBase.h:497
int numberOfValidStripLayersWithMonoAndStereo(uint16_t stripdet, uint16_t layer) const
Definition: HitPattern.cc:341
T sqrt(T t)
Definition: SSEVec.h:18
std::unique_ptr< RecoTrackSelectorBase > trackSelectorVsPt
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isMatched(TrackingRecHit const &hit)
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:820
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:609
double dzError() const
error on dz
Definition: TrackBase.h:814
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:446
std::vector< std::string > seedingLayerSetNames
unsigned short found() const
Number of valid hits on track.
Definition: Track.h:194
std::unique_ptr< RecoTrackSelectorBase > trackSelectorVsEta
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
Definition: TrackBase.h:591
void MTVHistoProducerAlgoForTracker::fill_generic_simTrack_histos ( const Histograms histograms,
const TrackingParticle::Vector momentumTP,
const TrackingParticle::Point vertex,
int  bx 
) const

Definition at line 856 of file MTVHistoProducerAlgoForTracker.cc.

References ConcurrentMonitorElement::fill(), MTVHistoProducerAlgoForTrackerHistograms::h_bunchxSIM, MTVHistoProducerAlgoForTrackerHistograms::h_etaSIM, MTVHistoProducerAlgoForTrackerHistograms::h_ptSIM, MTVHistoProducerAlgoForTrackerHistograms::h_vertposSIM, and mathSSE::sqrt().

859  {
860  if(bx == 0) {
861  histograms.h_ptSIM.fill(sqrt(momentumTP.perp2()));
862  histograms.h_etaSIM.fill(momentumTP.eta());
863  histograms.h_vertposSIM.fill(sqrt(vertexTP.perp2()));
864  }
865  histograms.h_bunchxSIM.fill(bx);
866 }
T sqrt(T t)
Definition: SSEVec.h:18
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,
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 870 of file MTVHistoProducerAlgoForTracker.cc.

References funct::abs(), KineDebug3::count(), reco::TrackBase::dz(), reco::TrackBase::dzError(), PVValHelper::eta, getEta(), getPt(), MTVHistoProducerAlgoForTrackerHistograms::h_assoc3Dlayer, MTVHistoProducerAlgoForTrackerHistograms::h_assoc_dzpvcut, MTVHistoProducerAlgoForTrackerHistograms::h_assoc_dzpvcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_assoc_dzpvsigcut, MTVHistoProducerAlgoForTrackerHistograms::h_assoc_dzpvsigcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_assoc_mvacut, MTVHistoProducerAlgoForTrackerHistograms::h_assoc_mvacut_hp, MTVHistoProducerAlgoForTrackerHistograms::h_assoc_simpvz, MTVHistoProducerAlgoForTrackerHistograms::h_assocdr, MTVHistoProducerAlgoForTrackerHistograms::h_assocdxy, MTVHistoProducerAlgoForTrackerHistograms::h_assocdxypv, MTVHistoProducerAlgoForTrackerHistograms::h_assocdxypvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_assocdz, MTVHistoProducerAlgoForTrackerHistograms::h_assocdzpv, MTVHistoProducerAlgoForTrackerHistograms::h_assocdzpvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_assoceta, MTVHistoProducerAlgoForTrackerHistograms::h_assochit, MTVHistoProducerAlgoForTrackerHistograms::h_assoclayer, MTVHistoProducerAlgoForTrackerHistograms::h_assocphi, MTVHistoProducerAlgoForTrackerHistograms::h_assocpixellayer, MTVHistoProducerAlgoForTrackerHistograms::h_assocpT, MTVHistoProducerAlgoForTrackerHistograms::h_assocpu, MTVHistoProducerAlgoForTrackerHistograms::h_assocvertpos, MTVHistoProducerAlgoForTrackerHistograms::h_assoczpos, MTVHistoProducerAlgoForTrackerHistograms::h_simul2_dzpvcut, MTVHistoProducerAlgoForTrackerHistograms::h_simul2_dzpvcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_simul2_dzpvsigcut, MTVHistoProducerAlgoForTrackerHistograms::h_simul2_dzpvsigcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_simul2_mvacut, MTVHistoProducerAlgoForTrackerHistograms::h_simul2_mvacut_hp, MTVHistoProducerAlgoForTrackerHistograms::h_simul3Dlayer, MTVHistoProducerAlgoForTrackerHistograms::h_simul_dzpvcut, MTVHistoProducerAlgoForTrackerHistograms::h_simul_dzpvcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_simul_dzpvsigcut, MTVHistoProducerAlgoForTrackerHistograms::h_simul_dzpvsigcut_pt, MTVHistoProducerAlgoForTrackerHistograms::h_simul_simpvz, MTVHistoProducerAlgoForTrackerHistograms::h_simuldr, MTVHistoProducerAlgoForTrackerHistograms::h_simuldxy, MTVHistoProducerAlgoForTrackerHistograms::h_simuldxypv, MTVHistoProducerAlgoForTrackerHistograms::h_simuldxypvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_simuldz, MTVHistoProducerAlgoForTrackerHistograms::h_simuldzpv, MTVHistoProducerAlgoForTrackerHistograms::h_simuldzpvzoomed, MTVHistoProducerAlgoForTrackerHistograms::h_simuleta, MTVHistoProducerAlgoForTrackerHistograms::h_simulhit, MTVHistoProducerAlgoForTrackerHistograms::h_simullayer, MTVHistoProducerAlgoForTrackerHistograms::h_simulphi, MTVHistoProducerAlgoForTrackerHistograms::h_simulpixellayer, MTVHistoProducerAlgoForTrackerHistograms::h_simulpT, MTVHistoProducerAlgoForTrackerHistograms::h_simulpu, MTVHistoProducerAlgoForTrackerHistograms::h_simulvertpos, MTVHistoProducerAlgoForTrackerHistograms::h_simulzpos, mps_fire::i, trackerHitRTTI::isMatched(), maxMVA, MTVHistoProducerAlgoForTrackerHistograms::nrecHit_vs_nsimHit_sim2rec, reco::TrackBase::numberOfValidHits(), phi, EnergyCorrector::pt, mathSSE::sqrt(), TpSelectorForEfficiencyVsEta, TpSelectorForEfficiencyVsPhi, TpSelectorForEfficiencyVsPt, TpSelectorForEfficiencyVsVTXR, TpSelectorForEfficiencyVsVTXZ, and HiIsolationCommonParameters_cff::track.

886  {
887  bool isMatched = track;
888  const auto eta = getEta(momentumTP.eta());
889  const auto phi = momentumTP.phi();
890  const auto pt = getPt(sqrt(momentumTP.perp2()));
891  const auto nSim3DLayers = nSimPixelLayers + nSimStripMonoAndStereoLayers;
892 
893  const auto vertexTPwrtBS = vertexTP - bsPosition;
894  const auto vertxy = std::sqrt(vertexTPwrtBS.perp2());
895  const auto vertz = vertexTPwrtBS.z();
896 
897  //efficiency vs. cut on MVA
898  //
899  // Note that this includes also pileup TPs, as "signalOnly"
900  // selection is applied only in the TpSelector*. Have to think if
901  // this is really what we want.
902  if(isMatched) {
903  for(size_t i=0; i<mvas.size(); ++i) {
904  if(i<=selectsLoose) {
905  histograms.h_simul2_mvacut[count][i].fill(maxMVA);
906  histograms.h_assoc_mvacut[count][i].fill(mvas[i]);
907  }
908  if(i>=1 && i<=selectsHP) {
909  histograms.h_simul2_mvacut_hp[count][i].fill(maxMVA);
910  histograms.h_assoc_mvacut_hp[count][i].fill(mvas[i]);
911  }
912  }
913  }
914 
915  if((*TpSelectorForEfficiencyVsEta)(tp)){
916  //effic vs eta
917  histograms.h_simuleta[count].fill(eta);
918  if (isMatched) histograms.h_assoceta[count].fill(eta);
919  }
920 
921  if((*TpSelectorForEfficiencyVsPhi)(tp)){
922  histograms.h_simulphi[count].fill(phi);
923  if (isMatched) histograms.h_assocphi[count].fill(phi);
924  //effic vs hits
925  histograms.h_simulhit[count].fill(nSimHits);
926  histograms.h_simullayer[count].fill(nSimLayers);
927  histograms.h_simulpixellayer[count].fill(nSimPixelLayers);
928  histograms.h_simul3Dlayer[count].fill(nSim3DLayers);
929  if(isMatched) {
930  histograms.h_assochit[count].fill(nSimHits);
931  histograms.h_assoclayer[count].fill(nSimLayers);
932  histograms.h_assocpixellayer[count].fill(nSimPixelLayers);
933  histograms.h_assoc3Dlayer[count].fill(nSim3DLayers);
934  if(histograms.nrecHit_vs_nsimHit_sim2rec[count]) histograms.nrecHit_vs_nsimHit_sim2rec[count].fill( track->numberOfValidHits(),nSimHits);
935  }
936  //effic vs pu
937  histograms.h_simulpu[count].fill(numVertices);
938  if(isMatched) histograms.h_assocpu[count].fill(numVertices);
939  //efficiency vs dR
940  histograms.h_simuldr[count].fill(dR);
941  if (isMatched) histograms.h_assocdr[count].fill(dR);
942  }
943 
944  if((*TpSelectorForEfficiencyVsPt)(tp)){
945  histograms.h_simulpT[count].fill(pt);
946  if (isMatched) histograms.h_assocpT[count].fill(pt);
947  }
948 
950  histograms.h_simuldxy[count].fill(dxySim);
951  if (isMatched) histograms.h_assocdxy[count].fill(dxySim);
952  if(pvPosition) {
953  histograms.h_simuldxypv[count].fill(dxyPVSim);
954  histograms.h_simuldxypvzoomed[count].fill(dxyPVSim);
955  if (isMatched) {
956  histograms.h_assocdxypv[count].fill(dxyPVSim);
957  histograms.h_assocdxypvzoomed[count].fill(dxyPVSim);
958  }
959  }
960 
961  histograms.h_simulvertpos[count].fill(vertxy);
962  if (isMatched) histograms.h_assocvertpos[count].fill(vertxy);
963  }
964 
965 
967  histograms.h_simuldz[count].fill(dzSim);
968  if (isMatched) histograms.h_assocdz[count].fill(dzSim);
969 
970  histograms.h_simulzpos[count].fill(vertz);
971  if (isMatched) histograms.h_assoczpos[count].fill(vertz);
972 
973  if(pvPosition) {
974  histograms.h_simuldzpv[count].fill(dzPVSim);
975  histograms.h_simuldzpvzoomed[count].fill(dzPVSim);
976 
977  histograms.h_simul_dzpvcut[count].fill(0);
978  histograms.h_simul_dzpvsigcut[count].fill(0);
979  histograms.h_simul_dzpvcut_pt[count].fill(0, pt);
980  histograms.h_simul_dzpvsigcut_pt[count].fill(0, pt);
981 
982  if(isMatched) {
983  histograms.h_assocdzpv[count].fill(dzPVSim);
984  histograms.h_assocdzpvzoomed[count].fill(dzPVSim);
985 
986  histograms.h_simul2_dzpvcut[count].fill(0);
987  histograms.h_simul2_dzpvsigcut[count].fill(0);
988  histograms.h_simul2_dzpvcut_pt[count].fill(0, pt);
989  histograms.h_simul2_dzpvsigcut_pt[count].fill(0, pt);
990  const double dzpvcut = std::abs(track->dz(*pvPosition));
991  const double dzpvsigcut = dzpvcut / track->dzError();
992  histograms.h_assoc_dzpvcut[count].fill(dzpvcut);
993  histograms.h_assoc_dzpvsigcut[count].fill(dzpvsigcut);
994  histograms.h_assoc_dzpvcut_pt[count].fill(dzpvcut, pt);
995  histograms.h_assoc_dzpvsigcut_pt[count].fill(dzpvsigcut, pt);
996  }
997  }
998  if(simPVPosition) {
999  const auto simpvz = simPVPosition->z();
1000  histograms.h_simul_simpvz[count].fill(simpvz);
1001  if(isMatched) {
1002  histograms.h_assoc_simpvz[count].fill(simpvz);
1003  }
1004  }
1005  }
1006 
1007 }
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsPt
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsEta
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsVTXR
T sqrt(T t)
Definition: SSEVec.h:18
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isMatched(TrackingRecHit const &hit)
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:820
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:609
double dzError() const
error on dz
Definition: TrackBase.h:814
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsPhi
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsVTXZ
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 1557 of file MTVHistoProducerAlgoForTracker.cc.

References KineDebug3::count(), getEta(), getPt(), GpSelectorForEfficiencyVsEta, GpSelectorForEfficiencyVsPhi, GpSelectorForEfficiencyVsPt, GpSelectorForEfficiencyVsVTXR, GpSelectorForEfficiencyVsVTXZ, MTVHistoProducerAlgoForTrackerHistograms::h_assocdxy, MTVHistoProducerAlgoForTrackerHistograms::h_assocdz, MTVHistoProducerAlgoForTrackerHistograms::h_assoceta, MTVHistoProducerAlgoForTrackerHistograms::h_assochit, MTVHistoProducerAlgoForTrackerHistograms::h_assocphi, MTVHistoProducerAlgoForTrackerHistograms::h_assocpT, MTVHistoProducerAlgoForTrackerHistograms::h_assocpu, MTVHistoProducerAlgoForTrackerHistograms::h_assocvertpos, MTVHistoProducerAlgoForTrackerHistograms::h_assoczpos, MTVHistoProducerAlgoForTrackerHistograms::h_simuldxy, MTVHistoProducerAlgoForTrackerHistograms::h_simuldz, MTVHistoProducerAlgoForTrackerHistograms::h_simuleta, MTVHistoProducerAlgoForTrackerHistograms::h_simulhit, MTVHistoProducerAlgoForTrackerHistograms::h_simulphi, MTVHistoProducerAlgoForTrackerHistograms::h_simulpT, MTVHistoProducerAlgoForTrackerHistograms::h_simulpu, MTVHistoProducerAlgoForTrackerHistograms::h_simulvertpos, MTVHistoProducerAlgoForTrackerHistograms::h_simulzpos, trackerHitRTTI::isMatched(), MTVHistoProducerAlgoForTrackerHistograms::nrecHit_vs_nsimHit_sim2rec, reco::TrackBase::numberOfValidHits(), mathSSE::sqrt(), and HiIsolationCommonParameters_cff::track.

1564  {
1565 
1566  bool isMatched = track;
1567 
1568  if((*GpSelectorForEfficiencyVsEta)(tp)){
1569  //effic vs eta
1570  histograms.h_simuleta[count].fill(getEta(momentumTP.eta()));
1571  if (isMatched) histograms.h_assoceta[count].fill(getEta(momentumTP.eta()));
1572  }
1573 
1574  if((*GpSelectorForEfficiencyVsPhi)(tp)){
1575  histograms.h_simulphi[count].fill(momentumTP.phi());
1576  if (isMatched) histograms.h_assocphi[count].fill(momentumTP.phi());
1577  //effic vs hits
1578  histograms.h_simulhit[count].fill((int)nSimHits);
1579  if(isMatched) {
1580  histograms.h_assochit[count].fill((int)nSimHits);
1581  if(histograms.nrecHit_vs_nsimHit_sim2rec[count]) histograms.nrecHit_vs_nsimHit_sim2rec[count].fill(track->numberOfValidHits(),nSimHits);
1582  }
1583  //effic vs pu
1584  histograms.h_simulpu[count].fill(numVertices);
1585  if (isMatched) histograms.h_assocpu[count].fill(numVertices);
1586  //efficiency vs dR
1587  //not implemented for now
1588  }
1589 
1590  if((*GpSelectorForEfficiencyVsPt)(tp)){
1591  histograms.h_simulpT[count].fill(getPt(sqrt(momentumTP.perp2())));
1592  if (isMatched) histograms.h_assocpT[count].fill(getPt(sqrt(momentumTP.perp2())));
1593  }
1594 
1595  if((*GpSelectorForEfficiencyVsVTXR)(tp)){
1596  histograms.h_simuldxy[count].fill(dxySim);
1597  if (isMatched) histograms.h_assocdxy[count].fill(dxySim);
1598 
1599  histograms.h_simulvertpos[count].fill(sqrt(vertexTP.perp2()));
1600  if (isMatched) histograms.h_assocvertpos[count].fill(sqrt(vertexTP.perp2()));
1601  }
1602 
1603  if((*GpSelectorForEfficiencyVsVTXZ)(tp)){
1604  histograms.h_simuldz[count].fill(dzSim);
1605  if (isMatched) histograms.h_assocdz[count].fill(dzSim);
1606 
1607  histograms.h_simulzpos[count].fill(vertexTP.z());
1608  if (isMatched) histograms.h_assoczpos[count].fill(vertexTP.z());
1609  }
1610 
1611 }
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsVTXR
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsVTXZ
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsPt
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsPhi
T sqrt(T t)
Definition: SSEVec.h:18
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsEta
bool isMatched(TrackingRecHit const &hit)
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:820
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 1307 of file MTVHistoProducerAlgoForTracker.cc.

References MTVHistoProducerAlgoForTrackerHistograms::chi2_vs_phi, MTVHistoProducerAlgoForTrackerHistograms::cotThetares_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::cotThetares_vs_pt, KineDebug3::count(), TrackingParticleIP::dxy(), reco::TrackBase::dxy(), reco::TrackBase::dxyError(), MTVHistoProducerAlgoForTrackerHistograms::dxypull_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::dxyres_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::dxyres_vs_pt, TrackingParticleIP::dz(), reco::TrackBase::dz(), reco::TrackBase::dzError(), MTVHistoProducerAlgoForTrackerHistograms::dzpull_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::dzres_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::dzres_vs_pt, reco::TrackBase::eta(), MTVHistoProducerAlgoForTrackerHistograms::etares_vs_eta, getEta(), getPt(), getRecoMomentum(), MTVHistoProducerAlgoForTrackerHistograms::h_eta, MTVHistoProducerAlgoForTrackerHistograms::h_pt, MTVHistoProducerAlgoForTrackerHistograms::h_pullDxy, MTVHistoProducerAlgoForTrackerHistograms::h_pullDz, MTVHistoProducerAlgoForTrackerHistograms::h_pullPhi, MTVHistoProducerAlgoForTrackerHistograms::h_pullQoverp, MTVHistoProducerAlgoForTrackerHistograms::h_pullTheta, LogTrace, M_PI, MTVHistoProducerAlgoForTrackerHistograms::nhits_vs_phi, reco::TrackBase::normalizedChi2(), reco::TrackBase::numberOfValidHits(), MTVHistoProducerAlgoForTrackerHistograms::phimean_vs_eta_phi, MTVHistoProducerAlgoForTrackerHistograms::phipull_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::phipull_vs_phi, MTVHistoProducerAlgoForTrackerHistograms::phires_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::phires_vs_phi, MTVHistoProducerAlgoForTrackerHistograms::phires_vs_pt, MTVHistoProducerAlgoForTrackerHistograms::ptmean_vs_eta_phi, MTVHistoProducerAlgoForTrackerHistograms::ptpull_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::ptpull_vs_phi, MTVHistoProducerAlgoForTrackerHistograms::ptres_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::ptres_vs_phi, MTVHistoProducerAlgoForTrackerHistograms::ptres_vs_pt, mathSSE::sqrt(), funct::tan(), reco::TrackBase::theta(), MTVHistoProducerAlgoForTrackerHistograms::thetapull_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::thetapull_vs_phi, and trackFromSeedFitFailed().

1313  {
1314  if(trackFromSeedFitFailed(track))
1315  return;
1316 
1317  // evaluation of TP parameters
1318  double qoverpSim = chargeTP/sqrt(momentumTP.x()*momentumTP.x()+momentumTP.y()*momentumTP.y()+momentumTP.z()*momentumTP.z());
1319  double lambdaSim = M_PI/2-momentumTP.theta();
1320  double phiSim = momentumTP.phi();
1321  double dxySim = TrackingParticleIP::dxy(vertexTP, momentumTP, bsPosition);
1322  double dzSim = TrackingParticleIP::dz(vertexTP, momentumTP, bsPosition);
1323 
1324 
1325  // reco::Track::ParameterVector rParameters = track.parameters(); // UNUSED
1326 
1327  double qoverpRec(0);
1328  double qoverpErrorRec(0);
1329  double ptRec(0);
1330  double ptErrorRec(0);
1331  double lambdaRec(0);
1332  double lambdaErrorRec(0);
1333  double phiRec(0);
1334  double phiErrorRec(0);
1335 
1336  /* TO BE FIXED LATER -----------
1337  //loop to decide whether to take gsfTrack (utilisation of mode-function) or common track
1338  const GsfTrack* gsfTrack(0);
1339  if(useGsf){
1340  gsfTrack = dynamic_cast<const GsfTrack*>(&(*track));
1341  if (gsfTrack==0) edm::LogInfo("TrackValidator") << "Trying to access mode for a non-GsfTrack";
1342  }
1343 
1344  if (gsfTrack) {
1345  // get values from mode
1346  getRecoMomentum(*gsfTrack, ptRec, ptErrorRec, qoverpRec, qoverpErrorRec,
1347  lambdaRec,lambdaErrorRec, phiRec, phiErrorRec);
1348  }
1349 
1350  else {
1351  // get values from track (without mode)
1352  getRecoMomentum(*track, ptRec, ptErrorRec, qoverpRec, qoverpErrorRec,
1353  lambdaRec,lambdaErrorRec, phiRec, phiErrorRec);
1354  }
1355  */
1356  getRecoMomentum(track, ptRec, ptErrorRec, qoverpRec, qoverpErrorRec,
1357  lambdaRec,lambdaErrorRec, phiRec, phiErrorRec);
1358  // -------------
1359 
1360  double ptError = ptErrorRec;
1361  double ptres=ptRec-sqrt(momentumTP.perp2());
1362  double etares=track.eta()-momentumTP.Eta();
1363 
1364 
1365  double dxyRec = track.dxy(bsPosition);
1366  double dzRec = track.dz(bsPosition);
1367 
1368  const auto phiRes = phiRec-phiSim;
1369  const auto dxyRes = dxyRec-dxySim;
1370  const auto dzRes = dzRec-dzSim;
1371  const auto cotThetaRes = 1/tan(M_PI*0.5-lambdaRec)-1/tan(M_PI*0.5-lambdaSim);
1372 
1373  // eta residue; pt, k, theta, phi, dxy, dz pulls
1374  double qoverpPull=(qoverpRec-qoverpSim)/qoverpErrorRec;
1375  double thetaPull=(lambdaRec-lambdaSim)/lambdaErrorRec;
1376  double phiPull=phiRes/phiErrorRec;
1377  double dxyPull=dxyRes/track.dxyError();
1378  double dzPull=dzRes/track.dzError();
1379 
1380 #ifdef EDM_ML_DEBUG
1381  double contrib_Qoverp = ((qoverpRec-qoverpSim)/qoverpErrorRec)*
1382  ((qoverpRec-qoverpSim)/qoverpErrorRec)/5;
1383  double contrib_dxy = ((dxyRec-dxySim)/track.dxyError())*((dxyRec-dxySim)/track.dxyError())/5;
1384  double contrib_dz = ((dzRec-dzSim)/track.dzError())*((dzRec-dzSim)/track.dzError())/5;
1385  double contrib_theta = ((lambdaRec-lambdaSim)/lambdaErrorRec)*
1386  ((lambdaRec-lambdaSim)/lambdaErrorRec)/5;
1387  double contrib_phi = ((phiRec-phiSim)/phiErrorRec)*
1388  ((phiRec-phiSim)/phiErrorRec)/5;
1389 
1390  LogTrace("TrackValidatorTEST")
1391  //<< "assocChi2=" << tp.begin()->second << "\n"
1392  << "" << "\n"
1393  << "ptREC=" << ptRec << "\n" << "etaREC=" << track.eta() << "\n" << "qoverpREC=" << qoverpRec << "\n"
1394  << "dxyREC=" << dxyRec << "\n" << "dzREC=" << dzRec << "\n"
1395  << "thetaREC=" << track.theta() << "\n" << "phiREC=" << phiRec << "\n"
1396  << "" << "\n"
1397  << "qoverpError()=" << qoverpErrorRec << "\n" << "dxyError()=" << track.dxyError() << "\n"<< "dzError()="
1398  << track.dzError() << "\n"
1399  << "thetaError()=" << lambdaErrorRec << "\n" << "phiError()=" << phiErrorRec << "\n"
1400  << "" << "\n"
1401  << "ptSIM=" << sqrt(momentumTP.perp2()) << "\n"<< "etaSIM=" << momentumTP.Eta() << "\n"<< "qoverpSIM=" << qoverpSim << "\n"
1402  << "dxySIM=" << dxySim << "\n"<< "dzSIM=" << dzSim << "\n" << "thetaSIM=" << M_PI/2-lambdaSim << "\n"
1403  << "phiSIM=" << phiSim << "\n"
1404  << "" << "\n"
1405  << "contrib_Qoverp=" << contrib_Qoverp << "\n"<< "contrib_dxy=" << contrib_dxy << "\n"<< "contrib_dz=" << contrib_dz << "\n"
1406  << "contrib_theta=" << contrib_theta << "\n"<< "contrib_phi=" << contrib_phi << "\n"
1407  << "" << "\n"
1408  <<"chi2PULL="<<contrib_Qoverp+contrib_dxy+contrib_dz+contrib_theta+contrib_phi<<"\n";
1409 #endif
1410 
1411  histograms.h_pullQoverp[count].fill(qoverpPull);
1412  histograms.h_pullTheta[count].fill(thetaPull);
1413  histograms.h_pullPhi[count].fill(phiPull);
1414  histograms.h_pullDxy[count].fill(dxyPull);
1415  histograms.h_pullDz[count].fill(dzPull);
1416 
1417  const auto etaSim = getEta(momentumTP.eta());
1418  const auto ptSim = getPt(sqrt(momentumTP.perp2()));
1419 
1420  histograms.h_pt[count].fill(ptres/ptError);
1421  histograms.h_eta[count].fill(etares);
1422  //histograms.etares_vs_eta[count].fill(getEta(track.eta()),etares);
1423  histograms.etares_vs_eta[count].fill(etaSim, etares);
1424 
1425  //resolution of track params: fill 2D histos
1426  histograms.dxyres_vs_eta[count].fill(etaSim, dxyRes);
1427  histograms.ptres_vs_eta[count].fill(etaSim, ptres/ptRec);
1428  histograms.dzres_vs_eta[count].fill(etaSim, dzRes);
1429  histograms.phires_vs_eta[count].fill(etaSim, phiRes);
1430  histograms.cotThetares_vs_eta[count].fill(etaSim, cotThetaRes);
1431 
1432  //same as before but vs pT
1433  histograms.dxyres_vs_pt[count].fill(ptSim, dxyRes);
1434  histograms.ptres_vs_pt[count].fill(ptSim, ptres/ptRec);
1435  histograms.dzres_vs_pt[count].fill(ptSim, dzRes);
1436  histograms.phires_vs_pt[count].fill(ptSim, phiRes);
1437  histograms.cotThetares_vs_pt[count].fill(ptSim, cotThetaRes);
1438 
1439  //pulls of track params vs eta: fill 2D histos
1440  histograms.dxypull_vs_eta[count].fill(etaSim, dxyPull);
1441  histograms.ptpull_vs_eta[count].fill(etaSim, ptres/ptError);
1442  histograms.dzpull_vs_eta[count].fill(etaSim, dzPull);
1443  histograms.phipull_vs_eta[count].fill(etaSim, phiPull);
1444  histograms.thetapull_vs_eta[count].fill(etaSim, thetaPull);
1445 
1446  //plots vs phi
1447  histograms.nhits_vs_phi[count].fill(phiRec,track.numberOfValidHits());
1448  histograms.chi2_vs_phi[count].fill(phiRec,track.normalizedChi2());
1449  histograms.ptmean_vs_eta_phi[count].fill(phiRec,getEta(track.eta()),ptRec);
1450  histograms.phimean_vs_eta_phi[count].fill(phiRec,getEta(track.eta()),phiRec);
1451 
1452  histograms.ptres_vs_phi[count].fill(phiSim, ptres/ptRec);
1453  histograms.phires_vs_phi[count].fill(phiSim, phiRes);
1454  histograms.ptpull_vs_phi[count].fill(phiSim, ptres/ptError);
1455  histograms.phipull_vs_phi[count].fill(phiSim, phiPull);
1456  histograms.thetapull_vs_phi[count].fill(phiSim, thetaPull);
1457 
1458 
1459 }
bool trackFromSeedFitFailed(const reco::Track &track)
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:561
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) ...
double theta() const
polar angle
Definition: TrackBase.h:579
double dxyError() const
error on dxy
Definition: TrackBase.h:796
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:651
auto dz(const T_Vertex &vertex, const T_Momentum &momentum, const T_Point &point)
T sqrt(T t)
Definition: SSEVec.h:18
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:820
#define LogTrace(id)
#define M_PI
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:609
double dzError() const
error on dz
Definition: TrackBase.h:814
auto dxy(const T_Vertex &vertex, const T_Momentum &momentum, const T_Point &point)
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
Definition: TrackBase.h:591
void MTVHistoProducerAlgoForTracker::fill_seed_histos ( const Histograms histograms,
int  count,
int  seedsFitFailed,
int  seedsTotal 
) const

Definition at line 1613 of file MTVHistoProducerAlgoForTracker.cc.

References KineDebug3::count(), MTVHistoProducerAlgoForTrackerHistograms::h_seedsFitFailed, and MTVHistoProducerAlgoForTrackerHistograms::h_seedsFitFailedFraction.

1616  {
1617  histograms.h_seedsFitFailed[count].fill(seedsFitFailed);
1618  histograms.h_seedsFitFailedFraction[count].fill(static_cast<double>(seedsFitFailed)/seedsTotal);
1619 }
void MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos ( const Histograms histograms,
int  count,
const reco::Track track 
) const

Definition at line 1250 of file MTVHistoProducerAlgoForTracker.cc.

References reco::TrackBase::charge(), reco::TrackBase::chi2(), MTVHistoProducerAlgoForTrackerHistograms::chi2_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::chi2_vs_nhits, KineDebug3::count(), PVValHelper::eta, reco::TrackBase::eta(), getEta(), MTVHistoProducerAlgoForTrackerHistograms::h_charge, MTVHistoProducerAlgoForTrackerHistograms::h_hits, MTVHistoProducerAlgoForTrackerHistograms::h_losthits, MTVHistoProducerAlgoForTrackerHistograms::h_nchi2, MTVHistoProducerAlgoForTrackerHistograms::h_nchi2_prob, MTVHistoProducerAlgoForTrackerHistograms::h_nmisslayers_inner, MTVHistoProducerAlgoForTrackerHistograms::h_nmisslayers_outer, reco::TrackBase::hitPattern(), createfilelist::int, reco::HitPattern::MISSING_INNER_HITS, reco::HitPattern::MISSING_OUTER_HITS, reco::TrackBase::ndof(), MTVHistoProducerAlgoForTrackerHistograms::nhits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nLayersWithMeas_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nlosthits_vs_eta, reco::TrackBase::normalizedChi2(), MTVHistoProducerAlgoForTrackerHistograms::nPXBhits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nPXFhits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nPXLhits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nPXLlayersWithMeas_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nSTRIPhits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nSTRIPlayersWith1dMeas_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nSTRIPlayersWith2dMeas_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nSTRIPlayersWithMeas_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nTEChits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nTIBhits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nTIDhits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nTOBhits_vs_eta, reco::HitPattern::numberOfLostHits(), reco::TrackBase::numberOfLostHits(), reco::TrackBase::numberOfValidHits(), reco::HitPattern::numberOfValidPixelBarrelHits(), reco::HitPattern::numberOfValidPixelEndcapHits(), reco::HitPattern::numberOfValidStripLayersWithMonoAndStereo(), reco::HitPattern::numberOfValidStripTECHits(), reco::HitPattern::numberOfValidStripTIBHits(), reco::HitPattern::numberOfValidStripTIDHits(), reco::HitPattern::numberOfValidStripTOBHits(), reco::HitPattern::pixelLayersWithMeasurement(), reco::HitPattern::stripLayersWithMeasurement(), reco::HitPattern::trackerLayersWithMeasurement(), and trackFromSeedFitFailed().

1252  {
1253  //nchi2 and hits global distributions
1254  histograms.h_hits[count].fill(track.numberOfValidHits());
1255  histograms.h_losthits[count].fill(track.numberOfLostHits());
1256  histograms.h_nmisslayers_inner[count].fill(track.hitPattern().numberOfLostHits(reco::HitPattern::MISSING_INNER_HITS));
1257  histograms.h_nmisslayers_outer[count].fill(track.hitPattern().numberOfLostHits(reco::HitPattern::MISSING_OUTER_HITS));
1258  if(trackFromSeedFitFailed(track))
1259  return;
1260 
1261  histograms.h_nchi2[count].fill(track.normalizedChi2());
1262  histograms.h_nchi2_prob[count].fill(TMath::Prob(track.chi2(),(int)track.ndof()));
1263  histograms.chi2_vs_nhits[count].fill(track.numberOfValidHits(),track.normalizedChi2());
1264  histograms.h_charge[count].fill( track.charge() );
1265 
1266  //chi2 and #hit vs eta: fill 2D histos
1267  const auto eta = getEta(track.eta());
1268  histograms.chi2_vs_eta[count].fill(eta, track.normalizedChi2());
1269  histograms.nhits_vs_eta[count].fill(eta, track.numberOfValidHits());
1270  const auto pxbHits = track.hitPattern().numberOfValidPixelBarrelHits();
1271  const auto pxfHits = track.hitPattern().numberOfValidPixelEndcapHits();
1272  const auto tibHits = track.hitPattern().numberOfValidStripTIBHits();
1273  const auto tidHits = track.hitPattern().numberOfValidStripTIDHits();
1274  const auto tobHits = track.hitPattern().numberOfValidStripTOBHits();
1275  const auto tecHits = track.hitPattern().numberOfValidStripTECHits();
1276  histograms.nPXBhits_vs_eta[count].fill(eta, pxbHits);
1277  histograms.nPXFhits_vs_eta[count].fill(eta, pxfHits);
1278  histograms.nPXLhits_vs_eta[count].fill(eta, pxbHits+pxfHits);
1279  histograms.nTIBhits_vs_eta[count].fill(eta, tibHits);
1280  histograms.nTIDhits_vs_eta[count].fill(eta, tidHits);
1281  histograms.nTOBhits_vs_eta[count].fill(eta, tobHits);
1282  histograms.nTEChits_vs_eta[count].fill(eta, tecHits);
1283  histograms.nSTRIPhits_vs_eta[count].fill(eta, tibHits+tidHits+tobHits+tecHits);
1284  histograms.nLayersWithMeas_vs_eta[count].fill(eta, track.hitPattern().trackerLayersWithMeasurement());
1285  histograms.nPXLlayersWithMeas_vs_eta[count].fill(eta, track.hitPattern().pixelLayersWithMeasurement());
1286  int LayersAll = track.hitPattern().stripLayersWithMeasurement();
1287  int Layers2D = track.hitPattern().numberOfValidStripLayersWithMonoAndStereo();
1288  int Layers1D = LayersAll - Layers2D;
1289  histograms.nSTRIPlayersWithMeas_vs_eta[count].fill(eta, LayersAll);
1290  histograms.nSTRIPlayersWith1dMeas_vs_eta[count].fill(eta, Layers1D);
1291  histograms.nSTRIPlayersWith2dMeas_vs_eta[count].fill(eta, Layers2D);
1292 
1293  histograms.nlosthits_vs_eta[count].fill(eta, track.numberOfLostHits());
1294 }
bool trackFromSeedFitFailed(const reco::Track &track)
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:561
unsigned short numberOfLostHits() const
number of cases where track crossed a layer without getting a hit.
Definition: TrackBase.h:826
int pixelLayersWithMeasurement() const
Definition: HitPattern.cc:499
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:518
int numberOfValidStripTOBHits() const
Definition: HitPattern.h:868
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:651
int numberOfValidStripLayersWithMonoAndStereo(uint16_t stripdet, uint16_t layer) const
Definition: HitPattern.cc:341
int numberOfValidPixelBarrelHits() const
Definition: HitPattern.h:843
double chi2() const
chi-squared of the fit
Definition: TrackBase.h:549
double ndof() const
number of degrees of freedom of the fit
Definition: TrackBase.h:555
int numberOfValidStripTIDHits() const
Definition: HitPattern.h:863
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:820
int numberOfValidStripTECHits() const
Definition: HitPattern.h:873
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:446
int stripLayersWithMeasurement() const
Definition: HitPattern.h:1035
int numberOfValidStripTIBHits() const
Definition: HitPattern.h:858
int numberOfLostHits(HitCategory category) const
Definition: HitPattern.h:902
int numberOfValidPixelEndcapHits() const
Definition: HitPattern.h:848
int charge() const
track electric charge
Definition: TrackBase.h:567
void MTVHistoProducerAlgoForTracker::fill_simTrackBased_histos ( const Histograms histograms,
int  numSimTracks 
) const

Definition at line 1016 of file MTVHistoProducerAlgoForTracker.cc.

References ConcurrentMonitorElement::fill(), and MTVHistoProducerAlgoForTrackerHistograms::h_tracksSIM.

1016  {
1017  histograms.h_tracksSIM.fill(numSimTracks);
1018 }
void MTVHistoProducerAlgoForTracker::fill_trackBased_histos ( const Histograms histograms,
int  count,
int  assTracks,
int  numRecoTracks,
int  numRecoTracksSelected,
int  numSimTracksSelected 
) const

Definition at line 1297 of file MTVHistoProducerAlgoForTracker.cc.

References KineDebug3::count(), MTVHistoProducerAlgoForTrackerHistograms::h_fakes, MTVHistoProducerAlgoForTrackerHistograms::h_tracks, and MTVHistoProducerAlgoForTrackerHistograms::nrec_vs_nsim.

1297  {
1298 
1299  histograms.h_tracks[count].fill(assTracks);
1300  histograms.h_fakes[count].fill(numRecoTracks-assTracks);
1301  if(histograms.nrec_vs_nsim[count]) histograms.nrec_vs_nsim[count].fill(numSimTracksSelected, numRecoTracksSelected);
1302 
1303 }
double MTVHistoProducerAlgoForTracker::getEta ( double  eta) const
private
double MTVHistoProducerAlgoForTracker::getPt ( double  pt) const
private
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 1464 of file MTVHistoProducerAlgoForTracker.cc.

References reco::TrackBase::lambda(), reco::TrackBase::lambdaError(), reco::TrackBase::phi(), reco::TrackBase::phiError(), reco::TrackBase::pt(), reco::TrackBase::ptError(), reco::TrackBase::qoverp(), and reco::TrackBase::qoverpError().

Referenced by fill_ResoAndPull_recoTrack_histos().

1466  {
1467  pt = track.pt();
1468  ptError = track.ptError();
1469  qoverp = track.qoverp();
1470  qoverpError = track.qoverpError();
1471  lambda = track.lambda();
1472  lambdaError = track.lambdaError();
1473  phi = track.phi();
1474  phiError = track.phiError();
1475  // cout <<"test1" << endl;
1476 
1477 
1478 
1479 }
double qoverp() const
q / p
Definition: TrackBase.h:573
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:645
double pt() const
track transverse momentum
Definition: TrackBase.h:621
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
Definition: TrackBase.h:763
double phiError() const
error on phi
Definition: TrackBase.h:790
double lambda() const
Lambda angle.
Definition: TrackBase.h:585
double qoverpError() const
error on signed transverse curvature
Definition: TrackBase.h:757
double lambdaError() const
error on lambda
Definition: TrackBase.h:778
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 1482 of file MTVHistoProducerAlgoForTracker.cc.

References reco::GsfTrack::lambdaMode(), reco::GsfTrack::lambdaModeError(), reco::GsfTrack::phiMode(), reco::GsfTrack::phiModeError(), reco::GsfTrack::ptMode(), reco::GsfTrack::ptModeError(), reco::GsfTrack::qoverpMode(), and reco::GsfTrack::qoverpModeError().

1484  {
1485 
1486  pt = gsfTrack.ptMode();
1487  ptError = gsfTrack.ptModeError();
1488  qoverp = gsfTrack.qoverpMode();
1489  qoverpError = gsfTrack.qoverpModeError();
1490  lambda = gsfTrack.lambdaMode();
1491  lambdaError = gsfTrack.lambdaModeError();
1492  phi = gsfTrack.phiMode();
1493  phiError = gsfTrack.phiModeError();
1494  // cout <<"test2" << endl;
1495 
1496 }
double phiModeError() const
error on phi from mode
Definition: GsfTrack.h:94
double lambdaMode() const
Lambda angle from mode.
Definition: GsfTrack.h:45
double qoverpMode() const
q/p from mode
Definition: GsfTrack.h:41
double ptModeError() const
error on Pt (set to 1000 TeV if charge==0 for safety) from mode
Definition: GsfTrack.h:81
double qoverpModeError() const
error on signed transverse curvature from mode
Definition: GsfTrack.h:79
double phiMode() const
azimuthal angle of momentum vector from mode
Definition: GsfTrack.h:57
double lambdaModeError() const
error on lambda from mode
Definition: GsfTrack.h:90
double ptMode() const
track transverse momentum from mode
Definition: GsfTrack.h:49
unsigned int MTVHistoProducerAlgoForTracker::getSeedingLayerSetBin ( const reco::Track track,
const TrackerTopology ttopo 
) const
private

Definition at line 1510 of file MTVHistoProducerAlgoForTracker.cc.

References DetId::det(), SoftLeptonByDistance_cfi::distance, Exception, runEdmFileComparison::found, mps_fire::i, edm::RefToBase< T >::isAvailable(), edm::RefToBase< T >::isNull(), trackerHitRTTI::isSingle(), TrackerTopology::layer(), LogDebug, nhits, PixelSubdetector::PixelBarrel, GeomDetEnumerators::PixelBarrel, PixelSubdetector::PixelEndcap, GeomDetEnumerators::PixelEndcap, DetId::rawId(), TrajectorySeed::recHits(), SurveyInfoScenario_cff::seed, seedingLayerSetNames, seedingLayerSetToBin, reco::Track::seedRef(), TrackerTopology::side(), DetId::subdetId(), GeomDetEnumerators::TEC, StripSubdetector::TEC, GeomDetEnumerators::TIB, StripSubdetector::TIB, GeomDetEnumerators::TID, StripSubdetector::TID, GeomDetEnumerators::TOB, StripSubdetector::TOB, DetId::Tracker, and relativeConstraints::value.

Referenced by fill_generic_recoTrack_histos().

1510  {
1511  if(track.seedRef().isNull() || !track.seedRef().isAvailable())
1512  return seedingLayerSetNames.size()-1;
1513 
1514  const TrajectorySeed& seed = *(track.seedRef());
1515  const auto hitRange = seed.recHits();
1516  SeedingLayerSetId searchId;
1517  const int nhits = std::distance(hitRange.first, hitRange.second);
1518  if(nhits > static_cast<int>(std::tuple_size<SeedingLayerSetId>::value)) {
1519  LogDebug("TrackValidator") << "Got seed with " << nhits << " hits, but I have a hard-coded maximum of " << std::tuple_size<SeedingLayerSetId>::value << ", classifying the seed as 'unknown'. Please increase the maximum in MTVHistoProducerAlgoForTracker.h if needed.";
1520  return seedingLayerSetNames.size()-1;
1521  }
1522  int i=0;
1523  for(auto iHit = hitRange.first; iHit != hitRange.second; ++iHit, ++i) {
1524  DetId detId = iHit->geographicalId();
1525 
1526  if(detId.det() != DetId::Tracker) {
1527  throw cms::Exception("LogicError") << "Encountered seed hit detId " << detId.rawId() << " not from Tracker, but " << detId.det();
1528  }
1529 
1531  bool subdetStrip = false;
1532  switch(detId.subdetId()) {
1535  case StripSubdetector::TIB: subdet = GeomDetEnumerators::TIB; subdetStrip = true; break;
1536  case StripSubdetector::TID: subdet = GeomDetEnumerators::TID; subdetStrip = true; break;
1537  case StripSubdetector::TOB: subdet = GeomDetEnumerators::TOB; subdetStrip = true; break;
1538  case StripSubdetector::TEC: subdet = GeomDetEnumerators::TEC; subdetStrip = true; break;
1539  default: throw cms::Exception("LogicError") << "Unknown subdetId " << detId.subdetId();
1540  };
1541 
1542  TrackerDetSide side = static_cast<TrackerDetSide>(ttopo.side(detId));
1543 
1544  // Even with the recent addition of
1545  // SeedingLayerSetsBuilder::fillDescription() this assumption is a
1546  // bit ugly.
1547  const bool isStripMono = subdetStrip && trackerHitRTTI::isSingle(*iHit);
1548  searchId[i] = SeedingLayerId(SeedingLayerSetsBuilder::SeedingLayerId(subdet, side, ttopo.layer(detId)), isStripMono);
1549  }
1550  auto found = seedingLayerSetToBin.find(searchId);
1551  if(found == seedingLayerSetToBin.end()) {
1552  return seedingLayerSetNames.size()-1;
1553  }
1554  return found->second;
1555 }
#define LogDebug(id)
const edm::RefToBase< TrajectorySeed > & seedRef() const
Definition: Track.h:213
bool isAvailable() const
Definition: RefToBase.h:114
std::map< SeedingLayerSetId, unsigned int > seedingLayerSetToBin
TrackerDetSide
Definition: TrackerDetSide.h:4
unsigned int side(const DetId &id) const
uint32_t rawId() const
get the raw id
Definition: DetId.h:44
std::tuple< GeomDetEnumerators::SubDetector, TrackerDetSide, int > SeedingLayerId
std::tuple< SeedingLayerSetsBuilder::SeedingLayerId, bool > SeedingLayerId
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:38
std::array< SeedingLayerId, 4 > SeedingLayerSetId
Definition: DetId.h:18
bool isSingle(TrackingRecHit const &hit)
bool isNull() const
Checks for null.
Definition: RefToBase.h:328
range recHits() const
unsigned int layer(const DetId &id) const
std::vector< std::string > seedingLayerSetNames
Detector det() const
get the detector field from this detid
Definition: DetId.h:36
std::unique_ptr< RecoTrackSelectorBase > MTVHistoProducerAlgoForTracker::makeRecoTrackSelectorFromTPSelectorParameters ( const edm::ParameterSet pset)
static

Definition at line 333 of file MTVHistoProducerAlgoForTracker.cc.

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

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

333  {
334  edm::ParameterSet psetTrack;
335  psetTrack.copyForModify(pset);
336  psetTrack.eraseSimpleParameter("minHit");
337  psetTrack.eraseSimpleParameter("signalOnly");
338  psetTrack.eraseSimpleParameter("intimeOnly");
339  psetTrack.eraseSimpleParameter("chargedOnly");
340  psetTrack.eraseSimpleParameter("stableOnly");
341  psetTrack.addParameter("maxChi2", 1e10);
342  psetTrack.addParameter("minHit", 0);
343  psetTrack.addParameter("minPixelHit", 0);
344  psetTrack.addParameter("minLayer", 0);
345  psetTrack.addParameter("min3DLayer", 0);
346  psetTrack.addParameter("quality", std::vector<std::string>{});
347  psetTrack.addParameter("algorithm", std::vector<std::string>{});
348  psetTrack.addParameter("originalAlgorithm", std::vector<std::string>{});
349  psetTrack.addParameter("algorithmMaskContains", std::vector<std::string>{});
350 
351  return std::make_unique<RecoTrackSelectorBase>(psetTrack);
352 }
void addParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:144
void eraseSimpleParameter(std::string const &name)
void copyForModify(ParameterSet const &other)

Member Data Documentation

int MTVHistoProducerAlgoForTracker::cotThetaRes_nbin
private
double MTVHistoProducerAlgoForTracker::cotThetaRes_rangeMax
private
double MTVHistoProducerAlgoForTracker::cotThetaRes_rangeMin
private
const bool MTVHistoProducerAlgoForTracker::doSeedPlots_
private
double MTVHistoProducerAlgoForTracker::dxyDzZoom
private
int MTVHistoProducerAlgoForTracker::dxyRes_nbin
private
double MTVHistoProducerAlgoForTracker::dxyRes_rangeMax
private
double MTVHistoProducerAlgoForTracker::dxyRes_rangeMin
private
int MTVHistoProducerAlgoForTracker::dzRes_nbin
private
double MTVHistoProducerAlgoForTracker::dzRes_rangeMax
private
double MTVHistoProducerAlgoForTracker::dzRes_rangeMin
private
std::unique_ptr<GenParticleCustomSelector> MTVHistoProducerAlgoForTracker::generalGpSelector
private

Definition at line 252 of file MTVHistoProducerAlgoForTracker.h.

Referenced by MTVHistoProducerAlgoForTracker().

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

Definition at line 241 of file MTVHistoProducerAlgoForTracker.h.

Referenced by MTVHistoProducerAlgoForTracker().

std::unique_ptr<GenParticleCustomSelector> MTVHistoProducerAlgoForTracker::GpSelectorForEfficiencyVsEta
private
std::unique_ptr<GenParticleCustomSelector> MTVHistoProducerAlgoForTracker::GpSelectorForEfficiencyVsPhi
private
std::unique_ptr<GenParticleCustomSelector> MTVHistoProducerAlgoForTracker::GpSelectorForEfficiencyVsPt
private
std::unique_ptr<GenParticleCustomSelector> MTVHistoProducerAlgoForTracker::GpSelectorForEfficiencyVsVTXR
private
std::unique_ptr<GenParticleCustomSelector> MTVHistoProducerAlgoForTracker::GpSelectorForEfficiencyVsVTXZ
private
double MTVHistoProducerAlgoForTracker::maxChi2
private
double MTVHistoProducerAlgoForTracker::maxDeDx
private
double MTVHistoProducerAlgoForTracker::maxdr
private
double MTVHistoProducerAlgoForTracker::maxDxy
private
double MTVHistoProducerAlgoForTracker::maxDz
private
double MTVHistoProducerAlgoForTracker::maxDzpvCum
private
double MTVHistoProducerAlgoForTracker::maxDzpvsigCum
private
double MTVHistoProducerAlgoForTracker::maxEta
private
double MTVHistoProducerAlgoForTracker::maxHit
private
double MTVHistoProducerAlgoForTracker::maxLayers
private
double MTVHistoProducerAlgoForTracker::maxMVA
private
double MTVHistoProducerAlgoForTracker::maxPhi
private
double MTVHistoProducerAlgoForTracker::maxPt
private
double MTVHistoProducerAlgoForTracker::maxPu
private
double MTVHistoProducerAlgoForTracker::maxPVz
private
double MTVHistoProducerAlgoForTracker::maxTracks
private
double MTVHistoProducerAlgoForTracker::maxVertcount
private

Definition at line 273 of file MTVHistoProducerAlgoForTracker.h.

Referenced by MTVHistoProducerAlgoForTracker().

double MTVHistoProducerAlgoForTracker::maxVertpos
private
double MTVHistoProducerAlgoForTracker::maxZpos
private
double MTVHistoProducerAlgoForTracker::minChi2
private

Definition at line 271 of file MTVHistoProducerAlgoForTracker.h.

double MTVHistoProducerAlgoForTracker::minDeDx
private
double MTVHistoProducerAlgoForTracker::mindr
private
double MTVHistoProducerAlgoForTracker::minDxy
private
double MTVHistoProducerAlgoForTracker::minDz
private
double MTVHistoProducerAlgoForTracker::minEta
private
double MTVHistoProducerAlgoForTracker::minHit
private
double MTVHistoProducerAlgoForTracker::minLayers
private
double MTVHistoProducerAlgoForTracker::minMVA
private
double MTVHistoProducerAlgoForTracker::minPhi
private
double MTVHistoProducerAlgoForTracker::minPt
private
double MTVHistoProducerAlgoForTracker::minPu
private
double MTVHistoProducerAlgoForTracker::minPVz
private
double MTVHistoProducerAlgoForTracker::minTracks
private
double MTVHistoProducerAlgoForTracker::minVertcount
private

Definition at line 273 of file MTVHistoProducerAlgoForTracker.h.

Referenced by MTVHistoProducerAlgoForTracker().

double MTVHistoProducerAlgoForTracker::minVertpos
private
double MTVHistoProducerAlgoForTracker::minZpos
private
int MTVHistoProducerAlgoForTracker::nintChi2
private
int MTVHistoProducerAlgoForTracker::nintDeDx
private
int MTVHistoProducerAlgoForTracker::nintdr
private
int MTVHistoProducerAlgoForTracker::nintDxy
private
int MTVHistoProducerAlgoForTracker::nintDz
private
int MTVHistoProducerAlgoForTracker::nintDzpvCum
private
int MTVHistoProducerAlgoForTracker::nintDzpvsigCum
private
int MTVHistoProducerAlgoForTracker::nintEta
private
int MTVHistoProducerAlgoForTracker::nintHit
private
int MTVHistoProducerAlgoForTracker::nintLayers
private
int MTVHistoProducerAlgoForTracker::nintMVA
private
int MTVHistoProducerAlgoForTracker::nintPhi
private
int MTVHistoProducerAlgoForTracker::nintPt
private
int MTVHistoProducerAlgoForTracker::nintPu
private
int MTVHistoProducerAlgoForTracker::nintPVz
private
int MTVHistoProducerAlgoForTracker::nintTracks
private
int MTVHistoProducerAlgoForTracker::nintVertcount
private

Definition at line 273 of file MTVHistoProducerAlgoForTracker.h.

Referenced by MTVHistoProducerAlgoForTracker().

int MTVHistoProducerAlgoForTracker::nintVertpos
private
int MTVHistoProducerAlgoForTracker::nintZpos
private
int MTVHistoProducerAlgoForTracker::phiRes_nbin
private
double MTVHistoProducerAlgoForTracker::phiRes_rangeMax
private
double MTVHistoProducerAlgoForTracker::phiRes_rangeMin
private
int MTVHistoProducerAlgoForTracker::ptRes_nbin
private
double MTVHistoProducerAlgoForTracker::ptRes_rangeMax
private
double MTVHistoProducerAlgoForTracker::ptRes_rangeMin
private
std::vector<std::string> MTVHistoProducerAlgoForTracker::seedingLayerSetNames
private
std::map<SeedingLayerSetId, unsigned int> MTVHistoProducerAlgoForTracker::seedingLayerSetToBin
private
std::unique_ptr<TrackingParticleSelector> MTVHistoProducerAlgoForTracker::TpSelectorForEfficiencyVsEta
private
std::unique_ptr<TrackingParticleSelector> MTVHistoProducerAlgoForTracker::TpSelectorForEfficiencyVsPhi
private
std::unique_ptr<TrackingParticleSelector> MTVHistoProducerAlgoForTracker::TpSelectorForEfficiencyVsPt
private
std::unique_ptr<TrackingParticleSelector> MTVHistoProducerAlgoForTracker::TpSelectorForEfficiencyVsVTXR
private
std::unique_ptr<TrackingParticleSelector> MTVHistoProducerAlgoForTracker::TpSelectorForEfficiencyVsVTXZ
private
std::unique_ptr<RecoTrackSelectorBase> MTVHistoProducerAlgoForTracker::trackSelectorVsEta
private
std::unique_ptr<RecoTrackSelectorBase> MTVHistoProducerAlgoForTracker::trackSelectorVsPhi
private
std::unique_ptr<RecoTrackSelectorBase> MTVHistoProducerAlgoForTracker::trackSelectorVsPt
private
bool MTVHistoProducerAlgoForTracker::useFabsEta
private

Definition at line 259 of file MTVHistoProducerAlgoForTracker.h.

Referenced by getEta(), and MTVHistoProducerAlgoForTracker().

bool MTVHistoProducerAlgoForTracker::useInvPt
private

Definition at line 260 of file MTVHistoProducerAlgoForTracker.h.

Referenced by getPt(), and MTVHistoProducerAlgoForTracker().

bool MTVHistoProducerAlgoForTracker::useLogPt
private
bool MTVHistoProducerAlgoForTracker::useLogVertpos
private