CMS 3D CMS Logo

MultiTrackValidator.h
Go to the documentation of this file.
1 #ifndef MultiTrackValidator_h
2 #define MultiTrackValidator_h
3 
17 
19  public:
22 
24  virtual ~MultiTrackValidator();
25 
26 
28  void analyze(const edm::Event&, const edm::EventSetup& ) override;
30  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
31 
32 
33  protected:
34  //these are used by MTVGenPs
39  const bool doSummaryPlots_;
40  const bool doSimPlots_;
41  const bool doSimTrackPlots_;
42  const bool doRecoTrackPlots_;
43  const bool dodEdxPlots_;
45  const bool doSeedPlots_;
46  const bool doMVAPlots_;
47  std::unique_ptr<MTVHistoProducerAlgoForTracker> histoProducerAlgo_;
48 
49  private:
53  const ParametersDefinerForTP& parametersDefinerTP,
54  const edm::Event& event, const edm::EventSetup& setup,
55  const reco::BeamSpot& bs,
56  std::vector<std::tuple<TrackingParticle::Vector, TrackingParticle::Point> >& momVert_tPCeff,
57  std::vector<size_t>& selected_tPCeff) const;
58  size_t tpDR(const TrackingParticleRefVector& tPCeff,
59  const std::vector<size_t>& selected_tPCeff,
60  DynArray<float>& dR_tPCeff) const;
62  const edm::View<reco::Track>& trackCollectionDr,
63  DynArray<float>& dR_trk) const;
64 
65  std::vector<edm::EDGetTokenT<reco::TrackToTrackingParticleAssociator>> associatorTokens;
66  std::vector<edm::EDGetTokenT<reco::SimToRecoCollection>> associatormapStRs;
67  std::vector<edm::EDGetTokenT<reco::RecoToSimCollection>> associatormapRtSs;
68 
72 
73 
74  using MVACollection = std::vector<float>;
75  using QualityMaskCollection = std::vector<unsigned char>;
76  std::vector<std::vector<std::tuple<edm::EDGetTokenT<MVACollection>, edm::EDGetTokenT<QualityMaskCollection> > > > mvaQualityCollectionTokens_;
77 
79 
80  bool useGsf;
81  const double simPVMaxZ_;
82  // select tracking particles
83  //(i.e. "denominator" of the efficiency ratio)
88  std::unique_ptr<RecoTrackSelectorBase> dRTrackSelector;
89 
94 
96  std::vector<MonitorElement *> h_assoc_coll_allPt, h_simul_coll_allPt;
97 };
98 
99 
100 #endif
void trackDR(const edm::View< reco::Track > &trackCollection, const edm::View< reco::Track > &trackCollectionDr, DynArray< float > &dR_trk) const
std::vector< float > MVACollection
edm::EDGetTokenT< SimHitTPAssociationProducer::SimHitTPAssociationList > _simHitTpMapTag
std::vector< MonitorElement * > h_reco_coll
std::vector< edm::EDGetTokenT< reco::SimToRecoCollection > > associatormapStRs
CosmicTrackingParticleSelector cosmictpSelector
std::vector< MonitorElement * > h_simul_coll
std::vector< std::vector< std::tuple< edm::EDGetTokenT< MVACollection >, edm::EDGetTokenT< QualityMaskCollection > > > > mvaQualityCollectionTokens_
void analyze(const edm::Event &, const edm::EventSetup &) override
Method called once per event.
edm::EDGetTokenT< edm::ValueMap< unsigned int > > tpNStripStereoLayersToken_
edm::EDGetTokenT< edm::ValueMap< unsigned int > > tpNLayersToken_
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:1
std::vector< unsigned char > QualityMaskCollection
TrackingParticleSelector dRtpSelector
TrackingParticleSelector dRtpSelectorNoPtCut
std::vector< edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > > associatorTokens
const bool doPlotsOnlyForTruePV_
const reco::Vertex::Point * getRecoPVPosition(const edm::Event &event, const edm::Handle< TrackingVertexCollection > &htv) const
void tpParametersAndSelection(const TrackingParticleRefVector &tPCeff, const ParametersDefinerForTP &parametersDefinerTP, const edm::Event &event, const edm::EventSetup &setup, const reco::BeamSpot &bs, std::vector< std::tuple< TrackingParticle::Vector, TrackingParticle::Point > > &momVert_tPCeff, std::vector< size_t > &selected_tPCeff) const
std::vector< MonitorElement * > h_looper_coll
edm::EDGetTokenT< edm::ValueMap< unsigned int > > tpNPixelLayersToken_
math::XYZTLorentzVectorD LorentzVector
std::vector< MonitorElement * > h_pileup_coll
std::vector< MonitorElement * > h_assoc_coll
std::vector< edm::EDGetTokenT< reco::RecoToSimCollection > > associatormapRtSs
size_t tpDR(const TrackingParticleRefVector &tPCeff, const std::vector< size_t > &selected_tPCeff, DynArray< float > &dR_tPCeff) const
TrackingParticleSelector tpSelector
edm::EDGetTokenT< edm::View< reco::Track > > labelTokenForDrCalculation
math::XYZPoint Point
point in the space
Definition: Vertex.h:39
MultiTrackValidator(const edm::ParameterSet &pset)
Constructor.
std::unique_ptr< MTVHistoProducerAlgoForTracker > histoProducerAlgo_
std::vector< MonitorElement * > h_assoc_coll_allPt
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Method called to book the DQM histograms.
edm::EDGetTokenT< reco::VertexToTrackingVertexAssociator > vertexAssociatorToken_
std::unique_ptr< RecoTrackSelectorBase > dRTrackSelector
const bool doPVAssociationPlots_
edm::EDGetTokenT< edm::View< reco::Vertex > > recoVertexToken_
const bool calculateDrSingleCollection_
std::vector< MonitorElement * > h_simul_coll_allPt
std::vector< MonitorElement * > h_assoc2_coll
Definition: event.py:1
Definition: Run.h:42
virtual ~MultiTrackValidator()
Destructor.
const TrackingVertex::LorentzVector * getSimPVPosition(const edm::Handle< TrackingVertexCollection > &htv) const
const bool parametersDefinerIsCosmic_