Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 09:50:18

0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHBuToJPsiKBuilder_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHBuToJPsiKBuilder_h
0003 /** \class BPHBuToJPsiKBuilder
0004  *
0005  *  Description: 
0006  *     Class to build B+- to JPsi K+- 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 
0031 //---------------
0032 // C++ Headers --
0033 //---------------
0034 #include <string>
0035 #include <vector>
0036 
0037 //              ---------------------
0038 //              -- Class Interface --
0039 //              ---------------------
0040 
0041 class BPHBuToJPsiKBuilder : public BPHDecayToResTrkBuilder<BPHRecoCandidate, BPHPlusMinusCandidate> {
0042 public:
0043   /** Constructor
0044    */
0045   BPHBuToJPsiKBuilder(const BPHEventSetupWrapper& es,
0046                       const std::vector<BPHPlusMinusConstCandPtr>& jpsiCollection,
0047                       const BPHRecoBuilder::BPHGenericCollection* kaonCollection)
0048       : BPHDecayGenericBuilderBase(es, nullptr),
0049         BPHDecayConstrainedBuilderBase("JPsi", BPHParticleMasses::jPsiMass, BPHParticleMasses::jPsiMWidth),
0050         BPHDecayToResTrkBuilder(
0051             jpsiCollection, "Kaon", BPHParticleMasses::kaonMass, BPHParticleMasses::kaonMSigma, kaonCollection) {
0052     setResMassRange(2.80, 3.40);
0053     setTrkPtMin(0.7);
0054     setTrkEtaMax(10.0);
0055     setMassRange(3.50, 8.00);
0056     setProbMin(0.02);
0057     setMassFitRange(5.00, 6.00);
0058     setConstr(true);
0059   }
0060 
0061   // deleted copy constructor and assignment operator
0062   BPHBuToJPsiKBuilder(const BPHBuToJPsiKBuilder& x) = delete;
0063   BPHBuToJPsiKBuilder& operator=(const BPHBuToJPsiKBuilder& x) = delete;
0064 
0065   /** Destructor
0066    */
0067   ~BPHBuToJPsiKBuilder() override = default;
0068 
0069   /** Operations
0070    */
0071   /// set cuts
0072   void setKPtMin(double pt) { setTrkPtMin(pt); }
0073   void setKEtaMax(double eta) { setTrkEtaMax(eta); }
0074   void setJPsiMassMin(double m) { setResMassMin(m); }
0075   void setJPsiMassMax(double m) { setResMassMax(m); }
0076 
0077   /// get current cuts
0078   double getKPtMin() const { return getTrkPtMin(); }
0079   double getKEtaMax() const { return getTrkEtaMax(); }
0080   double getJPsiMassMin() const { return getResMassMin(); }
0081   double getJPsiMassMax() const { return getResMassMax(); }
0082 
0083   /// setup parameters for BPHRecoBuilder
0084   void setup(void* parameters) override {}
0085 };
0086 
0087 #endif