Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHDecayToFlyingCascadeBuilderBase_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHDecayToFlyingCascadeBuilderBase_h
0003 /** \class BPHDecayToFlyingCascadeBuilderBase
0004  *
0005  *  Description: 
0006  *     Base class to build a particle having a flying particle in the
0007  *     final state
0008  *
0009  *  \author Paolo Ronchese INFN Padova
0010  *
0011  */
0012 
0013 //----------------------
0014 // Base Class Headers --
0015 //----------------------
0016 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecaySpecificBuilder.h"
0017 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayGenericBuilderBase.h"
0018 
0019 //------------------------------------
0020 // Collaborating Class Declarations --
0021 //------------------------------------
0022 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHKinFitChi2Select.h"
0023 
0024 class BPHEventSetupWrapper;
0025 class BPHRecoBuilder;
0026 
0027 //---------------
0028 // C++ Headers --
0029 //---------------
0030 #include <string>
0031 #include <vector>
0032 
0033 //              ---------------------
0034 //              -- Class Interface --
0035 //              ---------------------
0036 
0037 class BPHDecayToFlyingCascadeBuilderBase : public virtual BPHDecaySpecificBuilderBase,
0038                                            public virtual BPHDecayGenericBuilderBase {
0039 public:
0040   /** Constructor
0041    */
0042   BPHDecayToFlyingCascadeBuilderBase(const BPHEventSetupWrapper& es,
0043                                      const std::string& flyName,
0044                                      double flyMass,
0045                                      double flyMSigma);
0046 
0047   // deleted copy constructor and assignment operator
0048   BPHDecayToFlyingCascadeBuilderBase(const BPHDecayToFlyingCascadeBuilderBase& x) = delete;
0049   BPHDecayToFlyingCascadeBuilderBase& operator=(const BPHDecayToFlyingCascadeBuilderBase& x) = delete;
0050 
0051   /** Destructor
0052    */
0053   ~BPHDecayToFlyingCascadeBuilderBase() override;
0054 
0055   /** Operations
0056    */
0057   /// get original daughters map
0058   const std::map<const BPHRecoCandidate*, const BPHRecoCandidate*>& daughMap() const { return dMap; }
0059 
0060   /// set cuts
0061   void setFlyingMassMin(double m);
0062   void setFlyingMassMax(double m);
0063   void setFlyingMassRange(double mMin, double mMax);
0064   void setKinFitProbMin(double p);
0065 
0066   /// get current cuts
0067   double getFlyingMassMin() const { return flySel->getMassMin(); }
0068   double getFlyingMassMax() const { return flySel->getMassMax(); }
0069   double getKinFitProbMin() const { return kfChi2Sel->getProbMin(); }
0070 
0071 protected:
0072   BPHDecayToFlyingCascadeBuilderBase(const std::string& flyName, double flyMass, double flyMSigma);
0073   BPHDecayToFlyingCascadeBuilderBase();
0074 
0075   std::string fName;
0076   double fMass;
0077   double fMSigma;
0078 
0079   BPHMassFitSelect* flySel;
0080   BPHKinFitChi2Select* kfChi2Sel;
0081 
0082   std::map<const BPHRecoCandidate*, const BPHRecoCandidate*> dMap;
0083 
0084   virtual void addFlyCollection(BPHRecoBuilder& brb) = 0;
0085 };
0086 
0087 #endif