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