Back to home page

Project CMSSW displayed by LXR

 
 

    


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

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 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayToTkpTknSymChargeBuilder.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 BPHDecayToV0DiffMassBuilder : public BPHDecayToV0Builder, public BPHDecayToTkpTknSymChargeBuilder {
0041 public:
0042   /** Constructor
0043    */
0044   BPHDecayToV0DiffMassBuilder(const BPHEventSetupWrapper& es,
0045                               const std::string& daug1Name,
0046                               double daug1Mass,
0047                               double daug1Sigma,
0048                               const std::string& daug2Name,
0049                               double daug2Mass,
0050                               double daug2Sigma,
0051                               const BPHRecoBuilder::BPHGenericCollection* posCollection,
0052                               const BPHRecoBuilder::BPHGenericCollection* negCollection,
0053                               double expectedMass);
0054   BPHDecayToV0DiffMassBuilder(const BPHEventSetupWrapper& es,
0055                               const std::string& daug1Name,
0056                               double daug1Mass,
0057                               double daug1Sigma,
0058                               const std::string& daug2Name,
0059                               double daug2Mass,
0060                               double daug2Sigma,
0061                               const std::vector<reco::VertexCompositeCandidate>* v0Collection,
0062                               double expectedMass,
0063                               const std::string& searchList = "cfp");
0064   BPHDecayToV0DiffMassBuilder(const BPHEventSetupWrapper& es,
0065                               const std::string& daug1Name,
0066                               double daug1Mass,
0067                               double daug1Sigma,
0068                               const std::string& daug2Name,
0069                               double daug2Mass,
0070                               double daug2Sigma,
0071                               const std::vector<reco::VertexCompositePtrCandidate>* vpCollection,
0072                               double expectedMass,
0073                               const std::string& searchList = "cfp");
0074 
0075   // deleted copy constructor and assignment operator
0076   BPHDecayToV0DiffMassBuilder(const BPHDecayToV0DiffMassBuilder& x) = delete;
0077   BPHDecayToV0DiffMassBuilder& operator=(const BPHDecayToV0DiffMassBuilder& x) = delete;
0078 
0079   /** Destructor
0080    */
0081   ~BPHDecayToV0DiffMassBuilder() override = default;
0082 
0083   /** Operations
0084    */
0085 
0086   /// set cuts
0087   void setPtMin(double pt) {
0088     setTrk1PtMin(pt);
0089     setTrk2PtMin(pt);
0090   }
0091   void setEtaMax(double eta) {
0092     setTrk1EtaMax(eta);
0093     setTrk2EtaMax(eta);
0094   }
0095 
0096 protected:
0097   double p1Mass;
0098   double p2Mass;
0099   double p1Sigma;
0100   double p2Sigma;
0101   double expMass;
0102 
0103   /// build candidates and link to V0
0104   void buildFromBPHGenericCollection() override;
0105   BPHPlusMinusCandidatePtr buildCandidate(const reco::Candidate* c1,
0106                                           const reco::Candidate* c2,
0107                                           const void* v0,
0108                                           v0Type type) override;
0109 
0110 private:
0111   /// build candidates
0112   void fillRecList() override { BPHDecayToV0Builder::fillRecList(); }
0113 };
0114 
0115 #endif