2 void read_jets(const char* fn = "jets.root")
8 TH1F* eH = new TH1F("eH" , "Jet Energy", 40., 0., 200.);
9 TH1F* e1H = new TH1F("e1H" , "Jet Energy", 40., 0., 200.);
10 TH1F* e2H = new TH1F("e2H" , "Jet Energy", 40., 0., 200.);
11 TH1F* e3H = new TH1F("e3H" , "Jet Energy", 40., 0., 200.);
12 TH1F* e4H = new TH1F("e4H" , "Jet Energy", 40., 0., 200.);
13 TH1F* dr1H = new TH1F("dr1H", "delta R", 160., 0., 2.);
14 TH1F* dr2H = new TH1F("dr2H", "delta R", 160., 0., 2.);
15 TH1F* dr3H = new TH1F("dr4H", "delta R", 160., 0., 2.);
16 TH1F* etaH = new TH1F("etaH", "eta", 160., -2., 2.);
17 TH1F* eta1H = new TH1F("eta1H", "eta", 160., -2., 2.);
18 TH1F* eta2H = new TH1F("eta2H", "eta", 160., -2., 2.);
20 TH1F* phiH = new TH1F("phiH", "phi", 160., -3., 3.);
21 TH1F* phi1H = new TH1F("phi1H", "phi", 160., 0., 6.28);
22 TH1F* phi2H = new TH1F("phi2H", "phi", 160., 0., 6.28);
26 gSystem->Load("$(ALICE_ROOT)/lib/tgt_$(ALICE_TARGET)/libJETAN");
29 TFile *jFile = new TFile(fn);
31 // get jet header and display parameters
32 AliUA1JetHeader* jHeader =
33 (AliUA1JetHeader*) (jFile->Get("AliUA1JetHeader"));
34 jHeader->PrintParameters();
36 // get reader header and events to be looped over
37 AliJetESDReaderHeader *jReaderH =
38 (AliJetESDReaderHeader*)(jFile->Get("AliJetESDReaderHeader"));
39 Int_t first = jReaderH->GetFirstEvent();
40 Int_t last = jReaderH->GetLastEvent();
41 cout << "First event = " << first << " Last event = " << last << endl;
48 for (Int_t i=first; i< last; i++) {
49 cout << " Analyzing event " << i << endl;
50 // get next tree with AliJet
52 sprintf(nameT, "TreeJ%d",i);
53 TTree *jetT =(TTree *)(jFile->Get(nameT));
54 jetT->SetBranchAddress("FoundJet", &jets);
55 jetT->SetBranchAddress("GenJet", &gjets);
56 jetT->SetBranchAddress("LeadingPart", &leading);
60 // Find the jet with the highest E_T
62 Int_t njets = jets->GetNJets();
66 for (Int_t j = 0; j < njets; j++) {
67 if (jets->GetPt(j) > emax && TMath::Abs(jets->GetEta(j)) < 0.5) {
68 emax = jets->GetPt(j);
74 e2H->Fill(gjets->GetPt(0));
76 eH->Fill(jets->GetPt(imax));
77 dr1H->Fill(jets->GetEta(imax) - gjets->GetEta(0));
79 // Find the generated jet closest to the reconstructed
84 Float_t etaj = jets->GetEta(imax);
85 Float_t phij = jets->GetPhi(imax);
87 Int_t ngen = gjets->GetNJets();
91 for (Int_t j = 0; j < ngen; j++) {
92 Float_t etag = gjets->GetEta(j);
93 Float_t phig = gjets->GetPhi(j);
94 Float_t deta = etag - etaj;
95 Float_t dphi = TMath::Abs(phig - phij);
96 if (dphi > TMath::Pi()) dphi = 2. * TMath::Pi() - dphi;
97 Float_t r = TMath::Sqrt(deta * deta + dphi * dphi);
104 Float_t egen = gjets->GetPt(igen);
105 e1H->Fill(gjets->GetPt(igen));
106 Float_t etag = gjets->GetEta(igen);
107 Float_t phig = gjets->GetPhi(igen);
108 Float_t dphi = phig - phij;
110 if (egen > 125. && egen < 150.) {
112 etaH->Fill(etag - etaj);
127 Float_t etal = leading->GetLeading()->Eta();
128 Float_t phil = leading->GetLeading()->Phi();
129 Float_t el = leading->GetLeading()->E();
134 Int_t ngen = gjets->GetNJets();
135 for (Int_t j = 0; j < ngen; j++) {
136 Float_t etag = gjets->GetEta(j);
137 Float_t phig = gjets->GetPhi(j);
138 Float_t deta = etag-etal;
139 Float_t dphi = TMath::Abs(phig - phil);
140 if (dphi > TMath::Pi()) dphi = 2. * TMath::Pi() - dphi;
142 Float_t r = TMath::Sqrt(deta * deta + dphi * dphi);
149 if (egen > 125. && egen < 150.)
152 // cout << " Generated Jets:" << endl;
153 // gjets->PrintJets();
154 // cout << " Leading particle: " << endl;
155 // leading->PrintLeading();
159 TCanvas* c1 = new TCanvas("c1");
161 e1H->SetLineColor(2);
162 e2H->SetLineColor(4);
163 e3H->SetLineColor(5);
168 TCanvas* c2 = new TCanvas("c2");
170 dr2H->SetLineColor(2);
173 TCanvas* c3 = new TCanvas("c3");
177 TCanvas* c4 = new TCanvas("c4");
180 TCanvas* c5 = new TCanvas("c5");
183 TCanvas* c5a = new TCanvas("c5a");
186 TCanvas* c5b = new TCanvas("c5b");
189 TCanvas* c6 = new TCanvas("c6");
191 TCanvas* c7 = new TCanvas("c7");
194 TCanvas* c7a = new TCanvas("c7a");
196 TCanvas* c7b = new TCanvas("c7b");