]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/CheckESD.C
Using AliPHOSLoader instead of AliPHOSGetter
[u/mrichter/AliRoot.git] / STEER / CheckESD.C
index 66f10996d76118533c43752efe17bcccfc37a67c..0784298c354b61bf4adfa07c7a4e3df12835c0ea 100644 (file)
@@ -1,4 +1,5 @@
 #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"
-#else
+#include "AliPID.h"
+#endif
 const Int_t kXiMinus = 3312;
 const Int_t kOmegaMinus = 3334;
-#endif
 
 
 TH1F* CreateHisto(const char* name, const char* title, 
@@ -156,15 +161,15 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
     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;
@@ -184,15 +189,15 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
                                "#theta_{rec}-#theta_{sim} [mrad]", "N");
 
   // PID
-  Int_t partCode[AliESDtrack::kSPECIES] = 
+  Int_t partCode[AliPID::kSPECIES] = 
     {kElectron, kMuonMinus, kPiPlus, kKPlus, kProton};
-  const char* partName[AliESDtrack::kSPECIES+1] = 
+  const char* partName[AliPID::kSPECIES+1] = 
     {"electron", "muon", "pion", "kaon", "proton", "other"};
-  Double_t partFrac[AliESDtrack::kSPECIES] = 
+  Double_t partFrac[AliPID::kSPECIES] = 
     {0.01, 0.01, 0.85, 0.10, 0.05};
-  Int_t identified[AliESDtrack::kSPECIES+1][AliESDtrack::kSPECIES];
-  for (Int_t iGen = 0; iGen < AliESDtrack::kSPECIES+1; iGen++) {
-    for (Int_t iRec = 0; iRec < AliESDtrack::kSPECIES; iRec++) {
+  Int_t identified[AliPID::kSPECIES+1][AliPID::kSPECIES];
+  for (Int_t iGen = 0; iGen < AliPID::kSPECIES+1; iGen++) {
+    for (Int_t iRec = 0; iRec < AliPID::kSPECIES; iRec++) {
       identified[iGen][iRec] = 0;
     }
   }
@@ -220,7 +225,7 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
 
   // calorimeters
   TH1F* hEPHOS = CreateHisto("hEPHOS", "PHOS", 100, 0, 5, "E [GeV]", "N");
-  TH1F* hEEMCAL = CreateHisto("hEEMCAL", "EMCAL", 100, 0, 2, "E [GeV]", "N");
+  TH1F* hEEMCAL = CreateHisto("hEEMCAL", "EMCAL", 100, 0, 50, "E [GeV]", "N");
 
   // muons
   TH1F* hPtMUON = CreateHisto("hPtMUON", "MUON", 100, 0, 20, 
@@ -334,14 +339,14 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
       // PID
       if ((track->GetStatus() & AliESDtrack::kESDpid) == 0) continue;
       Int_t iGen = 5;
-      for (Int_t i = 0; i < AliESDtrack::kSPECIES; i++) {
+      for (Int_t i = 0; i < AliPID::kSPECIES; i++) {
        if (TMath::Abs(particle->GetPdgCode()) == partCode[i]) iGen = i;
       }
-      Double_t probability[AliESDtrack::kSPECIES];
+      Double_t probability[AliPID::kSPECIES];
       track->GetESDpid(probability);
       Double_t pMax = 0;
       Int_t iRec = 0;
-      for (Int_t i = 0; i < AliESDtrack::kSPECIES; i++) {
+      for (Int_t i = 0; i < AliPID::kSPECIES; i++) {
        probability[i] *= partFrac[i];
        if (probability[i] > pMax) {
          pMax = probability[i];
@@ -352,7 +357,7 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
       if (iGen == iRec) nIdentified++;
 
       // dE/dx and TOF
-      Double_t time[AliESDtrack::kSPECIES];
+      Double_t time[AliPID::kSPECIES];
       track->GetIntegratedTimes(time);
       if (iGen == iRec) {
        hDEdxRight->Fill(pTrack.Mag(), track->GetTPCsignal());
@@ -367,16 +372,6 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
       }
     }
 
-    // loop over calo tracks
-    for (Int_t iTrack = 0; iTrack < esd->GetNumberOfTracks(); iTrack++) {
-      AliESDtrack* track = esd->GetTrack(iTrack);
-      if (track->IsPHOS()) {
-       hEPHOS->Fill(track->GetPHOSsignal());
-      } else if (track->IsEMCAL()) {
-       hEEMCAL->Fill(track->GetEMCALsignal());
-      }
-    }
-
     // loop over muon tracks
     {
     for (Int_t iTrack = 0; iTrack < esd->GetNumberOfMuonTracks(); iTrack++) {
@@ -391,6 +386,7 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
     // 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);
@@ -444,6 +440,16 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
       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
@@ -514,13 +520,13 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
     }
 
     printf("%9s:", "gen\\rec");
-    for (Int_t iRec = 0; iRec < AliESDtrack::kSPECIES; iRec++) {
+    for (Int_t iRec = 0; iRec < AliPID::kSPECIES; iRec++) {
       printf("%9s", partName[iRec]);
     }
     printf("\n");
-    for (Int_t iGen = 0; iGen < AliESDtrack::kSPECIES+1; iGen++) {
+    for (Int_t iGen = 0; iGen < AliPID::kSPECIES+1; iGen++) {
       printf("%9s:", partName[iGen]);
-      for (Int_t iRec = 0; iRec < AliESDtrack::kSPECIES; iRec++) {
+      for (Int_t iRec = 0; iRec < AliPID::kSPECIES; iRec++) {
        printf("%9d", identified[iGen][iRec]);
       }
       printf("\n");