File indexing completed on 2024-04-06 12:15:35
0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHBuToPsi2SKBuilder_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHBuToPsi2SKBuilder_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayToResTrkBuilder.h"
0016
0017
0018
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
0042
0043 #include <string>
0044 #include <vector>
0045 #include <iostream>
0046
0047
0048
0049
0050
0051 class BPHBuToPsi2SKBuilder : public BPHDecayToResTrkBuilder<BPHRecoCandidate, BPHRecoCandidate> {
0052 public:
0053
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
0070 BPHBuToPsi2SKBuilder(const BPHBuToPsi2SKBuilder& x) = delete;
0071 BPHBuToPsi2SKBuilder& operator=(const BPHBuToPsi2SKBuilder& x) = delete;
0072
0073
0074
0075 ~BPHBuToPsi2SKBuilder() override = default;
0076
0077
0078
0079
0080 const std::map<const BPHRecoCandidate*, const BPHRecoCandidate*>& daughMap() const { return dMap; }
0081
0082
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
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
0095 void setup(void* parameters) override {}
0096
0097 private:
0098 std::map<const BPHRecoCandidate*, const BPHRecoCandidate*> dMap;
0099 };
0100
0101 #endif