#if !defined( __CINT__) || defined(__MAKECINT__)
+#include <TROOT.h>
#include <TFile.h>
#include <TError.h>
#include <TH1.h>
#include "AliRunLoader.h"
#include "AliLoader.h"
-#include "AliESD.h"
+#include "AliESDEvent.h"
+#include "AliESDv0.h"
+#include "AliESDcascade.h"
+#include "AliESDMuonTrack.h"
+#include "AliESDCaloCluster.h"
#include "AliRun.h"
#include "AliStack.h"
#include "AliHeader.h"
#include "AliGenEventHeader.h"
#include "AliPID.h"
-#else
+#endif
const Int_t kXiMinus = 3312;
const Int_t kOmegaMinus = 3334;
-#endif
TH1F* CreateHisto(const char* name, const char* title,
Error("CheckESD", "opening ESD file %s failed", esdFileName);
return kFALSE;
}
- AliESD* esd = new AliESD;
+ AliESDEvent * esd = new AliESDEvent;
TTree* tree = (TTree*) esdFile->Get("esdTree");
if (!tree) {
Error("CheckESD", "no ESD tree found");
return kFALSE;
}
- tree->SetBranchAddress("ESD", &esd);
+ esd->ReadFromTree(tree);
- // efficienc and resolution histograms
+ // efficiency and resolution histograms
Int_t nBinsPt = 15;
Float_t minPt = 0.1;
Float_t maxPt = 3.1;
hResTOFWrong->SetLineColor(kRed);
// calorimeters
- TH1F* hEPHOS = CreateHisto("hEPHOS", "PHOS", 100, 0, 5, "E [GeV]", "N");
- TH1F* hEEMCAL = CreateHisto("hEEMCAL", "EMCAL", 100, 0, 2, "E [GeV]", "N");
+ TH1F* hEPHOS = CreateHisto("hEPHOS", "PHOS", 100, 0, 50, "E [GeV]", "N");
+ TH1F* hEEMCAL = CreateHisto("hEEMCAL", "EMCAL", 100, 0, 50, "E [GeV]", "N");
// muons
TH1F* hPtMUON = CreateHisto("hPtMUON", "MUON", 100, 0, 20,
if (track->GetLabel() < 0) nFake++;
// resolutions
- Double_t p[3];
- track->GetConstrainedPxPyPz(p);
- TVector3 pTrack(p);
- hResPtInv->Fill(100. * (1./pTrack.Pt() - 1./particle->Pt()) *
+ hResPtInv->Fill(100. * (TMath::Abs(track->GetSigned1Pt()) - 1./particle->Pt()) *
particle->Pt());
- hResPhi->Fill(1000. * (pTrack.Phi() - particle->Phi()));
- hResTheta->Fill(1000. * (pTrack.Theta() - particle->Theta()));
+ hResPhi->Fill(1000. * (track->Phi() - particle->Phi()));
+ hResTheta->Fill(1000. * (track->Theta() - particle->Theta()));
// PID
if ((track->GetStatus() & AliESDtrack::kESDpid) == 0) continue;
Double_t time[AliPID::kSPECIES];
track->GetIntegratedTimes(time);
if (iGen == iRec) {
- hDEdxRight->Fill(pTrack.Mag(), track->GetTPCsignal());
+ hDEdxRight->Fill(particle->P(), track->GetTPCsignal());
if ((track->GetStatus() & AliESDtrack::kTOFpid) != 0) {
hResTOFRight->Fill(track->GetTOFsignal() - time[iRec]);
}
} else {
- hDEdxWrong->Fill(pTrack.Mag(), track->GetTPCsignal());
+ hDEdxWrong->Fill(particle->P(), track->GetTPCsignal());
if ((track->GetStatus() & AliESDtrack::kTOFpid) != 0) {
hResTOFWrong->Fill(track->GetTOFsignal() - time[iRec]);
}
// loop over V0s
for (Int_t iV0 = 0; iV0 < esd->GetNumberOfV0s(); iV0++) {
AliESDv0* v0 = esd->GetV0(iV0);
+ if (v0->GetOnFlyStatus()) continue;
v0->ChangeMassHypothesis(kK0Short);
hMassK0->Fill(v0->GetEffMass());
v0->ChangeMassHypothesis(kLambda0);
selCascades.Remove(particle);
nRecCascades++;
}
+
+ // loop over the clusters
+ {
+ for (Int_t iCluster=0; iCluster<esd->GetNumberOfCaloClusters(); iCluster++) {
+ AliESDCaloCluster * clust = esd->GetCaloCluster(iCluster);
+ if (clust->IsPHOS()) hEPHOS->Fill(clust->E());
+ if (clust->IsEMCAL()) hEEMCAL->Fill(clust->E());
+ }
+ }
+
}
// perform checks