Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:11:03

0001 // ----------------------------------------------------------------------------
0002 // 'STrackMatcherComparatorHistDef.h'
0003 // Derek Anderson
0004 // 02.01.2024
0005 //
0006 // Struct to hold histogram defintions/parameters for 'STrackMatcherComparator'
0007 // module.
0008 // ----------------------------------------------------------------------------
0009 
0010 #ifndef STRACKMATCHERCOMPARATORHISTDEF_H
0011 #define STRACKMATCHERCOMPARATORHISTDEF_H
0012 
0013 // c++ utilities
0014 #include <string>
0015 #include <vector>
0016 #include <utility>
0017 
0018 // make common namespaces implicit
0019 using namespace std;
0020 
0021 
0022 
0023 // STrackMatcherComparatorHistDef definition ----------------------------------
0024 
0025 struct STrackMatcherComparatorHistDef {
0026 
0027   // output histogram base names
0028   vector<vector<string>> vecNameBase = {
0029     {"hTruthNumTot",  "hTrackNumTot",  "hWeirdNumTot",  "hNormNumTot"},
0030     {"hTruthNumIntt", "hTrackNumIntt", "hWeirdNumIntt", "hNormNumIntt"},
0031     {"hTruthNumMvtx", "hTrackNumMvtx", "hWeirdNumMvtx", "hNormNumMvtx"},
0032     {"hTruthNumTpc",  "hTrackNumTpc",  "hWeirdNumTpc",  "hNormNumTpc"},
0033     {"hTruthRatTot",  "hTrackRatTot",  "hWeirdRatTot",  "hNormRatTot"},
0034     {"hTruthRatIntt", "hTrackRatIntt", "hWeirdRatIntt", "hNormRatIntt"},
0035     {"hTruthRatMvtx", "hTrackRatMvtx", "hWeirdRatMvtx", "hNormRatMvtx"},
0036     {"hTruthRatTpc",  "hTrackRatTpc",  "hWeirdRatTpc",  "hNormRatTpc"},
0037     {"hTruthPhi",     "hTrackPhi",     "hWeirdPhi",     "hNormPhi"},
0038     {"hTruthEta",     "hTrackEta",     "hWeirdEta",     "hNormEta"},
0039     {"hTruthPt",      "hTrackPt",      "hWeirdPt",      "hNormPt"},
0040     {"hTruthFrac",    "hTrackFrac",    "hWeirdFrac",    "hNormFrac"},
0041     {"hTruthQual",    "hTrackQual",    "hWeirdQual",    "hNormQual"},
0042     {"hTruthPtErr",   "hTrackPtErr",   "hWeirdPtErr",   "hNormPtErr"},
0043     {"hTruthEtaErr",  "hTrackEtaErr",  "hWeirdEtaErr",  "hNormEtaErr"},
0044     {"hTruthPhiErr",  "hTrackPhiErr",  "hWeirdPhiErr",  "hNormPhiErr"},
0045     {"hTruthPtRes",   "hTrackPtRes",   "hWeirdPtRes",   "hNormPtRes"},
0046     {"hTruthEtaRes",  "hTrackEtaRes",  "hWeirdEtaRes",  "hNormEtaRes"},
0047     {"hTruthPhiRes",  "hTrackPhiRes",  "hWeirdPhiRes",  "hNormPhiRes"}
0048   };
0049 
0050   // 2D histogram name modifiers
0051   vector<string> vecVsModifiers = {
0052     "VsTruthPt",
0053     "VsNumTpc"
0054   };
0055 
0056   // axis titles
0057   vector<string> vecBaseAxisVars = {
0058     "N^{tot} = N_{hit}^{mvtx} + N_{hit}^{intt} + N_{clust}^{tpc}",
0059     "N_{hit}^{intt}",
0060     "N_{hit}^{mvtx}",
0061     "N_{clust}^{tpc}",
0062     "N_{reco}^{tot} / N_{true}^{tot}",
0063     "N_{reco}^{intt} / N_{true}^{intt}",
0064     "N_{reco}^{mvtx} / N_{true}^{mvtx}",
0065     "N_{reco}^{tpc} / N_{true}^{tpc}",
0066     "#varphi",
0067     "#eta",
0068     "p_{T} [GeV/c]",
0069     "p_{T}^{reco} / p_{T}^{true}",
0070     "#chi^{2} / ndf",
0071     "#deltap_{T} / p_{T}^{reco}",
0072     "#delta#eta / #eta^{reco}",
0073     "#delta#varphi / #varphi^{reco}",
0074     "|p_{T}^{reco} - p_{T}^{true}| / p_{T}^{true}",
0075     "|#eta^{reco} - #eta^{true}| / #eta^{true}",
0076     "|#varphi^{reco} - #varphi^{true}| / #varphi^{true}"
0077   };
0078   vector<string> vecVsAxisVars = {
0079     "p_{T}^{true} [GeV/c]",
0080     "N_{clust}^{tpc}"
0081   };
0082 
0083   // output histogram no. of bins
0084   uint32_t nNumBins  = 101;
0085   uint32_t nRatBins  = 120;
0086   uint32_t nEtaBins  = 80;
0087   uint32_t nPhiBins  = 360;
0088   uint32_t nPtBins   = 101;
0089   uint32_t nFracBins = 220;
0090   uint32_t nQualBins = 210;
0091   uint32_t nResBins  = 110;
0092 
0093   // output histogram bin ranges
0094   pair<float, float> xNumBins  = {-0.5,  100.5};
0095   pair<float, float> xRatBins  = {-0.5,  5.5};
0096   pair<float, float> xEtaBins  = {-2.,   2.};
0097   pair<float, float> xPhiBins  = {-3.15, 3.15};
0098   pair<float, float> xPtBins   = {-0.5,  100.5};
0099   pair<float, float> xFracBins = {-0.5,  10.5};
0100   pair<float, float> xQualBins = {-0.5,  20.5};
0101   pair<float, float> xResBins  = {-5.5,  5.5};
0102 
0103   // construct list of 1d binning
0104   vector<tuple<uint32_t, pair<float, float>>> GetVecHistBins() {
0105 
0106     vector<tuple<uint32_t, pair<float, float>>> vecBaseHistBins = {
0107       make_tuple(nNumBins,  xNumBins),
0108       make_tuple(nNumBins,  xNumBins),
0109       make_tuple(nNumBins,  xNumBins),
0110       make_tuple(nNumBins,  xNumBins),
0111       make_tuple(nRatBins,  xRatBins),
0112       make_tuple(nRatBins,  xRatBins),
0113       make_tuple(nRatBins,  xRatBins),
0114       make_tuple(nRatBins,  xRatBins),
0115       make_tuple(nPhiBins,  xPhiBins),
0116       make_tuple(nEtaBins,  xEtaBins),
0117       make_tuple(nPtBins,   xPtBins),
0118       make_tuple(nFracBins, xFracBins),
0119       make_tuple(nQualBins, xQualBins),
0120       make_tuple(nResBins,  xResBins),
0121       make_tuple(nResBins,  xResBins),
0122       make_tuple(nResBins,  xResBins),
0123       make_tuple(nResBins,  xResBins),
0124       make_tuple(nResBins,  xResBins),
0125       make_tuple(nResBins,  xResBins)
0126     };
0127     return vecBaseHistBins;
0128 
0129   }  // end 'GetVecHistBins()'
0130 
0131   // contruct list of 2d x-axis binning
0132   vector<tuple<uint32_t, pair<float, float>>> GetVecVsHistBins() {
0133 
0134     vector<tuple<uint32_t, pair<float, float>>> vecVsHistBins = {
0135       make_tuple(nPtBins,  xPtBins),
0136       make_tuple(nNumBins, xNumBins)
0137     };
0138     return vecVsHistBins;
0139 
0140   }  // end 'GetVecVsHistBins()'
0141 
0142 };
0143 
0144 #endif
0145 
0146 // end ------------------------------------------------------------------------
0147