Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHDecayGenericBuilderBase_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHDecayGenericBuilderBase_h
0003 /** \class BPHDecayGenericBuilderBase
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 class BPHEventSetupWrapper;
0025 
0026 //---------------
0027 // C++ Headers --
0028 //---------------
0029 
0030 //              ---------------------
0031 //              -- Class Interface --
0032 //              ---------------------
0033 
0034 class BPHDecayGenericBuilderBase {
0035 public:
0036   /** Constructor
0037    */
0038   BPHDecayGenericBuilderBase();
0039   BPHDecayGenericBuilderBase(const BPHEventSetupWrapper& es,
0040                              BPHMassFitSelect* mfs = new BPHMassFitSelect(-2.0e+06, -1.0e+06));
0041 
0042   // deleted copy constructor and assignment operator
0043   BPHDecayGenericBuilderBase(const BPHDecayGenericBuilderBase& x) = delete;
0044   BPHDecayGenericBuilderBase& operator=(const BPHDecayGenericBuilderBase& x) = delete;
0045 
0046   /** Destructor
0047    */
0048   virtual ~BPHDecayGenericBuilderBase();
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 BPHEventSetupWrapper* evSetup;
0074 
0075   BPHMassSelect* massSel;
0076   BPHChi2Select* chi2Sel;
0077   BPHMassFitSelect* mFitSel;
0078 
0079   double minPDiff;
0080   bool outdated;
0081 
0082   virtual void fillRecList() = 0;
0083 };
0084 
0085 #endif