File indexing completed on 2024-04-06 12:15:35
0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHDecayToChargedXXbarBuilder_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHDecayToChargedXXbarBuilder_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayGenericBuilderBase.h"
0017 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayGenericBuilder.h"
0018
0019
0020
0021
0022 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoBuilder.h"
0023 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoCandidate.h"
0024 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHPlusMinusCandidate.h"
0025
0026 class BPHEventSetupWrapper;
0027 class BPHParticlePtSelect;
0028 class BPHParticleEtaSelect;
0029 class BPHChi2Select;
0030 class BPHMassSelect;
0031
0032
0033
0034
0035 #include <string>
0036 #include <vector>
0037
0038
0039
0040
0041
0042 class BPHDecayToChargedXXbarBuilder : public virtual BPHDecayGenericBuilderBase,
0043 public virtual BPHDecayGenericBuilder<BPHPlusMinusCandidate> {
0044 public:
0045
0046
0047 BPHDecayToChargedXXbarBuilder(const BPHEventSetupWrapper& es,
0048 const std::string& dPosName,
0049 const std::string& dNegName,
0050 double daugMass,
0051 double daugSigma,
0052 const BPHRecoBuilder::BPHGenericCollection* posCollection,
0053 const BPHRecoBuilder::BPHGenericCollection* negCollection);
0054
0055
0056 BPHDecayToChargedXXbarBuilder(const BPHDecayToChargedXXbarBuilder& x) = delete;
0057 BPHDecayToChargedXXbarBuilder& operator=(const BPHDecayToChargedXXbarBuilder& x) = delete;
0058
0059
0060
0061 ~BPHDecayToChargedXXbarBuilder() override = default;
0062
0063
0064
0065
0066
0067 void setPtMin(double pt);
0068 void setEtaMax(double eta);
0069 void setDzMax(double dz);
0070
0071
0072 double getPtMin() const { return ptMin; }
0073 double getEtaMax() const { return etaMax; }
0074 double getDzMax() const { return dzMax; }
0075
0076 protected:
0077 double ptMin;
0078 double etaMax;
0079 double dzMax;
0080
0081
0082 void fillRecList() override;
0083
0084 protected:
0085 std::string pName;
0086 std::string nName;
0087 double dMass;
0088 double dSigma;
0089
0090 const BPHRecoBuilder::BPHGenericCollection* pCollection;
0091 const BPHRecoBuilder::BPHGenericCollection* nCollection;
0092
0093 private:
0094 class Particle {
0095 public:
0096 Particle(const reco::Candidate* c, const reco::Track* tk, double x, double y, double z, double e)
0097 : cand(c), track(tk), px(x), py(y), pz(z), en(e) {}
0098 const reco::Candidate* cand;
0099 const reco::Track* track;
0100 double px;
0101 double py;
0102 double pz;
0103 double en;
0104 };
0105 void addParticle(const BPHRecoBuilder::BPHGenericCollection* collection, int charge, std::vector<Particle*>& list);
0106 };
0107
0108 #endif