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