Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHDecayToV0SameMassBuilder_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHDecayToV0SameMassBuilder_h
0003 /** \class BPHDecayToV0SameMassBuilder
0004  *
0005  *  Description: 
0006  *     Class to build neutral particles decaying to a V0,
0007  *     with daughters having same mass,
0008  *     starting from reco::Candidates or already reconstructed V0s
0009  *
0010  *  \author Paolo Ronchese INFN Padova
0011  *
0012  */
0013 
0014 //----------------------
0015 // Base Class Headers --
0016 //----------------------
0017 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayToV0Builder.h"
0018 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayToChargedXXbarBuilder.h"
0019 
0020 //------------------------------------
0021 // Collaborating Class Declarations --
0022 //------------------------------------
0023 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoBuilder.h"
0024 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoCandidate.h"
0025 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHPlusMinusCandidate.h"
0026 
0027 class BPHEventSetupWrapper;
0028 
0029 //---------------
0030 // C++ Headers --
0031 //---------------
0032 #include <string>
0033 #include <vector>
0034 #include <map>
0035 
0036 //              ---------------------
0037 //              -- Class Interface --
0038 //              ---------------------
0039 
0040 class BPHDecayToV0SameMassBuilder : public BPHDecayToV0Builder, public BPHDecayToChargedXXbarBuilder {
0041 public:
0042   /** Constructor
0043    */
0044   BPHDecayToV0SameMassBuilder(const BPHEventSetupWrapper& es,
0045                               const std::string& posName,
0046                               const std::string& negName,
0047                               double daugMass,
0048                               double daugSigma,
0049                               const BPHRecoBuilder::BPHGenericCollection* posCollection,
0050                               const BPHRecoBuilder::BPHGenericCollection* negCollection);
0051   BPHDecayToV0SameMassBuilder(const BPHEventSetupWrapper& es,
0052                               const std::string& posName,
0053                               const std::string& negName,
0054                               double daugMass,
0055                               double daugSigma,
0056                               const std::vector<reco::VertexCompositeCandidate>* v0Collection,
0057                               const std::string& searchList = "cfp");
0058   BPHDecayToV0SameMassBuilder(const BPHEventSetupWrapper& es,
0059                               const std::string& posName,
0060                               const std::string& negName,
0061                               double daugMass,
0062                               double daugSigma,
0063                               const std::vector<reco::VertexCompositePtrCandidate>* vpCollection,
0064                               const std::string& searchList = "cfp");
0065 
0066   // deleted copy constructor and assignment operator
0067   BPHDecayToV0SameMassBuilder(const BPHDecayToV0SameMassBuilder& x) = delete;
0068   BPHDecayToV0SameMassBuilder& operator=(const BPHDecayToV0SameMassBuilder& x) = delete;
0069 
0070   /** Destructor
0071    */
0072   ~BPHDecayToV0SameMassBuilder() override = default;
0073 
0074 protected:
0075   double pMass;
0076   double pSigma;
0077 
0078   /// build candidates and link to V0
0079   void buildFromBPHGenericCollection() override;
0080   BPHPlusMinusCandidatePtr buildCandidate(const reco::Candidate* c1,
0081                                           const reco::Candidate* c2,
0082                                           const void* v0,
0083                                           v0Type type) override;
0084 
0085 private:
0086   /// build candidates
0087   void fillRecList() override { BPHDecayToV0Builder::fillRecList(); }
0088 };
0089 
0090 #endif