CMS 3D CMS Logo

HeavyFlavorDQMAnalyzer.h
Go to the documentation of this file.
1 #ifndef DQMOffline_Physics_HeavyFlavorDQMAnalyzer_h
2 #define DQMOffline_Physics_HeavyFlavorDQMAnalyzer_h
3 
4 // -*- C++ -*-
5 //
6 // Package: DQMOffline/HeavyFlavorDQMAnalyzer
7 // Class: HeavyFlavorDQMAnalyzer
8 //
16 //
17 // Original Author: Enrico Lusiani
18 // Created: Mon, 22 Nov 2021 14:36:39 GMT
19 //
20 //
21 
22 #include <string>
23 
24 // user include files
27 
30 
32 
36 
39 
41 
42 //
43 // class declaration
44 //
45 
50 
55 
57 };
58 
59 struct DecayHists {
60  // kinematics
65 
66  // position
71 
72  // ct and pointing angle
75 
76  // quality
79 
80  std::vector<ComponentHists> decayComponents;
81 };
82 
105 };
106 
107 class HeavyFlavorDQMAnalyzer : public DQMGlobalEDAnalyzer<Histograms_HeavyFlavorDQMAnalyzer> {
108 public:
110 
111  explicit HeavyFlavorDQMAnalyzer(const edm::ParameterSet&);
112  ~HeavyFlavorDQMAnalyzer() override;
113 
114  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
115 
116 private:
117  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&, Histograms&) const override;
118 
119  void dqmAnalyze(edm::Event const&, edm::EventSetup const&, Histograms const&) const override;
120 
122  edm::Run const&,
123  edm::EventSetup const&,
124  DecayHists&,
125  std::string const&,
126  std::string const&,
127  int,
128  float,
129  float,
130  float distanceScaleFactor = 1.) const;
132  edm::Run const&,
133  edm::EventSetup const&,
134  DecayHists&,
135  TString const&) const; // TString for the IBooker interface
136 
142  edm::Run const&,
143  edm::EventSetup const&,
144  DecayHists&) const;
148  edm::Run const&,
149  edm::EventSetup const&,
150  DecayHists&) const;
152  edm::Run const&,
153  edm::EventSetup const&,
154  DecayHists&) const;
156  edm::Run const&,
157  edm::EventSetup const&,
158  DecayHists&) const;
161  edm::Run const&,
162  edm::EventSetup const&,
163  DecayHists&) const;
165  edm::Run const&,
166  edm::EventSetup const&,
167  DecayHists&) const;
168 
171  reco::VertexCollection const& pvs) const;
173  reco::Track const& component,
174  reco::BeamSpot const* bs,
175  reco::Vertex const* pv) const;
176 
179  std::string const& name,
180  reco::BeamSpot const* bs,
181  reco::Vertex const* pv,
182  int startPosition = 0) const;
185  std::string const& name1,
186  std::string const& name2,
187  reco::BeamSpot const* bs,
188  reco::Vertex const* pv,
189  int startPosition = 0) const;
190 
192  std::string const& name,
193  bool throwOnMissing = true) const;
195 
198  reco::BeamSpot const* bs,
199  reco::Vertex const* pv,
200  int startPosition = 0) const;
203  reco::BeamSpot const* bs,
204  reco::Vertex const* pv,
205  int startPosition = 0) const;
208  reco::BeamSpot const* bs,
209  reco::Vertex const* pv,
210  int startPosition = 0) const;
213  reco::BeamSpot const* bs,
214  reco::Vertex const* pv,
215  int startPosition = 0) const;
218  reco::BeamSpot const* bs,
219  reco::Vertex const* pv,
220  int startPosition = 0) const;
223  reco::BeamSpot const* bs,
224  reco::Vertex const* pv,
225  int startPosition = 0) const;
228  reco::BeamSpot const* bs,
229  reco::Vertex const* pv,
230  int startPosition = 0) const;
233  reco::BeamSpot const* bs,
234  reco::Vertex const* pv,
235  int startPosition = 0) const;
238  reco::BeamSpot const* bs,
239  reco::Vertex const* pv,
240  int startPosition = 0) const;
243  reco::BeamSpot const* bs,
244  reco::Vertex const* pv,
245  int startPosition = 0) const;
248  reco::BeamSpot const* bs,
249  reco::Vertex const* pv,
250  int startPosition = 0) const;
253  reco::BeamSpot const* bs,
254  reco::Vertex const* pv,
255  int startPosition = 0) const;
258  reco::BeamSpot const* bs,
259  reco::Vertex const* pv,
260  int startPosition = 0) const;
261 
262  // ------------ member data ------------
264 
267 
281 };
282 
283 #endif
int fillKx0ToKPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
Analysis-level particle class.
dqm::reco::MonitorElement * h_pt
int fillLambdaBToJPsiLambda0Components(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
dqm::reco::MonitorElement * h_displ2D
HeavyFlavorDQMAnalyzer(const edm::ParameterSet &)
const reco::Track * getDaughterTrack(pat::CompositeCandidate const &cand, std::string const &name, bool throwOnMissing=true) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > bdToJPsiKx0CandsToken
void initPsi2SToJPsiPiPiComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > lambdaBToJPsiLambda0CandsToken
void initOniaToMuMuComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
dqm::reco::MonitorElement * h_phi
dqm::reco::MonitorElement * h_ez
int fillComponentHistogramsSinglePart(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
void fillComponentHistograms(ComponentHists const &histos, reco::Track const &component, reco::BeamSpot const *bs, reco::Vertex const *pv) const
dqm::reco::MonitorElement * h_vertNormChi2
bool allTracksAvailable(pat::CompositeCandidate const &cand) const
dqm::reco::MonitorElement * h_eta
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
edm::EDGetTokenT< pat::CompositeCandidateCollection > lambda0ToPPiCandsToken
dqm::reco::MonitorElement * h_dxy
dqm::reco::MonitorElement * h_vertProb
edm::EDGetTokenT< pat::CompositeCandidateCollection > phiToKKCandsToken
reco::Vertex const * fillDecayHistograms(DecayHists const &, pat::CompositeCandidate const &cand, reco::VertexCollection const &pvs) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > oniaToMuMuCandsToken
void dqmAnalyze(edm::Event const &, edm::EventSetup const &, Histograms const &) const override
void initK0sToPiPiComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
void initBcToJPsiPiComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
void initBuToJPsiKComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
void initLambdaBToJPsiLambda0ComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
int fillPhiToKKComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > buToJPsiKCandsToken
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
dqm::reco::MonitorElement * h_pointing
int fillPsi2SToJPsiPiPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
edm::EDGetTokenT< reco::VertexCollection > pvCollectionToken
void initComponentHists(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &, TString const &) const
int fillBsToJPsiPhiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
dqm::reco::MonitorElement * h_phi
dqm::reco::MonitorElement * h_ct
int fillBdToJPsiKx0Components(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > bdToJPsiK0sCandsToken
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > bcToJPsiPiCandsToken
void initBsToJPsiPhiComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
dqm::reco::MonitorElement * h_displ3D
edm::EDGetTokenT< pat::CompositeCandidateCollection > buToPsi2SKCandsToken
dqm::reco::MonitorElement * h_dz
dqm::reco::MonitorElement * h_mass
int fillBcToJPsiPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
int fillBuToJPsiKComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
dqm::reco::MonitorElement * h_chi2
edm::EDGetTokenT< pat::CompositeCandidateCollection > kx0ToKPiCandsToken
void initPhiToKKComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
int fillComponentHistogramsLeadSoft(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name1, std::string const &name2, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
int fillBuToPsi2SKComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
void initLambda0ToPPiComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
void bookDecayHists(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &, std::string const &, std::string const &, int, float, float, float distanceScaleFactor=1.) const
void initKx0ToKPiComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
int fillLambda0ToPPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
int fillBdToJPsiK0sComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
void initBdToJPsiKx0ComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
dqm::reco::MonitorElement * h_exy
edm::EDGetTokenT< pat::CompositeCandidateCollection > psi2SToJPsiPiPiCandsToken
void initBuToPsi2SKComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
int fillK0sToPiPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
dqm::reco::MonitorElement * h_eta
dqm::reco::MonitorElement * h_sign2D
void initBdToJPsiK0sComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
dqm::reco::MonitorElement * h_pt
edm::EDGetTokenT< pat::CompositeCandidateCollection > k0sToPiPiCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > bsToJPsiPhiCandsToken
Definition: Run.h:45
dqm::reco::MonitorElement * h_sign3D
std::vector< ComponentHists > decayComponents
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, Histograms &) const override