File indexing completed on 2025-08-03 08:20:27
0001 #ifndef MACRO_TRKREVAL_C
0002 #define MACRO_TRKREVAL_C
0003
0004 #include <GlobalVariables.C>
0005 #include <G4_TrkrVariables.C>
0006 #include <Trkr_TruthTables.C>
0007 #include <g4eval/SvtxEvaluator.h>
0008 #include <g4eval/TruthRecoTrackMatching.h>
0009 #include <g4eval/TrkrClusterIsMatcher.h>
0010 #include <g4eval/FillClusMatchTree.h>
0011
0012 R__LOAD_LIBRARY(libg4eval.so)
0013
0014 void Tracking_Eval(const std::string& outputfile)
0015 {
0016 int verbosity = std::max(Enable::VERBOSITY, Enable::TRACKING_VERBOSITY);
0017
0018
0019
0020
0021
0022 Fun4AllServer* se = Fun4AllServer::instance();
0023 build_truthreco_tables();
0024
0025
0026
0027
0028 SvtxEvaluator* eval;
0029 eval = new SvtxEvaluator("SVTXEVALUATOR", outputfile, "SvtxTrackMap",
0030 G4MVTX::n_maps_layer,
0031 G4INTT::n_intt_layer,
0032 G4TPC::n_gas_layer,
0033 G4MICROMEGAS::n_micromegas_layer);
0034 eval->do_cluster_eval(true);
0035 eval->do_g4hit_eval(false);
0036 eval->do_hit_eval(false);
0037 eval->do_gpoint_eval(true);
0038 eval->do_vtx_eval_light(true);
0039 eval->do_eval_light(true);
0040 eval->do_track_eval(true);
0041 eval->do_gtrack_eval(true);
0042 eval->do_track_match(true);
0043 eval->set_use_initial_vertex(G4TRACKING::g4eval_use_initial_vertex);
0044 bool embed_scan = true;
0045 if(TRACKING::pp_mode) embed_scan = false;
0046 eval->scan_for_embedded(embed_scan);
0047 eval->scan_for_primaries(embed_scan);
0048 std::cout << "SvtxEvaluator: pp_mode set to " << TRACKING::pp_mode << " and scan_for_embedded set to " << embed_scan << std::endl;
0049 eval->Verbosity(verbosity);
0050
0051 se->registerSubsystem(eval);
0052
0053 return;
0054 }
0055
0056 void Track_Matching(const std::string& ttreefilename) {
0057 TrkrClusterIsMatcher* ismatcher = new TrkrClusterIsMatcher();
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073 auto trackmatcher = new TruthRecoTrackMatching(ismatcher);
0074 trackmatcher->set_min_cl_match (5);
0075 trackmatcher->set_min_cl_ratio (0.1);
0076 trackmatcher->set_cutoff_deta (0.3);
0077 trackmatcher->set_cutoff_dphi (0.3);
0078 trackmatcher->set_smallsearch_deta (0.05);
0079 trackmatcher->set_smallsearch_dphi (0.05);
0080 trackmatcher->set_max_nreco_per_truth (4);
0081 trackmatcher->set_max_ntruth_per_reco (4);
0082 int verbosity = std::max(Enable::VERBOSITY, Enable::TRACKING_VERBOSITY);
0083
0084 Fun4AllServer *se = Fun4AllServer::instance();
0085 trackmatcher->Verbosity(verbosity);
0086 se->registerSubsystem(trackmatcher);
0087
0088 if (Enable::TRACK_MATCHING_TREE) {
0089 auto treefiller = new FillClusMatchTree(ismatcher, ttreefilename);
0090 treefiller->Verbosity(verbosity);
0091 if (Enable::TRACK_MATCHING_TREE_CLUSTERS) {
0092 treefiller->m_fill_clusters = true;
0093 treefiller->m_fill_SvUnmatched = true;
0094 } else {
0095 treefiller->m_fill_clusters = false;
0096 treefiller->m_fill_SvUnmatched = false;
0097 }
0098 treefiller->m_fill_clusverbose = false;
0099 se->registerSubsystem(treefiller);
0100 }
0101 }
0102
0103 #endif