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
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, int startPosition=0) const
 
int fillBdToJPsiK0sComponents (DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
 
int fillBdToJPsiKx0Components (DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
 
int fillBsToJPsiPhiComponents (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 fillBuToPsi2SKComponents (DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
 
void fillComponentHistograms (ComponentHists const &histos, reco::Track const &component) const
 
int fillComponentHistogramsLeadSoft (DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name1, std::string const &name2, int startPosition=0) const
 
int fillComponentHistogramsSinglePart (DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name, int startPosition=0) const
 
bool fillDecayHistograms (DecayHists const &, pat::CompositeCandidate const &cand, reco::VertexCollection const &pvs) const
 
int fillK0sToPiPiComponents (DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
 
int fillKx0ToKPiComponents (DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
 
int fillLambda0ToPPiComponents (DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
 
int fillLambdaBToJPsiLambda0Components (DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
 
int fillOniaToMuMuComponents (DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
 
int fillPhiToKKComponents (DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
 
int fillPsi2SToJPsiPiPiComponents (DecayHists const &histos, pat::CompositeCandidate const &cand, 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< 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 108 of file HeavyFlavorDQMAnalyzer.h.

Member Typedef Documentation

◆ Histograms

Definition at line 110 of file HeavyFlavorDQMAnalyzer.h.

Constructor & Destructor Documentation

◆ HeavyFlavorDQMAnalyzer()

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

Definition at line 18 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().

19  : folder_(iConfig.getParameter<std::string>("folder")),
20  pvCollectionToken(consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("pvCollection"))) {
21 
22  if (iConfig.existsAs<edm::InputTag>("OniaToMuMuCands")) {
23  oniaToMuMuCandsToken = consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("OniaToMuMuCands"));
24  }
25  if (iConfig.existsAs<edm::InputTag>("BuToJPsiKCands")) {
26  if (oniaToMuMuCandsToken.isUninitialized()) throwMissingCollection("BuToJPsiKCands", "OniaToMuMuCands");
27  buToJPsiKCandsToken = consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("BuToJPsiKCands"));
28  }
29  if (iConfig.existsAs<edm::InputTag>("Kx0ToKPiCands")) {
30  kx0ToKPiCandsToken = consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("Kx0ToKPiCands"));
31  }
32  if (iConfig.existsAs<edm::InputTag>("BdToJPsiKx0Cands")) {
33  if (oniaToMuMuCandsToken.isUninitialized()) throwMissingCollection("BdToJPsiKx0Cands", "OniaToMuMuCands");
34  if (kx0ToKPiCandsToken.isUninitialized()) throwMissingCollection("BdToJPsiKx0Cands", "Kx0ToKPiCands");
35  bdToJPsiKx0CandsToken = consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("BdToJPsiKx0Cands"));
36  }
37  if (iConfig.existsAs<edm::InputTag>("PhiToKKCands")) {
38  phiToKKCandsToken = consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("PhiToKKCands"));
39  }
40  if (iConfig.existsAs<edm::InputTag>("BsToJPsiPhiCands")) {
41  if (oniaToMuMuCandsToken.isUninitialized()) throwMissingCollection("BsToJPsiPhiCands", "OniaToMuMuCands");
42  if (phiToKKCandsToken.isUninitialized()) throwMissingCollection("BsToJPsiPhiCands", "PhiToKKCands");
43  bsToJPsiPhiCandsToken = consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("BsToJPsiPhiCands"));
44  }
45  if (iConfig.existsAs<edm::InputTag>("K0sToPiPiCands")) {
46  k0sToPiPiCandsToken = consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("K0sToPiPiCands"));
47  }
48  if (iConfig.existsAs<edm::InputTag>("BdToJPsiK0sCands")) {
49  if (oniaToMuMuCandsToken.isUninitialized()) throwMissingCollection("BdToJPsiK0sCands", "OniaToMuMuCands");
50  if (k0sToPiPiCandsToken.isUninitialized()) throwMissingCollection("BdToJPsiK0sCands", "K0sToPiPiCands");
51  bdToJPsiK0sCandsToken = consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("BdToJPsiK0sCands"));
52  }
53  if (iConfig.existsAs<edm::InputTag>("Lambda0ToPPiCands")) {
54  lambda0ToPPiCandsToken = consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("Lambda0ToPPiCands"));
55  }
56  if (iConfig.existsAs<edm::InputTag>("LambdaBToJPsiLambda0Cands")) {
57  if (oniaToMuMuCandsToken.isUninitialized()) throwMissingCollection("LambdaBToJPsiLambda0Cands", "OniaToMuMuCands");
58  if (lambda0ToPPiCandsToken.isUninitialized()) throwMissingCollection("LambdaBToJPsiLambda0Cands", "Lambda0ToPPiCands");
59  lambdaBToJPsiLambda0CandsToken = consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("LambdaBToJPsiLambda0Cands"));
60  }
61  if (iConfig.existsAs<edm::InputTag>("BcToJPsiPiCands")) {
62  if (oniaToMuMuCandsToken.isUninitialized()) throwMissingCollection("BcToJPsiPiCands", "OniaToMuMuCands");
63  bcToJPsiPiCandsToken = consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("BcToJPsiPiCands"));
64  }
65  if (iConfig.existsAs<edm::InputTag>("Psi2SToJPsiPiPiCands")) {
66  if (oniaToMuMuCandsToken.isUninitialized()) throwMissingCollection("Psi2SToJPsiPiPiCands", "OniaToMuMuCands");
67  psi2SToJPsiPiPiCandsToken = consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("Psi2SToJPsiPiPiCands"));
68  }
69  if (iConfig.existsAs<edm::InputTag>("BuToPsi2SKCands")) {
70  if (psi2SToJPsiPiPiCandsToken.isUninitialized()) throwMissingCollection("BuToPsi2SKCands", "Psi2SToJPsiPiPiCands");
71  buToPsi2SKCandsToken = consumes<pat::CompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("BuToPsi2SKCands"));
72  }
73 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::EDGetTokenT< pat::CompositeCandidateCollection > bdToJPsiKx0CandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > lambdaBToJPsiLambda0CandsToken
constexpr bool isUninitialized() const noexcept
Definition: EDGetToken.h:99
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:171
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< 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 75 of file HeavyFlavorDQMAnalyzer.cc.

75  {
76  // do anything here that needs to be done at desctruction time
77  // (e.g. close files, deallocate resources etc.)
78 }

Member Function Documentation

◆ allTracksAvailable()

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

Definition at line 809 of file HeavyFlavorDQMAnalyzer.cc.

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

Referenced by fillDecayHistograms().

809  {
810  for (auto&& name: cand.roles()) {
811  auto track = getDaughterTrack(cand, name, false);
812  if (not track) {
813  return false;
814  }
815  }
816  return true;
817 }
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 323 of file HeavyFlavorDQMAnalyzer.cc.

References dqm::implementation::IBooker::book1D(), 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().

327  {
328 
329  std::string histTitle = name + " #rightarrow " + products + ";";
330 
331  decayHists.h_mass = ibook.book1D("h_mass", histTitle + "M(" + products + ") fitted [GeV]", nMassBins, massMin, massMax);
332  decayHists.h_pt = ibook.book1D("h_pt", histTitle + "fitted p_{T} [GeV]", 100, 0.00, 200.0);
333  decayHists.h_eta = ibook.book1D("h_eta", histTitle + "fitted #eta", 100, -3, 3);
334  decayHists.h_phi = ibook.book1D("h_phi", histTitle + "fitted #varphi [rad]", 100, -TMath::Pi(), TMath::Pi());
335  decayHists.h_displ2D = ibook.book1D("h_displ2D", histTitle + "vertex 2D displacement [cm]", 100, 0.00, 2.0*distanceScaleFactor);
336  decayHists.h_sign2D = ibook.book1D("h_sign2D", histTitle + "vertex 2D displ. significance", 100, 0.00, 200.0*distanceScaleFactor);
337  decayHists.h_ct = ibook.book1D("h_ct", histTitle + "ct [cm]", 100, 0.00, 0.4*distanceScaleFactor);
338  decayHists.h_pointing = ibook.book1D("h_pointing", histTitle + "cos( 2D pointing angle )", 100, -1, 1);
339  decayHists.h_vertNormChi2 = ibook.book1D("h_vertNormChi2", histTitle + "vertex #chi^{2}/ndof", 100, 0.00, 10);
340  decayHists.h_vertProb = ibook.book1D("h_vertProb", histTitle + "vertex prob.", 100, 0.00, 1.0);
341 }
const double Pi
dqm::reco::MonitorElement * h_sign2D
ESProducts< std::remove_reference_t< TArgs >... > products(TArgs &&... args)
Definition: ESProducts.h:128
dqm::reco::MonitorElement * h_displ2D
dqm::reco::MonitorElement * h_phi
dqm::reco::MonitorElement * h_vertProb
dqm::reco::MonitorElement * h_eta
dqm::reco::MonitorElement * h_pointing
dqm::reco::MonitorElement * h_mass
dqm::reco::MonitorElement * h_pt
dqm::reco::MonitorElement * h_vertNormChi2
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_ct

◆ 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 343 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().

346  {
347 
349  ibook.cd();
350  ibook.setCurrentFolder(folder_ + "/JPsiToMuMuPrompt");
351  bookDecayHists(ibook, run, iSetup, histos.oniaToMuMuPrompt, "J/#psi", "#mu^{+}#mu^{-}", 100, 2.9, 3.3);
352 
353  ibook.setCurrentFolder(folder_ + "/JPsiToMuMuPrompt/components");
354  initOniaToMuMuComponentHistograms(ibook, run, iSetup, histos.oniaToMuMuPrompt);
355 
356 
357  ibook.cd();
358  ibook.setCurrentFolder(folder_ + "/JPsiToMuMuDisplaced");
359  bookDecayHists(ibook, run, iSetup, histos.oniaToMuMuDispl, "J/#psi", "#mu^{+}#mu^{-}", 100, 2.9, 3.3);
360 
361  ibook.setCurrentFolder(folder_ + "/JPsiToMuMuDisplaced/components");
362  initOniaToMuMuComponentHistograms(ibook, run, iSetup, histos.oniaToMuMuDispl);
363 
364 
365  ibook.cd();
366  ibook.setCurrentFolder(folder_ + "/OniaToMuMu");
367  bookDecayHists(ibook, run, iSetup, histos.oniaToMuMu, "Onia", "#mu^{+}#mu^{-}", 750, 0, 15);
368 
369  ibook.setCurrentFolder(folder_ + "/OniaToMuMu/components");
370  initOniaToMuMuComponentHistograms(ibook, run, iSetup, histos.oniaToMuMu);
371  }
372 
374  ibook.cd();
375  ibook.setCurrentFolder(folder_ + "/Kx0ToKPiPrompt");
376  bookDecayHists(ibook, run, iSetup, histos.kx0ToKPiPrompt, "K*^{0}", "#pi^{+} K^{-}", 100, 0.75, 1.05);
377 
378  ibook.setCurrentFolder(folder_ + "/Kx0ToKPiPrompt/components");
379  initKx0ToKPiComponentHistograms(ibook, run, iSetup, histos.kx0ToKPiPrompt);
380 
381 
382  ibook.cd();
383  ibook.setCurrentFolder(folder_ + "/Kx0ToKPiDisplaced");
384  bookDecayHists(ibook, run, iSetup, histos.kx0ToKPiDispl, "K*^{0}", "#pi^{+} K^{-}", 100, 0.75, 1.05);
385 
386  ibook.setCurrentFolder(folder_ + "/Kx0ToKPiDisplaced/components");
387  initKx0ToKPiComponentHistograms(ibook, run, iSetup, histos.kx0ToKPiDispl);
388 
389 
390  ibook.cd();
391  ibook.setCurrentFolder(folder_ + "/Kx0ToKPi");
392  bookDecayHists(ibook, run, iSetup, histos.kx0ToKPi, "K*^{0}", "#pi^{+} K^{-}", 100, 0.75, 1.05);
393 
394  ibook.setCurrentFolder(folder_ + "/Kx0ToKPi/components");
395  initKx0ToKPiComponentHistograms(ibook, run, iSetup, histos.kx0ToKPi);
396  }
397 
399  ibook.cd();
400  ibook.setCurrentFolder(folder_ + "/PhiToKKPrompt");
401  bookDecayHists(ibook, run, iSetup, histos.phiToKKPrompt, "#phi", "K^{+} K^{-}", 100, 1.005, 1.035);
402 
403  ibook.setCurrentFolder(folder_ + "/PhiToKKPrompt/components");
404  initPhiToKKComponentHistograms(ibook, run, iSetup, histos.phiToKKPrompt);
405 
406 
407  ibook.cd();
408  ibook.setCurrentFolder(folder_ + "/PhiToKKDisplaced");
409  bookDecayHists(ibook, run, iSetup, histos.phiToKKDispl, "#phi", "K^{+} K^{-}", 100, 1.005, 1.035);
410 
411  ibook.setCurrentFolder(folder_ + "/PhiToKKDisplaced/components");
412  initPhiToKKComponentHistograms(ibook, run, iSetup, histos.phiToKKDispl);
413 
414 
415  ibook.cd();
416  ibook.setCurrentFolder(folder_ + "/PhiToKK");
417  bookDecayHists(ibook, run, iSetup, histos.phiToKK, "#phi", "K^{+} K^{-}", 100, 1.005, 1.035);
418 
419  ibook.setCurrentFolder(folder_ + "/PhiToKK/components");
420  initPhiToKKComponentHistograms(ibook, run, iSetup, histos.phiToKK);
421  }
422 
424  ibook.cd();
425  ibook.setCurrentFolder(folder_ + "/Psi2SToJPsiPiPiPrompt");
426  bookDecayHists(ibook, run, iSetup, histos.psi2SToJPsiPiPiPrompt, "#Psi(2S)", "J/#psi #pi^{+} #pi^{-}", 100, 3.65, 3.72);
427 
428  ibook.setCurrentFolder(folder_ + "/Psi2SToJPsiPiPiPrompt/components");
429  initPsi2SToJPsiPiPiComponentHistograms(ibook, run, iSetup, histos.psi2SToJPsiPiPiPrompt);
430 
431 
432  ibook.cd();
433  ibook.setCurrentFolder(folder_ + "/Psi2SToJPsiPiPiDisplaced");
434  bookDecayHists(ibook, run, iSetup, histos.psi2SToJPsiPiPiDispl, "#Psi(2S)", "J/#psi #pi^{+} #pi^{-}", 100, 3.65, 3.72);
435 
436  ibook.setCurrentFolder(folder_ + "/Psi2SToJPsiPiPiDisplaced/components");
437  initPsi2SToJPsiPiPiComponentHistograms(ibook, run, iSetup, histos.psi2SToJPsiPiPiDispl);
438 
439 
440  ibook.cd();
441  ibook.setCurrentFolder(folder_ + "/Psi2SToJPsiPiPi");
442  bookDecayHists(ibook, run, iSetup, histos.psi2SToJPsiPiPi, "#Psi(2S)/X(3872)", "J/#psi #pi^{+} #pi^{-}", 200, 3.60, 3.80);
443 
444  ibook.setCurrentFolder(folder_ + "/Psi2SToJPsiPiPi/components");
445  initPsi2SToJPsiPiPiComponentHistograms(ibook, run, iSetup, histos.psi2SToJPsiPiPi);
446  }
447 
449  ibook.cd();
450  ibook.setCurrentFolder(folder_ + "/K0sToPiPi");
451  bookDecayHists(ibook, run, iSetup, histos.k0sToPiPi, "K^{0}_{S}", "#pi^{+} #pi^{-}", 100, 0.44, 0.56, 4);
452 
453  ibook.setCurrentFolder(folder_ + "/K0sToPiPi/components");
454  initK0sToPiPiComponentHistograms(ibook, run, iSetup, histos.k0sToPiPi);
455  }
456 
458  ibook.cd();
459  ibook.setCurrentFolder(folder_ + "/Lambda0ToPPi");
460  bookDecayHists(ibook, run, iSetup, histos.lambda0ToPPi, "#Lambda^{0}", "p^{+} #pi^{-}", 100, 1.06, 1.16, 4);
461 
462  ibook.setCurrentFolder(folder_ + "/Lambda0ToPPi/components");
463  initLambda0ToPPiComponentHistograms(ibook, run, iSetup, histos.lambda0ToPPi);
464  }
465 
467  ibook.cd();
468  ibook.setCurrentFolder(folder_ + "/BuToJPsiK");
469  bookDecayHists(ibook, run, iSetup, histos.buToJPsiK, "B^{+}", "J/#psi K^{+}", 100, 5.00, 6.00);
470 
471  ibook.setCurrentFolder(folder_ + "/BuToJPsiK/components");
472  initBuToJPsiKComponentHistograms(ibook, run, iSetup, histos.buToJPsiK);
473  }
474 
476  ibook.cd();
477  ibook.setCurrentFolder(folder_ + "/BuToPsi2SK");
478  bookDecayHists(ibook, run, iSetup, histos.buToPsi2SK, "B^{+}", "#Psi(2S) K^{+}", 100, 5.00, 6.00);
479 
480  ibook.setCurrentFolder(folder_ + "/BuToPsi2SK/components");
481  initBuToPsi2SKComponentHistograms(ibook, run, iSetup, histos.buToPsi2SK);
482  }
483 
485  ibook.cd();
486  ibook.setCurrentFolder(folder_ + "/BdToJPsiKx0");
487  bookDecayHists(ibook, run, iSetup, histos.bdToJPsiKx0, "B^{0}", "J/#psi K*^{0}", 100, 5.00, 6.00);
488 
489  ibook.setCurrentFolder(folder_ + "/BdToJPsiKx0/components");
490  initBdToJPsiKx0ComponentHistograms(ibook, run, iSetup, histos.bdToJPsiKx0);
491  }
492 
494  ibook.cd();
495  ibook.setCurrentFolder(folder_ + "/BsToJPsiPhi");
496  bookDecayHists(ibook, run, iSetup, histos.bsToJPsiPhi, "B^{0}_{s}", "J/#psi #phi", 100, 5.00, 6.00);
497 
498  ibook.setCurrentFolder(folder_ + "/BsToJPsiPhi/components");
499  initBsToJPsiPhiComponentHistograms(ibook, run, iSetup, histos.bsToJPsiPhi);
500  }
501 
503  ibook.cd();
504  ibook.setCurrentFolder(folder_ + "/BdToJPsiK0s");
505  bookDecayHists(ibook, run, iSetup, histos.bdToJPsiK0s, "B^{0}", "J/#psi K^{0}_{S}", 100, 5.00, 6.00);
506 
507  ibook.setCurrentFolder(folder_ + "/BdToJPsiK0s/components");
508  initBdToJPsiK0sComponentHistograms(ibook, run, iSetup, histos.bdToJPsiK0s);
509  }
510 
512  ibook.cd();
513  ibook.setCurrentFolder(folder_ + "/BcToJPsiPi");
514  bookDecayHists(ibook, run, iSetup, histos.bcToJPsiPi, "B^{+}_{c}", "J/#psi #pi^{+}", 100, 6.00, 7.00);
515 
516  ibook.setCurrentFolder(folder_ + "/BcToJPsiPi/components");
517  initBcToJPsiPiComponentHistograms(ibook, run, iSetup, histos.bcToJPsiPi);
518  }
519 
521  ibook.cd();
522  ibook.setCurrentFolder(folder_ + "/LambdaBToJPsiLambda0");
523  bookDecayHists(ibook, run, iSetup, histos.lambdaBToJPsiLambda0, "#Lambda^{0}_{b}", "J/#psi #Lambda^{0}", 100, 5.00, 6.00);
524 
525  ibook.setCurrentFolder(folder_ + "/LambdaBToJPsiLambda0/components");
526  initLambdaBToJPsiLambda0ComponentHistograms(ibook, run, iSetup, histos.lambdaBToJPsiLambda0);
527  }
528 }
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:32
constexpr bool isUninitialized() const noexcept
Definition: EDGetToken.h:99
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 86 of file HeavyFlavorDQMAnalyzer.cc.

References bcToJPsiPiCandsToken, bdToJPsiK0sCandsToken, bdToJPsiKx0CandsToken, 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.

88  {
89 
90  auto& pvColl = iEvent.get(pvCollectionToken);
91 
92  std::vector<bool> displacedJPsiToMuMu;
95  lOniaToMuMu = iEvent.get(oniaToMuMuCandsToken);
96  displacedJPsiToMuMu.resize(lOniaToMuMu.size(), false);
97  }
98 
100  auto lBuToJPsiK = iEvent.get(buToJPsiKCandsToken);
101  for (auto&& cand: lBuToJPsiK) {
102  auto jpsi = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi");
103  auto jpsiMass = getMass(*jpsi);
104  if (jpsiMass < 2.9 or jpsiMass > 3.3) continue;
105 
106  if (not fillDecayHistograms(histos.buToJPsiK, cand, pvColl)) continue;
107  fillBuToJPsiKComponents(histos.buToJPsiK, cand);
108 
109  displacedJPsiToMuMu[jpsi.index()] = true;
110  }
111  }
112 
113  std::vector<bool> displacedPsi2SToJPsiPiPi;
114  pat::CompositeCandidateCollection lPsi2SToJPsiPiPi;
116  lPsi2SToJPsiPiPi = iEvent.get(psi2SToJPsiPiPiCandsToken);
117  displacedPsi2SToJPsiPiPi.resize(lPsi2SToJPsiPiPi.size(), false);
118  }
119 
121  auto lBuToPsi2SK = iEvent.get(buToPsi2SKCandsToken);
122  for (auto&& cand: lBuToPsi2SK) {
123  auto psi2S = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToPsi2S");
124  auto psi2SMass = getMass(*psi2S);
125  if (psi2SMass < 3.65 or psi2SMass > 3.72) continue;
126 
127  auto jpsi = *psi2S->userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi");
128  auto jpsiMass = getMass(*jpsi);
129  if (jpsiMass < 2.9 or jpsiMass > 3.3) continue;
130 
131  if (not fillDecayHistograms(histos.buToPsi2SK, cand, pvColl)) continue;
132  fillBuToPsi2SKComponents(histos.buToPsi2SK, cand);
133 
134  displacedPsi2SToJPsiPiPi[psi2S.index()] = true;
135  displacedJPsiToMuMu[jpsi.index()] = true;
136  }
137  }
138 
139  for (size_t i = 0; i < lPsi2SToJPsiPiPi.size(); i++) {
140  auto&& cand = lPsi2SToJPsiPiPi[i];
141 
142  auto jpsi = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi");
143  auto jpsiMass = getMass(*jpsi);
144  if (jpsiMass < 2.9 or jpsiMass > 3.3) continue;
145 
146  if (not fillDecayHistograms(histos.psi2SToJPsiPiPi, cand, pvColl)) continue;
147  fillPsi2SToJPsiPiPiComponents(histos.psi2SToJPsiPiPi, cand);
148 
149  auto decayHistos = &histos.psi2SToJPsiPiPiPrompt;
150  if (displacedPsi2SToJPsiPiPi[i]) {
151  decayHistos = &histos.psi2SToJPsiPiPiDispl;
152  }
153 
154  fillDecayHistograms(*decayHistos, cand, pvColl);
155  fillPsi2SToJPsiPiPiComponents(*decayHistos, cand);
156 
157  }
158  lPsi2SToJPsiPiPi.clear();
159  displacedPsi2SToJPsiPiPi.clear();
160 
161  std::vector<bool> displacedKx0ToKPi;
164  lKx0ToKPi = iEvent.get(kx0ToKPiCandsToken);
165  displacedKx0ToKPi.resize(lKx0ToKPi.size(), false);
166  }
167 
169  auto lBdToJPsiKx0 = iEvent.get(bdToJPsiKx0CandsToken);
170  for (auto&& cand: lBdToJPsiKx0) {
171  auto jpsi = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi");
172  auto jpsiMass = getMass(*jpsi);
173  if (jpsiMass < 2.9 or jpsiMass > 3.3) continue;
174 
175  auto kx0 = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToKx0");
176  auto kx0Mass = getMass(*kx0);
177  if (kx0Mass < 0.77 or kx0Mass > 1.02) continue;
178 
179  if (not fillDecayHistograms(histos.bdToJPsiKx0, cand, pvColl)) continue;
180  fillBdToJPsiKx0Components(histos.bdToJPsiKx0, cand);
181 
182  displacedKx0ToKPi[kx0.index()] = true;
183  }
184  }
185 
186  for (size_t i = 0; i < lKx0ToKPi.size(); i++) {
187  auto&& cand = lKx0ToKPi[i];
188 
189  if (not fillDecayHistograms(histos.kx0ToKPi, cand, pvColl)) continue;
191 
192  auto decayHistos = &histos.kx0ToKPiPrompt;
193  if (displacedKx0ToKPi[i]) {
194  decayHistos = &histos.kx0ToKPiDispl;
195  }
196 
197  fillDecayHistograms(*decayHistos, cand, pvColl);
198  fillKx0ToKPiComponents(*decayHistos, cand);
199  }
200  lKx0ToKPi.clear();
201  displacedKx0ToKPi.clear();
202 
203  std::vector<bool> displacedPhiToKK;
206  lPhiToKK = iEvent.get(phiToKKCandsToken);
207  displacedPhiToKK.resize(lPhiToKK.size(), false);
208  }
209 
211  auto lBsToJPsiPhi = iEvent.get(bsToJPsiPhiCandsToken);
212  for (auto&& cand: lBsToJPsiPhi) {
213  auto jpsi = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi");
214  auto jpsiMass = getMass(*jpsi);
215  if (jpsiMass < 2.9 or jpsiMass > 3.3) continue;
216 
217  auto phi = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToPhi");
218  auto phiMass = getMass(*phi);
219  if (phiMass < 1.005 or phiMass > 1.035) continue;
220 
221  if (not fillDecayHistograms(histos.bsToJPsiPhi, cand, pvColl)) continue;
222  fillBsToJPsiPhiComponents(histos.bsToJPsiPhi, cand);
223 
224  displacedJPsiToMuMu[jpsi.index()] = true;
225  displacedPhiToKK[phi.index()] = true;
226  }
227  }
228 
229  for (size_t i = 0; i < lPhiToKK.size(); i++) {
230  auto&& cand = lPhiToKK[i];
231 
232  if (not fillDecayHistograms(histos.phiToKK, cand, pvColl)) continue;
234 
235  auto decayHistos = &histos.phiToKKPrompt;
236  if (displacedPhiToKK[i]) {
237  decayHistos = &histos.phiToKKDispl;
238  }
239 
240  fillDecayHistograms(*decayHistos, cand, pvColl);
241  fillPhiToKKComponents(*decayHistos, cand);
242  }
243  lPhiToKK.clear();
244  displacedPhiToKK.clear();
245 
247  auto lBdToJPsiK0s = iEvent.get(bdToJPsiK0sCandsToken);
248  for (auto&& cand: lBdToJPsiK0s) {
249  auto jpsi = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi");
250  auto jpsiMass = getMass(*jpsi);
251  if (jpsiMass < 2.9 or jpsiMass > 3.3) continue;
252 
253  if (not fillDecayHistograms(histos.bdToJPsiK0s, cand, pvColl)) continue;
254  fillBdToJPsiK0sComponents(histos.bdToJPsiK0s, cand);
255 
256  displacedJPsiToMuMu[jpsi.index()] = true;
257  }
258  }
259 
261  auto lBcToJPsiPi = iEvent.get(bcToJPsiPiCandsToken);
262  for (auto&& cand: lBcToJPsiPi) {
263  auto jpsi = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi");
264  auto jpsiMass = getMass(*jpsi);
265  if (jpsiMass < 2.9 or jpsiMass > 3.3) continue;
266 
267  if (not fillDecayHistograms(histos.bcToJPsiPi, cand, pvColl)) continue;
268  fillBcToJPsiPiComponents(histos.bcToJPsiPi, cand);
269 
270  displacedJPsiToMuMu[jpsi.index()] = true;
271  }
272  }
273 
275  auto lLambdaBToJPsiLambda0 = iEvent.get(lambdaBToJPsiLambda0CandsToken);
276  for (auto&& cand: lLambdaBToJPsiLambda0) {
277  auto jpsi = *cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi");
278  auto jpsiMass = getMass(*jpsi);
279  if (jpsiMass < 2.9 or jpsiMass > 3.3) continue;
280 
281  if (not fillDecayHistograms(histos.lambdaBToJPsiLambda0, cand, pvColl)) continue;
282  fillLambdaBToJPsiLambda0Components(histos.lambdaBToJPsiLambda0, cand);
283 
284  displacedJPsiToMuMu[jpsi.index()] = true;
285  }
286  }
287 
288  for (size_t i = 0; i < lOniaToMuMu.size(); i++) {
289  auto&& cand = lOniaToMuMu[i];
290 
291  if (not fillDecayHistograms(histos.oniaToMuMu, cand, pvColl)) continue;
292  fillOniaToMuMuComponents(histos.oniaToMuMu, cand);
293 
294  auto decayHistos = &histos.oniaToMuMuPrompt;
295  if (displacedJPsiToMuMu[i]) {
296  decayHistos = &histos.oniaToMuMuDispl;
297  }
298 
299  fillDecayHistograms(*decayHistos, cand, pvColl);
300  fillOniaToMuMuComponents(*decayHistos, cand);
301  }
302  lOniaToMuMu.clear();
303  displacedJPsiToMuMu.clear();
304 
306  auto lK0sToPiPi = iEvent.get(k0sToPiPiCandsToken);
307  for (auto&& cand: lK0sToPiPi) {
308  if (not fillDecayHistograms(histos.k0sToPiPi, cand, pvColl)) continue;
309  fillK0sToPiPiComponents(histos.k0sToPiPi, cand);
310  }
311  }
312 
314  auto lLambda0ToPPi = iEvent.get(lambda0ToPPiCandsToken);
315  for (auto&& cand: lLambda0ToPPi) {
316  if (not fillDecayHistograms(histos.lambda0ToPPi, cand, pvColl)) continue;
317  fillLambda0ToPPiComponents(histos.lambda0ToPPi, cand);
318  }
319  }
320 
321 }
edm::EDGetTokenT< pat::CompositeCandidateCollection > bdToJPsiKx0CandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > lambdaBToJPsiLambda0CandsToken
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 fillBuToPsi2SKComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
constexpr bool isUninitialized() const noexcept
Definition: EDGetToken.h:99
int fillBsToJPsiPhiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
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
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
int fillK0sToPiPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
int iEvent
Definition: GenABIO.cc:224
edm::EDGetTokenT< pat::CompositeCandidateCollection > buToJPsiKCandsToken
int fillBdToJPsiKx0Components(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
edm::EDGetTokenT< reco::VertexCollection > pvCollectionToken
int fillKx0ToKPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > bdToJPsiK0sCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > bcToJPsiPiCandsToken
int fillLambda0ToPPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
float getMass(pat::CompositeCandidate const &cand)
edm::EDGetTokenT< pat::CompositeCandidateCollection > buToPsi2SKCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > kx0ToKPiCandsToken
int fillPsi2SToJPsiPiPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
std::vector< CompositeCandidate > CompositeCandidateCollection
int fillBdToJPsiK0sComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
histos
Definition: combine.py:4
int fillPhiToKKComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
edm::EDGetTokenT< pat::CompositeCandidateCollection > psi2SToJPsiPiPiCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > k0sToPiPiCandsToken
edm::EDGetTokenT< pat::CompositeCandidateCollection > bsToJPsiPhiCandsToken

◆ fillBcToJPsiPiComponents()

int HeavyFlavorDQMAnalyzer::fillBcToJPsiPiComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
int  startPosition = 0 
) const
private

Definition at line 776 of file HeavyFlavorDQMAnalyzer.cc.

References fillComponentHistogramsSinglePart(), fillOniaToMuMuComponents(), and combine::histos.

Referenced by dqmAnalyze().

776  {
777  startPosition = fillOniaToMuMuComponents(histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi"), startPosition);
778  startPosition = fillComponentHistogramsSinglePart(histos, cand, "Pion", startPosition);
779 
780  return startPosition;
781 }
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
histos
Definition: combine.py:4
int fillComponentHistogramsSinglePart(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name, int startPosition=0) const

◆ fillBdToJPsiK0sComponents()

int HeavyFlavorDQMAnalyzer::fillBdToJPsiK0sComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
int  startPosition = 0 
) const
private

Definition at line 769 of file HeavyFlavorDQMAnalyzer.cc.

References fillK0sToPiPiComponents(), fillOniaToMuMuComponents(), and combine::histos.

Referenced by dqmAnalyze().

769  {
770  startPosition = fillOniaToMuMuComponents(histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi"), startPosition);
771  startPosition = fillK0sToPiPiComponents(histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToK0s"), startPosition);
772 
773  return startPosition;
774 }
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
int fillK0sToPiPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
histos
Definition: combine.py:4

◆ fillBdToJPsiKx0Components()

int HeavyFlavorDQMAnalyzer::fillBdToJPsiKx0Components ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
int  startPosition = 0 
) const
private

Definition at line 755 of file HeavyFlavorDQMAnalyzer.cc.

References fillKx0ToKPiComponents(), fillOniaToMuMuComponents(), and combine::histos.

Referenced by dqmAnalyze().

755  {
756  startPosition = fillOniaToMuMuComponents(histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi"), startPosition);
757  startPosition = fillKx0ToKPiComponents(histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToKx0"), startPosition);
758 
759  return startPosition;
760 }
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
int fillKx0ToKPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
histos
Definition: combine.py:4

◆ fillBsToJPsiPhiComponents()

int HeavyFlavorDQMAnalyzer::fillBsToJPsiPhiComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
int  startPosition = 0 
) const
private

Definition at line 762 of file HeavyFlavorDQMAnalyzer.cc.

References fillOniaToMuMuComponents(), fillPhiToKKComponents(), and combine::histos.

Referenced by dqmAnalyze().

762  {
763  startPosition = fillOniaToMuMuComponents(histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi"), startPosition);
764  startPosition = fillPhiToKKComponents(histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToPhi"), startPosition);
765 
766  return startPosition;
767 }
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
histos
Definition: combine.py:4
int fillPhiToKKComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const

◆ fillBuToJPsiKComponents()

int HeavyFlavorDQMAnalyzer::fillBuToJPsiKComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
int  startPosition = 0 
) const
private

Definition at line 741 of file HeavyFlavorDQMAnalyzer.cc.

References fillComponentHistogramsSinglePart(), fillOniaToMuMuComponents(), and combine::histos.

Referenced by dqmAnalyze().

741  {
742  startPosition = fillOniaToMuMuComponents(histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi"), startPosition);
743  startPosition = fillComponentHistogramsSinglePart(histos, cand, "Kaon", startPosition);
744 
745  return startPosition;
746 }
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
histos
Definition: combine.py:4
int fillComponentHistogramsSinglePart(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name, int startPosition=0) const

◆ fillBuToPsi2SKComponents()

int HeavyFlavorDQMAnalyzer::fillBuToPsi2SKComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
int  startPosition = 0 
) const
private

Definition at line 748 of file HeavyFlavorDQMAnalyzer.cc.

References fillComponentHistogramsSinglePart(), fillPsi2SToJPsiPiPiComponents(), and combine::histos.

Referenced by dqmAnalyze().

748  {
749  startPosition = fillPsi2SToJPsiPiPiComponents(histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToPsi2S"), startPosition);
750  startPosition = fillComponentHistogramsSinglePart(histos, cand, "Kaon", startPosition);
751 
752  return startPosition;
753 }
int fillPsi2SToJPsiPiPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
histos
Definition: combine.py:4
int fillComponentHistogramsSinglePart(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name, int startPosition=0) const

◆ fillComponentHistograms()

void HeavyFlavorDQMAnalyzer::fillComponentHistograms ( ComponentHists const &  histos,
reco::Track const &  component 
) const
private

Definition at line 796 of file HeavyFlavorDQMAnalyzer.cc.

References 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(), and reco::TrackBase::pt().

Referenced by fillComponentHistogramsLeadSoft(), and fillComponentHistogramsSinglePart().

796  {
797  histos.h_pt->Fill(component.pt());
798  histos.h_eta->Fill(component.eta());
799  histos.h_phi->Fill(component.phi());
800 
801  histos.h_dxy->Fill(component.dxy());
802  histos.h_exy->Fill(component.dxyError());
803  histos.h_dz->Fill(component.dz());
804  histos.h_ez->Fill(component.dzError());
805 
806  histos.h_chi2->Fill(component.chi2()/component.ndof());
807 }
histos
Definition: combine.py:4

◆ fillComponentHistogramsLeadSoft()

int HeavyFlavorDQMAnalyzer::fillComponentHistogramsLeadSoft ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
std::string const &  name1,
std::string const &  name2,
int  startPosition = 0 
) const
private

Definition at line 846 of file HeavyFlavorDQMAnalyzer.cc.

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

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

846  {
847  auto daughSoft = getDaughterTrack(cand, name1);
848  auto daughLead = getDaughterTrack(cand, name2);
849 
850  if (daughLead->pt() < daughSoft->pt()) {
851  std::swap(daughLead, daughSoft);
852  }
853 
854  fillComponentHistograms(histos.decayComponents[startPosition], *daughLead);
855  fillComponentHistograms(histos.decayComponents[startPosition + 1], *daughSoft);
856 
857  return startPosition + 2;
858 }
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) 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,
int  startPosition = 0 
) const
private

Definition at line 839 of file HeavyFlavorDQMAnalyzer.cc.

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

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

839  {
840 
841  fillComponentHistograms(histos.decayComponents[startPosition], *getDaughterTrack(cand, name));
842 
843  return startPosition + 1;
844 }
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) const
histos
Definition: combine.py:4

◆ fillDecayHistograms()

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

Definition at line 650 of file HeavyFlavorDQMAnalyzer.cc.

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

Referenced by dqmAnalyze().

650  {
651 // if (not cand.hasUserData("fitMomentum")) {
652 // return -2;
653 // }
654 // auto mass = cand.userFloat("fitMass");
655 // auto& momentum = *cand.userData<GlobalVector>("fitMomentum");
656  if (not allTracksAvailable(cand)) {
657  return false;
658  }
659 
660  auto svtx = cand.userData<reco::Vertex>("vertex");
661  if (not svtx->isValid()) {
662  return false;
663  }
664 
665  float mass = cand.mass();
666  reco::Candidate::Vector momentum = cand.momentum();
667  if (cand.hasUserData("fitMomentum")) {
668  mass = cand.userFloat("fitMass");
669  momentum = *cand.userData<GlobalVector>("fitMomentum");
670  }
671 
672  auto pvtx = std::min_element(pvs.begin(), pvs.end(), [svtx](reco::Vertex const& pv1, reco::Vertex const& pv2) {
673  return abs(pv1.z() - svtx->z()) < abs(pv2.z() - svtx->z());
674  });
675 
676  VertexDistanceXY vdistXY;
677  Measurement1D distXY = vdistXY.distance(*svtx, *pvtx);
678 
679  auto pvtPos = pvtx->position();
680  auto svtPos = svtx->position();
681 
682  math::XYZVector displVect2D(svtPos.x() - pvtPos.x(), svtPos.y() - pvtPos.y(), 0);
683  auto cosAlpha = displVect2D.Dot(momentum)/(displVect2D.Rho()*momentum.rho());
684 
685  auto ct = distXY.value() * cosAlpha * mass / momentum.rho();
686 
687  histos.h_pointing->Fill(cosAlpha);
688 
689  histos.h_mass->Fill(mass);
690 
691  histos.h_pt->Fill(momentum.rho());
692  histos.h_eta->Fill(momentum.eta());
693  histos.h_phi->Fill(momentum.phi());
694 
695  histos.h_ct->Fill(ct);
696 
697  histos.h_displ2D->Fill(distXY.value());
698  histos.h_sign2D->Fill(distXY.significance());
699 
700  // FIXME workaround for tracks with non pos-def cov. matrix
701  if (svtx->chi2() >= 0) {
702  histos.h_vertNormChi2->Fill(svtx->chi2()/svtx->ndof());
703  histos.h_vertProb->Fill(ChiSquaredProbability(svtx->chi2(), svtx->ndof()));
704  }
705 
706  return true;
707 }
math::XYZVector Vector
point in the space
Definition: Candidate.h:42
double z() const
z coordinate
Definition: Vertex.h:133
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 861 of file HeavyFlavorDQMAnalyzer.cc.

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

861  {
863 
864  desc.add<std::string>("folder", "Physics/HeavyFlavor");
865 
866  desc.add<edm::InputTag>("pvCollection");
867 
868  desc.addOptional<edm::InputTag>("OniaToMuMuCands");
869  desc.addOptional<edm::InputTag>("Kx0ToKPiCands");
870  desc.addOptional<edm::InputTag>("PhiToKKCands");
871  desc.addOptional<edm::InputTag>("BuToJPsiKCands");
872  desc.addOptional<edm::InputTag>("BuToPsi2SKCands");
873  desc.addOptional<edm::InputTag>("BdToJPsiKx0Cands");
874  desc.addOptional<edm::InputTag>("BsToJPsiPhiCands");
875  desc.addOptional<edm::InputTag>("K0sToPiPiCands");
876  desc.addOptional<edm::InputTag>("Lambda0ToPPiCands");
877  desc.addOptional<edm::InputTag>("BdToJPsiK0sCands");
878  desc.addOptional<edm::InputTag>("LambdaBToJPsiLambda0Cands");
879  desc.addOptional<edm::InputTag>("BcToJPsiPiCands");
880  desc.addOptional<edm::InputTag>("Psi2SToJPsiPiPiCands");
881 
882  descriptions.add("HeavyFlavorDQMAnalyzer", desc);
883 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ fillK0sToPiPiComponents()

int HeavyFlavorDQMAnalyzer::fillK0sToPiPiComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
int  startPosition = 0 
) const
private

Definition at line 728 of file HeavyFlavorDQMAnalyzer.cc.

References fillComponentHistogramsLeadSoft(), and combine::histos.

Referenced by dqmAnalyze(), and fillBdToJPsiK0sComponents().

728  {
729  startPosition = fillComponentHistogramsLeadSoft(histos, cand, "PionPos", "PionNeg", startPosition);
730 
731  return startPosition;
732 }
int fillComponentHistogramsLeadSoft(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name1, std::string const &name2, int startPosition=0) const
histos
Definition: combine.py:4

◆ fillKx0ToKPiComponents()

int HeavyFlavorDQMAnalyzer::fillKx0ToKPiComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
int  startPosition = 0 
) const
private

Definition at line 715 of file HeavyFlavorDQMAnalyzer.cc.

References fillComponentHistogramsSinglePart(), and combine::histos.

Referenced by dqmAnalyze(), and fillBdToJPsiKx0Components().

715  {
716  startPosition = fillComponentHistogramsSinglePart(histos, cand, "Kaon", startPosition);
717  startPosition = fillComponentHistogramsSinglePart(histos, cand, "Pion", startPosition);
718 
719  return startPosition;
720 }
histos
Definition: combine.py:4
int fillComponentHistogramsSinglePart(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name, int startPosition=0) const

◆ fillLambda0ToPPiComponents()

int HeavyFlavorDQMAnalyzer::fillLambda0ToPPiComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
int  startPosition = 0 
) const
private

Definition at line 734 of file HeavyFlavorDQMAnalyzer.cc.

References fillComponentHistogramsSinglePart(), and combine::histos.

Referenced by dqmAnalyze(), and fillLambdaBToJPsiLambda0Components().

734  {
735  startPosition = fillComponentHistogramsSinglePart(histos, cand, "Proton", startPosition);
736  startPosition = fillComponentHistogramsSinglePart(histos, cand, "Pion", startPosition);
737 
738  return startPosition;
739 }
histos
Definition: combine.py:4
int fillComponentHistogramsSinglePart(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name, int startPosition=0) const

◆ fillLambdaBToJPsiLambda0Components()

int HeavyFlavorDQMAnalyzer::fillLambdaBToJPsiLambda0Components ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
int  startPosition = 0 
) const
private

Definition at line 783 of file HeavyFlavorDQMAnalyzer.cc.

References fillLambda0ToPPiComponents(), fillOniaToMuMuComponents(), and combine::histos.

Referenced by dqmAnalyze().

783  {
784  startPosition = fillOniaToMuMuComponents(histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi"), startPosition);
785  startPosition = fillLambda0ToPPiComponents(histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToLambda0"), startPosition);
786 
787  return startPosition;
788 }
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
int fillLambda0ToPPiComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, int startPosition=0) const
histos
Definition: combine.py:4

◆ fillOniaToMuMuComponents()

int HeavyFlavorDQMAnalyzer::fillOniaToMuMuComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
int  startPosition = 0 
) const
private

Definition at line 709 of file HeavyFlavorDQMAnalyzer.cc.

References fillComponentHistogramsLeadSoft(), and combine::histos.

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

709  {
710  startPosition = fillComponentHistogramsLeadSoft(histos, cand, "MuPos", "MuNeg", startPosition);
711 
712  return startPosition;
713 }
int fillComponentHistogramsLeadSoft(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name1, std::string const &name2, int startPosition=0) const
histos
Definition: combine.py:4

◆ fillPhiToKKComponents()

int HeavyFlavorDQMAnalyzer::fillPhiToKKComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
int  startPosition = 0 
) const
private

Definition at line 722 of file HeavyFlavorDQMAnalyzer.cc.

References fillComponentHistogramsLeadSoft(), and combine::histos.

Referenced by dqmAnalyze(), and fillBsToJPsiPhiComponents().

722  {
723  startPosition = fillComponentHistogramsLeadSoft(histos, cand, "KPos", "KNeg", startPosition);
724 
725  return startPosition;
726 }
int fillComponentHistogramsLeadSoft(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name1, std::string const &name2, int startPosition=0) const
histos
Definition: combine.py:4

◆ fillPsi2SToJPsiPiPiComponents()

int HeavyFlavorDQMAnalyzer::fillPsi2SToJPsiPiPiComponents ( DecayHists const &  histos,
pat::CompositeCandidate const &  cand,
int  startPosition = 0 
) const
private

Definition at line 790 of file HeavyFlavorDQMAnalyzer.cc.

References fillComponentHistogramsLeadSoft(), fillOniaToMuMuComponents(), and combine::histos.

Referenced by dqmAnalyze(), and fillBuToPsi2SKComponents().

790  {
791  startPosition = fillOniaToMuMuComponents(histos, **cand.userData<edm::Ref<pat::CompositeCandidateCollection>>("refToJPsi"), startPosition);
792  startPosition = fillComponentHistogramsLeadSoft(histos, cand, "PionPos", "PionNeg", startPosition);
793  return startPosition;
794 }
int fillComponentHistogramsLeadSoft(DecayHists const &, pat::CompositeCandidate const &cand, std::string const &name1, std::string const &name2, int startPosition=0) const
int fillOniaToMuMuComponents(DecayHists const &histos, pat::CompositeCandidate const &cand, 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 819 of file HeavyFlavorDQMAnalyzer.cc.

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

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

819  {
820  auto daugh = cand.daughter(name);
821  auto trackModeLabel = "trackMode_" + name;
822  auto trackMode = cand.userData<std::string>(trackModeLabel);
823  if (!trackMode or trackMode->empty()) {
824  if (throwOnMissing) {
825  throw cms::Exception("TrackNotFound") << "Could not determine track mode from candidate with name " << name << " with label " << trackModeLabel << std::endl;
826  }
827  return nullptr;
828  }
829 
830  auto track = BPHTrackReference::getTrack(*daugh, trackMode->c_str());
831 
832  if (throwOnMissing and not track) {
833  throw cms::Exception("TrackNotFound") << "BPHTrackReference could not extract a track as type " << trackMode << " from candidate with name " << name << std::endl;
834  }
835 
836  return track;
837 }
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 625 of file HeavyFlavorDQMAnalyzer.cc.

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

Referenced by bookHistograms().

628  {
630  initComponentHists(ibook, run, iSetup, histos, "pi");
631 }
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 617 of file HeavyFlavorDQMAnalyzer.cc.

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

Referenced by bookHistograms().

620  {
623 }
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 601 of file HeavyFlavorDQMAnalyzer.cc.

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

Referenced by bookHistograms().

604  {
606  initKx0ToKPiComponentHistograms(ibook, run, iSetup, histos);
607 }
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 609 of file HeavyFlavorDQMAnalyzer.cc.

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

Referenced by bookHistograms().

612  {
614  initPhiToKKComponentHistograms(ibook, run, iSetup, histos);
615 }
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 585 of file HeavyFlavorDQMAnalyzer.cc.

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

Referenced by bookHistograms().

588  {
590  initComponentHists(ibook, run, iSetup, histos, "k");
591 }
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 593 of file HeavyFlavorDQMAnalyzer.cc.

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

Referenced by bookHistograms().

596  {
598  initComponentHists(ibook, run, iSetup, histos, "k");
599 }
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 530 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().

530  {
532 
533  comp.h_pt = ibook.book1D(componentName + "_pt", "", 200, 0, 20);
534  comp.h_eta = ibook.book1D(componentName + "_eta", "", 200, -3, 3);
535  comp.h_phi = ibook.book1D(componentName + "_phi", "", 200, -TMath::Pi(), TMath::Pi());
536  comp.h_dxy = ibook.book1D(componentName + "_dxy", "", 200, 0, 3);
537  comp.h_exy = ibook.book1D(componentName + "_exy", "", 200, 0, 0.2);
538  comp.h_dz = ibook.book1D(componentName + "_dz", "", 200, 0, 20);
539  comp.h_ez = ibook.book1D(componentName + "_ez", "", 200, 0, 2);
540  comp.h_chi2 = ibook.book1D(componentName + "_chi2", "", 200, 0, 20);
541 
542  histos.decayComponents.push_back(comp);
543 }
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 569 of file HeavyFlavorDQMAnalyzer.cc.

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

Referenced by bookHistograms(), and initBdToJPsiK0sComponentHistograms().

572  {
573  initComponentHists(ibook, run, iSetup, histos, "lead_pi");
574  initComponentHists(ibook, run, iSetup, histos, "soft_pi");
575 }
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 553 of file HeavyFlavorDQMAnalyzer.cc.

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

Referenced by bookHistograms(), and initBdToJPsiKx0ComponentHistograms().

556  {
557  initComponentHists(ibook, run, iSetup, histos, "k");
558  initComponentHists(ibook, run, iSetup, histos, "pi");
559 }
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 577 of file HeavyFlavorDQMAnalyzer.cc.

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

Referenced by bookHistograms(), and initLambdaBToJPsiLambda0ComponentHistograms().

580  {
581  initComponentHists(ibook, run, iSetup, histos, "p");
582  initComponentHists(ibook, run, iSetup, histos, "pi");
583 }
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 633 of file HeavyFlavorDQMAnalyzer.cc.

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

Referenced by bookHistograms().

636  {
639 }
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 561 of file HeavyFlavorDQMAnalyzer.cc.

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

Referenced by bookHistograms(), and initBsToJPsiPhiComponentHistograms().

564  {
565  initComponentHists(ibook, run, iSetup, histos, "lead_k");
566  initComponentHists(ibook, run, iSetup, histos, "soft_k");
567 }
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 641 of file HeavyFlavorDQMAnalyzer.cc.

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

Referenced by bookHistograms(), and initBuToPsi2SKComponentHistograms().

644  {
646  initComponentHists(ibook, run, iSetup, histos, "lead_pi");
647  initComponentHists(ibook, run, iSetup, histos, "soft_pi");
648 }
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 181 of file HeavyFlavorDQMAnalyzer.h.

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

◆ bdToJPsiK0sCandsToken

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

Definition at line 179 of file HeavyFlavorDQMAnalyzer.h.

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

◆ bdToJPsiKx0CandsToken

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

Definition at line 175 of file HeavyFlavorDQMAnalyzer.h.

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

◆ bsToJPsiPhiCandsToken

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

Definition at line 176 of file HeavyFlavorDQMAnalyzer.h.

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

◆ buToJPsiKCandsToken

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

Definition at line 173 of file HeavyFlavorDQMAnalyzer.h.

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

◆ buToPsi2SKCandsToken

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

Definition at line 174 of file HeavyFlavorDQMAnalyzer.h.

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

◆ folder_

std::string HeavyFlavorDQMAnalyzer::folder_
private

Definition at line 166 of file HeavyFlavorDQMAnalyzer.h.

Referenced by bookHistograms().

◆ k0sToPiPiCandsToken

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

Definition at line 177 of file HeavyFlavorDQMAnalyzer.h.

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

◆ kx0ToKPiCandsToken

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

Definition at line 171 of file HeavyFlavorDQMAnalyzer.h.

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

◆ lambda0ToPPiCandsToken

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

Definition at line 178 of file HeavyFlavorDQMAnalyzer.h.

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

◆ lambdaBToJPsiLambda0CandsToken

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

Definition at line 180 of file HeavyFlavorDQMAnalyzer.h.

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

◆ oniaToMuMuCandsToken

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

Definition at line 170 of file HeavyFlavorDQMAnalyzer.h.

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

◆ phiToKKCandsToken

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

Definition at line 172 of file HeavyFlavorDQMAnalyzer.h.

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

◆ psi2SToJPsiPiPiCandsToken

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

Definition at line 182 of file HeavyFlavorDQMAnalyzer.h.

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

◆ pvCollectionToken

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

Definition at line 168 of file HeavyFlavorDQMAnalyzer.h.

Referenced by dqmAnalyze().