CMS 3D CMS Logo

MultiTrackValidatorGenPs.cc
Go to the documentation of this file.
2 
5 
22 
26 
27 #include "TMath.h"
28 #include <TF1.h>
29 
30 //#include <iostream>
31 
32 using namespace std;
33 using namespace edm;
34 
35 static const std::string kTrackAssociatorByChi2("trackAssociatorByChi2");
36 
38  gpSelector = GenParticleCustomSelector(pset.getParameter<double>("ptMinGP"),
39  pset.getParameter<double>("minRapidityGP"),
40  pset.getParameter<double>("maxRapidityGP"),
41  pset.getParameter<double>("tipGP"),
42  pset.getParameter<double>("lipGP"),
43  pset.getParameter<bool>("chargedOnlyGP"),
44  pset.getParameter<int>("statusGP"),
45  pset.getParameter<std::vector<int> >("pdgIdGP"));
46 
47  if (useAssociators_) {
48  for (auto const& src : associators) {
49  if (src.label() == kTrackAssociatorByChi2) {
50  label_gen_associator = consumes<reco::TrackToGenParticleAssociator>(src);
51  break;
52  }
53  }
54  } else {
55  for (auto const& src : associators) {
56  associatormapGtR = consumes<reco::GenToRecoCollection>(src);
57  associatormapRtG = consumes<reco::RecoToGenCollection>(src);
58  break;
59  }
60  }
61 }
62 
64 
66  const edm::EventSetup& setup,
67  const Histograms& histograms) const {
68  using namespace reco;
69 
70  edm::LogInfo("TrackValidator") << "\n===================================================="
71  << "\n"
72  << "Analyzing new event"
73  << "\n"
74  << "====================================================\n"
75  << "\n";
76 
77  edm::ESHandle<ParametersDefinerForTP> parametersDefinerTP;
78  setup.get<TrackAssociatorRecord>().get(parametersDefiner, parametersDefinerTP);
79 
81  setup.get<TrackerTopologyRcd>().get(httopo);
82  const TrackerTopology& ttopo = *httopo;
83 
84  edm::Handle<GenParticleCollection> TPCollectionHeff;
85  event.getByToken(label_tp_effic, TPCollectionHeff);
86  const GenParticleCollection tPCeff = *(TPCollectionHeff.product());
87 
88  edm::Handle<GenParticleCollection> TPCollectionHfake;
89  event.getByToken(label_tp_fake, TPCollectionHfake);
90  const GenParticleCollection tPCfake = *(TPCollectionHfake.product());
91 
92  //if (tPCeff.size()==0) {edm::LogInfo("TrackValidator")
93  //<< "TP Collection for efficiency studies has size = 0! Skipping Event." ; return;}
94  //if (tPCfake.size()==0) {edm::LogInfo("TrackValidator")
95  //<< "TP Collection for fake rate studies has size = 0! Skipping Event." ; return;}
96 
97  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
98  event.getByToken(bsSrc, recoBeamSpotHandle);
99  reco::BeamSpot bs = *recoBeamSpotHandle;
100 
102  event.getByToken(label_pileupinfo, puinfoH);
103  PileupSummaryInfo puinfo;
104 
105  for (unsigned int puinfo_ite = 0; puinfo_ite < (*puinfoH).size(); ++puinfo_ite) {
106  if ((*puinfoH)[puinfo_ite].getBunchCrossing() == 0) {
107  puinfo = (*puinfoH)[puinfo_ite];
108  break;
109  }
110  }
111 
112  const reco::TrackToGenParticleAssociator* trackGenAssociator = nullptr;
113  if (useAssociators_) {
115  return;
116  } else {
118  event.getByToken(label_gen_associator, trackGenAssociatorH);
119  trackGenAssociator = trackGenAssociatorH.product();
120  }
121  } else if (associatormapGtR.isUninitialized()) {
122  return;
123  }
124 
125  // dE/dx
126  // at some point this could be generalized, with a vector of tags and a corresponding vector of Handles
127  // I'm writing the interface such to take vectors of ValueMaps
128  std::vector<const edm::ValueMap<reco::DeDxData>*> v_dEdx;
129  if (dodEdxPlots_) {
132  event.getByToken(m_dEdx1Tag, dEdx1Handle);
133  event.getByToken(m_dEdx2Tag, dEdx2Handle);
134  v_dEdx.push_back(dEdx1Handle.product());
135  v_dEdx.push_back(dEdx2Handle.product());
136  }
137 
138  std::vector<float> mvaDummy;
139 
140  int w = 0; //counter counting the number of sets of histograms
141  for (unsigned int www = 0; www < label.size(); www++) {
142  //
143  //get collections from the event
144  //
147  continue;
148  //if (trackCollection->size()==0)
149  //edm::LogInfo("TrackValidator") << "TrackCollection size = 0!" ;
150  //continue;
151  //}
152  reco::RecoToGenCollection recGenColl;
153  reco::GenToRecoCollection genRecColl;
154  //associate tracks
155  if (useAssociators_) {
156  edm::LogVerbatim("TrackValidator") << "Analyzing " << label[www].process() << ":" << label[www].label() << ":"
157  << label[www].instance() << " with " << kTrackAssociatorByChi2 << "\n";
158 
159  LogTrace("TrackValidator") << "Calling associateRecoToGen method"
160  << "\n";
161  recGenColl = trackGenAssociator->associateRecoToGen(trackCollection, TPCollectionHfake);
162  LogTrace("TrackValidator") << "Calling associateGenToReco method"
163  << "\n";
164  genRecColl = trackGenAssociator->associateGenToReco(trackCollection, TPCollectionHeff);
165  } else {
166  edm::LogVerbatim("TrackValidator") << "Analyzing " << label[www].process() << ":" << label[www].label() << ":"
167  << label[www].instance() << " with " << associators[0] << "\n";
168 
169  Handle<reco::GenToRecoCollection> gentorecoCollectionH;
170  event.getByToken(associatormapGtR, gentorecoCollectionH);
171  genRecColl = *(gentorecoCollectionH.product());
172 
173  Handle<reco::RecoToGenCollection> recotogenCollectionH;
174  event.getByToken(associatormapRtG, recotogenCollectionH);
175  recGenColl = *(recotogenCollectionH.product());
176  }
177 
178  // ########################################################
179  // fill simulation histograms (LOOP OVER TRACKINGPARTICLES)
180  // ########################################################
181 
182  //compute number of tracks per eta interval
183  //
184  edm::LogVerbatim("TrackValidator") << "\n# of GenParticles: " << tPCeff.size() << "\n";
185  int ats(0); //This counter counts the number of simTracks that are "associated" to recoTracks
186  int st(0); //This counter counts the number of simulated tracks passing the MTV selection (i.e. tpSelector(tp) )
187  unsigned sts(0); //This counter counts the number of simTracks surviving the bunchcrossing cut
188  unsigned asts(
189  0); //This counter counts the number of simTracks that are "associated" to recoTracks surviving the bunchcrossing cut
190  for (GenParticleCollection::size_type i = 0; i < tPCeff.size();
191  i++) { //loop over TPs collection for tracking efficiency
192  GenParticleRef tpr(TPCollectionHeff, i);
193  GenParticle* tp = const_cast<GenParticle*>(tpr.get());
194  TrackingParticle::Vector momentumTP;
195  TrackingParticle::Point vertexTP;
196  double dxyGen(0);
197  double dzGen(0);
198 
199  //---------- THIS PART HAS TO BE CLEANED UP. THE PARAMETER DEFINER WAS NOT MEANT TO BE USED IN THIS WAY ----------
200  //If the GenParticle is collison like, get the momentum and vertex at production state
202  //fixme this one shold be implemented
203  if (!gpSelector(*tp))
204  continue;
205  momentumTP = tp->momentum();
206  vertexTP = tp->vertex();
207  //Calcualte the impact parameters w.r.t. PCA
208  TrackingParticle::Vector momentum = parametersDefinerTP->momentum(event, setup, *tp);
209  TrackingParticle::Point vertex = parametersDefinerTP->vertex(event, setup, *tp);
210  dxyGen = (-vertex.x() * sin(momentum.phi()) + vertex.y() * cos(momentum.phi()));
211  dzGen = vertex.z() - (vertex.x() * momentum.x() + vertex.y() * momentum.y()) / sqrt(momentum.perp2()) *
212  momentum.z() / sqrt(momentum.perp2());
213  }
214  //If the GenParticle is comics, get the momentum and vertex at PCA
215  else {
216  //if(! cosmictpSelector(*tp,&bs,event,setup)) continue;
217  momentumTP = parametersDefinerTP->momentum(event, setup, *tp);
218  vertexTP = parametersDefinerTP->vertex(event, setup, *tp);
219  dxyGen = (-vertexTP.x() * sin(momentumTP.phi()) + vertexTP.y() * cos(momentumTP.phi()));
220  dzGen = vertexTP.z() - (vertexTP.x() * momentumTP.x() + vertexTP.y() * momentumTP.y()) /
221  sqrt(momentumTP.perp2()) * momentumTP.z() / sqrt(momentumTP.perp2());
222  }
223  //---------- THE PART ABOVE HAS TO BE CLEANED UP. THE PARAMETER DEFINER WAS NOT MEANT TO BE USED IN THIS WAY ----------
224 
225  st++; //This counter counts the number of simulated tracks passing the MTV selection (i.e. tpSelector(tp) )
226 
227  // in the coming lines, histos are filled using as input
228  // - momentumTP
229  // - vertexTP
230  // - dxyGen
231  // - dzGen
232 
233  if (doSimPlots_ && w == 0) {
234  histoProducerAlgo_->fill_generic_simTrack_histos(histograms.histoProducerAlgo,
235  momentumTP,
236  vertexTP,
237  tp->collisionId()); //fixme: check meaning of collisionId
238  }
239  if (!doSimTrackPlots_)
240  continue;
241 
242  // ##############################################
243  // fill RecoAssociated GenTracks' histograms
244  // ##############################################
245  // bool isRecoMatched(false); // UNUSED
246  const reco::Track* matchedTrackPointer = nullptr;
247  std::vector<std::pair<RefToBase<Track>, double> > rt;
248  if (genRecColl.find(tpr) != genRecColl.end()) {
249  rt = (std::vector<std::pair<RefToBase<Track>, double> >)genRecColl[tpr];
250  if (!rt.empty()) {
251  ats++; //This counter counts the number of simTracks that have a recoTrack associated
252  // isRecoMatched = true; // UNUSED
253  matchedTrackPointer = rt.begin()->first.get();
254  edm::LogVerbatim("TrackValidator") << "GenParticle #" << st << " with pt=" << sqrt(momentumTP.perp2())
255  << " associated with quality:" << rt.begin()->second << "\n";
256  }
257  } else {
258  edm::LogVerbatim("TrackValidator") << "GenParticle #" << st << " with pt,eta,phi: " << sqrt(momentumTP.perp2())
259  << " , " << momentumTP.eta() << " , " << momentumTP.phi() << " , "
260  << " NOT associated to any reco::Track"
261  << "\n";
262  }
263 
264  int nSimHits = 0;
265  histoProducerAlgo_->fill_recoAssociated_simTrack_histos(histograms.histoProducerAlgo,
266  w,
267  *tp,
268  momentumTP,
269  vertexTP,
270  dxyGen,
271  dzGen,
272  nSimHits,
273  matchedTrackPointer,
274  puinfo.getPU_NumInteractions());
275 
276  sts++;
277  if (matchedTrackPointer)
278  asts++;
279 
280  } // End for (GenParticleCollection::size_type i=0; i<tPCeff.size(); i++){
281 
282  if (doSimPlots_ && w == 0) {
283  histoProducerAlgo_->fill_simTrackBased_histos(histograms.histoProducerAlgo, st);
284  }
285 
286  // ##############################################
287  // fill recoTracks histograms (LOOP OVER TRACKS)
288  // ##############################################
289  if (!doRecoTrackPlots_)
290  continue;
291  edm::LogVerbatim("TrackValidator") << "\n# of reco::Tracks with " << label[www].process() << ":"
292  << label[www].label() << ":" << label[www].instance() << ": "
293  << trackCollection->size() << "\n";
294 
295  //int sat(0); //This counter counts the number of recoTracks that are associated to GenTracks from Signal only
296  int at(0); //This counter counts the number of recoTracks that are associated to GenTracks
297  int rT(0); //This counter counts the number of recoTracks in general
298 
299  for (View<Track>::size_type i = 0; i < trackCollection->size(); ++i) {
301  rT++;
302 
303  bool isSigGenMatched(false);
304  bool isGenMatched(false);
305  bool isChargeMatched(true);
306  int numAssocRecoTracks = 0;
307  int nSimHits = 0;
308  double sharedFraction = 0.;
309  std::vector<std::pair<GenParticleRef, double> > tp;
310  if (recGenColl.find(track) != recGenColl.end()) {
311  tp = recGenColl[track];
312  if (!tp.empty()) {
313  /*
314  std::vector<PSimHit> simhits=tp[0].first->trackPSimHit(DetId::Tracker);
315  nSimHits = simhits.end()-simhits.begin();
316  */
317  sharedFraction = tp[0].second;
318  isGenMatched = true;
319  if (tp[0].first->charge() != track->charge())
320  isChargeMatched = false;
321  if (genRecColl.find(tp[0].first) != genRecColl.end())
322  numAssocRecoTracks = genRecColl[tp[0].first].size();
323  //std::cout << numAssocRecoTracks << std::endl;
324  at++;
325  for (unsigned int tp_ite = 0; tp_ite < tp.size(); ++tp_ite) {
326  GenParticle trackpart = *(tp[tp_ite].first);
327  /*
328  if ((trackpart.eventId().event() == 0) && (trackpart.eventId().bunchCrossing() == 0)){
329  isSigGenMatched = true;
330  sat++;
331  break;
332  }
333  */
334  }
335  edm::LogVerbatim("TrackValidator") << "reco::Track #" << rT << " with pt=" << track->pt()
336  << " associated with quality:" << tp.begin()->second << "\n";
337  }
338  } else {
339  edm::LogVerbatim("TrackValidator")
340  << "reco::Track #" << rT << " with pt=" << track->pt() << " NOT associated to any GenParticle"
341  << "\n";
342  }
343 
344  double dR = 0; //fixme: plots vs dR and vs dRjet not implemented for now
345  histoProducerAlgo_->fill_generic_recoTrack_histos(histograms.histoProducerAlgo,
346  w,
347  *track,
348  ttopo,
349  bs.position(),
350  nullptr,
351  nullptr,
352  isGenMatched,
353  isSigGenMatched,
354  isChargeMatched,
355  numAssocRecoTracks,
356  puinfo.getPU_NumInteractions(),
357  nSimHits,
358  sharedFraction,
359  dR,
360  dR,
361  mvaDummy,
362  0,
363  0);
364 
365  // dE/dx
366  if (dodEdxPlots_)
367  histoProducerAlgo_->fill_dedx_recoTrack_histos(histograms.histoProducerAlgo, w, track, v_dEdx);
368 
369  //Fill other histos
370  //try{ //Is this really necessary ????
371 
372  if (tp.empty())
373  continue;
374 
375  histoProducerAlgo_->fill_simAssociated_recoTrack_histos(histograms.histoProducerAlgo, w, *track);
376 
377  GenParticleRef tpr = tp.begin()->first;
378 
379  /* TO BE FIXED LATER
380  if (associators[ww]=="TrackAssociatorByChi2"){
381  //association chi2
382  double assocChi2 = -tp.begin()->second;//in association map is stored -chi2
383  h_assochi2[www]->Fill(assocChi2);
384  h_assochi2_prob[www]->Fill(TMath::Prob((assocChi2)*5,5));
385  }
386  else if (associators[ww]=="quickTrackAssociatorByHits"){
387  double fraction = tp.begin()->second;
388  h_assocFraction[www]->Fill(fraction);
389  h_assocSharedHit[www]->Fill(fraction*track->numberOfValidHits());
390  }
391  */
392 
393  //Get tracking particle parameters at point of closest approach to the beamline
394  TrackingParticle::Vector momentumTP = parametersDefinerTP->momentum(event, setup, *(tpr.get()));
395  TrackingParticle::Point vertexTP = parametersDefinerTP->vertex(event, setup, *(tpr.get()));
396  int chargeTP = tpr->charge();
397 
398  histoProducerAlgo_->fill_ResoAndPull_recoTrack_histos(
399  histograms.histoProducerAlgo, w, momentumTP, vertexTP, chargeTP, *track, bs.position());
400 
401  //TO BE FIXED
402  //std::vector<PSimHit> simhits=tpr.get()->trackPSimHit(DetId::Tracker);
403  //nrecHit_vs_nsimHit_rec2sim[w]->Fill(track->numberOfValidHits(), (int)(simhits.end()-simhits.begin() ));
404 
405  /*
406  } // End of try{
407  catch (cms::Exception e){
408  LogTrace("TrackValidator") << "exception found: " << e.what() << "\n";
409  }
410  */
411 
412  } // End of for(View<Track>::size_type i=0; i<trackCollection->size(); ++i){
413 
414  histoProducerAlgo_->fill_trackBased_histos(histograms.histoProducerAlgo, w, at, rT, rT, st);
415 
416  edm::LogVerbatim("TrackValidator") << "Total Simulated: " << st << "\n"
417  << "Total Associated (genToReco): " << ats << "\n"
418  << "Total Reconstructed: " << rT << "\n"
419  << "Total Associated (recoToGen): " << at << "\n"
420  << "Total Fakes: " << rT - at << "\n";
421 
422  w++;
423  } // End of for (unsigned int www=0;www<label.size();www++){
424 }
TSCBLBuilderNoMaterial.h
kTrackAssociatorByChi2
static const std::string kTrackAssociatorByChi2("trackAssociatorByChi2")
PileupSummaryInfo.h
edm::AssociationMap::find
const_iterator find(const key_type &k) const
find element with specified reference key
Definition: AssociationMap.h:173
mps_fire.i
i
Definition: mps_fire.py:428
FreeTrajectoryState.h
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11713
MessageLogger.h
MultiTrackValidator::labelToken
std::vector< edm::EDGetTokenT< edm::View< reco::Track > > > labelToken
Definition: MultiTrackValidator.h:68
edm::Handle::product
T const * product() const
Definition: Handle.h:70
DeDxData.h
CosmicParametersDefinerForTPESProducer.h
MultiTrackValidator::label
std::vector< edm::InputTag > label
Definition: MultiTrackValidator.h:67
MultiTrackValidatorGenPs::label_gen_associator
edm::EDGetTokenT< reco::TrackToGenParticleAssociator > label_gen_associator
Definition: MultiTrackValidatorGenPs.h:27
edm
HLT enums.
Definition: AlignableModifier.h:19
TrackerTopology
Definition: TrackerTopology.h:16
hcal_runs.rt
rt
Definition: hcal_runs.py:76
MultiTrackValidatorGenPs::~MultiTrackValidatorGenPs
~MultiTrackValidatorGenPs() override
Destructor.
Definition: MultiTrackValidatorGenPs.cc:63
reco::GenParticleCollection
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
Definition: GenParticleFwd.h:13
edm::Ref::get
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:232
edm::EDGetTokenT::isUninitialized
constexpr bool isUninitialized() const noexcept
Definition: EDGetToken.h:99
TrackingVertex.h
TrackerHitAssociator.h
TrackingParticle::Vector
math::XYZVectorD Vector
point in the space
Definition: TrackingParticle.h:37
ParametersDefinerForTP::momentum
virtual TrackingParticle::Vector momentum(const edm::Event &iEvent, const edm::EventSetup &iSetup, const Charge ch, const Point &vtx, const LorentzVector &lv) const
Definition: ParametersDefinerForTP.cc:17
reco::TrackToGenParticleAssociator
Definition: TrackToGenParticleAssociator.h:34
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
edm::Handle
Definition: AssociativeIterator.h:50
GenParticle
Definition: GenParticle.py:1
dqmdumpme.first
first
Definition: dqmdumpme.py:55
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
edm::Ref< GenParticleCollection >
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
edm::AssociationMap::end
const_iterator end() const
last iterator over the map (read only)
Definition: AssociationMap.h:171
MakerMacros.h
cms::cuda::bs
bs
Definition: HistoContainer.h:127
trigger::size_type
uint16_t size_type
Definition: TriggerTypeDefs.h:18
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Track.h
TrackFwd.h
TrackingVertexContainer.h
MultiTrackValidator::associators
std::vector< edm::InputTag > associators
Definition: MultiTrackValidator.h:57
w
const double w
Definition: UKUtility.cc:23
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
MultiTrackValidatorGenPs::associatormapRtG
edm::EDGetTokenT< reco::RecoToGenCollection > associatormapRtG
Definition: MultiTrackValidatorGenPs.h:29
reco::BeamSpot
Definition: BeamSpot.h:21
reco::Track
Definition: Track.h:27
TrackAssociatorRecord
Definition: TrackAssociatorRecord.h:18
edm::ESHandle
Definition: DTSurvey.h:22
MultiTrackValidator::doRecoTrackPlots_
const bool doRecoTrackPlots_
Definition: MultiTrackValidator.h:85
MultiTrackValidator::parametersDefiner
std::string parametersDefiner
Definition: MultiTrackValidator.h:75
MultiTrackValidator::ignoremissingtkcollection_
const bool ignoremissingtkcollection_
Definition: MultiTrackValidator.h:78
cmsswSequenceInfo.tp
tp
Definition: cmsswSequenceInfo.py:17
MultiTrackValidator::doSimPlots_
const bool doSimPlots_
Definition: MultiTrackValidator.h:83
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
ParametersDefinerForTPESProducer.h
MultiTrackValidator::dodEdxPlots_
const bool dodEdxPlots_
Definition: MultiTrackValidator.h:86
bphysicsOniaDQM_cfi.vertex
vertex
Definition: bphysicsOniaDQM_cfi.py:7
edm::ParameterSet
Definition: ParameterSet.h:47
MultiTrackValidator::doSimTrackPlots_
const bool doSimTrackPlots_
Definition: MultiTrackValidator.h:84
MultiTrackValidatorGenPs::associatormapGtR
edm::EDGetTokenT< reco::GenToRecoCollection > associatormapGtR
Definition: MultiTrackValidatorGenPs.h:28
TrackRefitter_38T_cff.src
src
Definition: TrackRefitter_38T_cff.py:24
duplicaterechits_cfi.trackCollection
trackCollection
Definition: duplicaterechits_cfi.py:4
reco::TrackToGenParticleAssociator::associateRecoToGen
reco::RecoToGenCollection associateRecoToGen(const edm::RefToBaseVector< reco::Track > &tracks, const edm::RefVector< reco::GenParticleCollection > &gens) const
Association Sim To Reco with Collections (Gen Particle version)
Definition: TrackToGenParticleAssociator.h:46
edm::AssociationMap
Definition: AssociationMap.h:48
MultiTrackValidator::m_dEdx1Tag
edm::EDGetTokenT< edm::ValueMap< reco::DeDxData > > m_dEdx1Tag
Definition: MultiTrackValidator.h:72
GsfTrack.h
edm::EventSetup
Definition: EventSetup.h:57
histograms
Definition: histograms.py:1
get
#define get
reco::modules::GenParticleCustomSelector
SingleObjectSelector< GenParticleCollection, ::GenParticleCustomSelector > GenParticleCustomSelector
Definition: GenParticleCustomSelector.cc:15
MultiTrackValidator::useAssociators_
const bool useAssociators_
Definition: MultiTrackValidator.h:79
ValueMap.h
MultiTrackValidator::parametersDefinerIsCosmic_
const bool parametersDefinerIsCosmic_
Definition: MultiTrackValidator.h:77
TrackingParticle.h
MultiTrackValidator::histoProducerAlgo_
std::unique_ptr< MTVHistoProducerAlgoForTracker > histoProducerAlgo_
Definition: MultiTrackValidator.h:93
MultiTrackValidatorGenPs.h
std
Definition: JetResolutionObject.h:76
Ref.h
GsfTrackFwd.h
MultiTrackValidator::label_tp_fake
edm::EDGetTokenT< TrackingParticleCollection > label_tp_fake
Definition: MultiTrackValidator.h:59
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
MultiTrackValidatorGenPs::dqmAnalyze
void dqmAnalyze(const edm::Event &, const edm::EventSetup &, const Histograms &) const override
Method called once per event.
Definition: MultiTrackValidatorGenPs.cc:65
PileupSummaryInfo::getPU_NumInteractions
const int getPU_NumInteractions() const
Definition: PileupSummaryInfo.h:62
MultiTrackValidator::label_pileupinfo
edm::EDGetTokenT< std::vector< PileupSummaryInfo > > label_pileupinfo
Definition: MultiTrackValidator.h:63
edm::RefToBase
Definition: AssociativeIterator.h:54
MultiTrackValidator
Definition: MultiTrackValidator.h:39
MultiTrackValidatorGenPs::gpSelector
GenParticleCustomSelector gpSelector
Definition: MultiTrackValidatorGenPs.h:26
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:224
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
HGC3DClusterGenMatchSelector_cfi.dR
dR
Definition: HGC3DClusterGenMatchSelector_cfi.py:7
MultiTrackValidatorGenPs::MultiTrackValidatorGenPs
MultiTrackValidatorGenPs(const edm::ParameterSet &pset)
Constructor.
Definition: MultiTrackValidatorGenPs.cc:37
MultiTrackValidator::bsSrc
edm::EDGetTokenT< reco::BeamSpot > bsSrc
Definition: MultiTrackValidator.h:70
event
Definition: event.py:1
edm::Event
Definition: Event.h:73
MultiTrackValidator::m_dEdx2Tag
edm::EDGetTokenT< edm::ValueMap< reco::DeDxData > > m_dEdx2Tag
Definition: MultiTrackValidator.h:73
TrackingParticle::Point
math::XYZPointD Point
point in the space
Definition: TrackingParticle.h:36
MultiTrackValidator::label_tp_effic
edm::EDGetTokenT< TrackingParticleCollection > label_tp_effic
Definition: MultiTrackValidator.h:58
reco::TrackToGenParticleAssociator::associateGenToReco
reco::GenToRecoCollection associateGenToReco(const edm::RefToBaseVector< reco::Track > &tracks, const edm::RefVector< reco::GenParticleCollection > &gens) const
Association Sim To Reco with Collections (Gen Particle version)
Definition: TrackToGenParticleAssociator.h:51
SimTrackContainer.h
SimVertexContainer.h
PileupSummaryInfo
Definition: PileupSummaryInfo.h:22
edm::View::size_type
unsigned int size_type
Definition: View.h:90
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
MultiTrackValidatorHistograms
Definition: MultiTrackValidator.h:33
ParametersDefinerForTP::vertex
virtual TrackingParticle::Point vertex(const edm::Event &iEvent, const edm::EventSetup &iSetup, const Charge ch, const Point &vtx, const LorentzVector &lv) const
Definition: ParametersDefinerForTP.cc:50
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
EncodedEventId.h