78 TFile* f = TFile::Open(inFilename.c_str(),
"UPDATE");
81 if (f == 0 || !f->IsOpen()) {
82 std::cerr <<
"--> HLTEgammaPostProcess: Input file not opened" << std::endl;
89 std::cerr <<
"--> HLTEgammaPostProcess: Input file " << inFilename <<
" cannot be opened. " << std::endl;
95 if (f->GetSize() < 1000.) {
96 std::cerr <<
"--> HLTEgammaPostProcess: Input file empty" << std::endl;
103 TIter next_run(f->GetListOfKeys());
107 while ((key_run =
dynamic_cast<TKey*
>(next_run())) != 0) {
108 TObject* obj_run = key_run->ReadObj();
109 TDirectory* tdir_run =
dynamic_cast<TDirectory*
>(obj_run);
118 std::string runDirName(tdir_run->GetName());
123 if (runDirName.find(
"run") == std::string::npos) {
129 std::string egammamonDirName = runDirName +
"/HLT/EgammaSigTE";
130 TDirectory* egammamonDir(0);
131 if (!(egammamonDir = f->GetDirectory(egammamonDirName.c_str()))) {
132 std::cout <<
"--> HLTEgammaPostProcess: directory " << egammamonDirName <<
" not found." << std::endl;
138 std::string offgammaDirName = egammamonDirName +
"/OfflinePhoton";
139 std::string offeleDirName = egammamonDirName +
"/OfflineElectron";
140 TDirectory* offgammaDir(0);
141 TDirectory* offeleDir(0);
142 if (!(offgammaDir = f->GetDirectory(offgammaDirName.c_str()))) {
143 std::cout <<
"--> HLTEgammaPostProcess: offline directory " << offgammaDirName <<
" not found, will abort.\n";
147 if (!(offeleDir = f->GetDirectory(offeleDirName.c_str()))) {
148 std::cout <<
"--> HLTEgammaPostProcess: offline directory " << offeleDirName <<
" not found, will abort.\n";
155 TIter next_trig(egammamonDir->GetListOfKeys());
157 while ((key_trig =
dynamic_cast<TKey*
>(next_trig())) != 0) {
159 bool photon_chain(
false);
160 bool electron_chain(
false);
161 TObject* obj_trig = key_trig->ReadObj();
162 TDirectory* dir_trig =
dynamic_cast<TDirectory*
>(obj_trig);
171 std::string trigger_name = dir_trig->GetName();
174 if (trigger_name.find(
"Offline") != std::string::npos) {
180 if (trigger_name.starts_with(
"g") || trigger_name.starts_with(
"2g")) photon_chain =
true;
181 else if (trigger_name.starts_with(
"e") || trigger_name.starts_with(
"2e")) electron_chain =
true;
183 std::cout <<
"--> HLTEgammaPostProcess: Non-electron/photon chain detected, will be skipped!\n";
204 if (electron_chain) {
static void HLTEgammaEfficiencyRel(TFile *f, TDirectory *trig_dir, const std::string &pathPre, const std::string &pathRej, const std::vector< std::string > &objStage, const std::vector< std::string > &varName)