27 if (debugLevel > 1) std::cout <<
"--> HLTCaloAveragePtPhiEtaMaps: <Quantity(eta,phi)> = Quantity(eta,phi)/N(eta,phi) " << std::endl;
30 TIter next_run(f->GetListOfKeys());
32 while ((key_run =
dynamic_cast<TKey*
> (next_run())) != 0) {
33 if (!key_run->IsFolder())
continue;
34 run_dir = key_run->GetName();
35 if (run_dir.find(
"run") == std::string::npos) {
39 std::string run_dir2 = run_dir;
50 std::string hlt_top = run_dir +
"/HLT";
52 std::vector<std::string> calo_fold;
53 std::vector<std::pair<std::string, std::string> > hist_numr;
56 calo_fold.push_back(
"/CaloMon");
57 calo_fold.push_back(
"/CaloMonL2");
60 for (std::vector<std::string>::iterator it = calo_fold.begin(); it != calo_fold.end(); ++it) {
61 std::string theHistDir = hlt_top + *it;
62 TDirectory* dir = f->GetDirectory(theHistDir.c_str());
64 if (debugLevel > 0) std::cerr <<
"--> HLTCaloAveragePtPhiEtaMaps: directory " << theHistDir <<
" not found" << std::endl;
70 hist_numr.push_back(std::make_pair<std::string, std::string>(
"/EnergyAccetaphiLAr",
"/HitAccetaphiLAr"));
71 hist_numr.push_back(std::make_pair<std::string, std::string>(
"/EnergyAccetaphiTile",
"/HitAccetaphiTile"));
75 for (std::vector<std::string>::iterator itFex = calo_fold.begin(); itFex != calo_fold.end(); ++itFex) {
76 for (std::vector<std::pair<std::string, std::string> >
::iterator itNum = hist_numr.begin(); itNum != hist_numr.end(); ++itNum) {
77 TH2F* hnum(0), *hden(0);
80 std::string thePath = hlt_top + (*itFex);
81 std::string numPath = thePath + (*itNum).first;
82 std::string denPath = thePath + (*itNum).second;
85 hnum = (TH2F*) (f->Get(numPath.c_str()));
86 hden = (TH2F*) (f->Get(denPath.c_str()));
89 if (debugLevel > 0) std::cerr <<
"--> HLTCaloAveragePtPhiEtaMaps: no histogram " << numPath << std::endl;
93 if (debugLevel > 0) std::cerr <<
"--> HLTCaloAveragePtPhiEtaMaps: no histogram " << denPath << std::endl;
99 TDirectory* dir = f->GetDirectory(thePath.c_str());
106 hnum->Divide(hnum, hden);
109 std::string title = hnum->GetTitle();
110 hnum->SetTitle(
"Average Transverse Energy per eta/phi bin");
113 hnum->Write(
"", TObject::kOverwrite);