Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHDecayConstrainedBuilderBase_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHDecayConstrainedBuilderBase_h
0003 /** \class BPHDecayConstrainedBuilderBase
0004  *
0005  *  Description: 
0006  *     Class to build a particle decaying to a resonance, decaying itself
0007  *     to an opposite charged particles pair, applying a mass constraint
0008  *
0009  *  \author Paolo Ronchese INFN Padova
0010  *
0011  */
0012 
0013 //----------------------
0014 // Base Class Headers --
0015 //----------------------
0016 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayGenericBuilderBase.h"
0017 
0018 //------------------------------------
0019 // Collaborating Class Declarations --
0020 //------------------------------------
0021 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoCandidate.h"
0022 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHPlusMinusCandidate.h"
0023 
0024 class BPHEventSetupWrapper;
0025 class BPHMassFitSelect;
0026 
0027 //---------------
0028 // C++ Headers --
0029 //---------------
0030 #include <string>
0031 #include <vector>
0032 
0033 //              ---------------------
0034 //              -- Class Interface --
0035 //              ---------------------
0036 
0037 class BPHDecayConstrainedBuilderBase : public virtual BPHDecayGenericBuilderBase {
0038 public:
0039   /** Constructor
0040    */
0041   BPHDecayConstrainedBuilderBase(const BPHEventSetupWrapper& es,
0042                                  const std::string& resName,
0043                                  double resMass,
0044                                  double resWidth);
0045 
0046   // deleted copy constructor and assignment operator
0047   BPHDecayConstrainedBuilderBase(const BPHDecayConstrainedBuilderBase& x) = delete;
0048   BPHDecayConstrainedBuilderBase& operator=(const BPHDecayConstrainedBuilderBase& x) = delete;
0049 
0050   /** Destructor
0051    */
0052   ~BPHDecayConstrainedBuilderBase() override;
0053 
0054   /** Operations
0055    */
0056   /// set cuts
0057   void setResMassMin(double m);
0058   void setResMassMax(double m);
0059   void setResMassRange(double mMin, double mMax);
0060   void setConstr(bool flag);
0061   void setMassFitSelect(BPHMassFitSelect* mfs);
0062 
0063   /// get current cuts
0064   double getResMassMin() const { return resoSel->getMassMin(); }
0065   double getResMassMax() const { return resoSel->getMassMax(); }
0066   bool getConstr() const { return massConstr; }
0067   BPHMassFitSelect* getMassFitSelect() const { return mFitSel; }
0068 
0069 protected:
0070   BPHDecayConstrainedBuilderBase(const std::string& resName,
0071                                  double resMass,
0072                                  double resWidth,
0073                                  bool createFitSelObject = true);
0074   BPHDecayConstrainedBuilderBase();
0075 
0076   std::string rName;
0077   double rMass;
0078   double rWidth;
0079 
0080   BPHMassSelect* resoSel;
0081 
0082   bool massConstr;
0083   bool mfSelForce;
0084 
0085   virtual void addResCollection(BPHRecoBuilder& brb) = 0;
0086   virtual BPHMassFitSelect* massFitSelector(double mMin, double mMax);
0087 };
0088 
0089 #endif