00001 #ifndef _HI_HadronDecayGenEvtSelector_h__ 00002 #define _HI_HadronDecayGenEvtSelector_h__ 00003 00004 #include <vector> 00005 #include "GeneratorInterface/HiGenCommon/interface/BaseHiGenEvtSelector.h" 00006 00007 class HadronDecayGenEvtSelector : public BaseHiGenEvtSelector 00008 { 00009 public: 00010 HadronDecayGenEvtSelector(const edm::ParameterSet& pset); 00011 virtual ~HadronDecayGenEvtSelector(){;} 00012 00013 bool filter(HepMC::GenEvent *); 00014 bool selectParticle(HepMC::GenParticle* par, int status, int pdg /*Absolute*/, double etaMax, double etaMin, double pMin, double ptMax, double ptMin){ 00015 return (par->status() == status && 00016 abs(par->pdg_id()) == pdg && 00017 par->momentum().eta() < etaMax && par->momentum().eta() > etaMin && 00018 par->momentum().rho() > pMin && 00019 par->momentum().perp() < ptMax && par->momentum().perp() > ptMin); 00020 } 00021 00022 private: 00023 00024 std::vector<int> hadronId_; 00025 std::vector<int> hadronStatus_; 00026 std::vector<double> hadronEtaMax_; 00027 std::vector<double> hadronEtaMin_; 00028 std::vector<double> hadronPMin_; 00029 std::vector<double> hadronPtMax_; 00030 std::vector<double> hadronPtMin_; 00031 00032 int decayId_; 00033 int decayStatus_; 00034 double decayEtaMax_; 00035 double decayEtaMin_; 00036 double decayPMin_; 00037 double decayPtMax_; 00038 double decayPtMin_; 00039 int decayNtrig_; 00040 00041 }; 00042 00043 #endif