Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHDecayToV0DiffMassBuilder_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHDecayToV0DiffMassBuilder_h
0003 /** \class BPHDecayToV0DiffMassBuilder
0004  *
0005  *  Description: 
0006  *     Class to build neutral particles decaying to a V0,
0007  *     with daughters having different 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 
0019 //------------------------------------
0020 // Collaborating Class Declarations --
0021 //------------------------------------
0022 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoBuilder.h"
0023 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoCandidate.h"
0024 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHPlusMinusCandidate.h"
0025 
0026 #include "FWCore/Framework/interface/Event.h"
0027 
0028 //---------------
0029 // C++ Headers --
0030 //---------------
0031 #include <string>
0032 #include <vector>
0033 #include <map>
0034 
0035 //              ---------------------
0036 //              -- Class Interface --
0037 //              ---------------------
0038 
0039 class BPHDecayToV0DiffMassBuilder : public BPHDecayToV0Builder {
0040 public:
0041   /** Constructor
0042    */
0043   BPHDecayToV0DiffMassBuilder(const edm::EventSetup& es,
0044                               const std::string& d1Name,
0045                               double d1Mass,
0046                               double d1Sigma,
0047                               const std::string& d2Name,
0048                               double d2Mass,
0049                               double d2Sigma,
0050                               const BPHRecoBuilder::BPHGenericCollection* posCollection,
0051                               const BPHRecoBuilder::BPHGenericCollection* negCollection,
0052                               double expectedMass);
0053   BPHDecayToV0DiffMassBuilder(const edm::EventSetup& es,
0054                               const std::string& d1Name,
0055                               double d1Mass,
0056                               double d1Sigma,
0057                               const std::string& d2Name,
0058                               double d2Mass,
0059                               double d2Sigma,
0060                               const std::vector<reco::VertexCompositeCandidate>* v0Collection,
0061                               double expectedMass,
0062                               const std::string& searchList = "cfp");
0063   BPHDecayToV0DiffMassBuilder(const edm::EventSetup& es,
0064                               const std::string& d1Name,
0065                               double d1Mass,
0066                               double d1Sigma,
0067                               const std::string& d2Name,
0068                               double d2Mass,
0069                               double d2Sigma,
0070                               const std::vector<reco::VertexCompositePtrCandidate>* vpCollection,
0071                               double expectedMass,
0072                               const std::string& searchList = "cfp");
0073 
0074   // deleted copy constructor and assignment operator
0075   BPHDecayToV0DiffMassBuilder(const BPHDecayToV0DiffMassBuilder& x) = delete;
0076   BPHDecayToV0DiffMassBuilder& operator=(const BPHDecayToV0DiffMassBuilder& x) = delete;
0077 
0078   /** Destructor
0079    */
0080   ~BPHDecayToV0DiffMassBuilder() override;
0081 
0082 protected:
0083   double p1Mass;
0084   double p2Mass;
0085   double p1Sigma;
0086   double p2Sigma;
0087   double expMass;
0088 
0089   /// build candidates and link to V0
0090   void buildFromBPHGenericCollection() override;
0091   BPHPlusMinusCandidatePtr buildCandidate(const reco::Candidate* c1,
0092                                           const reco::Candidate* c2,
0093                                           const void* v0,
0094                                           v0Type type) override;
0095 };
0096 
0097 #endif