00001 #ifndef FORIA_TRUTHJETSELECTION_HH 00002 #define FORIA_TRUTHJETSELECTION_HH 00003 00004 #include "ForIA/TruthJet.hh" 00005 #include "ForIA/Event.hh" 00006 00007 #include "ForIA/AnalysisTools/FourVectorSelection.hh" 00008 00009 #include <ostream> 00010 00011 namespace ForIA{ 00012 00013 class MessageBox; 00014 00015 class TruthJetSelection : public FourVectorSelection{ 00016 00017 public: 00018 00019 TruthJetSelection(); 00020 00021 const TruthJetVector &acceptedTruthJets() const; 00022 00023 const TruthJetVector &rejectedTruthJets() const; 00024 00025 enum DefinedSelection{LOOSE, MEDIUM, TIGHT}; 00026 00027 bool setSelection(DefinedSelection selection); 00028 00029 // Set minimum E 00030 bool setEMin(double e); 00031 // Set minimum ET 00032 bool setETMin(double et); 00033 // Set minimum ET 00034 bool setPTMin(double pt); 00035 // Set minimum eta 00036 bool setEtaMin(double eta); 00037 // Set maximum eta 00038 bool setEtaMax(double eta); 00039 //Set minimum ET of jet1 00040 bool setETMinTruthJet1(double et); 00041 //Set minimum ET of jet2 00042 bool setETMinTruthJet2(double et); 00043 //Set minimum eta of jet1 00044 bool setEtaMinTruthJet1(double eta); 00045 //Set maximum eta of jet1 00046 bool setEtaMaxTruthJet1(double eta); 00047 //Set minimum eta of jet2 00048 bool setEtaMinTruthJet2(double eta); 00049 //Set maximum eta of jet2 00050 bool setEtaMaxTruthJet2(double eta); 00051 //Set delta phi 00052 bool setDeltaPhi(double dphi); 00053 //Set ratio of jet2 ET to jet1 ET 00054 bool setJet2ETOverJet1ET(double jet2ETOverjet1ET); 00055 00056 private: 00057 00058 friend std::ostream &operator << (std::ostream &out, const TruthJetSelection &selection); 00059 friend MessageBox &operator << (MessageBox &box, const TruthJetSelection &selection); 00060 00061 void fillVectors() const; 00062 00063 mutable TruthJetVector m_acceptedTruthJets; 00064 mutable TruthJetVector m_rejectedTruthJets; 00065 00066 00067 double m_eMin; 00068 double m_etMin; 00069 double m_ptMin; 00070 double m_etaMin; 00071 double m_etaMax; 00072 double m_etMinTruthJet1; 00073 double m_etMinTruthJet2; 00074 double m_etaMinTruthJet1; 00075 double m_etaMaxTruthJet1; 00076 double m_etaMinTruthJet2; 00077 double m_etaMaxTruthJet2; 00078 double m_deltaPhi; 00079 double m_jet2ETOverjet1ET; 00080 00081 bool m_haveSeteMin; 00082 bool m_haveSetetMin; 00083 bool m_haveSetptMin; 00084 bool m_haveSetetaMin; 00085 bool m_haveSetetaMax; 00086 00087 bool m_haveSetetMinTruthJet1; 00088 bool m_haveSetetMinTruthJet2; 00089 bool m_haveSetetaMinTruthJet1; 00090 bool m_haveSetetaMaxTruthJet1; 00091 bool m_haveSetetaMinTruthJet2; 00092 bool m_haveSetetaMaxTruthJet2; 00093 bool m_haveSetDeltaPhi; 00094 bool m_haveSetJet2ETOverJet1ET; 00095 00096 }; 00097 00098 } 00099 00100 #endif