Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #include "emid_commons.h"
0002 
0003 /**
0004  * Compare reconstructed observables between tau jets and quark jets
0005  *
0006  * Written by nils.feege@stonybrook.edu
0007  */
0008 int compare_observables()
0009 {
0010   gStyle->SetOptStat(0);
0011 
0012   unsigned col_ele = kBlue+2;
0013   unsigned col_cpi = kOrange+7;
0014 
0015   /* open inout files and merge trees */
0016   TChain chain("event");
0017   chain.Add("eicana_disreco_nc_1k.root");
0018 
0019   /* Create temporary canvas */
0020   TCanvas* ctemp = new TCanvas();
0021 
0022   vector< TString > observables;
0023   vector< TString > observables_name;
0024 
0025   vector< float > plots_ymax;
0026   vector< float > plots_xmin;
0027   vector< float > plots_xmax;
0028 
0029   /* eta_true */
0030   observables.push_back( "em_evtgen_eta" );
0031   observables_name.push_back( "#eta_{true}" );
0032   plots_ymax.push_back(0.3);
0033   plots_xmin.push_back(-5.);
0034   plots_xmax.push_back(5.);
0035 
0036   /* em_cluster_eta */
0037   observables.push_back( "-1*log(tan(em_cluster_theta/2.0))" );
0038   observables_name.push_back( "#eta_{cluster}" );
0039   plots_ymax.push_back(0.3);
0040   plots_xmin.push_back(-5.);
0041   plots_xmax.push_back(5.);
0042 
0043   /* em_cluster_prob */
0044   observables.push_back( "em_cluster_prob" );
0045   observables_name.push_back( "em_cluster probablility" );
0046   plots_ymax.push_back(0.3);
0047   plots_xmin.push_back(0.0);
0048   plots_xmax.push_back(1.0);
0049 
0050   /*E/p*/
0051   observables.push_back( "em_cluster_e / em_track_ptotal" );
0052   observables_name.push_back( "E/p" );
0053   plots_ymax.push_back(0.3);
0054   plots_xmin.push_back(0.0);
0055   plots_xmax.push_back(100.0);
0056 
0057   /* Plot distributions */
0058   TString name_ele_base("h_ele_");
0059   TString name_cpi_base("h_cpi_");
0060 
0061   for ( unsigned i = 0; i < observables.size(); i++ )
0062     {
0063       cout << "Plotting " << observables.at(i) << endl;
0064 
0065       ctemp->cd();
0066 
0067       TString name_ele_i = name_ele_base;
0068       name_ele_i.Append(i);
0069 
0070       TString name_cpi_i = name_cpi_base;
0071       name_cpi_i.Append(i);
0072 
0073       TH1F* h_ele = new TH1F( name_ele_i, "", 100, plots_xmin.at(i), plots_xmax.at(i));
0074       TH1F* h_cpi = new TH1F( name_cpi_i, "", 100, plots_xmin.at(i), plots_xmax.at(i));
0075 
0076       chain.Draw( observables.at(i) + " >> " + name_ele_i, emid_commons::select_true_ele && emid_commons::select_match, "");
0077       h_ele->Scale(1./h_ele->Integral());
0078       h_ele->GetXaxis()->SetTitle( observables_name.at(i) );
0079       h_ele->GetYaxis()->SetRangeUser(0, plots_ymax.at(i) );
0080       h_ele->SetLineColor(col_ele);
0081       h_ele->SetFillColor(col_ele);
0082       h_ele->SetFillStyle(0);
0083 
0084       chain.Draw( observables.at(i) + " >> " + name_cpi_i, emid_commons::select_true_cpi && emid_commons::select_match, "");
0085       h_cpi->Scale(1./h_cpi->Integral());
0086       h_cpi->SetLineColor(col_cpi);
0087       h_cpi->SetFillColor(col_cpi);
0088       h_cpi->SetFillStyle(1001);
0089 
0090       /* create Canvas and draw histograms */
0091       TCanvas *c1 = new TCanvas();
0092 
0093       h_ele->DrawClone("");
0094       h_cpi->DrawClone("sames");
0095       h_ele->DrawClone("sames");
0096 
0097       gPad->RedrawAxis();
0098 
0099       c1->Print( Form( "plots/compare_observables_%d.eps", i ) );
0100       c1->Print( Form( "plots/compare_observables_%d.png", i ) );
0101     }
0102 
0103   return 0;
0104 }