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 110 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.

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

333 {}

Member Function Documentation

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

Definition at line 782 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.

782  {
783  histograms.h_reco_mva.emplace_back();
784  histograms.h_assoc2_mva.emplace_back();
785 
786  histograms.h_reco_mvacut.emplace_back();
787  histograms.h_assoc_mvacut.emplace_back();
788  histograms.h_assoc2_mvacut.emplace_back();
789  histograms.h_simul2_mvacut.emplace_back();
790 
791  histograms.h_reco_mva_hp.emplace_back();
792  histograms.h_assoc2_mva_hp.emplace_back();
793 
794  histograms.h_reco_mvacut_hp.emplace_back();
795  histograms.h_assoc_mvacut_hp.emplace_back();
796  histograms.h_assoc2_mvacut_hp.emplace_back();
797  histograms.h_simul2_mvacut_hp.emplace_back();
798 
799  histograms.h_assoc2_mva_vs_pt.emplace_back();
800  histograms.h_fake_mva_vs_pt.emplace_back();
801  histograms.h_assoc2_mva_vs_pt_hp.emplace_back();
802  histograms.h_fake_mva_vs_pt_hp.emplace_back();
803  histograms.h_assoc2_mva_vs_eta.emplace_back();
804  histograms.h_fake_mva_vs_eta.emplace_back();
805  histograms.h_assoc2_mva_vs_eta_hp.emplace_back();
806  histograms.h_fake_mva_vs_eta_hp.emplace_back();
807 
808  for(size_t i=1; i <= nMVAs; ++i) {
809  auto istr = std::to_string(i);
810  std::string pfix;
811 
812  if(i==1) {
813  histograms.h_reco_mva_hp.back().emplace_back();
814  histograms.h_assoc2_mva_hp.back().emplace_back();
815 
816  histograms.h_reco_mvacut_hp.back().emplace_back();
817  histograms.h_assoc_mvacut_hp.back().emplace_back();
818  histograms.h_assoc2_mvacut_hp.back().emplace_back();
819  histograms.h_simul2_mvacut_hp.back().emplace_back();
820 
821  histograms.h_assoc2_mva_vs_pt_hp.back().emplace_back();
822  histograms.h_fake_mva_vs_pt_hp.back().emplace_back();
823  histograms.h_assoc2_mva_vs_eta_hp.back().emplace_back();
824  histograms.h_fake_mva_vs_eta_hp.back().emplace_back();
825  }
826  else {
827  pfix = " (not loose-selected)";
828  std::string pfix2 = " (not HP-selected)";
829 
830  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) );
831  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) );
832 
833  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) );
834  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) );
835  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) );
836  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) );
837 
838  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));
839  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));
840  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));
841  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));
842  }
843 
844  histograms.h_reco_mva.back().push_back(ibook.book1D("num_reco_mva"+istr, "N of reco track vs MVA"+istr+pfix, nintMVA, minMVA, maxMVA) );
845  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) );
846 
847  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) );
848  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) );
849  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) );
850  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) );
851 
852  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));
853  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));
854  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));
855  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));
856  }
857 }
ConcurrentMonitorElement bookProfile(Args &&...args)
Definition: DQMStore.h:167
ConcurrentMonitorElement book1D(Args &&...args)
Definition: DQMStore.h:160
void MTVHistoProducerAlgoForTracker::bookRecodEdxHistos ( DQMStore::ConcurrentBooker ibook,
Histograms histograms 
)

Definition at line 762 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.

762  {
763  // dE/dx stuff
764  histograms.h_dedx_estim.emplace_back();
765  histograms.h_dedx_estim.back().push_back(ibook.book1D("h_dedx_estim1","dE/dx estimator 1",nintDeDx,minDeDx,maxDeDx));
766  histograms.h_dedx_estim.back().push_back(ibook.book1D("h_dedx_estim2","dE/dx estimator 2",nintDeDx,minDeDx,maxDeDx));
767 
768  histograms.h_dedx_nom.emplace_back();
769  histograms.h_dedx_nom.back().push_back(ibook.book1D("h_dedx_nom1","dE/dx number of measurements",nintHit,minHit,maxHit));
770  histograms.h_dedx_nom.back().push_back(ibook.book1D("h_dedx_nom2","dE/dx number of measurements",nintHit,minHit,maxHit));
771 
772  histograms.h_dedx_sat.emplace_back();
773  histograms.h_dedx_sat.back().push_back(ibook.book1D("h_dedx_sat1","dE/dx number of measurements with saturation",nintHit,minHit,maxHit));
774  histograms.h_dedx_sat.back().push_back(ibook.book1D("h_dedx_sat2","dE/dx number of measurements with saturation",nintHit,minHit,maxHit));
775 }
ConcurrentMonitorElement book1D(Args &&...args)
Definition: DQMStore.h:160
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 459 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.

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

713  {
714  histograms.h_recodxypv.push_back( ibook.book1D("num_reco_dxypv","N of reco track vs dxy(PV)",nintDxy,minDxy,maxDxy) );
715  histograms.h_assoc2dxypv.push_back( ibook.book1D("num_assoc(recoToSim)_dxypv","N of associated (recoToSim) tracks vs dxy(PV)",nintDxy,minDxy,maxDxy) );
716  histograms.h_looperdxypv.push_back( ibook.book1D("num_duplicate_dxypv","N of associated (recoToSim) looper tracks vs dxy(PV)",nintDxy,minDxy,maxDxy) );
717  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) );
718  histograms.h_pileupdxypv.push_back( ibook.book1D("num_pileup_dxypv","N of associated (recoToSim) pileup tracks vs dxy(PV)",nintDxy,minDxy,maxDxy) );
719 
720  histograms.h_recodzpv.push_back( ibook.book1D("num_reco_dzpv","N of reco track vs dz(PV)",nintDz,minDz,maxDz) );
721  histograms.h_assoc2dzpv.push_back( ibook.book1D("num_assoc(recoToSim)_dzpv","N of associated (recoToSim) tracks vs dz(PV)",nintDz,minDz,maxDz) );
722  histograms.h_looperdzpv.push_back( ibook.book1D("num_duplicate_dzpv","N of associated (recoToSim) looper tracks vs dz(PV)",nintDz,minDz,maxDz) );
723  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) );
724  histograms.h_pileupdzpv.push_back( ibook.book1D("num_pileup_dzpv","N of associated (recoToSim) pileup tracks vs dz(PV)",nintDz,minDz,maxDz) );
725 
726  histograms.h_recodxypvzoomed.push_back( ibook.book1D("num_reco_dxypv_zoomed","N of reco track vs dxy(PV)",nintDxy,minDxy/dxyDzZoom,maxDxy/dxyDzZoom) );
727  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) );
728  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) );
729  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) );
730  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) );
731 
732  histograms.h_recodzpvzoomed.push_back( ibook.book1D("num_reco_dzpv_zoomed","N of reco track vs dz(PV)",nintDz,minDz/dxyDzZoom,maxDz/dxyDzZoom) );
733  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) );
734  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) );
735  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) );
736  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) );
737 
738  histograms.h_reco_dzpvcut.push_back( ibook.book1D("num_reco_dzpvcut","N of reco track vs dz(PV)",nintDzpvCum,0,maxDzpvCum) );
739  histograms.h_assoc2_dzpvcut.push_back( ibook.book1D("num_assoc(recoToSim)_dzpvcut","N of associated (recoToSim) tracks vs dz(PV)",nintDzpvCum,0,maxDzpvCum) );
740  histograms.h_pileup_dzpvcut.push_back( ibook.book1D("num_pileup_dzpvcut", "N of associated (recoToSim) pileup tracks vs dz(PV)",nintDzpvCum,0,maxDzpvCum) );
741 
742  histograms.h_reco_dzpvcut_pt.push_back( ibook.book1D("num_reco_dzpvcut_pt","#sump_{T} of reco track vs dz(PV)",nintDzpvCum,0,maxDzpvCum) );
743  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) );
744  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) );
745  histograms.h_reco_dzpvcut_pt.back().enableSumw2();
746  histograms.h_assoc2_dzpvcut_pt.back().enableSumw2();
747  histograms.h_pileup_dzpvcut_pt.back().enableSumw2();
748 
749  histograms.h_reco_dzpvsigcut.push_back( ibook.book1D("num_reco_dzpvsigcut","N of reco track vs dz(PV)/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
750  histograms.h_assoc2_dzpvsigcut.push_back( ibook.book1D("num_assoc(recoToSim)_dzpvsigcut","N of associated (recoToSim) tracks vs dz(PV)/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
751  histograms.h_pileup_dzpvsigcut.push_back( ibook.book1D("num_pileup_dzpvsigcut","N of associated (recoToSim) pileup tracks vs dz(PV)/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
752 
753  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) );
754  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) );
755  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) );
756  histograms.h_reco_dzpvsigcut_pt.back().enableSumw2();
757  histograms.h_assoc2_dzpvsigcut_pt.back().enableSumw2();
758  histograms.h_pileup_dzpvsigcut_pt.back().enableSumw2();
759 
760 }
ConcurrentMonitorElement book1D(Args &&...args)
Definition: DQMStore.h:160
void MTVHistoProducerAlgoForTracker::bookSeedHistos ( DQMStore::ConcurrentBooker ibook,
Histograms histograms 
)

Definition at line 777 of file MTVHistoProducerAlgoForTracker.cc.

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

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

Definition at line 356 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.

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

Definition at line 364 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.

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

Definition at line 423 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.

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

1024  {
1025  for (unsigned int i=0; i<v_dEdx.size(); i++) {
1026  const edm::ValueMap<reco::DeDxData>& dEdxTrack = *(v_dEdx[i]);
1027  const reco::DeDxData& dedx = dEdxTrack[trackref];
1028  histograms.h_dedx_estim[count][i].fill(dedx.dEdx());
1029  histograms.h_dedx_nom[count][i].fill(dedx.numberOfMeasurements());
1030  histograms.h_dedx_sat[count][i].fill(dedx.numberOfSaturatedMeasurements());
1031  }
1032 }
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 1012 of file MTVHistoProducerAlgoForTracker.cc.

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

1015  {
1016  histograms.h_duplicates_oriAlgo_vs_oriAlgo[count].fill(track1.originalAlgo(), track2.originalAlgo());
1017 }
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 1035 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.

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

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

862  {
863  if(bx == 0) {
864  histograms.h_ptSIM.fill(sqrt(momentumTP.perp2()));
865  histograms.h_etaSIM.fill(momentumTP.eta());
866  histograms.h_vertposSIM.fill(sqrt(vertexTP.perp2()));
867  }
868  histograms.h_bunchxSIM.fill(bx);
869 }
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 873 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.

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

1567  {
1568 
1569  bool isMatched = track;
1570 
1571  if((*GpSelectorForEfficiencyVsEta)(tp)){
1572  //effic vs eta
1573  histograms.h_simuleta[count].fill(getEta(momentumTP.eta()));
1574  if (isMatched) histograms.h_assoceta[count].fill(getEta(momentumTP.eta()));
1575  }
1576 
1577  if((*GpSelectorForEfficiencyVsPhi)(tp)){
1578  histograms.h_simulphi[count].fill(momentumTP.phi());
1579  if (isMatched) histograms.h_assocphi[count].fill(momentumTP.phi());
1580  //effic vs hits
1581  histograms.h_simulhit[count].fill((int)nSimHits);
1582  if(isMatched) {
1583  histograms.h_assochit[count].fill((int)nSimHits);
1584  if(histograms.nrecHit_vs_nsimHit_sim2rec[count]) histograms.nrecHit_vs_nsimHit_sim2rec[count].fill(track->numberOfValidHits(),nSimHits);
1585  }
1586  //effic vs pu
1587  histograms.h_simulpu[count].fill(numVertices);
1588  if (isMatched) histograms.h_assocpu[count].fill(numVertices);
1589  //efficiency vs dR
1590  //not implemented for now
1591  }
1592 
1593  if((*GpSelectorForEfficiencyVsPt)(tp)){
1594  histograms.h_simulpT[count].fill(getPt(sqrt(momentumTP.perp2())));
1595  if (isMatched) histograms.h_assocpT[count].fill(getPt(sqrt(momentumTP.perp2())));
1596  }
1597 
1598  if((*GpSelectorForEfficiencyVsVTXR)(tp)){
1599  histograms.h_simuldxy[count].fill(dxySim);
1600  if (isMatched) histograms.h_assocdxy[count].fill(dxySim);
1601 
1602  histograms.h_simulvertpos[count].fill(sqrt(vertexTP.perp2()));
1603  if (isMatched) histograms.h_assocvertpos[count].fill(sqrt(vertexTP.perp2()));
1604  }
1605 
1606  if((*GpSelectorForEfficiencyVsVTXZ)(tp)){
1607  histograms.h_simuldz[count].fill(dzSim);
1608  if (isMatched) histograms.h_assocdz[count].fill(dzSim);
1609 
1610  histograms.h_simulzpos[count].fill(vertexTP.z());
1611  if (isMatched) histograms.h_assoczpos[count].fill(vertexTP.z());
1612  }
1613 
1614 }
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 1310 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().

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

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

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

Definition at line 1253 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().

1255  {
1256  //nchi2 and hits global distributions
1257  histograms.h_hits[count].fill(track.numberOfValidHits());
1258  histograms.h_losthits[count].fill(track.numberOfLostHits());
1259  histograms.h_nmisslayers_inner[count].fill(track.hitPattern().numberOfLostHits(reco::HitPattern::MISSING_INNER_HITS));
1260  histograms.h_nmisslayers_outer[count].fill(track.hitPattern().numberOfLostHits(reco::HitPattern::MISSING_OUTER_HITS));
1261  if(trackFromSeedFitFailed(track))
1262  return;
1263 
1264  histograms.h_nchi2[count].fill(track.normalizedChi2());
1265  histograms.h_nchi2_prob[count].fill(TMath::Prob(track.chi2(),(int)track.ndof()));
1266  histograms.chi2_vs_nhits[count].fill(track.numberOfValidHits(),track.normalizedChi2());
1267  histograms.h_charge[count].fill( track.charge() );
1268 
1269  //chi2 and #hit vs eta: fill 2D histos
1270  const auto eta = getEta(track.eta());
1271  histograms.chi2_vs_eta[count].fill(eta, track.normalizedChi2());
1272  histograms.nhits_vs_eta[count].fill(eta, track.numberOfValidHits());
1273  const auto pxbHits = track.hitPattern().numberOfValidPixelBarrelHits();
1274  const auto pxfHits = track.hitPattern().numberOfValidPixelEndcapHits();
1275  const auto tibHits = track.hitPattern().numberOfValidStripTIBHits();
1276  const auto tidHits = track.hitPattern().numberOfValidStripTIDHits();
1277  const auto tobHits = track.hitPattern().numberOfValidStripTOBHits();
1278  const auto tecHits = track.hitPattern().numberOfValidStripTECHits();
1279  histograms.nPXBhits_vs_eta[count].fill(eta, pxbHits);
1280  histograms.nPXFhits_vs_eta[count].fill(eta, pxfHits);
1281  histograms.nPXLhits_vs_eta[count].fill(eta, pxbHits+pxfHits);
1282  histograms.nTIBhits_vs_eta[count].fill(eta, tibHits);
1283  histograms.nTIDhits_vs_eta[count].fill(eta, tidHits);
1284  histograms.nTOBhits_vs_eta[count].fill(eta, tobHits);
1285  histograms.nTEChits_vs_eta[count].fill(eta, tecHits);
1286  histograms.nSTRIPhits_vs_eta[count].fill(eta, tibHits+tidHits+tobHits+tecHits);
1287  histograms.nLayersWithMeas_vs_eta[count].fill(eta, track.hitPattern().trackerLayersWithMeasurement());
1288  histograms.nPXLlayersWithMeas_vs_eta[count].fill(eta, track.hitPattern().pixelLayersWithMeasurement());
1289  int LayersAll = track.hitPattern().stripLayersWithMeasurement();
1290  int Layers2D = track.hitPattern().numberOfValidStripLayersWithMonoAndStereo();
1291  int Layers1D = LayersAll - Layers2D;
1292  histograms.nSTRIPlayersWithMeas_vs_eta[count].fill(eta, LayersAll);
1293  histograms.nSTRIPlayersWith1dMeas_vs_eta[count].fill(eta, Layers1D);
1294  histograms.nSTRIPlayersWith2dMeas_vs_eta[count].fill(eta, Layers2D);
1295 
1296  histograms.nlosthits_vs_eta[count].fill(eta, track.numberOfLostHits());
1297 }
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:501
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:520
int numberOfValidStripTOBHits() const
Definition: HitPattern.h:869
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:651
int numberOfValidStripLayersWithMonoAndStereo(uint16_t stripdet, uint16_t layer) const
Definition: HitPattern.cc:343
int numberOfValidPixelBarrelHits() const
Definition: HitPattern.h:844
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:864
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:820
int numberOfValidStripTECHits() const
Definition: HitPattern.h:874
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:1036
int numberOfValidStripTIBHits() const
Definition: HitPattern.h:859
int numberOfLostHits(HitCategory category) const
Definition: HitPattern.h:903
int numberOfValidPixelEndcapHits() const
Definition: HitPattern.h:849
int charge() const
track electric charge
Definition: TrackBase.h:567
void MTVHistoProducerAlgoForTracker::fill_simTrackBased_histos ( const Histograms histograms,
int  numSimTracks 
) const

Definition at line 1019 of file MTVHistoProducerAlgoForTracker.cc.

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

1019  {
1020  histograms.h_tracksSIM.fill(numSimTracks);
1021 }
void MTVHistoProducerAlgoForTracker::fill_trackBased_histos ( const Histograms histograms,
int  count,
int  assTracks,
int  numRecoTracks,
int  numRecoTracksSelected,
int  numSimTracksSelected 
) const

Definition at line 1300 of file MTVHistoProducerAlgoForTracker.cc.

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

1300  {
1301 
1302  histograms.h_tracks[count].fill(assTracks);
1303  histograms.h_fakes[count].fill(numRecoTracks-assTracks);
1304  if(histograms.nrec_vs_nsim[count]) histograms.nrec_vs_nsim[count].fill(numSimTracksSelected, numRecoTracksSelected);
1305 
1306 }
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 1467 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().

1469  {
1470  pt = track.pt();
1471  ptError = track.ptError();
1472  qoverp = track.qoverp();
1473  qoverpError = track.qoverpError();
1474  lambda = track.lambda();
1475  lambdaError = track.lambdaError();
1476  phi = track.phi();
1477  phiError = track.phiError();
1478  // cout <<"test1" << endl;
1479 
1480 
1481 
1482 }
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 1485 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().

1487  {
1488 
1489  pt = gsfTrack.ptMode();
1490  ptError = gsfTrack.ptModeError();
1491  qoverp = gsfTrack.qoverpMode();
1492  qoverpError = gsfTrack.qoverpModeError();
1493  lambda = gsfTrack.lambdaMode();
1494  lambdaError = gsfTrack.lambdaModeError();
1495  phi = gsfTrack.phiMode();
1496  phiError = gsfTrack.phiModeError();
1497  // cout <<"test2" << endl;
1498 
1499 }
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 1513 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().

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

Definition at line 335 of file MTVHistoProducerAlgoForTracker.cc.

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

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

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