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, double dR_jet, const std::vector< float > &mvas, unsigned int selectsLoose, unsigned int selectsHP) const
 
void fill_generic_simTrack_histos (const Histograms &histograms, const TrackingParticle::Vector &, const TrackingParticle::Point &vertex, int bx) const
 
void fill_recoAssociated_simTrack_histos (const Histograms &histograms, int count, const TrackingParticle &tp, const TrackingParticle::Vector &momentumTP, const TrackingParticle::Point &vertexTP, double dxy, double dz, double dxyPV, double dzPV, int nSimHits, int nSimLayers, int nSimPixelLayers, int nSimStripMonoAndStereoLayers, const reco::Track *track, int numVertices, double dR, double dR_jet, const math::XYZPoint *pvPosition, const TrackingVertex::LorentzVector *simPVPosition, const math::XYZPoint &bsPosition, const std::vector< float > &mvas, unsigned int selectsLoose, unsigned int selectsHP) const
 
void fill_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 maxdrj
 
double maxDxy
 
double maxDz
 
double maxDzpvCum
 
double maxDzpvsigCum
 
double maxEta
 
double maxHit
 
double maxLayers
 
double maxMVA
 
double maxPhi
 
double maxPt
 
double maxPu
 
double maxPVz
 
double maxTracks
 
double maxVertcount
 
double maxVertpos
 
double maxZpos
 
double minChi2
 
double minDeDx
 
double mindr
 
double mindrj
 
double minDxy
 
double minDz
 
double minEta
 
double minHit
 
double minLayers
 
double minMVA
 
double minPhi
 
double minPt
 
double minPu
 
double minPVz
 
double minTracks
 
double minVertcount
 
double minVertpos
 
double minZpos
 
int nintChi2
 
int nintDeDx
 
int nintdr
 
int nintdrj
 
int nintDxy
 
int nintDz
 
int nintDzpvCum
 
int nintDzpvsigCum
 
int nintEta
 
int nintHit
 
int nintLayers
 
int nintMVA
 
int nintPhi
 
int nintPt
 
int nintPu
 
int nintPVz
 
int nintTracks
 
int nintVertcount
 
int nintVertpos
 
int nintZpos
 
int phiRes_nbin
 
double phiRes_rangeMax
 
double phiRes_rangeMin
 
int ptRes_nbin
 
double ptRes_rangeMax
 
double ptRes_rangeMin
 
std::vector< std::string > seedingLayerSetNames
 
std::map< SeedingLayerSetId, unsigned int > seedingLayerSetToBin
 
std::unique_ptr< TrackingParticleSelectorTpSelectorForEfficiencyVsEta
 
std::unique_ptr< TrackingParticleSelectorTpSelectorForEfficiencyVsPhi
 
std::unique_ptr< TrackingParticleSelectorTpSelectorForEfficiencyVsPt
 
std::unique_ptr< TrackingParticleSelectorTpSelectorForEfficiencyVsVTXR
 
std::unique_ptr< TrackingParticleSelectorTpSelectorForEfficiencyVsVTXZ
 
std::unique_ptr< RecoTrackSelectorBasetrackSelectorVsEta
 
std::unique_ptr< RecoTrackSelectorBasetrackSelectorVsPhi
 
std::unique_ptr< RecoTrackSelectorBasetrackSelectorVsPt
 
bool useFabsEta
 
bool useInvPt
 
bool useLogPt
 
bool useLogVertpos
 

Detailed Description

Definition at line 131 of file MTVHistoProducerAlgoForTracker.h.

Member Typedef Documentation

Definition at line 138 of file MTVHistoProducerAlgoForTracker.h.

Definition at line 295 of file MTVHistoProducerAlgoForTracker.h.

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

338 {}

Member Function Documentation

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

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

796  {
797  histograms.h_reco_mva.emplace_back();
798  histograms.h_assoc2_mva.emplace_back();
799 
800  histograms.h_reco_mvacut.emplace_back();
801  histograms.h_assoc_mvacut.emplace_back();
802  histograms.h_assoc2_mvacut.emplace_back();
803  histograms.h_simul2_mvacut.emplace_back();
804 
805  histograms.h_reco_mva_hp.emplace_back();
806  histograms.h_assoc2_mva_hp.emplace_back();
807 
808  histograms.h_reco_mvacut_hp.emplace_back();
809  histograms.h_assoc_mvacut_hp.emplace_back();
810  histograms.h_assoc2_mvacut_hp.emplace_back();
811  histograms.h_simul2_mvacut_hp.emplace_back();
812 
813  histograms.h_assoc2_mva_vs_pt.emplace_back();
814  histograms.h_fake_mva_vs_pt.emplace_back();
815  histograms.h_assoc2_mva_vs_pt_hp.emplace_back();
816  histograms.h_fake_mva_vs_pt_hp.emplace_back();
817  histograms.h_assoc2_mva_vs_eta.emplace_back();
818  histograms.h_fake_mva_vs_eta.emplace_back();
819  histograms.h_assoc2_mva_vs_eta_hp.emplace_back();
820  histograms.h_fake_mva_vs_eta_hp.emplace_back();
821 
822  for(size_t i=1; i <= nMVAs; ++i) {
823  auto istr = std::to_string(i);
824  std::string pfix;
825 
826  if(i==1) {
827  histograms.h_reco_mva_hp.back().emplace_back();
828  histograms.h_assoc2_mva_hp.back().emplace_back();
829 
830  histograms.h_reco_mvacut_hp.back().emplace_back();
831  histograms.h_assoc_mvacut_hp.back().emplace_back();
832  histograms.h_assoc2_mvacut_hp.back().emplace_back();
833  histograms.h_simul2_mvacut_hp.back().emplace_back();
834 
835  histograms.h_assoc2_mva_vs_pt_hp.back().emplace_back();
836  histograms.h_fake_mva_vs_pt_hp.back().emplace_back();
837  histograms.h_assoc2_mva_vs_eta_hp.back().emplace_back();
838  histograms.h_fake_mva_vs_eta_hp.back().emplace_back();
839  }
840  else {
841  pfix = " (not loose-selected)";
842  std::string pfix2 = " (not HP-selected)";
843 
844  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) );
845  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) );
846 
847  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) );
848  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) );
849  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) );
850  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) );
851 
852  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));
853  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));
854  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));
855  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));
856  }
857 
858  histograms.h_reco_mva.back().push_back(ibook.book1D("num_reco_mva"+istr, "N of reco track vs MVA"+istr+pfix, nintMVA, minMVA, maxMVA) );
859  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) );
860 
861  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) );
862  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) );
863  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) );
864  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) );
865 
866  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));
867  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));
868  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));
869  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));
870  }
871 }
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 776 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.

776  {
777  // dE/dx stuff
778  histograms.h_dedx_estim.emplace_back();
779  histograms.h_dedx_estim.back().push_back(ibook.book1D("h_dedx_estim1","dE/dx estimator 1",nintDeDx,minDeDx,maxDeDx));
780  histograms.h_dedx_estim.back().push_back(ibook.book1D("h_dedx_estim2","dE/dx estimator 2",nintDeDx,minDeDx,maxDeDx));
781 
782  histograms.h_dedx_nom.emplace_back();
783  histograms.h_dedx_nom.back().push_back(ibook.book1D("h_dedx_nom1","dE/dx number of measurements",nintHit,minHit,maxHit));
784  histograms.h_dedx_nom.back().push_back(ibook.book1D("h_dedx_nom2","dE/dx number of measurements",nintHit,minHit,maxHit));
785 
786  histograms.h_dedx_sat.emplace_back();
787  histograms.h_dedx_sat.back().push_back(ibook.book1D("h_dedx_sat1","dE/dx number of measurements with saturation",nintHit,minHit,maxHit));
788  histograms.h_dedx_sat.back().push_back(ibook.book1D("h_dedx_sat2","dE/dx number of measurements with saturation",nintHit,minHit,maxHit));
789 }
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 468 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_assoc2drj, 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_looperdrj, 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_pileupdrj, 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_recodrj, 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, maxdrj, maxDxy, maxDz, maxEta, maxHit, maxLayers, maxPhi, maxPt, maxPu, maxPVz, maxTracks, maxVertpos, maxZpos, mindr, mindrj, minDxy, minDz, minEta, minHit, minLayers, minPhi, minPt, minPu, minPVz, minTracks, minVertpos, minZpos, MTVHistoProducerAlgoForTrackerHistograms::nhits_vs_eta, MTVHistoProducerAlgoForTrackerHistograms::nhits_vs_phi, nintChi2, nintdr, nintdrj, 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.

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

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

Definition at line 791 of file MTVHistoProducerAlgoForTracker.cc.

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

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

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

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

Definition at line 369 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_assocdrj, 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_simuldrj, 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, maxdrj, maxDxy, maxDz, maxEta, maxHit, maxLayers, maxPhi, maxPt, maxPu, maxPVz, maxVertpos, maxZpos, mindr, mindrj, minDxy, minDz, minEta, minHit, minLayers, minPhi, minPt, minPu, minPVz, minVertpos, minZpos, nintdr, nintdrj, nintDxy, nintDz, nintEta, nintHit, nintLayers, nintPhi, nintPt, nintPu, nintPVz, nintVertpos, nintZpos, MTVHistoProducerAlgoForTrackerHistograms::nrecHit_vs_nsimHit_sim2rec, useLogPt, and useLogVertpos.

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

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

432  {
433  histograms.h_assocdxypv.push_back( ibook.book1D("num_assoc(simToReco)_dxypv","N of associated tracks (simToReco) vs dxy(PV)",nintDxy,minDxy,maxDxy) );
434  histograms.h_simuldxypv.push_back( ibook.book1D("num_simul_dxypv","N of simulated tracks vs dxy(PV)",nintDxy,minDxy,maxDxy) );
435 
436  histograms.h_assocdzpv.push_back( ibook.book1D("num_assoc(simToReco)_dzpv","N of associated tracks (simToReco) vs dz(PV)",nintDz,minDz,maxDz) );
437  histograms.h_simuldzpv.push_back( ibook.book1D("num_simul_dzpv","N of simulated tracks vs dz(PV)",nintDz,minDz,maxDz) );
438 
439  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) );
440  histograms.h_simuldxypvzoomed.push_back( ibook.book1D("num_simul_dxypv_zoomed","N of simulated tracks vs dxy(PV)",nintDxy,minDxy/dxyDzZoom,maxDxy/dxyDzZoom) );
441 
442  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) );
443  histograms.h_simuldzpvzoomed.push_back( ibook.book1D("num_simul_dzpv_zoomed","N of simulated tracks vs dz(PV)",nintDz,minDz/dxyDzZoom,maxDz/dxyDzZoom) );
444 
445  histograms.h_assoc_dzpvcut.push_back( ibook.book1D("num_assoc(simToReco)_dzpvcut","N of associated tracks (simToReco) vs dz(PV)",nintDzpvCum,0,maxDzpvCum) );
446  histograms.h_simul_dzpvcut.push_back( ibook.book1D("num_simul_dzpvcut","N of simulated tracks from sim PV",nintDzpvCum,0,maxDzpvCum) );
447  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) );
448 
449  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) );
450  histograms.h_simul_dzpvcut_pt.push_back( ibook.book1D("num_simul_dzpvcut_pt","#sump_{T} of simulated tracks from sim PV",nintDzpvCum,0,maxDzpvCum) );
451  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) );
452  histograms.h_assoc_dzpvcut_pt.back().enableSumw2();
453  histograms.h_simul_dzpvcut_pt.back().enableSumw2();
454  histograms.h_simul2_dzpvcut_pt.back().enableSumw2();
455 
456  histograms.h_assoc_dzpvsigcut.push_back( ibook.book1D("num_assoc(simToReco)_dzpvsigcut","N of associated tracks (simToReco) vs dz(PV)/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
457  histograms.h_simul_dzpvsigcut.push_back( ibook.book1D("num_simul_dzpvsigcut","N of simulated tracks from sim PV/dzError",nintDzpvsigCum,0,maxDzpvsigCum) );
458  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) );
459 
460  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) );
461  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) );
462  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) );
463  histograms.h_assoc_dzpvsigcut_pt.back().enableSumw2();
464  histograms.h_simul_dzpvsigcut_pt.back().enableSumw2();
465  histograms.h_simul2_dzpvsigcut_pt.back().enableSumw2();
466 }
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 1042 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().

1042  {
1043  for (unsigned int i=0; i<v_dEdx.size(); i++) {
1044  const edm::ValueMap<reco::DeDxData>& dEdxTrack = *(v_dEdx[i]);
1045  const reco::DeDxData& dedx = dEdxTrack[trackref];
1046  histograms.h_dedx_estim[count][i].fill(dedx.dEdx());
1047  histograms.h_dedx_nom[count][i].fill(dedx.numberOfMeasurements());
1048  histograms.h_dedx_sat[count][i].fill(dedx.numberOfSaturatedMeasurements());
1049  }
1050 }
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 1030 of file MTVHistoProducerAlgoForTracker.cc.

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

1033  {
1034  histograms.h_duplicates_oriAlgo_vs_oriAlgo[count].fill(track1.originalAlgo(), track2.originalAlgo());
1035 }
TrackAlgorithm originalAlgo() const
Definition: TrackBase.h:540
void MTVHistoProducerAlgoForTracker::fill_generic_recoTrack_histos ( const Histograms histograms,
int  count,
const reco::Track track,
const TrackerTopology ttopo,
const math::XYZPoint bsPosition,
const math::XYZPoint pvPosition,
const TrackingVertex::LorentzVector simPVPosition,
bool  isMatched,
bool  isSigMatched,
bool  isChargeMatched,
int  numAssocRecoTracks,
int  numVertices,
int  nSimHits,
double  sharedFraction,
double  dR,
double  dR_jet,
const std::vector< float > &  mvas,
unsigned int  selectsLoose,
unsigned int  selectsHP 
) const

Definition at line 1053 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_assoc2drj, 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_looperdrj, 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_pileupdrj, 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_recodrj, 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.

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

Definition at line 873 of file MTVHistoProducerAlgoForTracker.cc.

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

876  {
877  if(bx == 0) {
878  histograms.h_ptSIM.fill(sqrt(momentumTP.perp2()));
879  histograms.h_etaSIM.fill(momentumTP.eta());
880  histograms.h_vertposSIM.fill(sqrt(vertexTP.perp2()));
881  }
882  histograms.h_bunchxSIM.fill(bx);
883 }
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,
double  dR_jet,
const math::XYZPoint pvPosition,
const TrackingVertex::LorentzVector simPVPosition,
const math::XYZPoint bsPosition,
const std::vector< float > &  mvas,
unsigned int  selectsLoose,
unsigned int  selectsHP 
) const

Definition at line 887 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_assocdrj, 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_simuldrj, 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.

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

1590  {
1591 
1592  bool isMatched = track;
1593 
1594  if((*GpSelectorForEfficiencyVsEta)(tp)){
1595  //effic vs eta
1596  histograms.h_simuleta[count].fill(getEta(momentumTP.eta()));
1597  if (isMatched) histograms.h_assoceta[count].fill(getEta(momentumTP.eta()));
1598  }
1599 
1600  if((*GpSelectorForEfficiencyVsPhi)(tp)){
1601  histograms.h_simulphi[count].fill(momentumTP.phi());
1602  if (isMatched) histograms.h_assocphi[count].fill(momentumTP.phi());
1603  //effic vs hits
1604  histograms.h_simulhit[count].fill((int)nSimHits);
1605  if(isMatched) {
1606  histograms.h_assochit[count].fill((int)nSimHits);
1607  if(histograms.nrecHit_vs_nsimHit_sim2rec[count]) histograms.nrecHit_vs_nsimHit_sim2rec[count].fill(track->numberOfValidHits(),nSimHits);
1608  }
1609  //effic vs pu
1610  histograms.h_simulpu[count].fill(numVertices);
1611  if (isMatched) histograms.h_assocpu[count].fill(numVertices);
1612  //efficiency vs dR
1613  //not implemented for now
1614  }
1615 
1616  if((*GpSelectorForEfficiencyVsPt)(tp)){
1617  histograms.h_simulpT[count].fill(getPt(sqrt(momentumTP.perp2())));
1618  if (isMatched) histograms.h_assocpT[count].fill(getPt(sqrt(momentumTP.perp2())));
1619  }
1620 
1621  if((*GpSelectorForEfficiencyVsVTXR)(tp)){
1622  histograms.h_simuldxy[count].fill(dxySim);
1623  if (isMatched) histograms.h_assocdxy[count].fill(dxySim);
1624 
1625  histograms.h_simulvertpos[count].fill(sqrt(vertexTP.perp2()));
1626  if (isMatched) histograms.h_assocvertpos[count].fill(sqrt(vertexTP.perp2()));
1627  }
1628 
1629  if((*GpSelectorForEfficiencyVsVTXZ)(tp)){
1630  histograms.h_simuldz[count].fill(dzSim);
1631  if (isMatched) histograms.h_assocdz[count].fill(dzSim);
1632 
1633  histograms.h_simulzpos[count].fill(vertexTP.z());
1634  if (isMatched) histograms.h_assoczpos[count].fill(vertexTP.z());
1635  }
1636 
1637 }
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:901
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 1333 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().

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

Definition at line 1639 of file MTVHistoProducerAlgoForTracker.cc.

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

1642  {
1643  histograms.h_seedsFitFailed[count].fill(seedsFitFailed);
1644  histograms.h_seedsFitFailedFraction[count].fill(static_cast<double>(seedsFitFailed)/seedsTotal);
1645 }
void MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos ( const Histograms histograms,
int  count,
const reco::Track track 
) const

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

1278  {
1279  //nchi2 and hits global distributions
1280  histograms.h_hits[count].fill(track.numberOfValidHits());
1281  histograms.h_losthits[count].fill(track.numberOfLostHits());
1282  histograms.h_nmisslayers_inner[count].fill(track.hitPattern().numberOfLostHits(reco::HitPattern::MISSING_INNER_HITS));
1283  histograms.h_nmisslayers_outer[count].fill(track.hitPattern().numberOfLostHits(reco::HitPattern::MISSING_OUTER_HITS));
1284  if(trackFromSeedFitFailed(track))
1285  return;
1286 
1287  histograms.h_nchi2[count].fill(track.normalizedChi2());
1288  histograms.h_nchi2_prob[count].fill(TMath::Prob(track.chi2(),(int)track.ndof()));
1289  histograms.chi2_vs_nhits[count].fill(track.numberOfValidHits(),track.normalizedChi2());
1290  histograms.h_charge[count].fill( track.charge() );
1291 
1292  //chi2 and #hit vs eta: fill 2D histos
1293  const auto eta = getEta(track.eta());
1294  histograms.chi2_vs_eta[count].fill(eta, track.normalizedChi2());
1295  histograms.nhits_vs_eta[count].fill(eta, track.numberOfValidHits());
1296  const auto pxbHits = track.hitPattern().numberOfValidPixelBarrelHits();
1297  const auto pxfHits = track.hitPattern().numberOfValidPixelEndcapHits();
1298  const auto tibHits = track.hitPattern().numberOfValidStripTIBHits();
1299  const auto tidHits = track.hitPattern().numberOfValidStripTIDHits();
1300  const auto tobHits = track.hitPattern().numberOfValidStripTOBHits();
1301  const auto tecHits = track.hitPattern().numberOfValidStripTECHits();
1302  histograms.nPXBhits_vs_eta[count].fill(eta, pxbHits);
1303  histograms.nPXFhits_vs_eta[count].fill(eta, pxfHits);
1304  histograms.nPXLhits_vs_eta[count].fill(eta, pxbHits+pxfHits);
1305  histograms.nTIBhits_vs_eta[count].fill(eta, tibHits);
1306  histograms.nTIDhits_vs_eta[count].fill(eta, tidHits);
1307  histograms.nTOBhits_vs_eta[count].fill(eta, tobHits);
1308  histograms.nTEChits_vs_eta[count].fill(eta, tecHits);
1309  histograms.nSTRIPhits_vs_eta[count].fill(eta, tibHits+tidHits+tobHits+tecHits);
1310  histograms.nLayersWithMeas_vs_eta[count].fill(eta, track.hitPattern().trackerLayersWithMeasurement());
1311  histograms.nPXLlayersWithMeas_vs_eta[count].fill(eta, track.hitPattern().pixelLayersWithMeasurement());
1312  int LayersAll = track.hitPattern().stripLayersWithMeasurement();
1313  int Layers2D = track.hitPattern().numberOfValidStripLayersWithMonoAndStereo();
1314  int Layers1D = LayersAll - Layers2D;
1315  histograms.nSTRIPlayersWithMeas_vs_eta[count].fill(eta, LayersAll);
1316  histograms.nSTRIPlayersWith1dMeas_vs_eta[count].fill(eta, Layers1D);
1317  histograms.nSTRIPlayersWith2dMeas_vs_eta[count].fill(eta, Layers2D);
1318 
1319  histograms.nlosthits_vs_eta[count].fill(eta, track.numberOfLostHits());
1320 }
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:600
unsigned short numberOfLostHits() const
number of cases where track crossed a layer without getting a hit.
Definition: TrackBase.h:907
int pixelLayersWithMeasurement() const
Definition: HitPattern.cc:538
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:557
int numberOfValidStripTOBHits() const
Definition: HitPattern.h:946
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:690
int numberOfValidStripLayersWithMonoAndStereo(uint16_t stripdet, uint16_t layer) const
Definition: HitPattern.cc:379
int numberOfValidPixelBarrelHits() const
Definition: HitPattern.h:921
double chi2() const
chi-squared of the fit
Definition: TrackBase.h:588
double ndof() const
number of degrees of freedom of the fit
Definition: TrackBase.h:594
int numberOfValidStripTIDHits() const
Definition: HitPattern.h:941
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:901
int numberOfValidStripTECHits() const
Definition: HitPattern.h:951
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:485
int stripLayersWithMeasurement() const
Definition: HitPattern.h:1138
int numberOfValidStripTIBHits() const
Definition: HitPattern.h:936
int numberOfLostHits(HitCategory category) const
Definition: HitPattern.h:990
int numberOfValidPixelEndcapHits() const
Definition: HitPattern.h:926
int charge() const
track electric charge
Definition: TrackBase.h:606
void MTVHistoProducerAlgoForTracker::fill_simTrackBased_histos ( const Histograms histograms,
int  numSimTracks 
) const

Definition at line 1037 of file MTVHistoProducerAlgoForTracker.cc.

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

1037  {
1038  histograms.h_tracksSIM.fill(numSimTracks);
1039 }
void MTVHistoProducerAlgoForTracker::fill_trackBased_histos ( const Histograms histograms,
int  count,
int  assTracks,
int  numRecoTracks,
int  numRecoTracksSelected,
int  numSimTracksSelected 
) const

Definition at line 1323 of file MTVHistoProducerAlgoForTracker.cc.

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

1323  {
1324 
1325  histograms.h_tracks[count].fill(assTracks);
1326  histograms.h_fakes[count].fill(numRecoTracks-assTracks);
1327  if(histograms.nrec_vs_nsim[count]) histograms.nrec_vs_nsim[count].fill(numSimTracksSelected, numRecoTracksSelected);
1328 
1329 }
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 1490 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().

1492  {
1493  pt = track.pt();
1494  ptError = track.ptError();
1495  qoverp = track.qoverp();
1496  qoverpError = track.qoverpError();
1497  lambda = track.lambda();
1498  lambdaError = track.lambdaError();
1499  phi = track.phi();
1500  phiError = track.phiError();
1501  // cout <<"test1" << endl;
1502 
1503 
1504 
1505 }
double qoverp() const
q / p
Definition: TrackBase.h:612
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:684
double pt() const
track transverse momentum
Definition: TrackBase.h:660
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
Definition: TrackBase.h:814
double phiError() const
error on phi
Definition: TrackBase.h:841
double lambda() const
Lambda angle.
Definition: TrackBase.h:624
double qoverpError() const
error on signed transverse curvature
Definition: TrackBase.h:808
double lambdaError() const
error on lambda
Definition: TrackBase.h:829
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 1508 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().

1510  {
1511 
1512  pt = gsfTrack.ptMode();
1513  ptError = gsfTrack.ptModeError();
1514  qoverp = gsfTrack.qoverpMode();
1515  qoverpError = gsfTrack.qoverpModeError();
1516  lambda = gsfTrack.lambdaMode();
1517  lambdaError = gsfTrack.lambdaModeError();
1518  phi = gsfTrack.phiMode();
1519  phiError = gsfTrack.phiModeError();
1520  // cout <<"test2" << endl;
1521 
1522 }
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 1536 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().

1536  {
1537  if(track.seedRef().isNull() || !track.seedRef().isAvailable())
1538  return seedingLayerSetNames.size()-1;
1539 
1540  const TrajectorySeed& seed = *(track.seedRef());
1541  const auto hitRange = seed.recHits();
1542  SeedingLayerSetId searchId;
1543  const int nhits = std::distance(hitRange.first, hitRange.second);
1544  if(nhits > static_cast<int>(std::tuple_size<SeedingLayerSetId>::value)) {
1545  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.";
1546  return seedingLayerSetNames.size()-1;
1547  }
1548  int i=0;
1549  for(auto iHit = hitRange.first; iHit != hitRange.second; ++iHit, ++i) {
1550  DetId detId = iHit->geographicalId();
1551 
1552  if(detId.det() != DetId::Tracker) {
1553  throw cms::Exception("LogicError") << "Encountered seed hit detId " << detId.rawId() << " not from Tracker, but " << detId.det();
1554  }
1555 
1557  bool subdetStrip = false;
1558  switch(detId.subdetId()) {
1561  case StripSubdetector::TIB: subdet = GeomDetEnumerators::TIB; subdetStrip = true; break;
1562  case StripSubdetector::TID: subdet = GeomDetEnumerators::TID; subdetStrip = true; break;
1563  case StripSubdetector::TOB: subdet = GeomDetEnumerators::TOB; subdetStrip = true; break;
1564  case StripSubdetector::TEC: subdet = GeomDetEnumerators::TEC; subdetStrip = true; break;
1565  default: throw cms::Exception("LogicError") << "Unknown subdetId " << detId.subdetId();
1566  };
1567 
1568  TrackerDetSide side = static_cast<TrackerDetSide>(ttopo.side(detId));
1569 
1570  // Even with the recent addition of
1571  // SeedingLayerSetsBuilder::fillDescription() this assumption is a
1572  // bit ugly.
1573  const bool isStripMono = subdetStrip && trackerHitRTTI::isSingle(*iHit);
1574  searchId[i] = SeedingLayerId(SeedingLayerSetsBuilder::SeedingLayerId(subdet, side, ttopo.layer(detId)), isStripMono);
1575  }
1576  auto found = seedingLayerSetToBin.find(searchId);
1577  if(found == seedingLayerSetToBin.end()) {
1578  return seedingLayerSetNames.size()-1;
1579  }
1580  return found->second;
1581 }
#define LogDebug(id)
const edm::RefToBase< TrajectorySeed > & seedRef() const
Definition: Track.h:218
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:50
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 340 of file MTVHistoProducerAlgoForTracker.cc.

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

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

340  {
341  edm::ParameterSet psetTrack;
342  psetTrack.copyForModify(pset);
343  psetTrack.eraseSimpleParameter("minHit");
344  psetTrack.eraseSimpleParameter("signalOnly");
345  psetTrack.eraseSimpleParameter("intimeOnly");
346  psetTrack.eraseSimpleParameter("chargedOnly");
347  psetTrack.eraseSimpleParameter("stableOnly");
348  psetTrack.addParameter("maxChi2", 1e10);
349  psetTrack.addParameter("minHit", 0);
350  psetTrack.addParameter("minPixelHit", 0);
351  psetTrack.addParameter("minLayer", 0);
352  psetTrack.addParameter("min3DLayer", 0);
353  psetTrack.addParameter("quality", std::vector<std::string>{});
354  psetTrack.addParameter("algorithm", std::vector<std::string>{});
355  psetTrack.addParameter("originalAlgorithm", std::vector<std::string>{});
356  psetTrack.addParameter("algorithmMaskContains", std::vector<std::string>{});
357 
358  return std::make_unique<RecoTrackSelectorBase>(psetTrack);
359 }
void addParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:125
void eraseSimpleParameter(std::string const &name)
void copyForModify(ParameterSet const &other)
Definition: ParameterSet.cc:93

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 255 of file MTVHistoProducerAlgoForTracker.h.

Referenced by MTVHistoProducerAlgoForTracker().

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

Definition at line 244 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::maxdrj
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 277 of file MTVHistoProducerAlgoForTracker.h.

Referenced by MTVHistoProducerAlgoForTracker().

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

Definition at line 275 of file MTVHistoProducerAlgoForTracker.h.

double MTVHistoProducerAlgoForTracker::minDeDx
private
double MTVHistoProducerAlgoForTracker::mindr
private
double MTVHistoProducerAlgoForTracker::mindrj
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 277 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::nintdrj
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 277 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 262 of file MTVHistoProducerAlgoForTracker.h.

Referenced by getEta(), and MTVHistoProducerAlgoForTracker().

bool MTVHistoProducerAlgoForTracker::useInvPt
private

Definition at line 263 of file MTVHistoProducerAlgoForTracker.h.

Referenced by getPt(), and MTVHistoProducerAlgoForTracker().

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