00001 #ifndef FORIA_TRUTHSELECTION_HH 00002 #define FORIA_TRUTHSELECTION_HH 00003 00004 #include "ForIA/TruthParticle.hh" 00005 #include "ForIA/AnalysisTools/FourVectorSelection.hh" 00006 00007 namespace ForIA { 00008 00009 class TruthSelection: public FourVectorSelection{ 00010 00011 public: 00012 00013 TruthSelection(); 00014 00024 enum DefinedSelection{MINBIAS_2, UE}; 00025 00026 enum charge{ANY, NEUTRAL, CHARGED, POSITIVE, NEGATIVE}; 00027 00028 const TruthParticleVector &particles()const; 00029 const TruthParticleVector &rejectedParticles()const; 00030 00031 bool setPTMin(double pt); 00032 bool setEtaMax(double eta); 00033 bool setCharged(charge chrg); 00034 bool setBarcodeMax(int bcode); 00035 bool setIsPrimary(bool isPrimary); 00036 00037 bool setSelection(DefinedSelection selection); 00038 00039 private: 00040 00041 void fillVectors() const; 00042 00043 mutable TruthParticleVector m_passedParticles; 00044 mutable TruthParticleVector m_rejectedParticles; 00045 00046 double m_ptMin; 00047 double m_etaMax; 00048 charge m_charge; 00049 int m_barcodeMax; 00050 bool m_isPrimary; 00051 00052 bool m_haveSetPT; 00053 bool m_haveSetEta; 00054 bool m_haveSetCharged; 00055 bool m_haveSetBarcode; 00056 bool m_haveSetIsPrimary; 00057 00058 }; 00059 } 00060 00061 #endif