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 //
44 // class declaration
45 //
46 
51 
56 
58 };
59 
60 struct DecayHists {
61  // kinematics
66 
67  // position
72 
73  // ct and pointing angle
76 
77  // quality
80 
81  std::vector<ComponentHists> decayComponents;
82 };
83 
106 };
107 
108 class HeavyFlavorDQMAnalyzer : public DQMGlobalEDAnalyzer<Histograms_HeavyFlavorDQMAnalyzer> {
109 public:
111 
112  explicit HeavyFlavorDQMAnalyzer(const edm::ParameterSet&);
113  ~HeavyFlavorDQMAnalyzer() override;
114 
115  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
116 
117 private:
119  edm::Run const&,
120  edm::EventSetup const&,
121  Histograms&) const override;
122 
123  void dqmAnalyze(edm::Event const&, edm::EventSetup const&, Histograms const&) const override;
124 
125  void bookDecayHists(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&, DecayHists&, std::string const&, std::string const&, int, float, float, float distanceScaleFactor = 1.) const;
126  void initComponentHists(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&, DecayHists&, TString const&) const; // TString for the IBooker interface
127 
141 
143  void fillComponentHistograms(ComponentHists const& histos, reco::Track const& component) const;
144 
145  int fillComponentHistogramsSinglePart(DecayHists const&, pat::CompositeCandidate const& cand, std::string const& name, int startPosition = 0) const;
146  int fillComponentHistogramsLeadSoft(DecayHists const&, pat::CompositeCandidate const& cand, std::string const& name1, std::string const& name2, int startPosition = 0) const;
147 
148  const reco::Track* getDaughterTrack(pat::CompositeCandidate const& cand, std::string const& name, bool throwOnMissing = true) const;
150 
151  int fillOniaToMuMuComponents(DecayHists const& histos, pat::CompositeCandidate const& cand, int startPosition = 0) const;
152  int fillKx0ToKPiComponents(DecayHists const& histos, pat::CompositeCandidate const& cand, int startPosition = 0) const;
153  int fillPhiToKKComponents(DecayHists const& histos, pat::CompositeCandidate const& cand, int startPosition = 0) const;
154  int fillK0sToPiPiComponents(DecayHists const& histos, pat::CompositeCandidate const& cand, int startPosition = 0) const;
155  int fillLambda0ToPPiComponents(DecayHists const& histos, pat::CompositeCandidate const& cand, int startPosition = 0) const;
156  int fillBuToJPsiKComponents(DecayHists const& histos, pat::CompositeCandidate const& cand, int startPosition = 0) const;
157  int fillBuToPsi2SKComponents(DecayHists const& histos, pat::CompositeCandidate const& cand, int startPosition = 0) const;
158  int fillBdToJPsiKx0Components(DecayHists const& histos, pat::CompositeCandidate const& cand, int startPosition = 0) const;
159  int fillBsToJPsiPhiComponents(DecayHists const& histos, pat::CompositeCandidate const& cand, int startPosition = 0) const;
160  int fillBdToJPsiK0sComponents(DecayHists const& histos, pat::CompositeCandidate const& cand, int startPosition = 0) const;
161  int fillBcToJPsiPiComponents(DecayHists const& histos, pat::CompositeCandidate const& cand, int startPosition = 0) const;
162  int fillLambdaBToJPsiLambda0Components(DecayHists const& histos, pat::CompositeCandidate const& cand, int startPosition = 0) const;
163  int fillPsi2SToJPsiPiPiComponents(DecayHists const& histos, pat::CompositeCandidate const& cand, int startPosition = 0) const;
164 
165  // ------------ member data ------------
167 
169 
183 };
184 
185 #endif
Analysis-level particle class.
dqm::reco::MonitorElement * h_displ3D
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
dqm::reco::MonitorElement * h_dz
void initOniaToMuMuComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
int fillLambdaBToJPsiLambda0Components(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
int fillBuToJPsiKComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
int fillComponentHistogramsLeadSoft(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name1, std::string const &name2, int startPosition=0) const
dqm::reco::MonitorElement * h_sign2D
int fillBuToPsi2SKComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
dqm::reco::MonitorElement * h_dxy
dqm::reco::MonitorElement * h_displ2D
void fillComponentHistograms(ComponentHists const &histos, reco::Track const &component) const
bool allTracksAvailable(pat::CompositeCandidate const &cand) const
int fillBsToJPsiPhiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
dqm::reco::MonitorElement * h_phi
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
bool fillDecayHistograms(DecayHists const &, pat::CompositeCandidate const &cand, reco::VertexCollection const &pvs) const
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
edm::EDGetTokenT< pat::CompositeCandidateCollection > lambda0ToPPiCandsToken
int fillBcToJPsiPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > phiToKKCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > oniaToMuMuCandsToken
dqm::reco::MonitorElement * h_eta
dqm::reco::MonitorElement * h_exy
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
dqm::reco::MonitorElement * h_ez
void initBuToJPsiKComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
dqm::reco::MonitorElement * h_phi
void initLambdaBToJPsiLambda0ComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
int fillK0sToPiPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > buToJPsiKCandsToken
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
int fillBdToJPsiKx0Components(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
edm::EDGetTokenT< reco::VertexCollection > pvCollectionToken
void initComponentHists(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &, TString const &) const
int fillKx0ToKPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
dqm::reco::MonitorElement * h_pt
dqm::reco::MonitorElement * h_vertProb
edm::EDGetTokenT< pat::CompositeCandidateCollection > bdToJPsiK0sCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > bcToJPsiPiCandsToken
void initBsToJPsiPhiComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
int fillLambda0ToPPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > buToPsi2SKCandsToken
dqm::reco::MonitorElement * h_chi2
dqm::reco::MonitorElement * h_sign3D
dqm::reco::MonitorElement * h_eta
edm::EDGetTokenT< pat::CompositeCandidateCollection > kx0ToKPiCandsToken
void initPhiToKKComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
int fillPsi2SToJPsiPiPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
dqm::reco::MonitorElement * h_pointing
dqm::reco::MonitorElement * h_mass
void initLambda0ToPPiComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
dqm::reco::MonitorElement * h_pt
void bookDecayHists(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &, std::string const &, std::string const &, int, float, float, float distanceScaleFactor=1.) const
dqm::reco::MonitorElement * h_vertNormChi2
int fillBdToJPsiK0sComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
void initKx0ToKPiComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
histos
Definition: combine.py:4
int fillPhiToKKComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
void initBdToJPsiKx0ComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
std::vector< ComponentHists > decayComponents
edm::EDGetTokenT< pat::CompositeCandidateCollection > psi2SToJPsiPiPiCandsToken
void initBuToPsi2SKComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
int fillComponentHistogramsSinglePart(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name, int startPosition=0) const
void initBdToJPsiK0sComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > k0sToPiPiCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > bsToJPsiPhiCandsToken
Definition: Run.h:45
dqm::reco::MonitorElement * h_ct
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, Histograms &) const override