Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-10-15 08:17:25

0001 #ifndef FINALIZE_HISTS_H
0002 #define FINALIZE_HISTS_H
0003 #include <cstdlib>
0004 #include "TString.h"
0005 #ifndef CORRAL_DIR_DEFAULT
0006 #define CORRAL_DIR_DEFAULT "./"
0007 #endif
0008 inline TString CorralDir(){
0009     const char* e   = getenv("CORRAL_DIR");
0010     TString d       = (e && *e) ? TString(e) : TString(CORRAL_DIR_DEFAULT);
0011     if (!d.EndsWith("/")) d += "/";
0012     return d;
0013 }
0014 //
0015 // Finalize configuration (README_Finalize.md). Edit this file to choose what Finalize processes.
0016 //
0017 // FINALIZE_SET : default dataset to combine = lists/<set>/ (manifest.txt gives nlists) and
0018 //                root/<set>/chunks/<prefix>_NN.root (made by run_m_array.bash; <prefix> = CorralFilePrefix(set):
0019 //                corral_m for ana532, corral from ana573 on); -d <dataset> overrides
0020 // FINALIZE_REF : single-job full-stats reference to compare against, root/<dataset>/FINALIZE_REF
0021 // CorralDir()  : project directory holding lists/ and root/ = $CORRAL_DIR if set, else the source
0022 //                tree the binary was built from (CORRAL_DIR_DEFAULT, set by CMakeLists.txt)
0023 // FinalizeHists: histogram BASE names; Finalize appends _<ipaty> for every pairtype, so
0024 //                "hmult" -> hmult_0 .. hmult_15, "hrho2_1" -> hrho2_1_0 .. hrho2_1_15.
0025 //                Naming in the corral_m root files:
0026 //                  hzvtx, hmult, hmult1, hmult2, hy1, hy2          (per pairtype)
0027 //                  hrho2_<ir2>      rho2(S)   ir2: 0=(y1,y2) 1=(dy,dphi) 2=(dy,dq)
0028 //                  hrho1rho1_<ir2>  rho2(M)
0029 //                  hC2_<ir2>, hR2_<ir2>
0030 //                  hrho2C_1, hC2C_1, hR2C_1   crossing-corrected (dy,dphi)
0031 //                  hMempty_1                  # used Zvtx slices with empty rho2(M)
0032 //                  hR2dy, hR2dphi, hR2yydy, hR2dq, hCQ, hQsib, hQmix, hMinv_S, hMinv_M, hMinv
0033 //
0034 static const char*  FINALIZE_SET    = "ana532";     // default dataset; -d <dataset> overrides
0035 //---- File-name convention per dataset (user 2026-09-27: the dataset decides, not a file-exists guess).
0036 //---- ana532 was made when the binary was corral_m: root/ana532/corral_m.root, chunks/corral_m_NN.root.
0037 //---- Every later dataset (ana573 on): root/<set>/corral.root, chunks/corral_NN.root. Add a dataset to
0038 //---- the legacy list only if it was produced with the old names.
0039 inline const char* CorralFilePrefix(const char* set){
0040     static const char* LEGACY[] = { "ana532" };
0041     for (const char* l : LEGACY) if (TString(set)==l) return "corral_m";
0042     return "corral";
0043 }
0044 static const double FINALIZE_FIELD  = 1.4;      // must match `double field` in corral_loop.cxx (crossing dirty side)
0045 //
0046 // Zvtx-average validity (README_Finalize step 3, option A): the threshold N_min is now PER PAIRTYPE,
0047 // the 3rd field of PairTypes_Info in PairTypes.h (user 2026-09-26). The environment variable
0048 // FINALIZE_NEXPMIN overrides it for all pairtypes (scans).
0049 //
0050 // CF names (hrho2_<ir2>, hrho1rho1_<ir2>, hC2_<ir2>, hR2_<ir2>, hrho2C_1, hC2C_1, hR2C_1) get the full
0051 // per-zvtx-bin treatment (README_Finalize step 2); any other name is a plain sum over chunks.
0052 static const char*  FinalizeHists[] = {
0053                         "hzvtx",
0054                         "hmult",
0055                         "hmult1",
0056                         "hmult2",
0057                         "hrho2_0",
0058                         "hrho1rho1_0",
0059                         "hC2_0",
0060                         "hR2_0",
0061                         "hrho2_1",
0062                         "hrho1rho1_1",
0063                         "hC2_1",
0064                         "hR2_1",
0065                         "hrho2C_1",
0066                         "hC2C_1",
0067                         "hR2C_1",
0068                     };
0069 static const int    NFINALIZEHISTS  = sizeof(FinalizeHists)/sizeof(FinalizeHists[0]);
0070 
0071 #endif