Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #include "tau_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 col1 = kOrange+7;
0013   unsigned col2 = kBlue+2;
0014 
0015 
0016   string type = "DIScharged";
0017   string seed[7] = {"1","2","3","6","7","8","9","10"};
0018   string R_max = "5";
0019   /* open inout files and merge trees */
0020   TChain chain("event");
0021 
0022   for (int g = 0; g<seed->size();g++){
0023     if(g==4 || g==5) continue;
0024     string file = "/gpfs/mnt/gpfs02/phenix/scratch/spjeffas/data/LeptoAna_p250_e20_100events_"+seed[g]+"seed_"+type+"_tau_r0"+R_max+".root";
0025     chain.Add(file.c_str());
0026   }
0027 
0028 
0029   /* particle selection */
0030   //TCut select_prong("tracks_count_r02 == 3 && tracks_chargesum_r02 == -1");
0031   //TCut select_prong("tracks_count_r04 == 3");
0032   TCut select_prong("1");
0033 
0034   /* Create temporary canvas */
0035   TCanvas* ctemp = new TCanvas();
0036 
0037   vector< TString > observables;
0038   vector< TString > observables_name;
0039 
0040   vector< float > plots_ymax;
0041   vector< float > plots_xmin;
0042   vector< float > plots_xmax;
0043 
0044   /* R_max */
0045   observables.push_back( "tracks_rmax_r04" );
0046   observables_name.push_back( "R_{track}^{max}" );
0047   plots_ymax.push_back(0.06);
0048   plots_xmin.push_back(0);
0049   plots_xmax.push_back(0.5);
0050 
0051   /* Number of tracks */
0052   observables.push_back( "tracks_count_r04" );
0053   observables_name.push_back( "N_{tracks}" );
0054   plots_ymax.push_back(0.9);
0055   plots_xmin.push_back(0);
0056   plots_xmax.push_back(10);
0057 
0058   /* Charge sum from tracks */
0059   observables.push_back( "tracks_chargesum_r04" );
0060   observables_name.push_back( "#Sigma q_{tracks}" );
0061   plots_ymax.push_back(0.9);
0062   plots_xmin.push_back(-5);
0063   plots_xmax.push_back(5);
0064 
0065   /* Jet radius */
0066   observables.push_back( "jetshape_radius" );
0067   observables_name.push_back( "R_{jet}" );
0068   plots_ymax.push_back(0.08);
0069   plots_xmin.push_back(0);
0070   plots_xmax.push_back(0.5);
0071 
0072   /* Jetshape */
0073   observables.push_back( "jetshape_econe_r01 / jetshape_econe_r05" );
0074   observables_name.push_back( "E_{cone}^{R<0.1} / E_{cone}^{R<0.5}" );
0075   plots_ymax.push_back(0.08);
0076   plots_xmin.push_back(0);
0077   plots_xmax.push_back(1);
0078 
0079   /* Jetshape */
0080   observables.push_back( "jetshape_econe_r02 / jetshape_econe_r05" );
0081   observables_name.push_back( "E_{cone}^{R<0.2} / E_{cone}^{R<0.5}" );
0082   plots_ymax.push_back(0.08);
0083   plots_xmin.push_back(0);
0084   plots_xmax.push_back(1);
0085 
0086   /* Jet eta */
0087   observables.push_back( "jet_eta" );
0088   observables_name.push_back( "#eta_{jet}" );
0089   plots_ymax.push_back(0.1);
0090   plots_xmin.push_back(-2);
0091   plots_xmax.push_back(2);
0092 
0093   /* Jet mass */
0094   observables.push_back( "jet_minv" );
0095   observables_name.push_back( "Mass_{jet}" );
0096   plots_ymax.push_back(0.1);
0097   plots_xmin.push_back(0);
0098   plots_xmax.push_back(10);
0099 
0100   /* Jet energy */
0101   observables.push_back( "jet_etotal" );
0102   observables_name.push_back( "E_{jet}" );
0103   plots_ymax.push_back(0.08);
0104   plots_xmin.push_back(0);
0105   plots_xmax.push_back(70);
0106 
0107   /* Plot distributions */
0108   TString name_uds_base("h_uds_");
0109   TString name_tau_base("h_tau_");
0110   /*
0111   for ( unsigned i = 0; i < observables.size(); i++ )
0112     {
0113       cout << "Plotting " << observables.at(i) << endl;
0114 
0115       ctemp->cd();
0116 
0117       TString name_uds_i = name_uds_base;
0118       name_uds_i.Append(i);
0119 
0120       TString name_tau_i = name_tau_base;
0121       name_tau_i.Append(i);
0122 
0123       TH1F* h_uds = new TH1F( name_uds_i, "", 100, plots_xmin.at(i), plots_xmax.at(i));
0124       TH1F* h_tau = new TH1F( name_tau_i, "", 100, plots_xmin.at(i), plots_xmax.at(i));
0125 
0126       chain.Draw( observables.at(i) + " >> " + name_uds_i, tau_commons::select_true_uds && tau_commons::select_accept_jet, "");
0127       h_uds->Scale(1./h_uds->Integral());
0128       h_uds->GetXaxis()->SetTitle( observables_name.at(i) );
0129       h_uds->GetYaxis()->SetRangeUser(0, plots_ymax.at(i) );
0130       h_uds->SetLineColor(col1);
0131       h_uds->SetFillColor(col1);
0132       h_uds->SetFillStyle(1001);
0133 
0134       chain.Draw( observables.at(i) + " >> " + name_tau_i, tau_commons::select_true_tau && tau_commons::select_accept_jet, "");
0135       h_tau->Scale(1./h_tau->Integral());
0136       h_tau->SetLineColor(col2);
0137       h_tau->SetFillColor(col2);
0138       h_tau->SetFillStyle(0);
0139 
0140       // create Canvas and draw histograms 
0141       TCanvas *c1 = new TCanvas();
0142 
0143       h_uds->DrawClone("");
0144       h_tau->DrawClone("sames");
0145 
0146       TLegend *legend = new TLegend(0.3,0.7,0.48,0.9);
0147       legend->AddEntry(h_uds,"quark jet","l");
0148       legend->AddEntry(h_tau,"#tau jet","l");
0149       legend->Draw();
0150 
0151       gPad->RedrawAxis();
0152 
0153       //c1->Print( Form( "plots/compare_observables_%d.eps", i ) );
0154       //c1->Print( Form( "plots/compare_observables_%d.png", i ) );
0155     }
0156 */
0157   return 0;
0158 }