CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
BPHHistoSpecificDecay Class Reference

#include <BPHHistoSpecificDecay.h>

Inheritance diagram for BPHHistoSpecificDecay:
BPHAnalyzerWrapper< BPHModuleWrapper::one_analyzer > edm::one::EDAnalyzer< T > edm::one::EDAnalyzerBase edm::EDConsumerBase

Classes

class  CandidateSelect
 

Public Member Functions

void analyze (const edm::Event &ev, const edm::EventSetup &es) override
 
void beginJob () override
 
 BPHHistoSpecificDecay (const edm::ParameterSet &ps)
 
void endJob () override
 
 ~BPHHistoSpecificDecay () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer< T >
 EDAnalyzer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDAnalyzerBase () 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
 
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::vector< ModuleDescription const * > &modules, 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
 
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::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

void createHisto (const std::string &name, int nbin, float hmin, float hmax)
 
void fillHisto (const std::string &name, const pat::CompositeCandidate &cand)
 
void fillHisto (const std::string &name, float x)
 

Private Attributes

std::string bdCandsLabel
 
BPHTokenWrapper< std::vector< pat::CompositeCandidate > > bdCandsToken
 
CandidateSelectbdJPsiBasicSelect
 
CandidateSelectbdJPsiDaughterSelect
 
CandidateSelectbdKx0BasicSelect
 
CandidateSelectbdVertexSelect
 
std::string bsCandsLabel
 
BPHTokenWrapper< std::vector< pat::CompositeCandidate > > bsCandsToken
 
CandidateSelectbsJPsiBasicSelect
 
CandidateSelectbsJPsiDaughterSelect
 
CandidateSelectbsPhiBasicSelect
 
CandidateSelectbsVertexSelect
 
std::string buCandsLabel
 
BPHTokenWrapper< std::vector< pat::CompositeCandidate > > buCandsToken
 
CandidateSelectbuJPsiBasicSelect
 
CandidateSelectbuJPsiDaughterSelect
 
double buKPtMin
 
CandidateSelectbuVertexSelect
 
edm::Service< TFileServicefs
 
std::map< std::string, TH1F * > histoMap
 
CandidateSelectjPsiBasicSelect
 
std::string oniaCandsLabel
 
BPHTokenWrapper< std::vector< pat::CompositeCandidate > > oniaCandsToken
 
CandidateSelectoniaDaughterSelect
 
CandidateSelectoniaVertexSelect
 
CandidateSelectphiBasicSelect
 
CandidateSelectpsi2BasicSelect
 
std::string sdCandsLabel
 
BPHTokenWrapper< std::vector< pat::CompositeCandidate > > sdCandsToken
 
std::string ssCandsLabel
 
BPHTokenWrapper< std::vector< pat::CompositeCandidate > > ssCandsToken
 
CandidateSelectupsBasicSelect
 
bool useBd
 
bool useBs
 
bool useBu
 
bool useOnia
 
bool useSd
 
bool useSs
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from BPHAnalyzerWrapper< BPHModuleWrapper::one_analyzer >
void consume (BPHTokenWrapper< Obj > &tw, const std::string &label)
 
void consume (BPHTokenWrapper< Obj > &tw, const edm::InputTag &tag)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
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<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)
 

Detailed Description

Definition at line 25 of file BPHHistoSpecificDecay.h.

Constructor & Destructor Documentation

BPHHistoSpecificDecay::BPHHistoSpecificDecay ( const edm::ParameterSet ps)
explicit

Definition at line 331 of file BPHHistoSpecificDecay.cc.

References BPHParticleMasses::jPsiMass, BPHParticleMasses::kx0Mass, BPHParticleMasses::phiMass, and SET_LABEL.

331  {
332  useOnia = (!SET_LABEL(oniaCandsLabel, ps).empty());
333  useSd = (!SET_LABEL(sdCandsLabel, ps).empty());
334  useSs = (!SET_LABEL(ssCandsLabel, ps).empty());
335  useBu = (!SET_LABEL(buCandsLabel, ps).empty());
336  useBd = (!SET_LABEL(bdCandsLabel, ps).empty());
337  useBs = (!SET_LABEL(bsCandsLabel, ps).empty());
338  if (useOnia)
339  consume<vector<pat::CompositeCandidate> >(oniaCandsToken, oniaCandsLabel);
340  if (useSd)
341  consume<vector<pat::CompositeCandidate> >(sdCandsToken, sdCandsLabel);
342  if (useSs)
343  consume<vector<pat::CompositeCandidate> >(ssCandsToken, ssCandsLabel);
344  if (useBu)
345  consume<vector<pat::CompositeCandidate> >(buCandsToken, buCandsLabel);
346  if (useBd)
347  consume<vector<pat::CompositeCandidate> >(bdCandsToken, bdCandsLabel);
348  if (useBs)
349  consume<vector<pat::CompositeCandidate> >(bsCandsToken, bsCandsLabel);
350 
351  static const BPHSoftMuonSelect sms;
352 
353  double phiMassMin = 0.85;
354  double phiMassMax = 3.30;
355  double phiPtMin = 16.0;
356  double phiEtaMax = -1.0;
357  double phiRMax = -1.0;
358  double jPsiMassMin = 2.95;
359  double jPsiMassMax = 3.30;
360  double jPsiPtMin = 16.0;
361  double jPsiEtaMax = -1.0;
362  double jPsiRMax = -1.0;
363  double psi2MassMin = 3.40;
364  double psi2MassMax = 4.00;
365  double psi2PtMin = 13.0;
366  double psi2EtaMax = -1.0;
367  double psi2RMax = -1.0;
368  double upsMassMin = 8.50;
369  double upsMassMax = 11.0;
370  double upsPtMin = 13.0;
371  double upsEtaMax = -1.0;
372  double upsRMax = -1.0;
373 
374  double oniaProbMin = 0.005;
375  double oniaCosMin = -1.0;
376  double oniaSigMin = -1.0;
377 
378  double oniaMuPtMinLoose = -1.0;
379  double oniaMuPtMinTight = -1.0;
380  double oniaMuEtaMaxLoose = -1.0;
381  double oniaMuEtaMaxTight = -1.0;
382 
383  phiBasicSelect = new BPHCompositeBasicSelect(phiMassMin, phiMassMax, phiPtMin, phiEtaMax, phiRMax);
384  jPsiBasicSelect = new BPHCompositeBasicSelect(jPsiMassMin, jPsiMassMax, jPsiPtMin, jPsiEtaMax, jPsiRMax);
385  psi2BasicSelect = new BPHCompositeBasicSelect(psi2MassMin, psi2MassMax, psi2PtMin, psi2EtaMax, psi2RMax);
386  upsBasicSelect = new BPHCompositeBasicSelect(upsMassMin, upsMassMax, upsPtMin, upsEtaMax, upsRMax);
387  oniaVertexSelect = new BPHCompositeVertexSelect(oniaProbMin, oniaCosMin, oniaSigMin);
389  new BPHDaughterSelect(oniaMuPtMinLoose, oniaMuPtMinTight, oniaMuEtaMaxLoose, oniaMuEtaMaxTight, &sms);
390 
391  double buJPsiMassMin = BPHParticleMasses::jPsiMass - 0.150;
392  double buJPsiMassMax = BPHParticleMasses::jPsiMass + 0.150;
393  double buJPsiPtMin = 8.0;
394  double buJPsiEtaMax = -1.0;
395  double buJPsiRMax = -1.0;
396  double buProbMin = 0.10;
397  double buCosMin = 0.99;
398  double buSigMin = 3.0;
399  double buMuPtMinLoose = 4.0;
400  double buMuPtMinTight = 4.0;
401  double buMuEtaMaxLoose = 2.2;
402  double buMuEtaMaxTight = 2.2;
403 
404  buKPtMin = 1.6;
405 
406  buJPsiBasicSelect = new BPHCompositeBasicSelect(buJPsiMassMin, buJPsiMassMax, buJPsiPtMin, buJPsiEtaMax, buJPsiRMax);
407  buVertexSelect = new BPHFittedVertexSelect(buProbMin, buCosMin, buSigMin);
408  buJPsiDaughterSelect = new BPHDaughterSelect(buMuPtMinLoose, buMuPtMinTight, buMuEtaMaxLoose, buMuEtaMaxTight, &sms);
409 
410  double bdJPsiMassMin = BPHParticleMasses::jPsiMass - 0.150;
411  double bdJPsiMassMax = BPHParticleMasses::jPsiMass + 0.150;
412  double bdJPsiPtMin = 8.0;
413  double bdJPsiEtaMax = -1.0;
414  double bdJPsiRMax = -1.0;
415  double bdKx0MassMin = BPHParticleMasses::kx0Mass - 0.075;
416  double bdKx0MassMax = BPHParticleMasses::kx0Mass + 0.075;
417  double bdKx0PtMin = -1.0;
418  double bdKx0EtaMax = -1.0;
419  double bdKx0RMax = -1.0;
420  double bdProbMin = 0.10;
421  double bdCosMin = 0.99;
422  double bdSigMin = 3.0;
423  double bdMuPtMinLoose = 4.0;
424  double bdMuPtMinTight = 4.0;
425  double bdMuEtaMaxLoose = 2.2;
426  double bdMuEtaMaxTight = 2.2;
427 
428  bdJPsiBasicSelect = new BPHCompositeBasicSelect(bdJPsiMassMin, bdJPsiMassMax, bdJPsiPtMin, bdJPsiEtaMax, bdJPsiRMax);
429  bdKx0BasicSelect = new BPHCompositeBasicSelect(bdKx0MassMin, bdKx0MassMax, bdKx0PtMin, bdKx0EtaMax, bdKx0RMax);
430  bdVertexSelect = new BPHFittedVertexSelect(bdProbMin, bdCosMin, bdSigMin);
431  bdJPsiDaughterSelect = new BPHDaughterSelect(bdMuPtMinLoose, bdMuPtMinTight, bdMuEtaMaxLoose, bdMuEtaMaxTight, &sms);
432 
433  double bsJPsiMassMin = BPHParticleMasses::jPsiMass - 0.150;
434  double bsJPsiMassMax = BPHParticleMasses::jPsiMass + 0.150;
435  double bsJPsiPtMin = 8.0;
436  double bsJPsiEtaMax = -1.0;
437  double bsJPsiRMax = -1.0;
438  double bsPhiMassMin = BPHParticleMasses::phiMass - 0.010;
439  double bsPhiMassMax = BPHParticleMasses::phiMass + 0.010;
440  double bsPhiPtMin = -1.0;
441  double bsPhiEtaMax = -1.0;
442  double bsPhiRMax = -1.0;
443  double bsProbMin = 0.10;
444  double bsCosMin = 0.99;
445  double bsSigMin = 3.0;
446  double bsMuPtMinLoose = 4.0;
447  double bsMuPtMinTight = 4.0;
448  double bsMuEtaMaxLoose = 2.2;
449  double bsMuEtaMaxTight = 2.2;
450  bsJPsiBasicSelect = new BPHCompositeBasicSelect(bsJPsiMassMin, bsJPsiMassMax, bsJPsiPtMin, bsJPsiEtaMax, bsJPsiRMax);
451  bsPhiBasicSelect = new BPHCompositeBasicSelect(bsPhiMassMin, bsPhiMassMax, bsPhiPtMin, bsPhiEtaMax, bsPhiRMax);
452  bsVertexSelect = new BPHFittedVertexSelect(bsProbMin, bsCosMin, bsSigMin);
453  bsJPsiDaughterSelect = new BPHDaughterSelect(bsMuPtMinLoose, bsMuPtMinTight, bsMuEtaMaxLoose, bsMuEtaMaxTight, &sms);
454 }
CandidateSelect * bsJPsiBasicSelect
BPHTokenWrapper< std::vector< pat::CompositeCandidate > > sdCandsToken
CandidateSelect * upsBasicSelect
CandidateSelect * jPsiBasicSelect
CandidateSelect * phiBasicSelect
static const double jPsiMass
BPHTokenWrapper< std::vector< pat::CompositeCandidate > > bdCandsToken
CandidateSelect * buVertexSelect
CandidateSelect * bdJPsiBasicSelect
CandidateSelect * bsVertexSelect
CandidateSelect * bsJPsiDaughterSelect
CandidateSelect * buJPsiDaughterSelect
BPHTokenWrapper< std::vector< pat::CompositeCandidate > > bsCandsToken
static const double kx0Mass
CandidateSelect * bdJPsiDaughterSelect
CandidateSelect * bdKx0BasicSelect
CandidateSelect * psi2BasicSelect
CandidateSelect * oniaDaughterSelect
CandidateSelect * bdVertexSelect
CandidateSelect * bsPhiBasicSelect
static const double phiMass
CandidateSelect * oniaVertexSelect
CandidateSelect * buJPsiBasicSelect
BPHTokenWrapper< std::vector< pat::CompositeCandidate > > ssCandsToken
BPHTokenWrapper< std::vector< pat::CompositeCandidate > > buCandsToken
BPHTokenWrapper< std::vector< pat::CompositeCandidate > > oniaCandsToken
#define SET_LABEL(NAME, PSET)
BPHHistoSpecificDecay::~BPHHistoSpecificDecay ( )
override

Definition at line 456 of file BPHHistoSpecificDecay.cc.

456  {
457  delete phiBasicSelect;
458  delete jPsiBasicSelect;
459  delete psi2BasicSelect;
460  delete upsBasicSelect;
461  delete oniaVertexSelect;
462  delete oniaDaughterSelect;
463 
464  delete buJPsiBasicSelect;
465  delete buVertexSelect;
466  delete buJPsiDaughterSelect;
467 
468  delete bdJPsiBasicSelect;
469  delete bdKx0BasicSelect;
470  delete bdVertexSelect;
471  delete bdJPsiDaughterSelect;
472 
473  delete bsJPsiBasicSelect;
474  delete bsPhiBasicSelect;
475  delete bsVertexSelect;
476  delete bsJPsiDaughterSelect;
477 }
CandidateSelect * bsJPsiBasicSelect
CandidateSelect * upsBasicSelect
CandidateSelect * jPsiBasicSelect
CandidateSelect * phiBasicSelect
CandidateSelect * buVertexSelect
CandidateSelect * bdJPsiBasicSelect
CandidateSelect * bsVertexSelect
CandidateSelect * bsJPsiDaughterSelect
CandidateSelect * buJPsiDaughterSelect
CandidateSelect * bdJPsiDaughterSelect
CandidateSelect * bdKx0BasicSelect
CandidateSelect * psi2BasicSelect
CandidateSelect * oniaDaughterSelect
CandidateSelect * bdVertexSelect
CandidateSelect * bsPhiBasicSelect
CandidateSelect * oniaVertexSelect
CandidateSelect * buJPsiBasicSelect

Member Function Documentation

void BPHHistoSpecificDecay::analyze ( const edm::Event ev,
const edm::EventSetup es 
)
override

Definition at line 513 of file BPHHistoSpecificDecay.cc.

References BPHDaughters::get(), edm::EventSetup::get(), LogTrace, HLT_2018_cff::magneticField, and reco::Candidate::pt().

513  {
514  // get magnetic field
516  es.get<IdealMagneticFieldRecord>().get(magneticField);
517 
518  // get object collections
519  // collections are got through "BPHTokenWrapper" interface to allow
520  // uniform access in different CMSSW versions
521 
523 
525  int iqo;
526  int nqo = 0;
527  if (useOnia) {
528  oniaCandsToken.get(ev, oniaCands);
529  nqo = oniaCands->size();
530  }
531 
532  for (iqo = 0; iqo < nqo; ++iqo) {
533  LogTrace("DataDump") << "*********** quarkonium " << iqo << "/" << nqo << " ***********";
534  const pat::CompositeCandidate& cand = oniaCands->at(iqo);
535  if (!oniaVertexSelect->accept(cand, BPHUserData::getByRef<reco::Vertex>(cand, "primaryVertex")))
536  continue;
537  if (!oniaDaughterSelect->accept(cand))
538  continue;
539  fillHisto("Full", cand);
540  if (phiBasicSelect->accept(cand))
541  fillHisto("Phi", cand);
542  if (jPsiBasicSelect->accept(cand))
543  fillHisto("JPsi", cand);
544  if (psi2BasicSelect->accept(cand))
545  fillHisto("Psi2", cand);
546  if (upsBasicSelect->accept(cand))
547  fillHisto("Ups123", cand);
548  }
549 
551 
553  int ibu;
554  int nbu = 0;
555  if (useBu) {
556  buCandsToken.get(ev, buCands);
557  nbu = buCands->size();
558  }
559 
560  for (ibu = 0; ibu < nbu; ++ibu) {
561  LogTrace("DataDump") << "*********** Bu " << ibu << "/" << nbu << " ***********";
562  const pat::CompositeCandidate& cand = buCands->at(ibu);
563  const pat::CompositeCandidate* jPsi = BPHUserData::getByRef<pat::CompositeCandidate>(cand, "refToJPsi");
564  LogTrace("DataDump") << "JPsi: " << jPsi;
565  if (jPsi == nullptr)
566  continue;
567  if (!buJPsiBasicSelect->accept(*jPsi))
568  continue;
569  if (!buJPsiDaughterSelect->accept(*jPsi))
570  continue;
571  if (!buVertexSelect->accept(cand, BPHUserData::getByRef<reco::Vertex>(*jPsi, "primaryVertex")))
572  continue;
573  const reco::Candidate* kptr = BPHDaughters::get(cand, 0.49, 0.50).front();
574  if (kptr == nullptr)
575  continue;
576  if (kptr->pt() < buKPtMin)
577  continue;
578  fillHisto("Bu", cand);
579  fillHisto("BuJPsi", *jPsi);
580  }
581 
583 
585  int ibd;
586  int nbd = 0;
587  if (useBd) {
588  bdCandsToken.get(ev, bdCands);
589  nbd = bdCands->size();
590  }
591 
592  for (ibd = 0; ibd < nbd; ++ibd) {
593  LogTrace("DataDump") << "*********** Bd " << ibd << "/" << nbd << " ***********";
594  const pat::CompositeCandidate& cand = bdCands->at(ibd);
595  const pat::CompositeCandidate* jPsi = BPHUserData::getByRef<pat::CompositeCandidate>(cand, "refToJPsi");
596  LogTrace("DataDump") << "JPsi: " << jPsi;
597  if (jPsi == nullptr)
598  continue;
599  const pat::CompositeCandidate* kx0 = BPHUserData::getByRef<pat::CompositeCandidate>(cand, "refToKx0");
600  LogTrace("DataDump") << "Kx0: " << kx0;
601  if (kx0 == nullptr)
602  continue;
603  if (!bdJPsiBasicSelect->accept(*jPsi))
604  continue;
605  if (!bdKx0BasicSelect->accept(*kx0))
606  continue;
607  if (!bdJPsiDaughterSelect->accept(*jPsi))
608  continue;
609  if (!bdVertexSelect->accept(cand, BPHUserData::getByRef<reco::Vertex>(*jPsi, "primaryVertex")))
610  continue;
611  fillHisto("Bd", cand);
612  fillHisto("BdJPsi", *jPsi);
613  fillHisto("BdKx0", *kx0);
614  }
615 
617 
619  int ibs;
620  int nbs = 0;
621  if (useBs) {
622  bsCandsToken.get(ev, bsCands);
623  nbs = bsCands->size();
624  }
625 
626  for (ibs = 0; ibs < nbs; ++ibs) {
627  LogTrace("DataDump") << "*********** Bs " << ibs << "/" << nbs << " ***********";
628  const pat::CompositeCandidate& cand = bsCands->at(ibs);
629  const pat::CompositeCandidate* jPsi = BPHUserData::getByRef<pat::CompositeCandidate>(cand, "refToJPsi");
630  LogTrace("DataDump") << "JPsi: " << jPsi;
631  if (jPsi == nullptr)
632  continue;
633  const pat::CompositeCandidate* phi = BPHUserData::getByRef<pat::CompositeCandidate>(cand, "refToPhi");
634  LogTrace("DataDump") << "Phi: " << phi;
635  if (phi == nullptr)
636  continue;
637  if (!bsJPsiBasicSelect->accept(*jPsi))
638  continue;
639  if (!bsPhiBasicSelect->accept(*phi))
640  continue;
641  if (!bsJPsiDaughterSelect->accept(*jPsi))
642  continue;
643  if (!bsVertexSelect->accept(cand, BPHUserData::getByRef<reco::Vertex>(*jPsi, "primaryVertex")))
644  continue;
645  fillHisto("Bs", cand);
646  fillHisto("BsJPsi", *jPsi);
647  fillHisto("BsPhi", *phi);
648  }
649 
650  return;
651 }
Analysis-level particle class.
CandidateSelect * bsJPsiBasicSelect
virtual bool accept(const pat::CompositeCandidate &cand, const reco::Vertex *pv=0) const =0
CandidateSelect * upsBasicSelect
CandidateSelect * jPsiBasicSelect
CandidateSelect * phiBasicSelect
bool get(const edm::Event &ev, edm::Handle< Obj > &obj)
BPHTokenWrapper< std::vector< pat::CompositeCandidate > > bdCandsToken
CandidateSelect * buVertexSelect
CandidateSelect * bdJPsiBasicSelect
CandidateSelect * bsVertexSelect
CandidateSelect * bsJPsiDaughterSelect
CandidateSelect * buJPsiDaughterSelect
BPHTokenWrapper< std::vector< pat::CompositeCandidate > > bsCandsToken
CandidateSelect * bdJPsiDaughterSelect
CandidateSelect * bdKx0BasicSelect
CandidateSelect * psi2BasicSelect
CandidateSelect * oniaDaughterSelect
CandidateSelect * bdVertexSelect
CandidateSelect * bsPhiBasicSelect
#define LogTrace(id)
virtual double pt() const =0
transverse momentum
CandidateSelect * oniaVertexSelect
T get() const
Definition: EventSetup.h:73
static vector< const reco::Candidate * > get(const pat::CompositeCandidate &cand, float massMin, float massMax)
CandidateSelect * buJPsiBasicSelect
BPHTokenWrapper< std::vector< pat::CompositeCandidate > > buCandsToken
BPHTokenWrapper< std::vector< pat::CompositeCandidate > > oniaCandsToken
void fillHisto(const std::string &name, const pat::CompositeCandidate &cand)
void BPHHistoSpecificDecay::beginJob ( void  )
overridevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 491 of file BPHHistoSpecificDecay.cc.

491  {
492  createHisto("massPhi", 35, 0.85, 1.20); // Phi mass
493  createHisto("massJPsi", 35, 2.95, 3.30); // JPsi mass
494  createHisto("massPsi2", 60, 3.40, 4.00); // Psi2 mass
495  createHisto("massUps123", 125, 8.50, 11.0); // Ups mass
496  createHisto("massBu", 50, 5.00, 6.00); // Bu mass
497  createHisto("massBd", 50, 5.00, 6.00); // Bd mass
498  createHisto("massBs", 50, 5.00, 6.00); // Bs mass
499  createHisto("mfitBu", 50, 5.00, 6.00); // Bu mass, with constraint
500  createHisto("mfitBd", 50, 5.00, 6.00); // Bd mass, with constraint
501  createHisto("mfitBs", 50, 5.00, 6.00); // Bs mass, with constraint
502  createHisto("massBuJPsi", 35, 2.95, 3.30); // JPsi mass in Bu decay
503  createHisto("massBdJPsi", 35, 2.95, 3.30); // JPsi mass in Bd decay
504  createHisto("massBsJPsi", 35, 2.95, 3.30); // JPsi mass in Bs decay
505  createHisto("massBsPhi", 50, 1.01, 1.03); // Phi mass in Bs decay
506  createHisto("massBdKx0", 50, 0.80, 1.05); // Kx0 mass in Bd decay
507 
508  createHisto("massFull", 200, 2.00, 12.0); // Full onia mass
509 
510  return;
511 }
void createHisto(const std::string &name, int nbin, float hmin, float hmax)
void BPHHistoSpecificDecay::createHisto ( const std::string &  name,
int  nbin,
float  hmin,
float  hmax 
)
private

Definition at line 671 of file BPHHistoSpecificDecay.cc.

References DEFINE_FWK_MODULE, Skims_PA_cff::name, and ZMuMuCategoriesSequences_cff::nbin.

671  {
672  histoMap[name] = fs->make<TH1F>(name.c_str(), name.c_str(), nbin, hmin, hmax);
673  return;
674 }
std::map< std::string, TH1F * > histoMap
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
edm::Service< TFileService > fs
void BPHHistoSpecificDecay::endJob ( void  )
overridevirtual
void BPHHistoSpecificDecay::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 479 of file BPHHistoSpecificDecay.cc.

References edm::ConfigurationDescriptions::add(), and edm::ParameterSetDescription::add().

479  {
481  desc.add<string>("oniaCandsLabel", "");
482  desc.add<string>("sdCandsLabel", "");
483  desc.add<string>("ssCandsLabel", "");
484  desc.add<string>("buCandsLabel", "");
485  desc.add<string>("bdCandsLabel", "");
486  desc.add<string>("bsCandsLabel", "");
487  descriptions.add("bphHistoSpecificDecay", desc);
488  return;
489 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void BPHHistoSpecificDecay::fillHisto ( const std::string &  name,
const pat::CompositeCandidate cand 
)
private

Referenced by endJob().

void BPHHistoSpecificDecay::fillHisto ( const std::string &  name,
float  x 
)
private

Member Data Documentation

std::string BPHHistoSpecificDecay::bdCandsLabel
private

Definition at line 47 of file BPHHistoSpecificDecay.h.

BPHTokenWrapper<std::vector<pat::CompositeCandidate> > BPHHistoSpecificDecay::bdCandsToken
private

Definition at line 53 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::bdJPsiBasicSelect
private

Definition at line 76 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::bdJPsiDaughterSelect
private

Definition at line 79 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::bdKx0BasicSelect
private

Definition at line 77 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::bdVertexSelect
private

Definition at line 78 of file BPHHistoSpecificDecay.h.

std::string BPHHistoSpecificDecay::bsCandsLabel
private

Definition at line 48 of file BPHHistoSpecificDecay.h.

BPHTokenWrapper<std::vector<pat::CompositeCandidate> > BPHHistoSpecificDecay::bsCandsToken
private

Definition at line 54 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::bsJPsiBasicSelect
private

Definition at line 81 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::bsJPsiDaughterSelect
private

Definition at line 84 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::bsPhiBasicSelect
private

Definition at line 82 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::bsVertexSelect
private

Definition at line 83 of file BPHHistoSpecificDecay.h.

std::string BPHHistoSpecificDecay::buCandsLabel
private

Definition at line 46 of file BPHHistoSpecificDecay.h.

BPHTokenWrapper<std::vector<pat::CompositeCandidate> > BPHHistoSpecificDecay::buCandsToken
private

Definition at line 52 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::buJPsiBasicSelect
private

Definition at line 72 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::buJPsiDaughterSelect
private

Definition at line 74 of file BPHHistoSpecificDecay.h.

double BPHHistoSpecificDecay::buKPtMin
private

Definition at line 86 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::buVertexSelect
private

Definition at line 73 of file BPHHistoSpecificDecay.h.

edm::Service<TFileService> BPHHistoSpecificDecay::fs
private

Definition at line 62 of file BPHHistoSpecificDecay.h.

std::map<std::string, TH1F*> BPHHistoSpecificDecay::histoMap
private

Definition at line 63 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::jPsiBasicSelect
private

Definition at line 66 of file BPHHistoSpecificDecay.h.

std::string BPHHistoSpecificDecay::oniaCandsLabel
private

Definition at line 43 of file BPHHistoSpecificDecay.h.

BPHTokenWrapper<std::vector<pat::CompositeCandidate> > BPHHistoSpecificDecay::oniaCandsToken
private

Definition at line 49 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::oniaDaughterSelect
private

Definition at line 70 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::oniaVertexSelect
private

Definition at line 69 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::phiBasicSelect
private

Definition at line 65 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::psi2BasicSelect
private

Definition at line 67 of file BPHHistoSpecificDecay.h.

std::string BPHHistoSpecificDecay::sdCandsLabel
private

Definition at line 44 of file BPHHistoSpecificDecay.h.

BPHTokenWrapper<std::vector<pat::CompositeCandidate> > BPHHistoSpecificDecay::sdCandsToken
private

Definition at line 50 of file BPHHistoSpecificDecay.h.

std::string BPHHistoSpecificDecay::ssCandsLabel
private

Definition at line 45 of file BPHHistoSpecificDecay.h.

BPHTokenWrapper<std::vector<pat::CompositeCandidate> > BPHHistoSpecificDecay::ssCandsToken
private

Definition at line 51 of file BPHHistoSpecificDecay.h.

CandidateSelect* BPHHistoSpecificDecay::upsBasicSelect
private

Definition at line 68 of file BPHHistoSpecificDecay.h.

bool BPHHistoSpecificDecay::useBd
private

Definition at line 59 of file BPHHistoSpecificDecay.h.

bool BPHHistoSpecificDecay::useBs
private

Definition at line 60 of file BPHHistoSpecificDecay.h.

bool BPHHistoSpecificDecay::useBu
private

Definition at line 58 of file BPHHistoSpecificDecay.h.

bool BPHHistoSpecificDecay::useOnia
private

Definition at line 55 of file BPHHistoSpecificDecay.h.

bool BPHHistoSpecificDecay::useSd
private

Definition at line 56 of file BPHHistoSpecificDecay.h.

bool BPHHistoSpecificDecay::useSs
private

Definition at line 57 of file BPHHistoSpecificDecay.h.