#define inclphoton_cxx
#include "inclphoton.h"
#include <TH2.h>
#include <TH1.h>
#include <TStyle.h>
#include <TCanvas.h>
#include <TLorentzVector.h>
#include <TRandom1.h>
#include <TRandom2.h>
#include <TRandom3.h>
#include <TLegend.h>
#include <TMath.h>
//gROOT->cd(); // Move to the ROOT directory
//TH1::AddDirectory(kFALSE);
//gDirectory->AddDirectory(kFALSE);
//TH1::SetDirectory(0);
void inclphoton::Loop()
{
// gROOT->cd(); // Move to the ROOT directory
// TH1::AddDirectory(kFALSE);
// TH1::SetDirectory(0);
TRandom *r1=new TRandom();
TFile *inclphoton_Plots= new TFile("inclphoton_Plots_Esi.root","RECREATE");
/***************************************************Region A R=0.2*************************************************************************/
//TH1F *PholeadpT = new TH1F("PhotonpT", "Photon_{p_{T}} (GeV)", 50, 0.0, 1000.0);
TH1F *ptHistogram_1A = new TH1F("photon_pt(eta1A)", "", 12, ptbinsARC);
TH1F *ptHistogram_2A = new TH1F("photon_pt(eta2A)", "", 12, ptbinsARC);
TH1F *ptHistogram_3A = new TH1F("photon_pt(eta3A)", "", 12, ptbinsARC);
TH1F *ptHistogram_4A = new TH1F("photon_pt(eta4A)", "", 12, ptbinsARC);
TH1F *ptHistogram_5A = new TH1F("photon_pt(eta5A)", "", 12, ptbinsARC);
TH1F *ptHistogram_6A = new TH1F("photon_pt(eta6A)", "", 12, ptbinsARC);
TH1F *ptHistogram_1B = new TH1F("photon_pt(eta1B)", "", 12, ptbinsARC);
TH1F *ptHistogram_2B = new TH1F("photon_pt(eta2B)", "", 12, ptbinsARC);
TH1F *ptHistogram_3B = new TH1F("photon_pt(eta3B)", "", 12, ptbinsARC);
TH1F *ptHistogram_4B = new TH1F("photon_pt(eta4B)", "", 12, ptbinsARC);
TH1F *ptHistogram_5B = new TH1F("photon_pt(eta5B)", "", 12, ptbinsARC);
TH1F *ptHistogram_6B = new TH1F("photon_pt(eta6B)", "", 12, ptbinsARC);
TH1F *ptHistogram_1C = new TH1F("photon_pt(eta1C)", "", 12, ptbinsARC);
TH1F *ptHistogram_2C = new TH1F("photon_pt(eta2C)", "", 12, ptbinsARC);
TH1F *ptHistogram_3C = new TH1F("photon_pt(eta3C)", "", 12, ptbinsARC);
TH1F *ptHistogram_4C = new TH1F("photon_pt(eta4C)", "", 12, ptbinsARC);
TH1F *ptHistogram_5C = new TH1F("photon_pt(eta5C)", "", 12, ptbinsARC);
TH1F *ptHistogram_6C = new TH1F("photon_pt(eta6C)", "", 12, ptbinsARC);
TH1F *ptHistogram_1D = new TH1F("photon_pt(eta1D)", "", 12, ptbinsARC);
TH1F *ptHistogram_2D = new TH1F("photon_pt(eta2D)", "", 12, ptbinsARC);
TH1F *ptHistogram_3D = new TH1F("photon_pt(eta3D)", "", 12, ptbinsARC);
TH1F *ptHistogram_4D = new TH1F("photon_pt(eta4D)", "", 12, ptbinsARC);
TH1F *ptHistogram_5D = new TH1F("photon_pt(eta5D)", "", 12, ptbinsARC);
TH1F *ptHistogram_6D = new TH1F("photon_pt(eta6D)", "", 12, ptbinsARC);
TH1F *ptHistogram_Et02 = new TH1F("photon_ET02", "", 50, 0.0, 600.0);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (fChain == 0) return;
Long64_t nentries = fChain->GetEntriesFast();
Long64_t nbytes = 0, nb = 0;
for (Long64_t i=0; i<nentries;i++) {
Long64_t ientry = LoadTree(i);
if (ientry < 0) break;
nb = fChain->GetEntry(i); nbytes += nb;
float highPt = 0.0;
int nPtBins = 12; // 13 - 1
int ipps = ttdata_presel_photonPt->size();
// tdata_HLT_g140_loose = false;
for ( int ipp = 0; ipp<ipps; ipp++ )
{
phleadingpt=ttdata_presel_photonPt->at(ipp);
phleadingeta=ttdata_presel_photonEta->at(ipp);
phleadingphi=ttdata_presel_photonPhi->at(ipp);
phleadingetiso=ttdata_phetiso20_new->at(ipp);
phleadingtight=ttdata_presel_photonTight->at(ipp);
phleadingNewp4=ttdata_presel_Newp4->at(ipp);
// ptHistogram_Et02->Fill(ttdata_phetiso20_new->at(ipp));
/////////////////////////////////////////////// Region A with R =0.2 ///////////////////////////////////////////////////////////////////////
if (phleadingpt > 250 && phleadingtight == 1 && phleadingetiso < 4.8 +((4.2/1000)*phleadingpt) && tdata_HLT_g140_loose == true){
if (fabs(phleadingeta)<=0.6) {
ptHistogram_1A->Fill(phleadingpt);
std::cout << "Pt :" << phleadingpt << std::endl;
}
else if ( fabs(phleadingeta)>0.6 && fabs(phleadingeta)<=0.8) {
ptHistogram_2A->Fill(phleadingpt);
}
else if (fabs(phleadingeta)>0.8 && fabs(phleadingeta)<=1.37){
ptHistogram_3A->Fill(phleadingpt);
}
else if ( fabs(phleadingeta)>1.56 && fabs(phleadingeta)<=1.81) {
ptHistogram_4A->Fill(phleadingpt);
}
else if (fabs(phleadingeta)>1.81 && fabs(phleadingeta)<=2.01) {
ptHistogram_5A->Fill(phleadingpt);
}
else (fabs(phleadingeta)>2.01 && fabs(phleadingeta)<=2.37); {
ptHistogram_6A->Fill(phleadingpt);
}
}
/////////////////////////////////////////////// Region B with R =0.2 "T + niso" ///////////////////////////////////////////////////////////
if (phleadingpt > 250 && phleadingtight == 1 && phleadingetiso > 4.8 +((4.2/1000)*phleadingpt) && tdata_HLT_g140_loose == true){
if (fabs(phleadingeta)<=0.6) {
ptHistogram_1B->Fill(phleadingpt);
}
else if ( fabs(phleadingeta)>0.6 && fabs(phleadingeta)<=0.8) {
ptHistogram_2B->Fill(phleadingpt);
}
else if (fabs(phleadingeta)>0.8 && fabs(phleadingeta)<=1.37){
ptHistogram_3B->Fill(phleadingpt);
}
else if ( fabs(phleadingeta)>1.56 && fabs(phleadingeta)<=1.81) {
ptHistogram_4B->Fill(phleadingpt);
}
else if (fabs(phleadingeta)>1.81 && fabs(phleadingeta)<=2.01) {
ptHistogram_5B->Fill(phleadingpt);
}
else (fabs(phleadingeta)>2.01 && fabs(phleadingeta)<=2.37); {
ptHistogram_6B->Fill(phleadingpt);
}
}
/////////////////////////////////////////////// Region C with R =0.2 NT + iso//////////////////////////////////////////////////////////////
if (phleadingpt > 250 && phleadingtight == 0 && phleadingetiso < 4.8 +((4.2/1000)*phleadingpt) && tdata_HLT_g140_loose == true){
if (fabs(phleadingeta)<=0.6) {
ptHistogram_1C->Fill(phleadingpt);
}
else if ( fabs(phleadingeta)>0.6 && fabs(phleadingeta)<=0.8) {
ptHistogram_2C->Fill(phleadingpt);
}
else if (fabs(phleadingeta)>0.8 && fabs(phleadingeta)<=1.37){
ptHistogram_3C->Fill(phleadingpt);
}
else if ( fabs(phleadingeta)>1.56 && fabs(phleadingeta)<=1.81) {
ptHistogram_4C->Fill(phleadingpt);
}
else if (fabs(phleadingeta)>1.81 && fabs(phleadingeta)<=2.01) {
ptHistogram_5C->Fill(phleadingpt);
}
else (fabs(phleadingeta)>2.01 && fabs(phleadingeta)<=2.37); {
ptHistogram_6C->Fill(phleadingpt);
}
}
/////////////////////////////////////////////// Region D with R =0.2 NT + Niso ///////////////////////////////////////////////////////////
if (phleadingpt > 250 && phleadingtight == 0 && phleadingetiso > 4.8 +((4.2/1000)*phleadingpt) && tdata_HLT_g140_loose == true){
if (fabs(phleadingeta)<=0.6) {
ptHistogram_1D->Fill(phleadingpt);
}
else if ( fabs(phleadingeta)>0.6 && fabs(phleadingeta)<=0.8) {
ptHistogram_2D->Fill(phleadingpt);
}
else if (fabs(phleadingeta)>0.8 && fabs(phleadingeta)<=1.37){
ptHistogram_3D->Fill(phleadingpt);
}
else if ( fabs(phleadingeta)>1.56 && fabs(phleadingeta)<=1.81) {
ptHistogram_4D->Fill(phleadingpt);
}
else if (fabs(phleadingeta)>1.81 && fabs(phleadingeta)<=2.01) {
ptHistogram_5D->Fill(phleadingpt);
}
else (fabs(phleadingeta)>2.01 && fabs(phleadingeta)<=2.37); {
ptHistogram_6D->Fill(phleadingpt);
}
}
}
}
ptHistogram_1A->Draw();
inclphoton_Plots->Write();
// Set the ROOT style for a nicer appearance
gStyle->SetOptStat(1); // Disable statistics box
gStyle->SetPalette(1); // Use the default color palette
/* TCanvas *canvas = new TCanvas("canvas", "Multiple Histograms", 800, 600);
// Set histogram styles if needed
ptHistogram_1A->SetLineColor(kBlue);
ptHistogram_1B->SetLineColor(kRed);
ptHistogram_1C->SetLineColor(kGreen);
ptHistogram_1D->SetLineColor(kOrange);
// Draw histograms on the same canvas
ptHistogram_1D->Draw();
ptHistogram_1A->Draw("SAME");
ptHistogram_1B->Draw("SAME"); // "SAME" draws on the same pad
ptHistogram_1C->Draw("SAME");
// Add a legend
TLegend *legend = new TLegend(0.7, 0.7, 0.9, 0.9);
legend->AddEntry(ptHistogram_1A, "Region A", "l");
legend->AddEntry(ptHistogram_1B, "Region B", "l");
legend->AddEntry(ptHistogram_1C, "Region C", "l");
legend->AddEntry(ptHistogram_1D, "Region D", "l");
legend->Draw();
// Show the canvas
canvas->Draw();
// Save the canvas in EPS format
canvas->SaveAs("multiple_histograms.eps");*/
}
#ifndef inclphoton_h
#define inclphoton_h
#include <TROOT.h>
#include <TChain.h>
#include <TFile.h>
#include <iostream>
#include "vector"
#include <string>
class inclphoton {
public :
TTree *fChain;
Int_t fCurrent;
// Declaration of leaf types
UInt_t RunNumber;
ULong64_t EventNumber;
Bool_t tdata_HLT_g140_loose;
vector<float> *ttdata_presel_photonPt;
vector<float> *ttdata_presel_photonE;
vector<float> *ttdata_presel_photonEta;
vector<float> *ttdata_presel_photonEtas2;
vector<float> *ttdata_presel_photonPhi;
vector<bool> *ttdata_presel_photonTight;
vector<unsigned int> *ttdata_presel_photonIsemTight;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
float ptbinsARC[13]={250.,300.,350.,400.,470.,550.,650.,750.,900.,1100.,1500.,2000.,2500.};
float phleadingpt =0;
float phleadingeta=0;
float phleadingphi=0;
float phleadingetiso=0;
float phleadingtight=0;
float phleadingNewp4=0;
std::vector<std::string> files;
//files.push_back("/userdata/sbatlamo/inclusivePhoton/data15/user.jterron.data15periodd.n181.periodD.DAOD_STDM2.grp23_v01_p3984_ANALYSIS_ntuples/user.jterron.26552633._000002.ANALYSIS.root");
// List of branches
TBranch *b_RunNumber; //!
TBranch *b_EventNumber; //!
TBranch *b_tdata_HLT_g140_loose; //!
TBranch *b_ttdata_presel_photonPt; //!
TBranch *b_ttdata_presel_photonE; //!
TBranch *b_ttdata_presel_photonEta; //!
TBranch *b_ttdata_presel_photonEtas2; //!
TBranch *b_ttdata_presel_photonPhi; //!
TBranch *b_ttdata_presel_photonTight; //!
inclphoton(TTree *tree=0);
virtual ~inclphoton();
virtual Int_t Cut(Long64_t entry);
virtual Int_t GetEntry(Long64_t entry);
virtual Long64_t LoadTree(Long64_t entry);
virtual void Init(TTree *tree);
virtual void Loop();
virtual Bool_t Notify();
virtual void Show(Long64_t entry = -1);
};
#endif
#ifdef inclphoton_cxx
/*inclphoton::inclphoton(TTree *tree) : fChain(0)
{
if (tree == 0) {
TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("/userdata/sbatlamo/inclusivePhoton/data15/user.jterron.data15periodd.n181.periodD.DAOD_STDM2.grp23_v01_p3984_ANALYSIS_ntuples/user.jterron.26552633._000001.ANALYSIS.root");
if (!f || !f->IsOpen()) {
f = new TFile("/userdata/sbatlamo/inclusivePhoton/data15/user.jterron.data15periodd.n181.periodD.DAOD_STDM2.grp23_v01_p3984_ANALYSIS_ntuples/user.jterron.26552633._000001.ANALYSIS.root");
}
f->GetObject("analysis",tree);
}
Init(tree);
}*/
///////////////////////////////////////////////////////////////Test///////////////77
inclphoton::inclphoton(TTree *tree) : fChain(0)
{
TH1::AddDirectory(kFALSE);
files.push_back("/userdata/sbatlamo/inclusivePhoton/data15/user.jterron.data15periodd.n181.periodD.DAOD_STDM2.grp23_v01_p3984_ANALYSIS_ntuples/user.jterron.26552633._000001.ANALYSIS.root");
files.push_back("/userdata/sbatlamo/inclusivePhoton/data15/user.jterron.data15periodd.n181.periodD.DAOD_STDM2.grp23_v01_p3984_ANALYSIS_ntuples/user.jterron.26552633._000002.ANALYSIS.root");
files.push_back("/userdata/sbatlamo/inclusivePhoton/data15/user.jterron.data15periodd.n181.periodD.DAOD_STDM2.grp23_v01_p3984_ANALYSIS_ntuples/user.jterron.26552633._000003.ANALYSIS.root");
if (!tree) {
TFile *f;
for (const auto& fileName : files) {
std::cout << "Processing file: " << fileName << std::endl;
f = TFile::Open(fileName.c_str());
if (!f || !f->IsOpen()) {
std::cerr << "Error opening file: " << fileName << std::endl;
continue;
}
f->ls();
f->GetObject("analysis", tree);
std::cout<< "////////////////////////////////////////////"<<std::endl;
std::cout << "Total entries in fChain: " << tree->GetEntries() << std::endl;
//f->Close();
//delete f;
}
}
Init(tree);
}
/////////////////////////////////////////////////////////////////////////////////
inclphoton::~inclphoton()
{
if (!fChain) return;
delete fChain->GetCurrentFile();
}
Int_t inclphoton::GetEntry(Long64_t entry)
{
if (!fChain) return 0;
return fChain->GetEntry(entry);
}
Long64_t inclphoton::LoadTree(Long64_t entry)
{
if (!fChain) return -5;
Long64_t centry = fChain->LoadTree(entry);
if (centry < 0) return centry;
if (fChain->GetTreeNumber() != fCurrent) {
fCurrent = fChain->GetTreeNumber();
Notify();
}
return centry;
}
void inclphoton::Init(TTree *tree)
{
// Set object pointeri
ttdata_presel_photonPt = 0;
ttdata_presel_photonE = 0;
ttdata_presel_photonEta = 0;
ttdata_presel_photonEtas2 = 0;
ttdata_presel_photonPhi = 0;
ttdata_presel_photonTight = 0;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (!tree) return;
fChain = tree;
fCurrent = -1;
fChain->SetMakeClass(1);
fChain->SetBranchAddress("RunNumber", &RunNumber, &b_RunNumber);
fChain->SetBranchAddress("EventNumber", &EventNumber, &b_EventNumber);
fChain->SetBranchAddress("tdata_eventClean_LooseBad", &tdata_eventClean_LooseBad, &b_tdata_eventClean_LooseBad);
fChain->SetBranchAddress("tdata_HLT_g140_loose", &tdata_HLT_g140_loose, &b_tdata_HLT_g140_loose);
fChain->SetBranchAddress("ttdata_presel_photonPt", &ttdata_presel_photonPt, &b_ttdata_presel_photonPt);
fChain->SetBranchAddress("ttdata_presel_photonE", &ttdata_presel_photonE, &b_ttdata_presel_photonE);
fChain->SetBranchAddress("ttdata_presel_photonEta", &ttdata_presel_photonEta, &b_ttdata_presel_photonEta);
fChain->SetBranchAddress("ttdata_presel_photonEtas2", &ttdata_presel_photonEtas2, &b_ttdata_presel_photonEtas2);
fChain->SetBranchAddress("ttdata_presel_photonPhi", &ttdata_presel_photonPhi, &b_ttdata_presel_photonPhi);
fChain->SetBranchAddress("ttdata_presel_photonTight", &ttdata_presel_photonTight, &b_ttdata_presel_photonTight);
Notify();
}
Bool_t inclphoton::Notify()
{
return kTRUE;
}
void inclphoton::Show(Long64_t entry)
{
if (!fChain) return;
fChain->Show(entry);
}
Int_t inclphoton::Cut(Long64_t entry)
{
return 1;
}
#endif