Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:15:35

0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHBsToJPsiPhiBuilder_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHBsToJPsiPhiBuilder_h
0003 /** \class BPHBsToJPsiPhiBuilder
0004  *
0005  *  Description: 
0006  *     Class to build Bs to JPsi Phi candidates
0007  *
0008  *  \author Paolo Ronchese INFN Padova
0009  *
0010  */
0011 
0012 //----------------------
0013 // Base Class Headers --
0014 //----------------------
0015 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayToResResBuilder.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 BPHBsToJPsiPhiBuilder
0042     : public BPHDecayToResResBuilder<BPHRecoCandidate, BPHPlusMinusCandidate, BPHPlusMinusCandidate> {
0043 public:
0044   /** Constructor
0045    */
0046   BPHBsToJPsiPhiBuilder(const BPHEventSetupWrapper& es,
0047                         const std::vector<BPHPlusMinusConstCandPtr>& jpsiCollection,
0048                         const std::vector<BPHPlusMinusConstCandPtr>& phiCollection)
0049       : BPHDecayGenericBuilderBase(es, nullptr),
0050         BPHDecayConstrainedBuilderBase("JPsi", BPHParticleMasses::jPsiMass, BPHParticleMasses::jPsiMWidth),
0051         BPHDecayToResResBuilder(jpsiCollection, "Phi", phiCollection) {
0052     setRes1MassRange(2.80, 3.40);
0053     setRes2MassRange(1.005, 1.035);
0054     setMassRange(3.50, 8.00);
0055     setProbMin(0.02);
0056     setMassFitRange(5.00, 6.00);
0057     setConstr(true);
0058   }
0059 
0060   // deleted copy constructor and assignment operator
0061   BPHBsToJPsiPhiBuilder(const BPHBsToJPsiPhiBuilder& x) = delete;
0062   BPHBsToJPsiPhiBuilder& operator=(const BPHBsToJPsiPhiBuilder& x) = delete;
0063 
0064   /** Destructor
0065    */
0066   ~BPHBsToJPsiPhiBuilder() override = default;
0067 
0068   /** Operations
0069    */
0070   /// set cuts
0071   void setJPsiMassMin(double m) { setRes1MassMin(m); }
0072   void setJPsiMassMax(double m) { setRes1MassMax(m); }
0073   void setPhiMassMin(double m) { setRes2MassMin(m); }
0074   void setPhiMassMax(double m) { setRes2MassMax(m); }
0075 
0076   /// get current cuts
0077   double getJPsiMassMin() const { return getRes1MassMin(); }
0078   double getJPsiMassMax() const { return getRes1MassMax(); }
0079   double getPhiMassMin() const { return getRes2MassMin(); }
0080   double getPhiMassMax() const { return getRes2MassMax(); }
0081 
0082   /// setup parameters for BPHRecoBuilder
0083   void setup(void* parameters) override {}
0084 };
0085 
0086 #endif