Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:12:51

0001 int
0002 makePlot_track_pscan()
0003 {
0004   gStyle->SetOptStat(0);
0005 
0006   TCut cut_primary( "gtrackID==1" );
0007   TCut cut_eta( "abs( (-1*log( tan( atan2( sqrt(px*px+py*py), pz ) / 2.0 ) )) - (-1*log( tan( atan2( sqrt(gpx*gpx+gpy*gpy), gpz ) / 2.0 ) ) ) ) < 1 ");
0008   TCut cut_p( "abs( sqrt(px*px+py*py+pz*pz) - sqrt(gpx*gpx+gpy*gpy+gpz*gpz) ) < 1" );
0009 
0010   vector< string > suffixes;
0011   suffixes.push_back( "muon_10GeV_-2.5Eta" );
0012   suffixes.push_back( "muon_11GeV_-2.5Eta" );
0013   suffixes.push_back( "muon_12GeV_-2.5Eta" );
0014   suffixes.push_back( "muon_13GeV_-2.5Eta" );
0015   suffixes.push_back( "muon_14GeV_-2.5Eta" );
0016   suffixes.push_back( "muon_15GeV_-2.5Eta" );
0017   suffixes.push_back( "muon_16GeV_-2.5Eta" );
0018   suffixes.push_back( "muon_17GeV_-2.5Eta" );
0019   suffixes.push_back( "muon_18GeV_-2.5Eta" );
0020   suffixes.push_back( "muon_19GeV_-2.5Eta" );
0021   suffixes.push_back( "muon_1GeV_-2.5Eta" );
0022   suffixes.push_back( "muon_20GeV_-2.5Eta" );
0023   suffixes.push_back( "muon_21GeV_-2.5Eta" );
0024   suffixes.push_back( "muon_22GeV_-2.5Eta" );
0025   suffixes.push_back( "muon_23GeV_-2.5Eta" );
0026   suffixes.push_back( "muon_24GeV_-2.5Eta" );
0027   suffixes.push_back( "muon_25GeV_-2.5Eta" );
0028   suffixes.push_back( "muon_26GeV_-2.5Eta" );
0029   suffixes.push_back( "muon_27GeV_-2.5Eta" );
0030   suffixes.push_back( "muon_28GeV_-2.5Eta" );
0031   suffixes.push_back( "muon_29GeV_-2.5Eta" );
0032   suffixes.push_back( "muon_2GeV_-2.5Eta" );
0033   suffixes.push_back( "muon_30GeV_-2.5Eta" );
0034   suffixes.push_back( "muon_3GeV_-2.5Eta" );
0035   suffixes.push_back( "muon_4GeV_-2.5Eta" );
0036   suffixes.push_back( "muon_5GeV_-2.5Eta" );
0037   suffixes.push_back( "muon_6GeV_-2.5Eta" );
0038   suffixes.push_back( "muon_7GeV_-2.5Eta" );
0039   suffixes.push_back( "muon_8GeV_-2.5Eta" );
0040   suffixes.push_back( "muon_9GeV_-2.5Eta" );
0041 
0042   TString base("../../data/data_trackeval_pscan/eval_track_fastsim_");
0043 
0044   vector< float > v_ptrue;
0045   vector< float > v_deltap_sigma;
0046   vector< float > v_deltap_over_p_sigma;
0047 
0048   for ( unsigned i = 0; i < suffixes.size(); i++ )
0049     {
0050       TString file = base;
0051       file.Append( suffixes.at(i) );
0052       file.Append(".root");
0053 
0054       TFile* fin = new TFile(file, "OPEN");
0055       TTree *tin = (TTree*)fin->Get("tracks");
0056 
0057       TH1F* h_delta = new TH1F( "h_delta", "", 200, -1, 1 );
0058       TH1F* h_delta_rel = new TH1F( "h_delta_rel", "", 200, -1, 1 );
0059       TH1F* h_ptrue = new TH1F( "h_ptrue", "", 31, -0.5, 30 );
0060 
0061       tin->Draw("( sqrt(px*px+py*py+pz*pz) - sqrt(gpx*gpx+gpy*gpy+gpz*gpz) ) >> h_delta", cut_primary );
0062       tin->Draw("( sqrt(px*px+py*py+pz*pz) - sqrt(gpx*gpx+gpy*gpy+gpz*gpz) ) / sqrt(gpx*gpx+gpy*gpy+gpz*gpz) >> h_delta_rel",  cut_primary );
0063       tin->Draw("sqrt(gpx*gpx+gpy*gpy+gpz*gpz) >> h_ptrue",  cut_primary );
0064 
0065       v_ptrue.push_back( h_ptrue->GetMean() );
0066       v_deltap_sigma.push_back( h_delta->GetRMS() );
0067       v_deltap_over_p_sigma.push_back( h_delta_rel->GetRMS() );
0068     }
0069 
0070   TGraphErrors *g1 = new TGraphErrors( v_ptrue.size(), &(v_ptrue[0]), &(v_deltap_over_p_sigma[0]) );
0071 
0072   TCanvas *c1 = new TCanvas();
0073 
0074   TH1F* hframe = new TH1F("hframe","",31,-0.5,30.5);
0075   hframe->GetXaxis()->SetTitle("p_{true} (GeV)");
0076   hframe->GetYaxis()->SetTitle("#sigma ( ( p_{reco} - p_{true} ) / p_{true} )");
0077   hframe->GetYaxis()->SetRangeUser(0,0.15);
0078   hframe->Draw();
0079   g1->Draw("Psame");
0080 
0081 //  TCanvas *c3 = new TCanvas();
0082 //  chain.Draw("( sqrt(px*px+py*py+pz*pz) - sqrt(gpx*gpx+gpy*gpy+gpz*gpz) ) / sqrt(gpx*gpx+gpy*gpy+gpz*gpz) : sqrt(gpx*gpx+gpy*gpy+gpz*gpz)  >> h3(31, -0.5, 30.5, 50, -0.5, 0.5)", cut_primary, "colz");
0083 //  h3->GetXaxis()->SetTitle("#p_{true}");
0084 //  h3->GetYaxis()->SetTitle("( p_{reco} - p_{true} ) / p_{true}");
0085 //  c3->Print("plots/track_pscan_c3.eps");
0086 
0087   return 1;
0088 }