]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/CheckESD.C
silvermy@ornl.gov - SMcalib - directory with tools for SuperModule calibrations at...
[u/mrichter/AliRoot.git] / STEER / CheckESD.C
index aac7a8e3dee34d96ac7b0487282bd943ce966193..6747e7e2dbbcfde25a8bf549c3dbde79afe48661 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"
 #include "AliPID.h"
-#else
+#endif
 const Int_t kXiMinus = 3312;
 const Int_t kOmegaMinus = 3334;
-#endif
 
 
 TH1F* CreateHisto(const char* name, const char* title, 
@@ -157,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;
@@ -220,8 +224,8 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
   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, 
@@ -324,13 +328,10 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
       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;
@@ -356,12 +357,12 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
       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]);
        }
@@ -382,6 +383,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);
@@ -435,6 +437,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