Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHKx0ToKPiBuilder_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHKx0ToKPiBuilder_h
0003 /** \class BPHKx0ToKPiBuilder
0004  *
0005  *  Description: 
0006  *     Class to build K*0 to K+ pi- candidates
0007  *
0008  *  \author Paolo Ronchese INFN Padova
0009  *
0010  */
0011 
0012 //----------------------
0013 // Base Class Headers --
0014 //----------------------
0015 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayToTkpTknSymChargeBuilder.h"
0016 
0017 //------------------------------------
0018 // Collaborating Class Declarations --
0019 //------------------------------------
0020 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayGenericBuilderBase.h"
0021 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHParticleMasses.h"
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/EventSetup.h"
0027 
0028 class BPHEventSetupWrapper;
0029 
0030 //---------------
0031 // C++ Headers --
0032 //---------------
0033 #include <string>
0034 #include <vector>
0035 
0036 //              ---------------------
0037 //              -- Class Interface --
0038 //              ---------------------
0039 
0040 class BPHKx0ToKPiBuilder : public BPHDecayToTkpTknSymChargeBuilder {
0041 public:
0042   /** Constructor
0043    */
0044   BPHKx0ToKPiBuilder(const BPHEventSetupWrapper& es,
0045                      const BPHRecoBuilder::BPHGenericCollection* posCollection,
0046                      const BPHRecoBuilder::BPHGenericCollection* negCollection)
0047       : BPHDecayGenericBuilderBase(es),
0048         BPHDecayToTkpTknSymChargeBuilder(es,
0049                                          "Kaon",
0050                                          BPHParticleMasses::kaonMass,
0051                                          BPHParticleMasses::kaonMSigma,
0052                                          "Pion",
0053                                          BPHParticleMasses::pionMass,
0054                                          BPHParticleMasses::pionMSigma,
0055                                          posCollection,
0056                                          negCollection,
0057                                          BPHParticleMasses::kx0Mass) {
0058     setTrk1PtMin(0.7);
0059     setTrk2PtMin(0.7);
0060     setTrk1EtaMax(10.0);
0061     setTrk2EtaMax(10.0);
0062     setMassRange(0.75, 1.05);
0063     setProbMin(0.0);
0064   }
0065 
0066   // deleted copy constructor and assignment operator
0067   BPHKx0ToKPiBuilder(const BPHKx0ToKPiBuilder& x) = delete;
0068   BPHKx0ToKPiBuilder& operator=(const BPHKx0ToKPiBuilder& x) = delete;
0069 
0070   /** Destructor
0071    */
0072   ~BPHKx0ToKPiBuilder() override = default;
0073 
0074   /** Operations
0075    */
0076   /// set cuts
0077   void setPiPtMin(double pt) { setTrk1PtMin(pt); }
0078   void setPiEtaMax(double eta) { setTrk1EtaMax(eta); }
0079   void setKPtMin(double pt) { setTrk2PtMin(pt); }
0080   void setKEtaMax(double eta) { setTrk2EtaMax(eta); }
0081   void setPtMin(double pt) {
0082     setTrk1PtMin(pt);
0083     setTrk2PtMin(pt);
0084   }
0085   void setEtaMax(double eta) {
0086     setTrk1EtaMax(eta);
0087     setTrk2EtaMax(eta);
0088   }
0089 
0090   /// get current cuts
0091   double getPiPtMin() const { return getTrk1PtMin(); }
0092   double getPiEtaMax() const { return getTrk1EtaMax(); }
0093   double getKPtMin() const { return getTrk2PtMin(); }
0094   double getKEtaMax() const { return getTrk2EtaMax(); }
0095 };
0096 
0097 #endif