CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
HeavyFlavorDQMAnalyzer Class Reference

#include <DQMOffline/HeavyFlavorDQMAnalyzer/plugins/HeavyFlavorDQMAnalyzer.cc>

Inheritance diagram for HeavyFlavorDQMAnalyzer:
DQMGlobalEDAnalyzer< Histograms_HeavyFlavorDQMAnalyzer > DQMGlobalEDAnalyzerBase< Histograms_HeavyFlavorDQMAnalyzer, Args... > edm::global::EDProducer< edm::RunCache< Histograms_HeavyFlavorDQMAnalyzer >, edm::EndRunProducer, edm::Accumulator, Args... > edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Types

using Histograms = Histograms_HeavyFlavorDQMAnalyzer
 
- Public Types inherited from DQMGlobalEDAnalyzerBase< Histograms_HeavyFlavorDQMAnalyzer, Args... >
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::global::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
template<typename T >
using BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T >
 
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

 HeavyFlavorDQMAnalyzer (const edm::ParameterSet &)
 
 ~HeavyFlavorDQMAnalyzer () override
 
- Public Member Functions inherited from DQMGlobalEDAnalyzer< Histograms_HeavyFlavorDQMAnalyzer >
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &, Histograms_HeavyFlavorDQMAnalyzer const &) const
 
void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup) const final
 
- Public Member Functions inherited from DQMGlobalEDAnalyzerBase< Histograms_HeavyFlavorDQMAnalyzer, Args... >
void accumulate (edm::StreamID id, edm::Event const &event, edm::EventSetup const &setup) const final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &, Histograms_HeavyFlavorDQMAnalyzer &) const
 
 DQMGlobalEDAnalyzerBase ()
 
std::shared_ptr< Histograms_HeavyFlavorDQMAnalyzerglobalBeginRun (edm::Run const &run, edm::EventSetup const &setup) const final
 
void globalEndRun (edm::Run const &, edm::EventSetup const &) const final
 
- Public Member Functions inherited from edm::global::EDProducer< edm::RunCache< Histograms_HeavyFlavorDQMAnalyzer >, edm::EndRunProducer, edm::Accumulator, Args... >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

bool allTracksAvailable (pat::CompositeCandidate const &cand) 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 bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, Histograms &) const override
 
void dqmAnalyze (edm::Event const &, edm::EventSetup const &, Histograms const &) const override
 
int fillBcToJPsiPiComponents (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
 
int fillBdToJPsiKx0Components (DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
 
int fillBsToJPsiPhiComponents (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
 
int fillBuToPsi2SKComponents (DecayHists const &histos, pat::CompositeCandidate const &cand, 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
 
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 fillComponentHistogramsSinglePart (DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
 
reco::Vertex const * fillDecayHistograms (DecayHists const &, pat::CompositeCandidate const &cand, reco::VertexCollection const &pvs) const
 
int fillK0sToPiPiComponents (DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
 
int fillKx0ToKPiComponents (DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
 
int fillLambda0ToPPiComponents (DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
 
int fillLambdaBToJPsiLambda0Components (DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
 
int fillOniaToMuMuComponents (DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
 
int fillPhiToKKComponents (DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
 
int fillPsi2SToJPsiPiPiComponents (DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
 
const reco::TrackgetDaughterTrack (pat::CompositeCandidate const &cand, std::string const &name, bool throwOnMissing=true) const
 
void initBcToJPsiPiComponentHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
 
void initBdToJPsiK0sComponentHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
 
void initBdToJPsiKx0ComponentHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
 
void initBsToJPsiPhiComponentHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
 
void initBuToJPsiKComponentHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
 
void initBuToPsi2SKComponentHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
 
void initComponentHists (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &, TString const &) const
 
void initK0sToPiPiComponentHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
 
void initKx0ToKPiComponentHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
 
void initLambda0ToPPiComponentHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
 
void initLambdaBToJPsiLambda0ComponentHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
 
void initOniaToMuMuComponentHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
 
void initPhiToKKComponentHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
 
void initPsi2SToJPsiPiPiComponentHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
 

Private Attributes

edm::EDGetTokenT< pat::CompositeCandidateCollectionbcToJPsiPiCandsToken
 
edm::EDGetTokenT< pat::CompositeCandidateCollectionbdToJPsiK0sCandsToken
 
edm::EDGetTokenT< pat::CompositeCandidateCollectionbdToJPsiKx0CandsToken
 
edm::EDGetTokenT< reco::BeamSpotbeamSpotToken
 
edm::EDGetTokenT< pat::CompositeCandidateCollectionbsToJPsiPhiCandsToken
 
edm::EDGetTokenT< pat::CompositeCandidateCollectionbuToJPsiKCandsToken
 
edm::EDGetTokenT< pat::CompositeCandidateCollectionbuToPsi2SKCandsToken
 
std::string folder_
 
edm::EDGetTokenT< pat::CompositeCandidateCollectionk0sToPiPiCandsToken
 
edm::EDGetTokenT< pat::CompositeCandidateCollectionkx0ToKPiCandsToken
 
edm::EDGetTokenT< pat::CompositeCandidateCollectionlambda0ToPPiCandsToken
 
edm::EDGetTokenT< pat::CompositeCandidateCollectionlambdaBToJPsiLambda0CandsToken
 
edm::EDGetTokenT< pat::CompositeCandidateCollectiononiaToMuMuCandsToken
 
edm::EDGetTokenT< pat::CompositeCandidateCollectionphiToKKCandsToken
 
edm::EDGetTokenT< pat::CompositeCandidateCollectionpsi2SToJPsiPiPiCandsToken
 
edm::EDGetTokenT< reco::VertexCollectionpvCollectionToken
 

Additional Inherited Members

- Protected Member Functions inherited from DQMGlobalEDAnalyzerBase< Histograms_HeavyFlavorDQMAnalyzer, Args... >
uint64_t meId (edm::Run const &run) const
 
- Protected Member Functions inherited from edm::ProducerBase
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 
- Protected Attributes inherited from DQMGlobalEDAnalyzerBase< Histograms_HeavyFlavorDQMAnalyzer, Args... >
DQMStoredqmstore_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 107 of file HeavyFlavorDQMAnalyzer.h.

Member Typedef Documentation

◆ Histograms

Definition at line 109 of file HeavyFlavorDQMAnalyzer.h.

Constructor & Destructor Documentation

◆ HeavyFlavorDQMAnalyzer()

HeavyFlavorDQMAnalyzer::HeavyFlavorDQMAnalyzer ( const edm::ParameterSet iConfig)
explicit

Definition at line 19 of file HeavyFlavorDQMAnalyzer.cc.

References bcToJPsiPiCandsToken, bdToJPsiK0sCandsToken, bdToJPsiKx0CandsToken, bsToJPsiPhiCandsToken, buToJPsiKCandsToken, buToPsi2SKCandsToken, edm::ParameterSet::existsAs(), edm::ParameterSet::getParameter(), edm::EDGetTokenT< T >::isUninitialized(), k0sToPiPiCandsToken, kx0ToKPiCandsToken, lambda0ToPPiCandsToken, lambdaBToJPsiLambda0CandsToken, oniaToMuMuCandsToken, phiToKKCandsToken, psi2SToJPsiPiPiCandsToken, and throwMissingCollection().

20  : folder_(iConfig.getParameter<std::string>("folder")),
21  pvCollectionToken(consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("pvCollection"))),
22  beamSpotToken(consumes<reco::BeamSpot>(iConfig.getParameter<edm::InputTag>("beamSpot"))) {
23  if (iConfig.existsAs<edm::InputTag>("OniaToMuMuCands")) {
25  consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("OniaToMuMuCands"));
26  }
27  if (iConfig.existsAs<edm::InputTag>("BuToJPsiKCands")) {
29  throwMissingCollection("BuToJPsiKCands", "OniaToMuMuCands");
31  consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("BuToJPsiKCands"));
32  }
33  if (iConfig.existsAs<edm::InputTag>("Kx0ToKPiCands")) {
35  consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("Kx0ToKPiCands"));
36  }
37  if (iConfig.existsAs<edm::InputTag>("BdToJPsiKx0Cands")) {
39  throwMissingCollection("BdToJPsiKx0Cands", "OniaToMuMuCands");
41  throwMissingCollection("BdToJPsiKx0Cands", "Kx0ToKPiCands");
43  consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("BdToJPsiKx0Cands"));
44  }
45  if (iConfig.existsAs<edm::InputTag>("PhiToKKCands")) {
47  consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("PhiToKKCands"));
48  }
49  if (iConfig.existsAs<edm::InputTag>("BsToJPsiPhiCands")) {
51  throwMissingCollection("BsToJPsiPhiCands", "OniaToMuMuCands");
53  throwMissingCollection("BsToJPsiPhiCands", "PhiToKKCands");
55  consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("BsToJPsiPhiCands"));
56  }
57  if (iConfig.existsAs<edm::InputTag>("K0sToPiPiCands")) {
59  consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("K0sToPiPiCands"));
60  }
61  if (iConfig.existsAs<edm::InputTag>("BdToJPsiK0sCands")) {
63  throwMissingCollection("BdToJPsiK0sCands", "OniaToMuMuCands");
65  throwMissingCollection("BdToJPsiK0sCands", "K0sToPiPiCands");
67  consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("BdToJPsiK0sCands"));
68  }
69  if (iConfig.existsAs<edm::InputTag>("Lambda0ToPPiCands")) {
71  consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("Lambda0ToPPiCands"));
72  }
73  if (iConfig.existsAs<edm::InputTag>("LambdaBToJPsiLambda0Cands")) {
75  throwMissingCollection("LambdaBToJPsiLambda0Cands", "OniaToMuMuCands");
77  throwMissingCollection("LambdaBToJPsiLambda0Cands", "Lambda0ToPPiCands");
79  consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("LambdaBToJPsiLambda0Cands"));
80  }
81  if (iConfig.existsAs<edm::InputTag>("BcToJPsiPiCands")) {
83  throwMissingCollection("BcToJPsiPiCands", "OniaToMuMuCands");
85  consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("BcToJPsiPiCands"));
86  }
87  if (iConfig.existsAs<edm::InputTag>("Psi2SToJPsiPiPiCands")) {
89  throwMissingCollection("Psi2SToJPsiPiPiCands", "OniaToMuMuCands");
91  consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("Psi2SToJPsiPiPiCands"));
92  }
93  if (iConfig.existsAs<edm::InputTag>("BuToPsi2SKCands")) {
95  throwMissingCollection("BuToPsi2SKCands", "Psi2SToJPsiPiPiCands");
97  consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("BuToPsi2SKCands"));
98  }
99 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
edm::EDGetTokenT< pat::CompositeCandidateCollection > bdToJPsiKx0CandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > lambdaBToJPsiLambda0CandsToken
constexpr bool isUninitialized() const noexcept
Definition: EDGetToken.h:104
edm::EDGetTokenT< pat::CompositeCandidateCollection > lambda0ToPPiCandsToken
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:172
edm::EDGetTokenT< pat::CompositeCandidateCollection > phiToKKCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > oniaToMuMuCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > buToJPsiKCandsToken
edm::EDGetTokenT< reco::VertexCollection > pvCollectionToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > bdToJPsiK0sCandsToken
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > bcToJPsiPiCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > buToPsi2SKCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > kx0ToKPiCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > psi2SToJPsiPiPiCandsToken
void throwMissingCollection(const char *requested, const char *missing)
edm::EDGetTokenT< pat::CompositeCandidateCollection > k0sToPiPiCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > bsToJPsiPhiCandsToken

◆ ~HeavyFlavorDQMAnalyzer()

HeavyFlavorDQMAnalyzer::~HeavyFlavorDQMAnalyzer ( )
override

Definition at line 101 of file HeavyFlavorDQMAnalyzer.cc.

101  {
102  // do anything here that needs to be done at desctruction time
103  // (e.g. close files, deallocate resources etc.)
104 }

Member Function Documentation

◆ allTracksAvailable()

bool HeavyFlavorDQMAnalyzer::allTracksAvailable ( pat::CompositeCandidate const &  cand) const
private

Definition at line 959 of file HeavyFlavorDQMAnalyzer.cc.

References getDaughterTrack(), Skims_PA_cff::name, and HLT_2023v12_cff::track.

Referenced by fillDecayHistograms().

959  {
960  for (auto&& name : cand.roles()) {
961  auto track = getDaughterTrack(cand, name, false);
962  if (not track) {
963  return false;
964  }
965  }
966  return true;
967 }
const reco::Track * getDaughterTrack(pat::CompositeCandidate const &cand, std::string const &name, bool throwOnMissing=true) const

◆ bookDecayHists()

void HeavyFlavorDQMAnalyzer::bookDecayHists ( DQMStore::IBooker ibook,
edm::Run const &  ,
edm::EventSetup const &  ,
DecayHists decayHists,
std::string const &  name,
std::string const &  products,
int  nMassBins,
float  massMin,
float  massMax,
float  distanceScaleFactor = 1. 
) const
private

Definition at line 384 of file HeavyFlavorDQMAnalyzer.cc.

References dqm::implementation::IBooker::book1D(), DiMuonMassBiasMonitor_cfi::distanceScaleFactor, DecayHists::h_ct, DecayHists::h_displ2D, DecayHists::h_eta, DecayHists::h_mass, DecayHists::h_phi, DecayHists::h_pointing, DecayHists::h_pt, DecayHists::h_sign2D, DecayHists::h_vertNormChi2, DecayHists::h_vertProb, B2GTnPMonitor_cfi::histTitle, vertexSelectForHeavyFlavorDQM_cfi::massMax, vertexSelectForHeavyFlavorDQM_cfi::massMin, Skims_PA_cff::name, Pi, edm::es::products(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by bookHistograms().

393  {
394  std::string histTitle = name + " #rightarrow " + products + ";";
395 
396  decayHists.h_mass =
397  ibook.book1D("h_mass", histTitle + "M(" + products + ") fitted [GeV]", nMassBins, massMin, massMax);
398  decayHists.h_pt = ibook.book1D("h_pt", histTitle + "fitted p_{T} [GeV]", 100, 0.00, 200.0);
399  decayHists.h_eta = ibook.book1D("h_eta", histTitle + "fitted #eta", 100, -3, 3);
400  decayHists.h_phi = ibook.book1D("h_phi", histTitle + "fitted #varphi [rad]", 100, -TMath::Pi(), TMath::Pi());
401  decayHists.h_displ2D =
402  ibook.book1D("h_displ2D", histTitle + "vertex 2D displacement [cm]", 100, 0.00, 2.0 * distanceScaleFactor);
403  decayHists.h_sign2D =
404  ibook.book1D("h_sign2D", histTitle + "vertex 2D displ. significance", 100, 0.00, 200.0 * distanceScaleFactor);
405  decayHists.h_ct = ibook.book1D("h_ct", histTitle + "ct [cm]", 100, 0.00, 0.4 * distanceScaleFactor);
406  decayHists.h_pointing = ibook.book1D("h_pointing", histTitle + "cos( 2D pointing angle )", 100, -1, 1);
407  decayHists.h_vertNormChi2 = ibook.book1D("h_vertNormChi2", histTitle + "vertex #chi^{2}/ndof", 100, 0.00, 10);
408  decayHists.h_vertProb = ibook.book1D("h_vertProb", histTitle + "vertex prob.", 100, 0.00, 1.0);
409 }
const double Pi
dqm::reco::MonitorElement * h_displ2D
dqm::reco::MonitorElement * h_phi
ESProducts< std::remove_reference_t< TArgs >... > products(TArgs &&... args)
Definition: ESProducts.h:128
dqm::reco::MonitorElement * h_vertNormChi2
dqm::reco::MonitorElement * h_vertProb
dqm::reco::MonitorElement * h_pointing
dqm::reco::MonitorElement * h_ct
dqm::reco::MonitorElement * h_mass
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
dqm::reco::MonitorElement * h_eta
dqm::reco::MonitorElement * h_sign2D
dqm::reco::MonitorElement * h_pt

◆ bookHistograms()

void HeavyFlavorDQMAnalyzer::bookHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup,
Histograms histos 
) const
overrideprivatevirtual

Implements DQMGlobalEDAnalyzerBase< Histograms_HeavyFlavorDQMAnalyzer, Args... >.

Definition at line 411 of file HeavyFlavorDQMAnalyzer.cc.

References bcToJPsiPiCandsToken, bdToJPsiK0sCandsToken, bdToJPsiKx0CandsToken, bookDecayHists(), bsToJPsiPhiCandsToken, buToJPsiKCandsToken, buToPsi2SKCandsToken, dqm::implementation::NavigatorBase::cd(), folder_, combine::histos, initBcToJPsiPiComponentHistograms(), initBdToJPsiK0sComponentHistograms(), initBdToJPsiKx0ComponentHistograms(), initBsToJPsiPhiComponentHistograms(), initBuToJPsiKComponentHistograms(), initBuToPsi2SKComponentHistograms(), initK0sToPiPiComponentHistograms(), initKx0ToKPiComponentHistograms(), initLambda0ToPPiComponentHistograms(), initLambdaBToJPsiLambda0ComponentHistograms(), initOniaToMuMuComponentHistograms(), initPhiToKKComponentHistograms(), initPsi2SToJPsiPiPiComponentHistograms(), edm::EDGetTokenT< T >::isUninitialized(), k0sToPiPiCandsToken, kx0ToKPiCandsToken, lambda0ToPPiCandsToken, lambdaBToJPsiLambda0CandsToken, oniaToMuMuCandsToken, phiToKKCandsToken, psi2SToJPsiPiPiCandsToken, writedatasetfile::run, and dqm::implementation::NavigatorBase::setCurrentFolder().

414  {
416  ibook.cd();
417  ibook.setCurrentFolder(folder_ + "/JPsiToMuMuPrompt");
418  bookDecayHists(ibook, run, iSetup, histos.oniaToMuMuPrompt, "J/#psi", "#mu^{+}#mu^{-}", 100, 2.9, 3.3);
419 
420  ibook.setCurrentFolder(folder_ + "/JPsiToMuMuPrompt/components");
421  initOniaToMuMuComponentHistograms(ibook, run, iSetup, histos.oniaToMuMuPrompt);
422 
423  ibook.cd();
424  ibook.setCurrentFolder(folder_ + "/JPsiToMuMuDisplaced");
425  bookDecayHists(ibook, run, iSetup, histos.oniaToMuMuDispl, "J/#psi", "#mu^{+}#mu^{-}", 100, 2.9, 3.3);
426 
427  ibook.setCurrentFolder(folder_ + "/JPsiToMuMuDisplaced/components");
428  initOniaToMuMuComponentHistograms(ibook, run, iSetup, histos.oniaToMuMuDispl);
429 
430  ibook.cd();
431  ibook.setCurrentFolder(folder_ + "/OniaToMuMu");
432  bookDecayHists(ibook, run, iSetup, histos.oniaToMuMu, "Onia", "#mu^{+}#mu^{-}", 750, 0, 15);
433 
434  ibook.setCurrentFolder(folder_ + "/OniaToMuMu/components");
435  initOniaToMuMuComponentHistograms(ibook, run, iSetup, histos.oniaToMuMu);
436  }
437 
439  ibook.cd();
440  ibook.setCurrentFolder(folder_ + "/Kx0ToKPiPrompt");
441  bookDecayHists(ibook, run, iSetup, histos.kx0ToKPiPrompt, "K*^{0}", "#pi^{+} K^{-}", 100, 0.75, 1.05);
442 
443  ibook.setCurrentFolder(folder_ + "/Kx0ToKPiPrompt/components");
444  initKx0ToKPiComponentHistograms(ibook, run, iSetup, histos.kx0ToKPiPrompt);
445 
446  ibook.cd();
447  ibook.setCurrentFolder(folder_ + "/Kx0ToKPiDisplaced");
448  bookDecayHists(ibook, run, iSetup, histos.kx0ToKPiDispl, "K*^{0}", "#pi^{+} K^{-}", 100, 0.75, 1.05);
449 
450  ibook.setCurrentFolder(folder_ + "/Kx0ToKPiDisplaced/components");
451  initKx0ToKPiComponentHistograms(ibook, run, iSetup, histos.kx0ToKPiDispl);
452 
453  ibook.cd();
454  ibook.setCurrentFolder(folder_ + "/Kx0ToKPi");
455  bookDecayHists(ibook, run, iSetup, histos.kx0ToKPi, "K*^{0}", "#pi^{+} K^{-}", 100, 0.75, 1.05);
456 
457  ibook.setCurrentFolder(folder_ + "/Kx0ToKPi/components");
458  initKx0ToKPiComponentHistograms(ibook, run, iSetup, histos.kx0ToKPi);
459  }
460 
462  ibook.cd();
463  ibook.setCurrentFolder(folder_ + "/PhiToKKPrompt");
464  bookDecayHists(ibook, run, iSetup, histos.phiToKKPrompt, "#phi", "K^{+} K^{-}", 100, 1.005, 1.035);
465 
466  ibook.setCurrentFolder(folder_ + "/PhiToKKPrompt/components");
467  initPhiToKKComponentHistograms(ibook, run, iSetup, histos.phiToKKPrompt);
468 
469  ibook.cd();
470  ibook.setCurrentFolder(folder_ + "/PhiToKKDisplaced");
471  bookDecayHists(ibook, run, iSetup, histos.phiToKKDispl, "#phi", "K^{+} K^{-}", 100, 1.005, 1.035);
472 
473  ibook.setCurrentFolder(folder_ + "/PhiToKKDisplaced/components");
474  initPhiToKKComponentHistograms(ibook, run, iSetup, histos.phiToKKDispl);
475 
476  ibook.cd();
477  ibook.setCurrentFolder(folder_ + "/PhiToKK");
478  bookDecayHists(ibook, run, iSetup, histos.phiToKK, "#phi", "K^{+} K^{-}", 100, 1.005, 1.035);
479 
480  ibook.setCurrentFolder(folder_ + "/PhiToKK/components");
481  initPhiToKKComponentHistograms(ibook, run, iSetup, histos.phiToKK);
482  }
483 
485  ibook.cd();
486  ibook.setCurrentFolder(folder_ + "/Psi2SToJPsiPiPiPrompt");
488  ibook, run, iSetup, histos.psi2SToJPsiPiPiPrompt, "#Psi(2S)", "J/#psi #pi^{+} #pi^{-}", 100, 3.65, 3.72);
489 
490  ibook.setCurrentFolder(folder_ + "/Psi2SToJPsiPiPiPrompt/components");
491  initPsi2SToJPsiPiPiComponentHistograms(ibook, run, iSetup, histos.psi2SToJPsiPiPiPrompt);
492 
493  ibook.cd();
494  ibook.setCurrentFolder(folder_ + "/Psi2SToJPsiPiPiDisplaced");
496  ibook, run, iSetup, histos.psi2SToJPsiPiPiDispl, "#Psi(2S)", "J/#psi #pi^{+} #pi^{-}", 100, 3.65, 3.72);
497 
498  ibook.setCurrentFolder(folder_ + "/Psi2SToJPsiPiPiDisplaced/components");
499  initPsi2SToJPsiPiPiComponentHistograms(ibook, run, iSetup, histos.psi2SToJPsiPiPiDispl);
500 
501  ibook.cd();
502  ibook.setCurrentFolder(folder_ + "/Psi2SToJPsiPiPi");
504  ibook, run, iSetup, histos.psi2SToJPsiPiPi, "#Psi(2S)/X(3872)", "J/#psi #pi^{+} #pi^{-}", 200, 3.60, 3.80);
505 
506  ibook.setCurrentFolder(folder_ + "/Psi2SToJPsiPiPi/components");
507  initPsi2SToJPsiPiPiComponentHistograms(ibook, run, iSetup, histos.psi2SToJPsiPiPi);
508  }
509 
511  ibook.cd();
512  ibook.setCurrentFolder(folder_ + "/K0sToPiPi");
513  bookDecayHists(ibook, run, iSetup, histos.k0sToPiPi, "K^{0}_{S}", "#pi^{+} #pi^{-}", 100, 0.44, 0.56, 4);
514 
515  ibook.setCurrentFolder(folder_ + "/K0sToPiPi/components");
516  initK0sToPiPiComponentHistograms(ibook, run, iSetup, histos.k0sToPiPi);
517  }
518 
520  ibook.cd();
521  ibook.setCurrentFolder(folder_ + "/Lambda0ToPPi");
522  bookDecayHists(ibook, run, iSetup, histos.lambda0ToPPi, "#Lambda^{0}", "p^{+} #pi^{-}", 100, 1.06, 1.16, 4);
523 
524  ibook.setCurrentFolder(folder_ + "/Lambda0ToPPi/components");
525  initLambda0ToPPiComponentHistograms(ibook, run, iSetup, histos.lambda0ToPPi);
526  }
527 
529  ibook.cd();
530  ibook.setCurrentFolder(folder_ + "/BuToJPsiK");
531  bookDecayHists(ibook, run, iSetup, histos.buToJPsiK, "B^{+}", "J/#psi K^{+}", 100, 5.00, 6.00);
532 
533  ibook.setCurrentFolder(folder_ + "/BuToJPsiK/components");
534  initBuToJPsiKComponentHistograms(ibook, run, iSetup, histos.buToJPsiK);
535  }
536 
538  ibook.cd();
539  ibook.setCurrentFolder(folder_ + "/BuToPsi2SK");
540  bookDecayHists(ibook, run, iSetup, histos.buToPsi2SK, "B^{+}", "#Psi(2S) K^{+}", 100, 5.00, 6.00);
541 
542  ibook.setCurrentFolder(folder_ + "/BuToPsi2SK/components");
543  initBuToPsi2SKComponentHistograms(ibook, run, iSetup, histos.buToPsi2SK);
544  }
545 
547  ibook.cd();
548  ibook.setCurrentFolder(folder_ + "/BdToJPsiKx0");
549  bookDecayHists(ibook, run, iSetup, histos.bdToJPsiKx0, "B^{0}", "J/#psi K*^{0}", 100, 5.00, 6.00);
550 
551  ibook.setCurrentFolder(folder_ + "/BdToJPsiKx0/components");
552  initBdToJPsiKx0ComponentHistograms(ibook, run, iSetup, histos.bdToJPsiKx0);
553  }
554 
556  ibook.cd();
557  ibook.setCurrentFolder(folder_ + "/BsToJPsiPhi");
558  bookDecayHists(ibook, run, iSetup, histos.bsToJPsiPhi, "B^{0}_{s}", "J/#psi #phi", 100, 5.00, 6.00);
559 
560  ibook.setCurrentFolder(folder_ + "/BsToJPsiPhi/components");
561  initBsToJPsiPhiComponentHistograms(ibook, run, iSetup, histos.bsToJPsiPhi);
562  }
563 
565  ibook.cd();
566  ibook.setCurrentFolder(folder_ + "/BdToJPsiK0s");
567  bookDecayHists(ibook, run, iSetup, histos.bdToJPsiK0s, "B^{0}", "J/#psi K^{0}_{S}", 100, 5.00, 6.00);
568 
569  ibook.setCurrentFolder(folder_ + "/BdToJPsiK0s/components");
570  initBdToJPsiK0sComponentHistograms(ibook, run, iSetup, histos.bdToJPsiK0s);
571  }
572 
574  ibook.cd();
575  ibook.setCurrentFolder(folder_ + "/BcToJPsiPi");
576  bookDecayHists(ibook, run, iSetup, histos.bcToJPsiPi, "B^{+}_{c}", "J/#psi #pi^{+}", 100, 6.00, 7.00);
577 
578  ibook.setCurrentFolder(folder_ + "/BcToJPsiPi/components");
579  initBcToJPsiPiComponentHistograms(ibook, run, iSetup, histos.bcToJPsiPi);
580  }
581 
583  ibook.cd();
584  ibook.setCurrentFolder(folder_ + "/LambdaBToJPsiLambda0");
586  ibook, run, iSetup, histos.lambdaBToJPsiLambda0, "#Lambda^{0}_{b}", "J/#psi #Lambda^{0}", 100, 5.00, 6.00);
587 
588  ibook.setCurrentFolder(folder_ + "/LambdaBToJPsiLambda0/components");
589  initLambdaBToJPsiLambda0ComponentHistograms(ibook, run, iSetup, histos.lambdaBToJPsiLambda0);
590  }
591 }
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
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
constexpr bool isUninitialized() const noexcept
Definition: EDGetToken.h:104
edm::EDGetTokenT< pat::CompositeCandidateCollection > lambda0ToPPiCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > phiToKKCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > oniaToMuMuCandsToken
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
void initLambdaBToJPsiLambda0ComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > buToJPsiKCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > bdToJPsiK0sCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > bcToJPsiPiCandsToken
void initBsToJPsiPhiComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > buToPsi2SKCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > kx0ToKPiCandsToken
void initPhiToKKComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) 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
histos
Definition: combine.py:4
void initBdToJPsiKx0ComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
void initBuToPsi2SKComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > psi2SToJPsiPiPiCandsToken
void initBdToJPsiK0sComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > k0sToPiPiCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > bsToJPsiPhiCandsToken

◆ dqmAnalyze()

void HeavyFlavorDQMAnalyzer::dqmAnalyze ( edm::Event const &  iEvent,
edm::EventSetup const &  iSetup,
Histograms const &  histos 
) const
overrideprivatevirtual

Implements DQMGlobalEDAnalyzerBase< Histograms_HeavyFlavorDQMAnalyzer, Args... >.

Definition at line 112 of file HeavyFlavorDQMAnalyzer.cc.

References bcToJPsiPiCandsToken, bdToJPsiK0sCandsToken, bdToJPsiKx0CandsToken, beamSpotToken, cms::cuda::bs, bsToJPsiPhiCandsToken, buToJPsiKCandsToken, buToPsi2SKCandsToken, fillBcToJPsiPiComponents(), fillBdToJPsiK0sComponents(), fillBdToJPsiKx0Components(), fillBsToJPsiPhiComponents(), fillBuToJPsiKComponents(), fillBuToPsi2SKComponents(), fillDecayHistograms(), fillK0sToPiPiComponents(), fillKx0ToKPiComponents(), fillLambda0ToPPiComponents(), fillLambdaBToJPsiLambda0Components(), fillOniaToMuMuComponents(), fillPhiToKKComponents(), fillPsi2SToJPsiPiPiComponents(), getMass(), combine::histos, mps_fire::i, iEvent, edm::EDGetTokenT< T >::isUninitialized(), HLTMuonOfflineAnalyzer_cfi::jpsiMass, k0sToPiPiCandsToken, kx0ToKPiCandsToken, lambda0ToPPiCandsToken, lambdaBToJPsiLambda0CandsToken, oniaToMuMuCandsToken, phi, phiToKKCandsToken, psi2SToJPsiPiPiCandsToken, and pvCollectionToken.

114  {
115  auto& pvColl = iEvent.get(pvCollectionToken);
116  auto bs = iEvent.getHandle(beamSpotToken).product();
117 
118  std::vector<bool> displacedJPsiToMuMu;
121  lOniaToMuMu = iEvent.get(oniaToMuMuCandsToken);
122  displacedJPsiToMuMu.resize(lOniaToMuMu.size(), false);
123  }
124 
126  auto lBuToJPsiK = iEvent.get(buToJPsiKCandsToken);
127  for (auto&& cand : lBuToJPsiK) {
128  auto jpsi = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi");
129  auto jpsiMass = getMass(*jpsi);
130  if (jpsiMass < 2.9 or jpsiMass > 3.3)
131  continue;
132 
133  auto closestPV = fillDecayHistograms(histos.buToJPsiK, cand, pvColl);
134  if (not closestPV)
135  continue;
136  fillBuToJPsiKComponents(histos.buToJPsiK, cand, bs, closestPV);
137 
138  displacedJPsiToMuMu[jpsi.index()] = true;
139  }
140  }
141 
142  std::vector<bool> displacedPsi2SToJPsiPiPi;
143  pat::CompositeCandidateCollection lPsi2SToJPsiPiPi;
145  lPsi2SToJPsiPiPi = iEvent.get(psi2SToJPsiPiPiCandsToken);
146  displacedPsi2SToJPsiPiPi.resize(lPsi2SToJPsiPiPi.size(), false);
147  }
148 
150  auto lBuToPsi2SK = iEvent.get(buToPsi2SKCandsToken);
151  for (auto&& cand : lBuToPsi2SK) {
152  auto psi2S = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToPsi2S");
153  auto psi2SMass = getMass(*psi2S);
154  if (psi2SMass < 3.65 or psi2SMass > 3.72)
155  continue;
156 
157  auto jpsi = *psi2S->userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi");
158  auto jpsiMass = getMass(*jpsi);
159  if (jpsiMass < 2.9 or jpsiMass > 3.3)
160  continue;
161 
162  auto closestPV = fillDecayHistograms(histos.buToPsi2SK, cand, pvColl);
163  if (not closestPV)
164  continue;
165  fillBuToPsi2SKComponents(histos.buToPsi2SK, cand, bs, closestPV);
166 
167  displacedPsi2SToJPsiPiPi[psi2S.index()] = true;
168  displacedJPsiToMuMu[jpsi.index()] = true;
169  }
170  }
171 
172  for (size_t i = 0; i < lPsi2SToJPsiPiPi.size(); i++) {
173  auto&& cand = lPsi2SToJPsiPiPi[i];
174 
175  auto jpsi = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi");
176  auto jpsiMass = getMass(*jpsi);
177  if (jpsiMass < 2.9 or jpsiMass > 3.3)
178  continue;
179 
180  auto closestPV = fillDecayHistograms(histos.psi2SToJPsiPiPi, cand, pvColl);
181  if (not closestPV)
182  continue;
183  fillPsi2SToJPsiPiPiComponents(histos.psi2SToJPsiPiPi, cand, bs, closestPV);
184 
185  auto decayHistos = &histos.psi2SToJPsiPiPiPrompt;
186  if (displacedPsi2SToJPsiPiPi[i]) {
187  decayHistos = &histos.psi2SToJPsiPiPiDispl;
188  }
189 
190  fillDecayHistograms(*decayHistos, cand, pvColl);
191  fillPsi2SToJPsiPiPiComponents(*decayHistos, cand, bs, closestPV);
192  }
193  lPsi2SToJPsiPiPi.clear();
194  displacedPsi2SToJPsiPiPi.clear();
195 
196  std::vector<bool> displacedKx0ToKPi;
199  lKx0ToKPi = iEvent.get(kx0ToKPiCandsToken);
200  displacedKx0ToKPi.resize(lKx0ToKPi.size(), false);
201  }
202 
204  auto lBdToJPsiKx0 = iEvent.get(bdToJPsiKx0CandsToken);
205  for (auto&& cand : lBdToJPsiKx0) {
206  auto jpsi = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi");
207  auto jpsiMass = getMass(*jpsi);
208  if (jpsiMass < 2.9 or jpsiMass > 3.3)
209  continue;
210 
211  auto kx0 = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToKx0");
212  auto kx0Mass = getMass(*kx0);
213  if (kx0Mass < 0.77 or kx0Mass > 1.02)
214  continue;
215 
216  auto closestPV = fillDecayHistograms(histos.bdToJPsiKx0, cand, pvColl);
217  if (not closestPV)
218  continue;
219  fillBdToJPsiKx0Components(histos.bdToJPsiKx0, cand, bs, closestPV);
220 
221  displacedKx0ToKPi[kx0.index()] = true;
222  }
223  }
224 
225  for (size_t i = 0; i < lKx0ToKPi.size(); i++) {
226  auto&& cand = lKx0ToKPi[i];
227 
228  auto closestPV = fillDecayHistograms(histos.kx0ToKPi, cand, pvColl);
229  if (not closestPV)
230  continue;
231  fillKx0ToKPiComponents(histos.kx0ToKPi, cand, bs, closestPV);
232 
233  auto decayHistos = &histos.kx0ToKPiPrompt;
234  if (displacedKx0ToKPi[i]) {
235  decayHistos = &histos.kx0ToKPiDispl;
236  }
237 
238  fillDecayHistograms(*decayHistos, cand, pvColl);
239  fillKx0ToKPiComponents(*decayHistos, cand, bs, closestPV);
240  }
241  lKx0ToKPi.clear();
242  displacedKx0ToKPi.clear();
243 
244  std::vector<bool> displacedPhiToKK;
247  lPhiToKK = iEvent.get(phiToKKCandsToken);
248  displacedPhiToKK.resize(lPhiToKK.size(), false);
249  }
250 
252  auto lBsToJPsiPhi = iEvent.get(bsToJPsiPhiCandsToken);
253  for (auto&& cand : lBsToJPsiPhi) {
254  auto jpsi = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi");
255  auto jpsiMass = getMass(*jpsi);
256  if (jpsiMass < 2.9 or jpsiMass > 3.3)
257  continue;
258 
259  auto phi = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToPhi");
260  auto phiMass = getMass(*phi);
261  if (phiMass < 1.005 or phiMass > 1.035)
262  continue;
263 
264  auto closestPV = fillDecayHistograms(histos.bsToJPsiPhi, cand, pvColl);
265  if (not closestPV)
266  continue;
267  fillBsToJPsiPhiComponents(histos.bsToJPsiPhi, cand, bs, closestPV);
268 
269  displacedJPsiToMuMu[jpsi.index()] = true;
270  displacedPhiToKK[phi.index()] = true;
271  }
272  }
273 
274  for (size_t i = 0; i < lPhiToKK.size(); i++) {
275  auto&& cand = lPhiToKK[i];
276 
277  auto closestPV = fillDecayHistograms(histos.phiToKK, cand, pvColl);
278  if (not closestPV)
279  continue;
280  fillPhiToKKComponents(histos.phiToKK, cand, bs, closestPV);
281 
282  auto decayHistos = &histos.phiToKKPrompt;
283  if (displacedPhiToKK[i]) {
284  decayHistos = &histos.phiToKKDispl;
285  }
286 
287  fillDecayHistograms(*decayHistos, cand, pvColl);
288  fillPhiToKKComponents(*decayHistos, cand, bs, closestPV);
289  }
290  lPhiToKK.clear();
291  displacedPhiToKK.clear();
292 
294  auto lBdToJPsiK0s = iEvent.get(bdToJPsiK0sCandsToken);
295  for (auto&& cand : lBdToJPsiK0s) {
296  auto jpsi = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi");
297  auto jpsiMass = getMass(*jpsi);
298  if (jpsiMass < 2.9 or jpsiMass > 3.3)
299  continue;
300 
301  auto closestPV = fillDecayHistograms(histos.bdToJPsiK0s, cand, pvColl);
302  if (not closestPV)
303  continue;
304  fillBdToJPsiK0sComponents(histos.bdToJPsiK0s, cand, bs, closestPV);
305 
306  displacedJPsiToMuMu[jpsi.index()] = true;
307  }
308  }
309 
311  auto lBcToJPsiPi = iEvent.get(bcToJPsiPiCandsToken);
312  for (auto&& cand : lBcToJPsiPi) {
313  auto jpsi = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi");
314  auto jpsiMass = getMass(*jpsi);
315  if (jpsiMass < 2.9 or jpsiMass > 3.3)
316  continue;
317 
318  auto closestPV = fillDecayHistograms(histos.bcToJPsiPi, cand, pvColl);
319  if (not closestPV)
320  continue;
321  fillBcToJPsiPiComponents(histos.bcToJPsiPi, cand, bs, closestPV);
322 
323  displacedJPsiToMuMu[jpsi.index()] = true;
324  }
325  }
326 
328  auto lLambdaBToJPsiLambda0 = iEvent.get(lambdaBToJPsiLambda0CandsToken);
329  for (auto&& cand : lLambdaBToJPsiLambda0) {
330  auto jpsi = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi");
331  auto jpsiMass = getMass(*jpsi);
332  if (jpsiMass < 2.9 or jpsiMass > 3.3)
333  continue;
334 
335  auto closestPV = fillDecayHistograms(histos.lambdaBToJPsiLambda0, cand, pvColl);
336  if (not closestPV)
337  continue;
338  fillLambdaBToJPsiLambda0Components(histos.lambdaBToJPsiLambda0, cand, bs, closestPV);
339 
340  displacedJPsiToMuMu[jpsi.index()] = true;
341  }
342  }
343 
344  for (size_t i = 0; i < lOniaToMuMu.size(); i++) {
345  auto&& cand = lOniaToMuMu[i];
346 
347  auto closestPV = fillDecayHistograms(histos.oniaToMuMu, cand, pvColl);
348  if (not closestPV)
349  continue;
350  fillOniaToMuMuComponents(histos.oniaToMuMu, cand, bs, closestPV);
351 
352  auto decayHistos = &histos.oniaToMuMuPrompt;
353  if (displacedJPsiToMuMu[i]) {
354  decayHistos = &histos.oniaToMuMuDispl;
355  }
356 
357  fillDecayHistograms(*decayHistos, cand, pvColl);
358  fillOniaToMuMuComponents(*decayHistos, cand, bs, closestPV);
359  }
360  lOniaToMuMu.clear();
361  displacedJPsiToMuMu.clear();
362 
364  auto lK0sToPiPi = iEvent.get(k0sToPiPiCandsToken);
365  for (auto&& cand : lK0sToPiPi) {
366  auto closestPV = fillDecayHistograms(histos.k0sToPiPi, cand, pvColl);
367  if (not closestPV)
368  continue;
369  fillK0sToPiPiComponents(histos.k0sToPiPi, cand, bs, closestPV);
370  }
371  }
372 
374  auto lLambda0ToPPi = iEvent.get(lambda0ToPPiCandsToken);
375  for (auto&& cand : lLambda0ToPPi) {
376  auto closestPV = fillDecayHistograms(histos.lambda0ToPPi, cand, pvColl);
377  if (not closestPV)
378  continue;
379  fillLambda0ToPPiComponents(histos.lambda0ToPPi, cand, bs, closestPV);
380  }
381  }
382 }
int fillKx0ToKPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
int fillLambdaBToJPsiLambda0Components(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > bdToJPsiKx0CandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > lambdaBToJPsiLambda0CandsToken
constexpr bool isUninitialized() const noexcept
Definition: EDGetToken.h:104
edm::EDGetTokenT< pat::CompositeCandidateCollection > lambda0ToPPiCandsToken
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
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
int iEvent
Definition: GenABIO.cc:224
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
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
int fillBsToJPsiPhiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
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
float getMass(pat::CompositeCandidate const &cand)
edm::EDGetTokenT< pat::CompositeCandidateCollection > buToPsi2SKCandsToken
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
edm::EDGetTokenT< pat::CompositeCandidateCollection > kx0ToKPiCandsToken
int fillBuToPsi2SKComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
std::vector< CompositeCandidate > CompositeCandidateCollection
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
histos
Definition: combine.py:4
edm::EDGetTokenT< pat::CompositeCandidateCollection > psi2SToJPsiPiPiCandsToken
int fillK0sToPiPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > k0sToPiPiCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > bsToJPsiPhiCandsToken

◆ fillBcToJPsiPiComponents()

int HeavyFlavorDQMAnalyzer::fillBcToJPsiPiComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
reco::BeamSpot const *  bs,
reco::Vertex const *  pv,
int  startPosition = 0 
) const
private

Definition at line 896 of file HeavyFlavorDQMAnalyzer.cc.

References cms::cuda::bs, fillComponentHistogramsSinglePart(), fillOniaToMuMuComponents(), and combine::histos.

Referenced by dqmAnalyze().

900  {
901  startPosition = fillOniaToMuMuComponents(
902  histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi"), bs, pv, startPosition);
903  startPosition = fillComponentHistogramsSinglePart(histos, cand, "Pion", bs, pv, startPosition);
904 
905  return startPosition;
906 }
int fillComponentHistogramsSinglePart(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
histos
Definition: combine.py:4

◆ fillBdToJPsiK0sComponents()

int HeavyFlavorDQMAnalyzer::fillBdToJPsiK0sComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
reco::BeamSpot const *  bs,
reco::Vertex const *  pv,
int  startPosition = 0 
) const
private

Definition at line 883 of file HeavyFlavorDQMAnalyzer.cc.

References cms::cuda::bs, fillK0sToPiPiComponents(), fillOniaToMuMuComponents(), and combine::histos.

Referenced by dqmAnalyze().

887  {
888  startPosition = fillOniaToMuMuComponents(
889  histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi"), bs, pv, startPosition);
890  startPosition = fillK0sToPiPiComponents(
891  histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToK0s"), bs, pv, startPosition);
892 
893  return startPosition;
894 }
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
histos
Definition: combine.py:4
int fillK0sToPiPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const

◆ fillBdToJPsiKx0Components()

int HeavyFlavorDQMAnalyzer::fillBdToJPsiKx0Components ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
reco::BeamSpot const *  bs,
reco::Vertex const *  pv,
int  startPosition = 0 
) const
private

Definition at line 857 of file HeavyFlavorDQMAnalyzer.cc.

References cms::cuda::bs, fillKx0ToKPiComponents(), fillOniaToMuMuComponents(), and combine::histos.

Referenced by dqmAnalyze().

861  {
862  startPosition = fillOniaToMuMuComponents(
863  histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi"), bs, pv, startPosition);
864  startPosition = fillKx0ToKPiComponents(
865  histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToKx0"), bs, pv, startPosition);
866 
867  return startPosition;
868 }
int fillKx0ToKPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
histos
Definition: combine.py:4

◆ fillBsToJPsiPhiComponents()

int HeavyFlavorDQMAnalyzer::fillBsToJPsiPhiComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
reco::BeamSpot const *  bs,
reco::Vertex const *  pv,
int  startPosition = 0 
) const
private

Definition at line 870 of file HeavyFlavorDQMAnalyzer.cc.

References cms::cuda::bs, fillOniaToMuMuComponents(), fillPhiToKKComponents(), and combine::histos.

Referenced by dqmAnalyze().

874  {
875  startPosition = fillOniaToMuMuComponents(
876  histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi"), bs, pv, startPosition);
877  startPosition = fillPhiToKKComponents(
878  histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToPhi"), bs, pv, startPosition);
879 
880  return startPosition;
881 }
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
int fillPhiToKKComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
histos
Definition: combine.py:4

◆ fillBuToJPsiKComponents()

int HeavyFlavorDQMAnalyzer::fillBuToJPsiKComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
reco::BeamSpot const *  bs,
reco::Vertex const *  pv,
int  startPosition = 0 
) const
private

Definition at line 833 of file HeavyFlavorDQMAnalyzer.cc.

References cms::cuda::bs, fillComponentHistogramsSinglePart(), fillOniaToMuMuComponents(), and combine::histos.

Referenced by dqmAnalyze().

837  {
838  startPosition = fillOniaToMuMuComponents(
839  histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi"), bs, pv, startPosition);
840  startPosition = fillComponentHistogramsSinglePart(histos, cand, "Kaon", bs, pv, startPosition);
841 
842  return startPosition;
843 }
int fillComponentHistogramsSinglePart(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
histos
Definition: combine.py:4

◆ fillBuToPsi2SKComponents()

int HeavyFlavorDQMAnalyzer::fillBuToPsi2SKComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
reco::BeamSpot const *  bs,
reco::Vertex const *  pv,
int  startPosition = 0 
) const
private

Definition at line 845 of file HeavyFlavorDQMAnalyzer.cc.

References cms::cuda::bs, fillComponentHistogramsSinglePart(), fillPsi2SToJPsiPiPiComponents(), and combine::histos.

Referenced by dqmAnalyze().

849  {
850  startPosition = fillPsi2SToJPsiPiPiComponents(
851  histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToPsi2S"), bs, pv, startPosition);
852  startPosition = fillComponentHistogramsSinglePart(histos, cand, "Kaon", bs, pv, startPosition);
853 
854  return startPosition;
855 }
int fillComponentHistogramsSinglePart(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
int fillPsi2SToJPsiPiPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
histos
Definition: combine.py:4

◆ fillComponentHistograms()

void HeavyFlavorDQMAnalyzer::fillComponentHistograms ( ComponentHists const &  histos,
reco::Track const &  component,
reco::BeamSpot const *  bs,
reco::Vertex const *  pv 
) const
private

Definition at line 932 of file HeavyFlavorDQMAnalyzer.cc.

References cms::cuda::bs, reco::TrackBase::chi2(), reco::TrackBase::dxy(), reco::TrackBase::dxyError(), reco::TrackBase::dz(), reco::TrackBase::dzError(), reco::TrackBase::eta(), combine::histos, reco::TrackBase::ndof(), reco::TrackBase::phi(), reco::TrackBase::pt(), and SiPixelPI::zero.

Referenced by fillComponentHistogramsLeadSoft(), and fillComponentHistogramsSinglePart().

935  {
936  histos.h_pt->Fill(component.pt());
937  histos.h_eta->Fill(component.eta());
938  histos.h_phi->Fill(component.phi());
939 
940  math::XYZPoint zero(0, 0, 0);
941  math::Error<3>::type zeroCov; // needed for dxyError
942  if (bs) {
943  histos.h_dxy->Fill(component.dxy(*bs));
944  histos.h_exy->Fill(component.dxyError(*bs));
945  } else {
946  histos.h_dxy->Fill(component.dxy(zero));
947  histos.h_exy->Fill(component.dxyError(zero, zeroCov));
948  }
949  if (pv) {
950  histos.h_dz->Fill(component.dz(pv->position()));
951  } else {
952  histos.h_dz->Fill(component.dz(zero));
953  }
954  histos.h_ez->Fill(component.dzError());
955 
956  histos.h_chi2->Fill(component.chi2() / component.ndof());
957 }
ErrorD< N >::type type
Definition: Error.h:32
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
histos
Definition: combine.py:4

◆ fillComponentHistogramsLeadSoft()

int HeavyFlavorDQMAnalyzer::fillComponentHistogramsLeadSoft ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
std::string const &  name1,
std::string const &  name2,
reco::BeamSpot const *  bs,
reco::Vertex const *  pv,
int  startPosition = 0 
) const
private

Definition at line 1004 of file HeavyFlavorDQMAnalyzer.cc.

References cms::cuda::bs, fillComponentHistograms(), getDaughterTrack(), combine::histos, hfnoseParametersInitialization_cfi::name2, and std::swap().

Referenced by fillK0sToPiPiComponents(), fillOniaToMuMuComponents(), fillPhiToKKComponents(), and fillPsi2SToJPsiPiPiComponents().

1010  {
1011  auto daughSoft = getDaughterTrack(cand, name1);
1012  auto daughLead = getDaughterTrack(cand, name2);
1013 
1014  if (daughLead->pt() < daughSoft->pt()) {
1015  std::swap(daughLead, daughSoft);
1016  }
1017 
1018  fillComponentHistograms(histos.decayComponents[startPosition], *daughLead, bs, pv);
1019  fillComponentHistograms(histos.decayComponents[startPosition + 1], *daughSoft, bs, pv);
1020 
1021  return startPosition + 2;
1022 }
const reco::Track * getDaughterTrack(pat::CompositeCandidate const &cand, std::string const &name, bool throwOnMissing=true) const
void fillComponentHistograms(ComponentHists const &histos, reco::Track const &component, reco::BeamSpot const *bs, reco::Vertex const *pv) const
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
histos
Definition: combine.py:4

◆ fillComponentHistogramsSinglePart()

int HeavyFlavorDQMAnalyzer::fillComponentHistogramsSinglePart ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
std::string const &  name,
reco::BeamSpot const *  bs,
reco::Vertex const *  pv,
int  startPosition = 0 
) const
private

Definition at line 993 of file HeavyFlavorDQMAnalyzer.cc.

References cms::cuda::bs, fillComponentHistograms(), getDaughterTrack(), combine::histos, and Skims_PA_cff::name.

Referenced by fillBcToJPsiPiComponents(), fillBuToJPsiKComponents(), fillBuToPsi2SKComponents(), fillKx0ToKPiComponents(), and fillLambda0ToPPiComponents().

998  {
999  fillComponentHistograms(histos.decayComponents[startPosition], *getDaughterTrack(cand, name), bs, pv);
1000 
1001  return startPosition + 1;
1002 }
const reco::Track * getDaughterTrack(pat::CompositeCandidate const &cand, std::string const &name, bool throwOnMissing=true) const
void fillComponentHistograms(ComponentHists const &histos, reco::Track const &component, reco::BeamSpot const *bs, reco::Vertex const *pv) const
histos
Definition: combine.py:4

◆ fillDecayHistograms()

reco::Vertex const * HeavyFlavorDQMAnalyzer::fillDecayHistograms ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
reco::VertexCollection const &  pvs 
) const
private

Definition at line 717 of file HeavyFlavorDQMAnalyzer.cc.

References funct::abs(), allTracksAvailable(), ChiSquaredProbability(), VertexDistanceXY::distance(), combine::histos, EgHLTOffHistBins_cfi::mass, FSQDQM_cfi::pvs, Measurement1D::significance(), Measurement1D::value(), and reco::Vertex::z().

Referenced by dqmAnalyze().

719  {
720  // if (not cand.hasUserData("fitMomentum")) {
721  // return -2;
722  // }
723  // auto mass = cand.userFloat("fitMass");
724  // auto& momentum = *cand.userData<GlobalVector>("fitMomentum");
725  if (not allTracksAvailable(cand)) {
726  return nullptr;
727  }
728 
729  auto svtx = cand.userData<reco::Vertex>("vertex");
730  if (not svtx->isValid()) {
731  return nullptr;
732  }
733 
734  float mass = cand.mass();
735  reco::Candidate::Vector momentum = cand.momentum();
736  if (cand.hasUserData("fitMomentum")) {
737  mass = cand.userFloat("fitMass");
738  momentum = *cand.userData<GlobalVector>("fitMomentum");
739  }
740 
741  auto pvtx = std::min_element(pvs.begin(), pvs.end(), [svtx](reco::Vertex const& pv1, reco::Vertex const& pv2) {
742  return abs(pv1.z() - svtx->z()) < abs(pv2.z() - svtx->z());
743  });
744  if (pvtx == pvs.end()) {
745  return nullptr;
746  }
747 
748  VertexDistanceXY vdistXY;
749  Measurement1D distXY = vdistXY.distance(*svtx, *pvtx);
750 
751  auto pvtPos = pvtx->position();
752  auto svtPos = svtx->position();
753 
754  math::XYZVector displVect2D(svtPos.x() - pvtPos.x(), svtPos.y() - pvtPos.y(), 0);
755  auto cosAlpha = displVect2D.Dot(momentum) / (displVect2D.Rho() * momentum.rho());
756 
757  auto ct = distXY.value() * cosAlpha * mass / momentum.rho();
758 
759  histos.h_pointing->Fill(cosAlpha);
760 
761  histos.h_mass->Fill(mass);
762 
763  histos.h_pt->Fill(momentum.rho());
764  histos.h_eta->Fill(momentum.eta());
765  histos.h_phi->Fill(momentum.phi());
766 
767  histos.h_ct->Fill(ct);
768 
769  histos.h_displ2D->Fill(distXY.value());
770  histos.h_sign2D->Fill(distXY.significance());
771 
772  // FIXME workaround for tracks with non pos-def cov. matrix
773  if (svtx->chi2() >= 0) {
774  histos.h_vertNormChi2->Fill(svtx->chi2() / svtx->ndof());
775  histos.h_vertProb->Fill(ChiSquaredProbability(svtx->chi2(), svtx->ndof()));
776  }
777 
778  return &*pvtx;
779 }
math::XYZVector Vector
point in the space
Definition: Candidate.h:42
double z() const
z coordinate
Definition: Vertex.h:133
Measurement1D distance(const GlobalPoint &vtx1Position, const GlobalError &vtx1PositionError, const GlobalPoint &vtx2Position, const GlobalError &vtx2PositionError) const override
bool allTracksAvailable(pat::CompositeCandidate const &cand) const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
float ChiSquaredProbability(double chiSquared, double nrDOF)
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
double value() const
Definition: Measurement1D.h:25
double significance() const
Definition: Measurement1D.h:29
histos
Definition: combine.py:4

◆ fillDescriptions()

void HeavyFlavorDQMAnalyzer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 1025 of file HeavyFlavorDQMAnalyzer.cc.

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, and AlCaHLTBitMon_QueryRunRegistry::string.

1025  {
1027 
1028  desc.add<std::string>("folder", "Physics/HeavyFlavor");
1029 
1030  desc.add<edm::InputTag>("pvCollection");
1031  desc.add<edm::InputTag>("beamSpot");
1032 
1033  desc.addOptional<edm::InputTag>("OniaToMuMuCands");
1034  desc.addOptional<edm::InputTag>("Kx0ToKPiCands");
1035  desc.addOptional<edm::InputTag>("PhiToKKCands");
1036  desc.addOptional<edm::InputTag>("BuToJPsiKCands");
1037  desc.addOptional<edm::InputTag>("BuToPsi2SKCands");
1038  desc.addOptional<edm::InputTag>("BdToJPsiKx0Cands");
1039  desc.addOptional<edm::InputTag>("BsToJPsiPhiCands");
1040  desc.addOptional<edm::InputTag>("K0sToPiPiCands");
1041  desc.addOptional<edm::InputTag>("Lambda0ToPPiCands");
1042  desc.addOptional<edm::InputTag>("BdToJPsiK0sCands");
1043  desc.addOptional<edm::InputTag>("LambdaBToJPsiLambda0Cands");
1044  desc.addOptional<edm::InputTag>("BcToJPsiPiCands");
1045  desc.addOptional<edm::InputTag>("Psi2SToJPsiPiPiCands");
1046 
1047  descriptions.add("HeavyFlavorDQMAnalyzer", desc);
1048 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ fillK0sToPiPiComponents()

int HeavyFlavorDQMAnalyzer::fillK0sToPiPiComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
reco::BeamSpot const *  bs,
reco::Vertex const *  pv,
int  startPosition = 0 
) const
private

Definition at line 812 of file HeavyFlavorDQMAnalyzer.cc.

References cms::cuda::bs, fillComponentHistogramsLeadSoft(), and combine::histos.

Referenced by dqmAnalyze(), and fillBdToJPsiK0sComponents().

816  {
817  startPosition = fillComponentHistogramsLeadSoft(histos, cand, "PionPos", "PionNeg", bs, pv, startPosition);
818 
819  return startPosition;
820 }
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
histos
Definition: combine.py:4

◆ fillKx0ToKPiComponents()

int HeavyFlavorDQMAnalyzer::fillKx0ToKPiComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
reco::BeamSpot const *  bs,
reco::Vertex const *  pv,
int  startPosition = 0 
) const
private

Definition at line 791 of file HeavyFlavorDQMAnalyzer.cc.

References cms::cuda::bs, fillComponentHistogramsSinglePart(), and combine::histos.

Referenced by dqmAnalyze(), and fillBdToJPsiKx0Components().

795  {
796  startPosition = fillComponentHistogramsSinglePart(histos, cand, "Kaon", bs, pv, startPosition);
797  startPosition = fillComponentHistogramsSinglePart(histos, cand, "Pion", bs, pv, startPosition);
798 
799  return startPosition;
800 }
int fillComponentHistogramsSinglePart(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
histos
Definition: combine.py:4

◆ fillLambda0ToPPiComponents()

int HeavyFlavorDQMAnalyzer::fillLambda0ToPPiComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
reco::BeamSpot const *  bs,
reco::Vertex const *  pv,
int  startPosition = 0 
) const
private

Definition at line 822 of file HeavyFlavorDQMAnalyzer.cc.

References cms::cuda::bs, fillComponentHistogramsSinglePart(), and combine::histos.

Referenced by dqmAnalyze(), and fillLambdaBToJPsiLambda0Components().

826  {
827  startPosition = fillComponentHistogramsSinglePart(histos, cand, "Proton", bs, pv, startPosition);
828  startPosition = fillComponentHistogramsSinglePart(histos, cand, "Pion", bs, pv, startPosition);
829 
830  return startPosition;
831 }
int fillComponentHistogramsSinglePart(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
histos
Definition: combine.py:4

◆ fillLambdaBToJPsiLambda0Components()

int HeavyFlavorDQMAnalyzer::fillLambdaBToJPsiLambda0Components ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
reco::BeamSpot const *  bs,
reco::Vertex const *  pv,
int  startPosition = 0 
) const
private

Definition at line 908 of file HeavyFlavorDQMAnalyzer.cc.

References cms::cuda::bs, fillLambda0ToPPiComponents(), fillOniaToMuMuComponents(), and combine::histos.

Referenced by dqmAnalyze().

912  {
913  startPosition = fillOniaToMuMuComponents(
914  histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi"), bs, pv, startPosition);
915  startPosition = fillLambda0ToPPiComponents(
916  histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToLambda0"), bs, pv, startPosition);
917 
918  return startPosition;
919 }
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
int fillLambda0ToPPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) const
histos
Definition: combine.py:4

◆ fillOniaToMuMuComponents()

int HeavyFlavorDQMAnalyzer::fillOniaToMuMuComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
reco::BeamSpot const *  bs,
reco::Vertex const *  pv,
int  startPosition = 0 
) const
private

Definition at line 781 of file HeavyFlavorDQMAnalyzer.cc.

References cms::cuda::bs, fillComponentHistogramsLeadSoft(), and combine::histos.

Referenced by dqmAnalyze(), fillBcToJPsiPiComponents(), fillBdToJPsiK0sComponents(), fillBdToJPsiKx0Components(), fillBsToJPsiPhiComponents(), fillBuToJPsiKComponents(), fillLambdaBToJPsiLambda0Components(), and fillPsi2SToJPsiPiPiComponents().

785  {
786  startPosition = fillComponentHistogramsLeadSoft(histos, cand, "MuPos", "MuNeg", bs, pv, startPosition);
787 
788  return startPosition;
789 }
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
histos
Definition: combine.py:4

◆ fillPhiToKKComponents()

int HeavyFlavorDQMAnalyzer::fillPhiToKKComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
reco::BeamSpot const *  bs,
reco::Vertex const *  pv,
int  startPosition = 0 
) const
private

Definition at line 802 of file HeavyFlavorDQMAnalyzer.cc.

References cms::cuda::bs, fillComponentHistogramsLeadSoft(), and combine::histos.

Referenced by dqmAnalyze(), and fillBsToJPsiPhiComponents().

806  {
807  startPosition = fillComponentHistogramsLeadSoft(histos, cand, "KPos", "KNeg", bs, pv, startPosition);
808 
809  return startPosition;
810 }
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
histos
Definition: combine.py:4

◆ fillPsi2SToJPsiPiPiComponents()

int HeavyFlavorDQMAnalyzer::fillPsi2SToJPsiPiPiComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
reco::BeamSpot const *  bs,
reco::Vertex const *  pv,
int  startPosition = 0 
) const
private

Definition at line 921 of file HeavyFlavorDQMAnalyzer.cc.

References cms::cuda::bs, fillComponentHistogramsLeadSoft(), fillOniaToMuMuComponents(), and combine::histos.

Referenced by dqmAnalyze(), and fillBuToPsi2SKComponents().

925  {
926  startPosition = fillOniaToMuMuComponents(
927  histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi"), bs, pv, startPosition);
928  startPosition = fillComponentHistogramsLeadSoft(histos, cand, "PionPos", "PionNeg", bs, pv, startPosition);
929  return startPosition;
930 }
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, reco::BeamSpot const *bs, reco::Vertex const *pv, int startPosition=0) 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
histos
Definition: combine.py:4

◆ getDaughterTrack()

const reco::Track * HeavyFlavorDQMAnalyzer::getDaughterTrack ( pat::CompositeCandidate const &  cand,
std::string const &  name,
bool  throwOnMissing = true 
) const
private

Definition at line 969 of file HeavyFlavorDQMAnalyzer.cc.

References Exception, BPHTrackReference::getTrack(), Skims_PA_cff::name, or, AlCaHLTBitMon_QueryRunRegistry::string, and HLT_2023v12_cff::track.

Referenced by allTracksAvailable(), fillComponentHistogramsLeadSoft(), and fillComponentHistogramsSinglePart().

971  {
972  auto daugh = cand.daughter(name);
973  auto trackModeLabel = "trackMode_" + name;
974  auto trackMode = cand.userData<std::string>(trackModeLabel);
975  if (!trackMode or trackMode->empty()) {
976  if (throwOnMissing) {
977  throw cms::Exception("TrackNotFound") << "Could not determine track mode from candidate with name " << name
978  << " with label " << trackModeLabel << std::endl;
979  }
980  return nullptr;
981  }
982 
983  auto track = BPHTrackReference::getTrack(*daugh, trackMode->c_str());
984 
985  if (throwOnMissing and not track) {
986  throw cms::Exception("TrackNotFound") << "BPHTrackReference could not extract a track as type " << trackMode
987  << " from candidate with name " << name << std::endl;
988  }
989 
990  return track;
991 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
static const reco::Track * getTrack(const reco::Candidate &rc, const char *modeList="cfhbpmnigset", char *modeFlag=nullptr)

◆ initBcToJPsiPiComponentHistograms()

void HeavyFlavorDQMAnalyzer::initBcToJPsiPiComponentHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup,
DecayHists histos 
) const
private

Definition at line 692 of file HeavyFlavorDQMAnalyzer.cc.

References combine::histos, initComponentHists(), initOniaToMuMuComponentHistograms(), and writedatasetfile::run.

Referenced by bookHistograms().

695  {
697  initComponentHists(ibook, run, iSetup, histos, "pi");
698 }
void initOniaToMuMuComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
void initComponentHists(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &, TString const &) const
histos
Definition: combine.py:4

◆ initBdToJPsiK0sComponentHistograms()

void HeavyFlavorDQMAnalyzer::initBdToJPsiK0sComponentHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup,
DecayHists histos 
) const
private

Definition at line 684 of file HeavyFlavorDQMAnalyzer.cc.

References combine::histos, initK0sToPiPiComponentHistograms(), initOniaToMuMuComponentHistograms(), and writedatasetfile::run.

Referenced by bookHistograms().

687  {
690 }
void initOniaToMuMuComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
void initK0sToPiPiComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
histos
Definition: combine.py:4

◆ initBdToJPsiKx0ComponentHistograms()

void HeavyFlavorDQMAnalyzer::initBdToJPsiKx0ComponentHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup,
DecayHists histos 
) const
private

Definition at line 668 of file HeavyFlavorDQMAnalyzer.cc.

References combine::histos, initKx0ToKPiComponentHistograms(), initOniaToMuMuComponentHistograms(), and writedatasetfile::run.

Referenced by bookHistograms().

671  {
673  initKx0ToKPiComponentHistograms(ibook, run, iSetup, histos);
674 }
void initOniaToMuMuComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
void initKx0ToKPiComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
histos
Definition: combine.py:4

◆ initBsToJPsiPhiComponentHistograms()

void HeavyFlavorDQMAnalyzer::initBsToJPsiPhiComponentHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup,
DecayHists histos 
) const
private

Definition at line 676 of file HeavyFlavorDQMAnalyzer.cc.

References combine::histos, initOniaToMuMuComponentHistograms(), initPhiToKKComponentHistograms(), and writedatasetfile::run.

Referenced by bookHistograms().

679  {
681  initPhiToKKComponentHistograms(ibook, run, iSetup, histos);
682 }
void initOniaToMuMuComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
void initPhiToKKComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
histos
Definition: combine.py:4

◆ initBuToJPsiKComponentHistograms()

void HeavyFlavorDQMAnalyzer::initBuToJPsiKComponentHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup,
DecayHists histos 
) const
private

Definition at line 652 of file HeavyFlavorDQMAnalyzer.cc.

References combine::histos, initComponentHists(), initOniaToMuMuComponentHistograms(), and writedatasetfile::run.

Referenced by bookHistograms().

655  {
657  initComponentHists(ibook, run, iSetup, histos, "k");
658 }
void initOniaToMuMuComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
void initComponentHists(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &, TString const &) const
histos
Definition: combine.py:4

◆ initBuToPsi2SKComponentHistograms()

void HeavyFlavorDQMAnalyzer::initBuToPsi2SKComponentHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup,
DecayHists histos 
) const
private

Definition at line 660 of file HeavyFlavorDQMAnalyzer.cc.

References combine::histos, initComponentHists(), initPsi2SToJPsiPiPiComponentHistograms(), and writedatasetfile::run.

Referenced by bookHistograms().

663  {
665  initComponentHists(ibook, run, iSetup, histos, "k");
666 }
void initPsi2SToJPsiPiPiComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
void initComponentHists(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &, TString const &) const
histos
Definition: combine.py:4

◆ initComponentHists()

void HeavyFlavorDQMAnalyzer::initComponentHists ( DQMStore::IBooker ibook,
edm::Run const &  ,
edm::EventSetup const &  ,
DecayHists histos,
TString const &  componentName 
) const
private

Definition at line 593 of file HeavyFlavorDQMAnalyzer.cc.

References dqm::implementation::IBooker::book1D(), AlCaHLTBitMon_QueryRunRegistry::comp, combine::histos, and Pi.

Referenced by initBcToJPsiPiComponentHistograms(), initBuToJPsiKComponentHistograms(), initBuToPsi2SKComponentHistograms(), initK0sToPiPiComponentHistograms(), initKx0ToKPiComponentHistograms(), initLambda0ToPPiComponentHistograms(), initOniaToMuMuComponentHistograms(), initPhiToKKComponentHistograms(), and initPsi2SToJPsiPiPiComponentHistograms().

597  {
599 
600  comp.h_pt = ibook.book1D(componentName + "_pt", ";p_{T} [GeV]", 200, 0, 20);
601  comp.h_eta = ibook.book1D(componentName + "_eta", ";#eta", 200, -3, 3);
602  comp.h_phi = ibook.book1D(componentName + "_phi", ";#phi", 200, -TMath::Pi(), TMath::Pi());
603  comp.h_dxy = ibook.book1D(componentName + "_dxyBS", ";d_{xy}(BS) [cm]", 200, -3, 3);
604  comp.h_exy = ibook.book1D(componentName + "_exy", ";#sigma(d_{xy}(BS)) [cm]", 200, 0, 0.2);
605  comp.h_dz = ibook.book1D(componentName + "_dzPV", ";d_{z}(PV) [cm]", 200, -20, 20);
606  comp.h_ez = ibook.book1D(componentName + "_ez", ";#sigma(d_{z}(PV)) [cm]", 200, 0, 2);
607  comp.h_chi2 = ibook.book1D(componentName + "_chi2", ";#chi^{2}", 200, 0, 20);
608 
609  histos.decayComponents.push_back(comp);
610 }
const double Pi
histos
Definition: combine.py:4
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98

◆ initK0sToPiPiComponentHistograms()

void HeavyFlavorDQMAnalyzer::initK0sToPiPiComponentHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup,
DecayHists histos 
) const
private

Definition at line 636 of file HeavyFlavorDQMAnalyzer.cc.

References combine::histos, initComponentHists(), and writedatasetfile::run.

Referenced by bookHistograms(), and initBdToJPsiK0sComponentHistograms().

639  {
640  initComponentHists(ibook, run, iSetup, histos, "lead_pi");
641  initComponentHists(ibook, run, iSetup, histos, "soft_pi");
642 }
void initComponentHists(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &, TString const &) const
histos
Definition: combine.py:4

◆ initKx0ToKPiComponentHistograms()

void HeavyFlavorDQMAnalyzer::initKx0ToKPiComponentHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup,
DecayHists histos 
) const
private

Definition at line 620 of file HeavyFlavorDQMAnalyzer.cc.

References combine::histos, initComponentHists(), and writedatasetfile::run.

Referenced by bookHistograms(), and initBdToJPsiKx0ComponentHistograms().

623  {
624  initComponentHists(ibook, run, iSetup, histos, "k");
625  initComponentHists(ibook, run, iSetup, histos, "pi");
626 }
void initComponentHists(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &, TString const &) const
histos
Definition: combine.py:4

◆ initLambda0ToPPiComponentHistograms()

void HeavyFlavorDQMAnalyzer::initLambda0ToPPiComponentHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup,
DecayHists histos 
) const
private

Definition at line 644 of file HeavyFlavorDQMAnalyzer.cc.

References combine::histos, initComponentHists(), and writedatasetfile::run.

Referenced by bookHistograms(), and initLambdaBToJPsiLambda0ComponentHistograms().

647  {
648  initComponentHists(ibook, run, iSetup, histos, "p");
649  initComponentHists(ibook, run, iSetup, histos, "pi");
650 }
void initComponentHists(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &, TString const &) const
histos
Definition: combine.py:4

◆ initLambdaBToJPsiLambda0ComponentHistograms()

void HeavyFlavorDQMAnalyzer::initLambdaBToJPsiLambda0ComponentHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup,
DecayHists histos 
) const
private

Definition at line 700 of file HeavyFlavorDQMAnalyzer.cc.

References combine::histos, initLambda0ToPPiComponentHistograms(), initOniaToMuMuComponentHistograms(), and writedatasetfile::run.

Referenced by bookHistograms().

703  {
706 }
void initOniaToMuMuComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
void initLambda0ToPPiComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
histos
Definition: combine.py:4

◆ initOniaToMuMuComponentHistograms()

void HeavyFlavorDQMAnalyzer::initOniaToMuMuComponentHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup,
DecayHists histos 
) const
private

◆ initPhiToKKComponentHistograms()

void HeavyFlavorDQMAnalyzer::initPhiToKKComponentHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup,
DecayHists histos 
) const
private

Definition at line 628 of file HeavyFlavorDQMAnalyzer.cc.

References combine::histos, initComponentHists(), and writedatasetfile::run.

Referenced by bookHistograms(), and initBsToJPsiPhiComponentHistograms().

631  {
632  initComponentHists(ibook, run, iSetup, histos, "lead_k");
633  initComponentHists(ibook, run, iSetup, histos, "soft_k");
634 }
void initComponentHists(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &, TString const &) const
histos
Definition: combine.py:4

◆ initPsi2SToJPsiPiPiComponentHistograms()

void HeavyFlavorDQMAnalyzer::initPsi2SToJPsiPiPiComponentHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup,
DecayHists histos 
) const
private

Definition at line 708 of file HeavyFlavorDQMAnalyzer.cc.

References combine::histos, initComponentHists(), initOniaToMuMuComponentHistograms(), and writedatasetfile::run.

Referenced by bookHistograms(), and initBuToPsi2SKComponentHistograms().

711  {
713  initComponentHists(ibook, run, iSetup, histos, "lead_pi");
714  initComponentHists(ibook, run, iSetup, histos, "soft_pi");
715 }
void initOniaToMuMuComponentHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &) const
void initComponentHists(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, DecayHists &, TString const &) const
histos
Definition: combine.py:4

Member Data Documentation

◆ bcToJPsiPiCandsToken

edm::EDGetTokenT<pat::CompositeCandidateCollection> HeavyFlavorDQMAnalyzer::bcToJPsiPiCandsToken
private

Definition at line 279 of file HeavyFlavorDQMAnalyzer.h.

Referenced by bookHistograms(), dqmAnalyze(), and HeavyFlavorDQMAnalyzer().

◆ bdToJPsiK0sCandsToken

edm::EDGetTokenT<pat::CompositeCandidateCollection> HeavyFlavorDQMAnalyzer::bdToJPsiK0sCandsToken
private

Definition at line 277 of file HeavyFlavorDQMAnalyzer.h.

Referenced by bookHistograms(), dqmAnalyze(), and HeavyFlavorDQMAnalyzer().

◆ bdToJPsiKx0CandsToken

edm::EDGetTokenT<pat::CompositeCandidateCollection> HeavyFlavorDQMAnalyzer::bdToJPsiKx0CandsToken
private

Definition at line 273 of file HeavyFlavorDQMAnalyzer.h.

Referenced by bookHistograms(), dqmAnalyze(), and HeavyFlavorDQMAnalyzer().

◆ beamSpotToken

edm::EDGetTokenT<reco::BeamSpot> HeavyFlavorDQMAnalyzer::beamSpotToken
private

Definition at line 266 of file HeavyFlavorDQMAnalyzer.h.

Referenced by dqmAnalyze().

◆ bsToJPsiPhiCandsToken

edm::EDGetTokenT<pat::CompositeCandidateCollection> HeavyFlavorDQMAnalyzer::bsToJPsiPhiCandsToken
private

Definition at line 274 of file HeavyFlavorDQMAnalyzer.h.

Referenced by bookHistograms(), dqmAnalyze(), and HeavyFlavorDQMAnalyzer().

◆ buToJPsiKCandsToken

edm::EDGetTokenT<pat::CompositeCandidateCollection> HeavyFlavorDQMAnalyzer::buToJPsiKCandsToken
private

Definition at line 271 of file HeavyFlavorDQMAnalyzer.h.

Referenced by bookHistograms(), dqmAnalyze(), and HeavyFlavorDQMAnalyzer().

◆ buToPsi2SKCandsToken

edm::EDGetTokenT<pat::CompositeCandidateCollection> HeavyFlavorDQMAnalyzer::buToPsi2SKCandsToken
private

Definition at line 272 of file HeavyFlavorDQMAnalyzer.h.

Referenced by bookHistograms(), dqmAnalyze(), and HeavyFlavorDQMAnalyzer().

◆ folder_

std::string HeavyFlavorDQMAnalyzer::folder_
private

Definition at line 263 of file HeavyFlavorDQMAnalyzer.h.

Referenced by bookHistograms().

◆ k0sToPiPiCandsToken

edm::EDGetTokenT<pat::CompositeCandidateCollection> HeavyFlavorDQMAnalyzer::k0sToPiPiCandsToken
private

Definition at line 275 of file HeavyFlavorDQMAnalyzer.h.

Referenced by bookHistograms(), dqmAnalyze(), and HeavyFlavorDQMAnalyzer().

◆ kx0ToKPiCandsToken

edm::EDGetTokenT<pat::CompositeCandidateCollection> HeavyFlavorDQMAnalyzer::kx0ToKPiCandsToken
private

Definition at line 269 of file HeavyFlavorDQMAnalyzer.h.

Referenced by bookHistograms(), dqmAnalyze(), and HeavyFlavorDQMAnalyzer().

◆ lambda0ToPPiCandsToken

edm::EDGetTokenT<pat::CompositeCandidateCollection> HeavyFlavorDQMAnalyzer::lambda0ToPPiCandsToken
private

Definition at line 276 of file HeavyFlavorDQMAnalyzer.h.

Referenced by bookHistograms(), dqmAnalyze(), and HeavyFlavorDQMAnalyzer().

◆ lambdaBToJPsiLambda0CandsToken

edm::EDGetTokenT<pat::CompositeCandidateCollection> HeavyFlavorDQMAnalyzer::lambdaBToJPsiLambda0CandsToken
private

Definition at line 278 of file HeavyFlavorDQMAnalyzer.h.

Referenced by bookHistograms(), dqmAnalyze(), and HeavyFlavorDQMAnalyzer().

◆ oniaToMuMuCandsToken

edm::EDGetTokenT<pat::CompositeCandidateCollection> HeavyFlavorDQMAnalyzer::oniaToMuMuCandsToken
private

Definition at line 268 of file HeavyFlavorDQMAnalyzer.h.

Referenced by bookHistograms(), dqmAnalyze(), and HeavyFlavorDQMAnalyzer().

◆ phiToKKCandsToken

edm::EDGetTokenT<pat::CompositeCandidateCollection> HeavyFlavorDQMAnalyzer::phiToKKCandsToken
private

Definition at line 270 of file HeavyFlavorDQMAnalyzer.h.

Referenced by bookHistograms(), dqmAnalyze(), and HeavyFlavorDQMAnalyzer().

◆ psi2SToJPsiPiPiCandsToken

edm::EDGetTokenT<pat::CompositeCandidateCollection> HeavyFlavorDQMAnalyzer::psi2SToJPsiPiPiCandsToken
private

Definition at line 280 of file HeavyFlavorDQMAnalyzer.h.

Referenced by bookHistograms(), dqmAnalyze(), and HeavyFlavorDQMAnalyzer().

◆ pvCollectionToken

edm::EDGetTokenT<reco::VertexCollection> HeavyFlavorDQMAnalyzer::pvCollectionToken
private

Definition at line 265 of file HeavyFlavorDQMAnalyzer.h.

Referenced by dqmAnalyze().