diff --git a/benchmarks/tracking_performances/Snakefile b/benchmarks/tracking_performances/Snakefile index b449db24922953d1fbe89edd5b90223716fb5a4b..a197d8a76c2c902a26b1731e4639cffc2b7f02d7 100644 --- a/benchmarks/tracking_performances/Snakefile +++ b/benchmarks/tracking_performances/Snakefile @@ -42,7 +42,7 @@ rule tracking_performance_recon: set -m # monitor mode to prevent lingering processes exec env DETECTOR_CONFIG={wildcards.DETECTOR_CONFIG} \ eicrecon {input} -Ppodio:output_file={output} \ - -Ppodio:output_collections=MCParticles,CentralCKFTrajectories,CentralCKFTrackParameters,CentralCKFSeededTrackParameters,CentralTrackVertices + -Ppodio:output_collections=MCParticles,CentralCKFTrajectories,CentralCKFTrackParameters,CentralCKFSeededTrackParameters,CentralCKFTruthSeededTrackParameters,CentralTrackVertices """ @@ -73,13 +73,13 @@ rule tracking_performance_at_momentum: shell: """ if [[ "{wildcards.SEEDING}" == "truthseed" ]]; then - SEEDING="" + TRUTH_SEEDING="true" elif [[ "{wildcards.SEEDING}" == "realseed" ]]; then - SEEDING="Seeded" + TRUTH_SEEDING="false" fi hadd {output.combined_root} {input.sim} cd {wildcards.CAMPAIGN} -root -l -b -q ../{input.script}'("../{output.combined_root}", "{wildcards.PARTICLE}", {wildcards.MOMENTUM}, 0.15, "'$SEEDING'")' +root -l -b -q ../{input.script}'("../{output.combined_root}", "{wildcards.PARTICLE}", {wildcards.MOMENTUM}, 0.15, '$TRUTH_SEEDING')' """ diff --git a/benchmarks/tracking_performances/Tracking_Performances.C b/benchmarks/tracking_performances/Tracking_Performances.C index 77fc0202b85dfa8b33fc1f2ce9a57f8a9a6986b7..a721e8a17416d1a75a2c98e571b812d5c3200449 100644 --- a/benchmarks/tracking_performances/Tracking_Performances.C +++ b/benchmarks/tracking_performances/Tracking_Performances.C @@ -10,7 +10,7 @@ #include "TMath.h" #define mpi 0.139 // 1.864 GeV/c^2 -void Tracking_Performances(TString filename="tracking_output",TString particle="pi-", double mom=0.1, Double_t pTcut = 0.15, TString name = "") +void Tracking_Performances(TString filename="tracking_output",TString particle="pi-", double mom=0.1, Double_t pTcut = 0.15, bool truth_seeding=false) { // style of the plot @@ -23,11 +23,6 @@ void Tracking_Performances(TString filename="tracking_output",TString particle=" gStyle->SetOptFit(1); gStyle->SetOptStat(1); - TString dir = ""; - TString dist_dir_mom = ""; TString dist_dir_dca = ""; - if (name=="") {dist_dir_mom = "mom_resol_truth"; dist_dir_dca = "dca_resol_truth"; dir = "truthseed";} - else {dist_dir_mom = "mom_resol_realseed"; dist_dir_dca = "dca_resol_realseed"; dir = "realseed";} - bool debug=true; // Tree with reconstructed tracks const int nbins_eta = 5; @@ -51,6 +46,32 @@ void Tracking_Performances(TString filename="tracking_output",TString particle=" TTreeReader myReader("events", file); // name of tree and file if (debug) cout<<"Filename: "<<file->GetName()<<"\t NEvents: "<<myReader.GetEntries()<<endl; + TTree *tree = dynamic_cast<TTree*>(file->Get("events")); + if (!(tree->GetBranch("CentralCKFSeededTrackParameters") || tree->GetBranch("CentralCKFTruthSeededTrackParameters"))) { + cerr << "Found neither CentralCKFSeededTrackParameters nor CentralCKFTruthSeededTrackParameters!" << endl; + return; + } + bool is_old_style = tree->GetBranch("CentralCKFSeededTrackParameters"); + + TString dir = ""; + TString dist_dir_mom = ""; TString dist_dir_dca = ""; + TString tag = ""; + if (truth_seeding) { + dist_dir_mom = "mom_resol_truth"; dist_dir_dca = "dca_resol_truth"; dir = "truthseed"; + if (is_old_style) { + tag = ""; + } else { + tag = "TruthSeeded"; + } + } else { + dist_dir_mom = "mom_resol_realseed"; dist_dir_dca = "dca_resol_realseed"; dir = "realseed"; + if (is_old_style) { + tag = "Seeded"; + } else { + tag = ""; + } + } + // MC and Reco information TTreeReaderArray<Float_t> charge(myReader, "MCParticles.charge"); TTreeReaderArray<Double_t> vx_mc(myReader, "MCParticles.vertex.x"); @@ -61,12 +82,12 @@ void Tracking_Performances(TString filename="tracking_output",TString particle=" TTreeReaderArray<Float_t> pz_mc(myReader, "MCParticles.momentum.z"); TTreeReaderArray<Int_t> status(myReader, "MCParticles.generatorStatus"); TTreeReaderArray<Int_t> pdg(myReader, "MCParticles.PDG"); - TTreeReaderArray<Int_t> match_flag(myReader, Form("CentralCKF%sTrackParameters.type",name.Data())); - TTreeReaderArray<Float_t> d0xy(myReader, Form("CentralCKF%sTrackParameters.loc.a",name.Data())); - TTreeReaderArray<Float_t> d0z(myReader, Form("CentralCKF%sTrackParameters.loc.b",name.Data())); - TTreeReaderArray<Float_t> theta(myReader, Form("CentralCKF%sTrackParameters.theta",name.Data())); - TTreeReaderArray<Float_t> phi(myReader, Form("CentralCKF%sTrackParameters.phi",name.Data())); - TTreeReaderArray<Float_t> qoverp(myReader, Form("CentralCKF%sTrackParameters.qOverP",name.Data())); + TTreeReaderArray<Int_t> match_flag(myReader, Form("CentralCKF%sTrackParameters.type",tag.Data())); + TTreeReaderArray<Float_t> d0xy(myReader, Form("CentralCKF%sTrackParameters.loc.a",tag.Data())); + TTreeReaderArray<Float_t> d0z(myReader, Form("CentralCKF%sTrackParameters.loc.b",tag.Data())); + TTreeReaderArray<Float_t> theta(myReader, Form("CentralCKF%sTrackParameters.theta",tag.Data())); + TTreeReaderArray<Float_t> phi(myReader, Form("CentralCKF%sTrackParameters.phi",tag.Data())); + TTreeReaderArray<Float_t> qoverp(myReader, Form("CentralCKF%sTrackParameters.qOverP",tag.Data())); int count =0; int matchId = 1; // Always matched track assigned the index 0