File indexing completed on 2024-04-06 12:13:43
0001 #ifndef _HI_HadronDecayGenEvtSelector_h__
0002 #define _HI_HadronDecayGenEvtSelector_h__
0003
0004 #include <vector>
0005 #include "GeneratorInterface/HiGenCommon/interface/BaseHiGenEvtSelector.h"
0006
0007 class HadronDecayGenEvtSelector : public BaseHiGenEvtSelector {
0008 public:
0009 HadronDecayGenEvtSelector(const edm::ParameterSet& pset);
0010 ~HadronDecayGenEvtSelector() override { ; }
0011
0012 bool filter(HepMC::GenEvent*) override;
0013 bool selectParticle(HepMC::GenParticle* par,
0014 int status,
0015 int pdg ,
0016 double etaMax,
0017 double etaMin,
0018 double pMin,
0019 double ptMax,
0020 double ptMin) {
0021 return (par->status() == status && abs(par->pdg_id()) == pdg && par->momentum().eta() < etaMax &&
0022 par->momentum().eta() > etaMin && par->momentum().rho() > pMin && par->momentum().perp() < ptMax &&
0023 par->momentum().perp() > ptMin);
0024 }
0025
0026 private:
0027 std::vector<int> hadronId_;
0028 std::vector<int> hadronStatus_;
0029 std::vector<double> hadronEtaMax_;
0030 std::vector<double> hadronEtaMin_;
0031 std::vector<double> hadronPMin_;
0032 std::vector<double> hadronPtMax_;
0033 std::vector<double> hadronPtMin_;
0034
0035 int decayId_;
0036 int decayStatus_;
0037 double decayEtaMax_;
0038 double decayEtaMin_;
0039 double decayPMin_;
0040 double decayPtMax_;
0041 double decayPtMin_;
0042 int decayNtrig_;
0043 };
0044
0045 #endif