Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-07-08 01:45:53

0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHBcToJPsiPiBuilder_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHBcToJPsiPiBuilder_h
0003 /** \class BPHBcToJPsiPiBuilder
0004  *
0005  *  Description: 
0006  *     Class to build Bc to JPsi pi+- candidates
0007  *
0008  *  \author Paolo Ronchese INFN Padova
0009  *
0010  */
0011 
0012 //----------------------
0013 // Base Class Headers --
0014 //----------------------
0015 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayToResTrkBuilder.h"
0016 
0017 //------------------------------------
0018 // Collaborating Class Declarations --
0019 //------------------------------------
0020 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayGenericBuilderBase.h"
0021 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayConstrainedBuilderBase.h"
0022 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHParticleMasses.h"
0023 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoBuilder.h"
0024 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoCandidate.h"
0025 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHPlusMinusCandidate.h"
0026 
0027 #include "FWCore/Framework/interface/EventSetup.h"
0028 
0029 class BPHEventSetupWrapper;
0030 class BPHParticleNeutralVeto;
0031 class BPHParticlePtSelect;
0032 class BPHParticleEtaSelect;
0033 class BPHMassSelect;
0034 class BPHChi2Select;
0035 class BPHMassFitSelect;
0036 
0037 //---------------
0038 // C++ Headers --
0039 //---------------
0040 #include <string>
0041 #include <vector>
0042 
0043 //              ---------------------
0044 //              -- Class Interface --
0045 //              ---------------------
0046 
0047 class BPHBcToJPsiPiBuilder : public BPHDecayToResTrkBuilder<BPHRecoCandidate, BPHPlusMinusCandidate> {
0048 public:
0049   /** Constructor
0050    */
0051   BPHBcToJPsiPiBuilder(const BPHEventSetupWrapper& es,
0052                        const std::vector<BPHPlusMinusConstCandPtr>& jpsiCollection,
0053                        const BPHRecoBuilder::BPHGenericCollection* pionCollection)
0054       : BPHDecayGenericBuilderBase(es, nullptr),  //, false ),
0055         BPHDecayConstrainedBuilderBase("JPsi", BPHParticleMasses::jPsiMass, BPHParticleMasses::jPsiMWidth),
0056         BPHDecayToResTrkBuilder(
0057             jpsiCollection, "Pion", BPHParticleMasses::pionMass, BPHParticleMasses::pionMSigma, pionCollection) {
0058     setResMassRange(2.80, 3.40);
0059     setTrkPtMin(0.7);
0060     setTrkEtaMax(10.0);
0061     setMassRange(4.00, 9.00);
0062     setProbMin(0.02);
0063     setMassFitRange(6.00, 7.00);
0064     setConstr(true);
0065   }
0066 
0067   // deleted copy constructor and assignment operator
0068   BPHBcToJPsiPiBuilder(const BPHBcToJPsiPiBuilder& x) = delete;
0069   BPHBcToJPsiPiBuilder& operator=(const BPHBcToJPsiPiBuilder& x) = delete;
0070 
0071   /** Destructor
0072    */
0073   ~BPHBcToJPsiPiBuilder() override = default;
0074 
0075   /** Operations
0076    */
0077   /// set cuts
0078   void setPiPtMin(double pt) { setTrkPtMin(pt); }
0079   void setPiEtaMax(double eta) { setTrkEtaMax(eta); }
0080   void setJPsiMassMin(double m) { setResMassMin(m); }
0081   void setJPsiMassMax(double m) { setResMassMax(m); }
0082 
0083   /// get current cuts
0084   double getPiPtMin() const { return getTrkPtMin(); }
0085   double getPiEtaMax() const { return getTrkEtaMax(); }
0086   double getJPsiMassMin() const { return getResMassMin(); }
0087   double getJPsiMassMax() const { return getResMassMax(); }
0088 
0089   /// setup parameters for BPHRecoBuilder
0090   void setup(void* parameters) override {}
0091 };
0092 
0093 #endif