00001
00002 #include "tmb_tree/TMBEventFlags.hpp"
00003
00004 ClassImp(TMBEventFlags);
00005
00006 TMBEventFlags::Mapping TMBEventFlags::s_mapping[] =
00007 {
00008 { SELREPRO_1EM, "SELREPRO_1EM" },
00009 { SELREPRO_2EM, "SELREPRO_2EM" },
00010 { SELREPRO_1MU, "SELREPRO_1MU" },
00011 { SELREPRO_2MU, "SELREPRO_2MU" },
00012 { SELREPRO_EMMU, "SELREPRO_EMMU" },
00013 { SELREPRO_QCDJET, "SELREPRO_QCDJET" },
00014 { SELREPRO_MULTIJET, "SELREPRO_MULTIJET" },
00015 { SELREPRO_MHT30_3CJT5, "SELREPRO_MHT30_3CJT5" },
00016 { SELREPRO_JES, "SELREPRO_JES" },
00017 { SKIM_1EM2JET, "SKIM_1EM2JET" },
00018 { SKIM_1EM, "SKIM_1EM" },
00019 { SKIM_1EMloose, "SKIM_1EMloose" },
00020 { SKIM_1MU2JET, "SKIM_1MU2JET" },
00021 { SKIM_1MU, "SKIM_1MU" },
00022 { SKIM_1MUloose, "SKIM_1MUloose" },
00023 { SKIM_2EM, "SKIM_2EM" },
00024 { SKIM_2EMhighpt, "SKIM_2EMhighpt" },
00025 { SKIM_2MU, "SKIM_2MU" },
00026 { SKIM_2MUhighpt, "SKIM_2MUhighpt" },
00027 { SKIM_3JET, "SKIM_3JET" },
00028 { SKIM_EM1TRK, "SKIM_EM1TRK" },
00029 { SKIM_EM2TRK, "SKIM_EM2TRK" },
00030 { SKIM_EM_MU, "SKIM_EM_MU" },
00031 { SKIM_Higgs, "SKIM_Higgs" },
00032 { SKIM_JES_B, "SKIM_JES_B" },
00033 { SKIM_JES, "SKIM_JES" },
00034 { SKIM_JPSI, "SKIM_JPSI" },
00035 { SKIM_MB, "SKIM_MB" },
00036 { SKIM_METTRK, "SKIM_METTRK" },
00037 { SKIM_MU2TRK, "SKIM_MU2TRK" },
00038 { SKIM_NP, "SKIM_NP" },
00039 { FASTTRACK, "FASTTRACK" },
00040 { SKIM_QCD, "SKIM_QCD" },
00041 { SKIM_TAU2TRK, "SKIM_TAU2TRK" },
00042 { SKIM_ZB, "SKIM_ZB" },
00043 { SKIM_bMU, "SKIM_bMU" },
00044 { Stream_Prescale, "Stream_Prescale" },
00045 { SKIM_TOP_EMU, "SKIM_TOP_EMU" },
00046 { SKIM_TOP_ETRACK, "SKIM_TOP_ETRACK" },
00047 { SKIM_TOP_MUTRACK, "SKIM_TOP_MUTRACK" },
00048 { SKIM_TOP_ALLJETS, "SKIM_TOP_ALLJETS" },
00049 { SKIM_TOP_3JET, "SKIM_TOP_3JET" },
00050 { SKIM_TOP_EMTRIG, "SKIM_TOP_EMTRIG" },
00051 { SKIM_TOP_JETTRIG1, "SKIM_TOP_JETTRIG1" },
00052 { SKIM_TOP_JET_TRIG, "SKIM_TOP_JET_TRIG" },
00053 { SKIM_TOP_MUTRIG, "SKIM_TOP_MUTRIG" },
00054 { SKIM_TOP_MUJETBID, "SKIM_TOP_MUJETBID" },
00055 { SKIM_AA_JPSI, "SKIM_AA_JPSI" },
00056 { SKIM_AA_B_D0MU, "SKIM_AA_B_D0MU" },
00057 { SKIM_AA_B_DSMU, "SKIM_AA_B_DSMU" },
00058 { SKIM_AA_B_DSTMU_LOOSE, "SKIM_AA_B_DSTMU_LOOSE" },
00059 { SKIM_AA_B_DSTH, "SKIM_AA_B_DSTH" },
00060 { SKIM_BID, "SKIM_BID" },
00061 { SKIM_DIFF, "SKIM_DIFF" },
00062 { HAS_JCCB, "HAS_JCCB" },
00063 { HAS_2JCCB, "HAS_2JCCB" },
00064 { HAS_3JCCB, "HAS_3JCCB" },
00065 { HAS_MET_10, "HAS_MET_10" },
00066 { HAS_MET_20, "HAS_MET_20" },
00067 { HAS_MU_1_5, "HAS_MU_1_5" },
00068 { HAS_MU_5, "HAS_MU_5" },
00069 { HAS_MU_10, "HAS_MU_10" },
00070 { HAS_2MU_1_5, "HAS_2MU_1_5" },
00071 { HAS_2MU_5, "HAS_2MU_5" },
00072 { HAS_2MU_10, "HAS_2MU_10" },
00073 { HAS_ISOMU_5, "HAS_ISOMU_5" },
00074 { HAS_ISOMU_10, "HAS_ISOMU_10" },
00075 { HAS_2ISOMU_5, "HAS_2ISOMU_5" },
00076 { HAS_2ISOMU_10, "HAS_2ISOMU_10" },
00077 { HAS_EM_5, "HAS_EM_5" },
00078 { HAS_EM_10, "HAS_EM_10" },
00079 { HAS_EM_15, "HAS_EM_15" },
00080 { HAS_2EM_5, "HAS_2EM_5" },
00081 { HAS_2EM_10, "HAS_2EM_10" },
00082 { HAS_2EM_15, "HAS_2EM_15" },
00083 { HAS_ELE_5, "HAS_ELE_5" },
00084 { HAS_ELE_10, "HAS_ELE_10" },
00085 { HAS_2ELE_5, "HAS_2ELE_5" },
00086 { HAS_2ELE_10, "HAS_2ELE_10" },
00087 { HAS_TRK_5, "HAS_TRK_5" },
00088 { HAS_TRK_10, "HAS_TRK_10" },
00089 { HAS_TRK_15, "HAS_TRK_15" },
00090 { HAS_2TRK_5, "HAS_2TRK_5" },
00091 { HAS_2TRK_10, "HAS_2TRK_10" },
00092 { HAS_2TRK_15, "HAS_2TRK_15" },
00093 { HAS_ISOTRK_5, "HAS_ISOTRK_5" },
00094 { HAS_ISOTRK_10, "HAS_ISOTRK_10" },
00095 { HAS_2ISOTRK_5, "HAS_2ISOTRK_5" },
00096 { HAS_2ISOTRK_10, "HAS_2ISOTRK_10" },
00097 { HAS_TAU, "HAS_TAU" },
00098 { HAS_2TAU, "HAS_2TAU" },
00099 { SKIM_NP_MHT20, "SKIM_NP_MHT20" },
00100 { SKIM_3LEP, "SKIM_3LEP" },
00101 { SKIM_TAUTRIG, "SKIM_TAUTRIG" },
00102 { SKIM_MU2TRKhighpt, "SKIM_MU2TRKhighpt" },
00103 { SKIM_2MU1TRK, "SKIM_2MU1TRK" },
00104 { HAS_CELLNN_5, "HAS_CELLNN_5" },
00105 { HAS_CELLNN_10, "HAS_CELLNN_10" },
00106 { HAS_CELLNN_15, "HAS_CELLNN_15" },
00107 { HAS_2CELLNN_3, "HAS_2CELLNN_3" },
00108 { HAS_2CELLNN_5, "HAS_2CELLNN_5" },
00109 { HAS_2CELLNN_10, "HAS_2CELLNN_10" },
00110
00111 { (Flag )0 , 0 }
00112 };
00113
00114 TMBEventFlags::TMBEventFlags()
00115 {
00116 }
00117
00118 TMBEventFlags::~TMBEventFlags()
00119 {
00120 }
00121
00122 void TMBEventFlags::AddFlag(const char *name)
00123 {
00124 AddFlag(GetFlagValue(name));
00125 }
00126
00127
00128 void TMBEventFlags::AddFlag(Flag flag)
00129 {
00130 if(flag < 128) {
00131 SetBitNumber((UInt_t)flag);
00132 }
00133 }
00134
00135 Bool_t TMBEventFlags::HasFlag(Flag flag) const
00136 {
00137 return TestBitNumber((UInt_t )flag);
00138 }
00139
00140
00141 Bool_t TMBEventFlags::HasFlag(const char *name) const
00142 {
00143 for(Mapping *ptr = s_mapping; ptr->name != 0; ptr++) {
00144 if(strcmp(name, ptr->name) == 0) return TestBitNumber((UInt_t )ptr->flag);
00145 }
00146 return false;
00147 }
00148
00149 TMBEventFlags::Flag TMBEventFlags::GetFlagValue(const char *name) const
00150 {
00151 for(Mapping *ptr = s_mapping; ptr->name != 0; ptr++) {
00152 if(strcmp(name, ptr->name) == 0) return ptr->flag;
00153 }
00154 return (Flag )128;
00155 }
00156
00157
00158 const char *TMBEventFlags::GetFlagName(Flag flag) const
00159 {
00160 for(Mapping *ptr = s_mapping; ptr->name != 0; ptr++) {
00161 if(ptr->flag == flag) return ptr->name;
00162 }
00163 return 0;
00164 }