Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHDecayGenericBuilder_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHDecayGenericBuilder_h
0003 /** \class BPHDecayGenericBuilder
0004  *
0005  *  Description: 
0006  *     Class to build a generic decay applying selections to the
0007  *     reconstructed particle
0008  *
0009  *  \author Paolo Ronchese INFN Padova
0010  *
0011  */
0012 
0013 //----------------------
0014 // Base Class Headers --
0015 //----------------------
0016 
0017 //------------------------------------
0018 // Collaborating Class Declarations --
0019 //------------------------------------
0020 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHMassSelect.h"
0021 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHChi2Select.h"
0022 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHMassFitSelect.h"
0023 
0024 #include "FWCore/Framework/interface/Event.h"
0025 
0026 //---------------
0027 // C++ Headers --
0028 //---------------
0029 #include <string>
0030 #include <vector>
0031 
0032 //              ---------------------
0033 //              -- Class Interface --
0034 //              ---------------------
0035 
0036 class BPHDecayGenericBuilder {
0037 public:
0038   /** Constructor
0039    */
0040   BPHDecayGenericBuilder(const edm::EventSetup& es, BPHMassFitSelect* mfs = nullptr);
0041 
0042   // deleted copy constructor and assignment operator
0043   BPHDecayGenericBuilder(const BPHDecayGenericBuilder& x) = delete;
0044   BPHDecayGenericBuilder& operator=(const BPHDecayGenericBuilder& x) = delete;
0045 
0046   /** Destructor
0047    */
0048   virtual ~BPHDecayGenericBuilder();
0049 
0050   /** Operations
0051    */
0052   /// set cuts
0053   void setMassMin(double m);
0054   void setMassMax(double m);
0055   void setMassRange(double mMin, double mMax);
0056   void setProbMin(double p);
0057   void setMassFitMin(double m);
0058   void setMassFitMax(double m);
0059   void setMassFitRange(double mMin, double mMax);
0060 
0061   /// get current cuts
0062   double getMassMin() const { return massSel->getMassMin(); }
0063   double getMassMax() const { return massSel->getMassMax(); }
0064   double getProbMin() const { return chi2Sel->getProbMin(); }
0065   double getMassFitMin() const { return mFitSel->getMassMin(); }
0066   double getMassFitMax() const { return mFitSel->getMassMax(); }
0067 
0068   /// track min p difference
0069   void setMinPDiff(double mpd) { minPDiff = mpd; }
0070   double getMinPDiff() { return minPDiff; }
0071 
0072 protected:
0073   const edm::EventSetup* evSetup;
0074 
0075   BPHMassSelect* massSel;
0076   BPHChi2Select* chi2Sel;
0077   BPHMassFitSelect* mFitSel;
0078 
0079   double minPDiff;
0080   bool updated;
0081 };
0082 
0083 #endif