Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHDecayToResResBuilder_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHDecayToResResBuilder_h
0003 /** \class BPHDecayToResResBuilder
0004  *
0005  *  Description: 
0006  *     Class to build a particle decaying to two resonances, decaying
0007  *     themselves to an opposite charged particles pair
0008  *
0009  *  \author Paolo Ronchese INFN Padova
0010  *
0011  */
0012 
0013 //----------------------
0014 // Base Class Headers --
0015 //----------------------
0016 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayConstrainedBuilder.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 BPHDecayToResResBuilder : public BPHDecayConstrainedBuilder {
0038 public:
0039   /** Constructor
0040    */
0041   BPHDecayToResResBuilder(const edm::EventSetup& es,
0042                           const std::string& res1Name,
0043                           double res1Mass,
0044                           double res1Width,
0045                           const std::vector<BPHPlusMinusConstCandPtr>& res1Collection,
0046                           const std::string& res2Name,
0047                           const std::vector<BPHPlusMinusConstCandPtr>& res2Collection);
0048 
0049   // deleted copy constructor and assignment operator
0050   BPHDecayToResResBuilder(const BPHDecayToResResBuilder& x) = delete;
0051   BPHDecayToResResBuilder& operator=(const BPHDecayToResResBuilder& x) = delete;
0052 
0053   /** Destructor
0054    */
0055   ~BPHDecayToResResBuilder() override;
0056 
0057   /** Operations
0058    */
0059   /// build candidates
0060   std::vector<BPHRecoConstCandPtr> build();
0061 
0062   /// set cuts
0063   void setRes1MassMin(double m) { setResMassMin(m); }
0064   void setRes1MassMax(double m) { setResMassMax(m); }
0065   void setRes1MassRange(double mMin, double mMax) { setResMassRange(mMin, mMax); }
0066   void setRes2MassMin(double m);
0067   void setRes2MassMax(double m);
0068   void setRes2MassRange(double mMin, double mMax);
0069 
0070   /// get current cuts
0071   double getRes1MassMin() const { return getResMassMin(); }
0072   double getRes1MassMax() const { return getResMassMax(); }
0073   double getRes2MassMin() const { return res2Sel->getMassMin(); }
0074   double getRes2MassMax() const { return res2Sel->getMassMax(); }
0075 
0076 private:
0077   std::string sName;
0078 
0079   const std::vector<BPHPlusMinusConstCandPtr>* sCollection;
0080 
0081   BPHMassSelect* res2Sel;
0082 
0083   std::vector<BPHRecoConstCandPtr> recList;
0084 };
0085 
0086 #endif