1 #if !defined(__CINT__) || defined(__MAKECINT__)
3 #include "TClonesArray.h"
8 #include "AliESDEvent.h"
9 #include "AliESDCaloCluster.h"
14 int read_HLT_ESDs(TString file = "AliESDs.root")
17 TH2F *clusterPosXY = new TH2F("clusterPosXY", "clusterPosXY", 1000, -500, 500, 1000, -500, 500);
18 TH2F *clusterPosXZ = new TH2F("clusterPosXZ", "clusterPosXZ", 1000, -500, 500, 1000, -500, 500);
20 TH1F *clusterEnergies = new TH1F("clusterEnergies", "clusterEnergies", 1100, 0, 110);
22 TH1I *clusterMult = new TH1I("clusterMult", "clusterMult", 1000, 1, 1000);
23 TFile *esdFile = TFile::Open(file, "READ");
25 TTree *esdTree = dynamic_cast<TTree*>(esdFile->Get("HLTesdTree"));
27 if(!esdTree) return -1;
29 std::cout << "Number of events in ESD: " << esdTree->GetEntries() << std::endl;
31 TClonesArray *clusters = 0;
33 esdTree->SetBranchAddress("CaloClusters", &clusters);
35 for(int ev = 0; ev < esdTree->GetEntries(); ev++)
37 esdTree->GetEntry(ev);
39 cout << "Number of clusters in event: " << clusters->GetEntries() << endl;
41 for(int c = 0; c < clusters->GetEntries(); c++)
43 AliESDCaloCluster *cl = dynamic_cast<AliESDCaloCluster*>(clusters->At(c));
45 cout << "\tCluster #: " << c << ", energy: " << cl->E() << endl;
51 cout << "\tx: " << pos[0] << ", y: " << pos[1] << ", z: " << pos[2] << endl;
53 clusterPosXY->Fill(pos[0], pos[1]);
54 clusterPosXZ->Fill(pos[0], pos[2]);
56 clusterEnergies->Fill(cl->E());
57 clusterMult->Fill(cl->GetNCells());
62 // AliESDEvent *esdEvent = reinterpret_cast<AliESDEvent*>(esdFile->Get("
64 // clusterPos->Draw();
66 //clusterEnergies->Draw();
68 TCanvas *c1 = new TCanvas("c1", "", 0, 0, 800, 450);
71 clusterEnergies->Draw();
76 TCanvas *c2 = new TCanvas("c2", "", 10, 10, 800, 450);