File indexing completed on 2024-04-06 12:15:35
0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHDecayToResTrkBuilder_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHDecayToResTrkBuilder_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayToResTrkBuilderBase.h"
0017 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayConstrainedBuilder.h"
0018 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecaySpecificBuilder.h"
0019
0020
0021
0022
0023 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHParticlePtSelect.h"
0024 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHParticleEtaSelect.h"
0025
0026 #include "FWCore/Framework/interface/EventSetup.h"
0027
0028 class BPHEventSetupWrapper;
0029 class BPHParticleNeutralVeto;
0030
0031
0032
0033
0034 #include <string>
0035 #include <vector>
0036
0037
0038
0039
0040
0041 template <class ProdType, class ResType>
0042 class BPHDecayToResTrkBuilder : public BPHDecayToResTrkBuilderBase,
0043 public BPHDecayConstrainedBuilder<ProdType, ResType>,
0044 public BPHDecaySpecificBuilder<ProdType> {
0045 public:
0046 using typename BPHDecayGenericBuilder<ProdType>::prod_ptr;
0047 using typename BPHDecayConstrainedBuilder<ProdType, ResType>::res_ptr;
0048
0049
0050
0051 BPHDecayToResTrkBuilder(const BPHEventSetupWrapper& es,
0052 const std::string& resName,
0053 double resMass,
0054 double resWidth,
0055 const std::vector<res_ptr>& resCollection,
0056 const std::string& trkName,
0057 double trkMass,
0058 double trkSigma,
0059 const BPHRecoBuilder::BPHGenericCollection* trkCollection)
0060 : BPHDecayGenericBuilderBase(es, nullptr),
0061 BPHDecayConstrainedBuilderBase(resName, resMass, resWidth),
0062 BPHDecayToResTrkBuilderBase(trkName, trkMass, trkSigma, trkCollection),
0063 BPHDecayConstrainedBuilder<ProdType, ResType>(resCollection) {}
0064
0065
0066 BPHDecayToResTrkBuilder(const BPHDecayToResTrkBuilder& x) = delete;
0067 BPHDecayToResTrkBuilder& operator=(const BPHDecayToResTrkBuilder& x) = delete;
0068
0069
0070
0071 ~BPHDecayToResTrkBuilder() override = default;
0072
0073 protected:
0074 BPHDecayToResTrkBuilder(const std::vector<res_ptr>& resCollection,
0075 const std::string& trkName,
0076 double trkMass,
0077 double trkSigma,
0078 const BPHRecoBuilder::BPHGenericCollection* trkCollection)
0079 : BPHDecayToResTrkBuilderBase(trkName, trkMass, trkSigma, trkCollection),
0080 BPHDecayConstrainedBuilder<ProdType, ResType>(resCollection) {}
0081 };
0082
0083 #endif