Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHBdToJPsiKsBuilder_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHBdToJPsiKsBuilder_h
0003 /** \class BPHBdToJPsiKsBuilder
0004  *
0005  *  Description: 
0006  *     Class to build B0 to JPsi K0s candidates
0007  *
0008  *  \author Paolo Ronchese INFN Padova
0009  *
0010  */
0011 
0012 //----------------------
0013 // Base Class Headers --
0014 //----------------------
0015 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayToResFlyingBuilder.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/BPHDecayToFlyingCascadeBuilderBase.h"
0023 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHParticleMasses.h"
0024 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoBuilder.h"
0025 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoCandidate.h"
0026 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHPlusMinusCandidate.h"
0027 
0028 #include "FWCore/Framework/interface/EventSetup.h"
0029 
0030 class BPHEventSetupWrapper;
0031 
0032 //---------------
0033 // C++ Headers --
0034 //---------------
0035 #include <string>
0036 #include <vector>
0037 
0038 //              ---------------------
0039 //              -- Class Interface --
0040 //              ---------------------
0041 
0042 class BPHBdToJPsiKsBuilder
0043     : public BPHDecayToResFlyingBuilder<BPHRecoCandidate, BPHPlusMinusCandidate, BPHPlusMinusCandidate> {
0044 public:
0045   /** Constructor
0046    */
0047   BPHBdToJPsiKsBuilder(const BPHEventSetupWrapper& es,
0048                        const std::vector<BPHPlusMinusConstCandPtr>& jpsiCollection,
0049                        const std::vector<BPHPlusMinusConstCandPtr>& k0sCollection)
0050       : BPHDecayGenericBuilderBase(es, nullptr),
0051         BPHDecayConstrainedBuilderBase("JPsi", BPHParticleMasses::jPsiMass, BPHParticleMasses::jPsiMWidth),
0052         BPHDecayToFlyingCascadeBuilderBase("K0s", BPHParticleMasses::k0sMass, BPHParticleMasses::k0sMSigma),
0053         BPHDecayToResFlyingBuilder(jpsiCollection, k0sCollection) {
0054     setResMassRange(2.80, 3.40);
0055     setFlyingMassRange(0.00, 2.00);
0056     setMassRange(3.50, 8.00);
0057     setKinFitProbMin(0.02);
0058     setMassFitRange(5.00, 6.00);
0059     setConstr(true);
0060   }
0061 
0062   // deleted copy constructor and assignment operator
0063   BPHBdToJPsiKsBuilder(const BPHBdToJPsiKsBuilder& x) = delete;
0064   BPHBdToJPsiKsBuilder& operator=(const BPHBdToJPsiKsBuilder& x) = delete;
0065 
0066   /** Destructor
0067    */
0068   ~BPHBdToJPsiKsBuilder() override = default;
0069 
0070   /** Operations
0071    */
0072   /// set cuts
0073   void setJPsiMassMin(double m) { setResMassMin(m); }
0074   void setJPsiMassMax(double m) { setResMassMax(m); }
0075   void setK0MassMin(double m) { setFlyingMassMin(m); }
0076   void setK0MassMax(double m) { setFlyingMassMax(m); }
0077 
0078   /// get current cuts
0079   double getJPsiMassMin() const { return getResMassMin(); }
0080   double getJPsiMassMax() const { return getResMassMax(); }
0081   double getK0MassMin() const { return getFlyingMassMin(); }
0082   double getK0MassMax() const { return getFlyingMassMax(); }
0083 
0084   /// setup parameters for BPHRecoBuilder
0085   void setup(void* parameters) override {}
0086 };
0087 
0088 #endif