Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-17 07:52:39

0001 #include <map>
0002 #include <string>
0003 #include <vector>
0004 
0005 void processMicrotrack(const char* filename = "microtrack.root")
0006 {
0007   TFile* f = new TFile(filename, "UPDATE");
0008   if (!f || f->IsZombie()) {
0009     Error("processMicrotrack", "Cannot open file %s", filename);
0010     return;
0011   }
0012 
0013   // Map: histogram name -> (x axis, y axis)
0014   std::map<std::string, std::pair<const char*, const char*>> h1Axis = {
0015     {"fe", {"#varepsilon_{1} (keV)", "f(#varepsilon_{1})"}},
0016     {"efe", {"#varepsilon_{1} (keV)", "#varepsilon_{1} f(#varepsilon_{1})"}},
0017     {"e2fe", {"#varepsilon_{1} (keV)", "#varepsilon^{2}_{1} f(#varepsilon_{1})"}},
0018     {"fy", {"y (keV/#mum)", "f(y)"}},
0019     {"yfy", {"y (keV/#mum)", "y f(y)"}},
0020     {"y2fy", {"y (keV/#mum)", "y^{2} f(y)"}},
0021     {"fz", {"z_{1} (Gy)", "f(z_{1})"}},
0022     {"zfz", {"z_{1} (Gy)", "z_{1} f(z_{1})"}},
0023     {"z2fz", {"z_{1} (Gy)", "z^{2}_{1} f(z_{1})"}},
0024     {"Nsel", {"N_{sel}", "Counts"}},
0025     {"Nsite", {"N_{site}", "Counts"}},
0026     {"Nint", {"N_{int}", "Counts"}},
0027     {"KinE_in", {"T_{in} (MeV)", "Counts"}},
0028     {"KinE_out", {"T_{out} (MeV)", "Counts"}},
0029   };
0030 
0031   // 1) Set axis titles (if histograms already exist)
0032   for (const auto& kv : h1Axis) {
0033     if (TH1* h = (TH1*)f->Get(kv.first.c_str())) {
0034       h->GetXaxis()->SetTitle(kv.second.first);
0035       h->GetYaxis()->SetTitle(kv.second.second);
0036       h->Write("", TObject::kOverwrite);  // persist updates
0037     }
0038   }
0039 
0040   f->Close();
0041 }
0042