Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-07-08 01:45:54

0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHBuToPsi2SKBuilder_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHBuToPsi2SKBuilder_h
0003 /** \class BPHBuToPsi2SKBuilder
0004  *
0005  *  Description: 
0006  *     Class to build B+- to Psi2S K+- candidates
0007  *
0008  *  \author Paolo Ronchese INFN Padova
0009  *
0010  */
0011 
0012 //----------------------
0013 // Base Class Headers --
0014 //----------------------
0015 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayToResTrkBuilder.h"
0016 
0017 //------------------------------------
0018 // Collaborating Class Declarations --
0019 //------------------------------------
0020 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayGenericBuilderBase.h"
0021 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayConstrainedBuilderBase.h"
0022 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHParticleMasses.h"
0023 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoBuilder.h"
0024 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoCandidate.h"
0025 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHPlusMinusCandidate.h"
0026 
0027 #include "FWCore/Framework/interface/EventSetup.h"
0028 
0029 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicParticleFactoryFromTransientTrack.h"
0030 #include "RecoVertex/KinematicFitPrimitives/interface/RefCountedKinematicParticle.h"
0031 #include "RecoVertex/KinematicFit/interface/KinematicParticleVertexFitter.h"
0032 #include "RecoVertex/KinematicFit/interface/KinematicConstrainedVertexFitter.h"
0033 #include "RecoVertex/KinematicFit/interface/KinematicParticleFitter.h"
0034 #include "RecoVertex/KinematicFit/interface/MassKinematicConstraint.h"
0035 #include "RecoVertex/KinematicFit/interface/TwoTrackMassKinematicConstraint.h"
0036 #include "RecoVertex/KinematicFit/interface/MultiTrackMassKinematicConstraint.h"
0037 
0038 class BPHEventSetupWrapper;
0039 
0040 //---------------
0041 // C++ Headers --
0042 //---------------
0043 #include <string>
0044 #include <vector>
0045 #include <iostream>
0046 
0047 //              ---------------------
0048 //              -- Class Interface --
0049 //              ---------------------
0050 
0051 class BPHBuToPsi2SKBuilder : public BPHDecayToResTrkBuilder<BPHRecoCandidate, BPHRecoCandidate> {
0052 public:
0053   /** Constructor
0054    */
0055   BPHBuToPsi2SKBuilder(const BPHEventSetupWrapper& es,
0056                        const std::vector<BPHRecoConstCandPtr>& psi2SCollection,
0057                        const BPHRecoBuilder::BPHGenericCollection* kaonCollection)
0058       : BPHDecayGenericBuilderBase(es, nullptr),
0059         BPHDecayConstrainedBuilderBase("Psi2S", BPHParticleMasses::psi2Mass, BPHParticleMasses::psi2MWidth),
0060         BPHDecayToResTrkBuilder(
0061             psi2SCollection, "Kaon", BPHParticleMasses::kaonMass, BPHParticleMasses::kaonMSigma, kaonCollection) {
0062     setResMassRange(3.30, 4.00);
0063     setTrkPtMin(0.7);
0064     setTrkEtaMax(10.0);
0065     setMassRange(3.50, 8.00);
0066     setProbMin(0.02);
0067   }
0068 
0069   // deleted copy constructor and assignment operator
0070   BPHBuToPsi2SKBuilder(const BPHBuToPsi2SKBuilder& x) = delete;
0071   BPHBuToPsi2SKBuilder& operator=(const BPHBuToPsi2SKBuilder& x) = delete;
0072 
0073   /** Destructor
0074    */
0075   ~BPHBuToPsi2SKBuilder() override = default;
0076 
0077   /** Operations
0078    */
0079   /// get original daughters map
0080   const std::map<const BPHRecoCandidate*, const BPHRecoCandidate*>& daughMap() const { return dMap; }
0081 
0082   /// set cuts
0083   void setKPtMin(double pt) { setTrkPtMin(pt); }
0084   void setKEtaMax(double eta) { setTrkEtaMax(eta); }
0085   void setPsi2SMassMin(double m) { setResMassMin(m); }
0086   void setPsi2SMassMax(double m) { setResMassMax(m); }
0087 
0088   /// get current cuts
0089   double getKPtMin() const { return getTrkPtMin(); }
0090   double getKEtaMax() const { return getTrkEtaMax(); }
0091   double getPsi2SMassMin() const { return getResMassMin(); }
0092   double getPsi2SMassMax() const { return getResMassMax(); }
0093 
0094   /// setup parameters for BPHRecoBuilder
0095   void setup(void* parameters) override {}
0096 
0097 private:
0098   std::map<const BPHRecoCandidate*, const BPHRecoCandidate*> dMap;
0099 };
0100 
0101 #endif