CMS 3D CMS Logo

OuterTrackerMonitorTrackingParticles.h
Go to the documentation of this file.
1 #ifndef SiOuterTrackerV_OuterTrackerMonitorTrackingParticles_h
2 #define SiOuterTrackerV_OuterTrackerMonitorTrackingParticles_h
3 
4 #include <vector>
5 #include <memory>
6 #include <string>
23 
24 
25 class DQMStore;
26 
28 
29 public:
32  void analyze(const edm::Event&, const edm::EventSetup&) override;
33  void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
34  int Layer(const float R_, const float Z_) const;
35 
36 
37  // Tracking particle distributions
41 
42  // Plots for correctly matched tracks
43  MonitorElement* Track_MatchedChi2 = nullptr; //Chi2 for only tracks correctly matched to truth level
44  MonitorElement* Track_MatchedChi2Red = nullptr; //Chi2/dof for only tracks correctly matched to truth level
45 
46  // pT and eta for efficiency plots
47  MonitorElement* tp_pt = nullptr; // denominator
48  MonitorElement* tp_pt_zoom = nullptr; // denominator
49  MonitorElement* tp_eta = nullptr; // denominator
50  MonitorElement* tp_d0 = nullptr; // denominator
51  MonitorElement* tp_VtxR = nullptr; // denominator (also known as vxy)
52  MonitorElement* tp_VtxZ = nullptr; // denominator
53  MonitorElement* match_tp_pt = nullptr; // numerator
54  MonitorElement* match_tp_pt_zoom = nullptr; // numerator
55  MonitorElement* match_tp_eta = nullptr; // numerator
56  MonitorElement* match_tp_d0 = nullptr; // numerator
57  MonitorElement* match_tp_VtxR = nullptr; // numerator (also known as vxy)
58  MonitorElement* match_tp_VtxZ = nullptr; // numerator
59 
60  // 1D intermediate resolution plots (pT and eta)
61  MonitorElement* res_eta = nullptr; // for all eta and pT
62  MonitorElement* res_pt = nullptr; // for all eta and pT
63  MonitorElement* res_ptRel = nullptr; // for all eta and pT (delta(pT)/pT)
100 
101  // For d0
108 
109  private:
119  double L1Tk_maxChi2;
122  double TP_minPt;
123  double TP_maxPt;
124  double TP_maxEta;
125  double TP_maxVtxZ;
128 
129  // The following adds a variable that is the number of layers hit for each tracking particle
130  struct TpStruct{
131  int TpId;
132  std::vector<bool> layer;
133  int Nlayers(){ //Counts how many layers are set to "true" for their hit status
134  int layers=0;
135  for(unsigned l=0; l<layer.size(); ++l) if(layer[l]) ++layers;
136  return layers;
137  }
138  };
139 
140 };
141 #endif
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
std::vector< LayerSetAndLayers > layers(const SeedingLayerSetsHits &sets)
Definition: LayerTriplets.cc:4
edm::EDGetTokenT< std::vector< TrackingParticle > > trackingParticleToken_
edm::EDGetTokenT< edmNew::DetSetVector< TTStub< Ref_Phase2TrackerDigi_ > > > ttStubToken_
edm::EDGetTokenT< TTStubAssociationMap< Ref_Phase2TrackerDigi_ > > ttStubMCTruthToken_
int Layer(const float R_, const float Z_) const
edm::EDGetTokenT< TTTrackAssociationMap< Ref_Phase2TrackerDigi_ > > ttTrackMCTruthToken_
edm::EDGetTokenT< std::vector< TTTrack< Ref_Phase2TrackerDigi_ > > > ttTrackToken_
edm::EDGetTokenT< TTClusterAssociationMap< Ref_Phase2TrackerDigi_ > > ttClusterMCTruthToken_
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: Run.h:44