Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 12:49:22

0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHBdToKxMuMuBuilder_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHBdToKxMuMuBuilder_h
0003 /** \class BPHBdToKxMuMuBuilder
0004  *
0005  *  Description: 
0006  *     Class to build B0 to K*0 mu+ mu- candidates
0007  *
0008  *  \author Paolo Ronchese INFN Padova
0009  *
0010  */
0011 
0012 //----------------------
0013 // Base Class Headers --
0014 //----------------------
0015 
0016 //------------------------------------
0017 // Collaborating Class Declarations --
0018 //------------------------------------
0019 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoBuilder.h"
0020 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoCandidate.h"
0021 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHPlusMinusCandidate.h"
0022 
0023 #include "FWCore/Framework/interface/Event.h"
0024 
0025 class BPHMassSelect;
0026 class BPHChi2Select;
0027 class BPHMassFitSelect;
0028 
0029 //---------------
0030 // C++ Headers --
0031 //---------------
0032 #include <string>
0033 #include <vector>
0034 
0035 //              ---------------------
0036 //              -- Class Interface --
0037 //              ---------------------
0038 
0039 class BPHBdToKxMuMuBuilder {
0040 public:
0041   /** Constructor
0042    */
0043   BPHBdToKxMuMuBuilder(const edm::EventSetup& es,
0044                        const std::vector<BPHPlusMinusConstCandPtr>& oniaCollection,
0045                        const std::vector<BPHPlusMinusConstCandPtr>& kx0Collection);
0046 
0047   // deleted copy constructor and assignment operator
0048   BPHBdToKxMuMuBuilder(const BPHBdToKxMuMuBuilder& x) = delete;
0049   BPHBdToKxMuMuBuilder& operator=(const BPHBdToKxMuMuBuilder& x) = delete;
0050 
0051   /** Destructor
0052    */
0053   virtual ~BPHBdToKxMuMuBuilder();
0054 
0055   /** Operations
0056    */
0057   /// build Bs candidates
0058   std::vector<BPHRecoConstCandPtr> build();
0059 
0060   /// set cuts
0061   void setOniaMassMin(double m);
0062   void setOniaMassMax(double m);
0063   void setKxMassMin(double m);
0064   void setKxMassMax(double m);
0065   void setMassMin(double m);
0066   void setMassMax(double m);
0067   void setProbMin(double p);
0068   void setMassFitMin(double m);
0069   void setMassFitMax(double m);
0070   void setConstr(bool flag);
0071 
0072   /// get current cuts
0073   double getOniaMassMin() const;
0074   double getOniaMassMax() const;
0075   double getKxMassMin() const;
0076   double getKxMassMax() const;
0077   double getMassMin() const;
0078   double getMassMax() const;
0079   double getProbMin() const;
0080   double getMassFitMin() const;
0081   double getMassFitMax() const;
0082   bool getConstr() const;
0083 
0084 private:
0085   std::string oniaName;
0086   std::string kx0Name;
0087 
0088   const edm::EventSetup* evSetup;
0089   const std::vector<BPHPlusMinusConstCandPtr>* jCollection;
0090   const std::vector<BPHPlusMinusConstCandPtr>* kCollection;
0091 
0092   BPHMassSelect* oniaSel;
0093   BPHMassSelect* mkx0Sel;
0094 
0095   BPHMassSelect* massSel;
0096   BPHChi2Select* chi2Sel;
0097   BPHMassFitSelect* mFitSel;
0098 
0099   bool massConstr;
0100   float minPDiff;
0101   bool updated;
0102 
0103   std::vector<BPHRecoConstCandPtr> bdList;
0104 };
0105 
0106 #endif