Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHDecayConstrainedBuilder_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHDecayConstrainedBuilder_h
0003 /** \class BPHDecayConstrainedBuilder
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/BPHDecayGenericBuilder.h"
0017 
0018 //------------------------------------
0019 // Collaborating Class Declarations --
0020 //------------------------------------
0021 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoBuilder.h"
0022 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoCandidate.h"
0023 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHPlusMinusCandidate.h"
0024 
0025 #include "FWCore/Framework/interface/Event.h"
0026 
0027 //---------------
0028 // C++ Headers --
0029 //---------------
0030 #include <string>
0031 #include <vector>
0032 
0033 //              ---------------------
0034 //              -- Class Interface --
0035 //              ---------------------
0036 
0037 class BPHDecayConstrainedBuilder : public BPHDecayGenericBuilder {
0038 public:
0039   /** Constructor
0040    */
0041   BPHDecayConstrainedBuilder(const edm::EventSetup& es,
0042                              const std::string& resName,
0043                              double resMass,
0044                              double resWidth,
0045                              const std::vector<BPHPlusMinusConstCandPtr>& resCollection);
0046 
0047   // deleted copy constructor and assignment operator
0048   BPHDecayConstrainedBuilder(const BPHDecayConstrainedBuilder& x) = delete;
0049   BPHDecayConstrainedBuilder& operator=(const BPHDecayConstrainedBuilder& x) = delete;
0050 
0051   /** Destructor
0052    */
0053   ~BPHDecayConstrainedBuilder() override;
0054 
0055   /** Operations
0056    */
0057   /// set cuts
0058   void setResMassMin(double m);
0059   void setResMassMax(double m);
0060   void setResMassRange(double mMin, double mMax);
0061   void setConstr(bool flag);
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 
0068 protected:
0069   std::string rName;
0070   double rMass;
0071   double rWidth;
0072 
0073   const std::vector<BPHPlusMinusConstCandPtr>* rCollection;
0074 
0075   BPHMassSelect* resoSel;
0076 
0077   bool massConstr;
0078 };
0079 
0080 #endif