]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/CheckESD.C
When geometry is loaded, the call to MeanMaterialBudget will lead to AliFatal
[u/mrichter/AliRoot.git] / STEER / CheckESD.C
index 30484dd61bb7f919cdb8cbdfffb8c96432d84c77..1f700d32b409b3c59f8f36feb6110839cd575313 100644 (file)
@@ -23,9 +23,6 @@
 #include "AliGenEventHeader.h"
 #include "AliPID.h"
 #endif
-const Int_t kXiMinus = 3312;
-const Int_t kOmegaMinus = 3334;
-
 
 TH1F* CreateHisto(const char* name, const char* title, 
                  Int_t nBins, Double_t xMin, Double_t xMax,
@@ -224,7 +221,7 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
   hResTOFWrong->SetLineColor(kRed);
 
   // calorimeters
-  TH1F* hEPHOS = CreateHisto("hEPHOS", "PHOS", 100, 0, 5, "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
@@ -253,7 +250,7 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
     runLoader->GetEvent(iEvent);
 
     // select simulated primary particles, V0s and cascades
-    AliStack* stack = gAlice->Stack();
+    AliStack* stack = runLoader->Stack();
     Int_t nParticles = stack->GetNtrack();
     TArrayF vertex(3);
     runLoader->GetHeader()->GenEventHeader()->PrimaryVertex(vertex);
@@ -328,13 +325,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;
@@ -360,12 +354,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]);
        }
@@ -414,9 +408,9 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
       AliESDcascade* cascade = esd->GetCascade(iCascade);
       Double_t v0q;
       cascade->ChangeMassHypothesis(v0q,kXiMinus);
-      hMassXi->Fill(cascade->GetEffMass());
+      hMassXi->Fill(cascade->GetEffMassXi());
       cascade->ChangeMassHypothesis(v0q,kOmegaMinus);
-      hMassOmega->Fill(cascade->GetEffMass());
+      hMassOmega->Fill(cascade->GetEffMassXi());
 
       Int_t negLabel = TMath::Abs(esd->GetTrack(cascade->GetNindex())
                                  ->GetLabel());
@@ -441,21 +435,15 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
       nRecCascades++;
     }
 
-    // loop over the PHOS clusters
+    // loop over the clusters
     {
-    Int_t firstPHOSCluster = esd->GetFirstPHOSCluster();
-    Int_t lastPHOSCluster  = firstPHOSCluster + esd->GetNumberOfPHOSClusters();
-    for (Int_t iCluster=firstPHOSCluster; iCluster<lastPHOSCluster; iCluster++)
-      hEPHOS->Fill(esd->GetCaloCluster(iCluster)->E());
+      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());
+      }
     }
 
-    // loop over the EMCAL clusters
-    {
-    Int_t firstEMCALCluster = esd->GetFirstEMCALCluster();
-    Int_t lastEMCALCluster  = firstEMCALCluster + esd->GetNumberOfEMCALClusters();
-    for (Int_t iCluster=firstEMCALCluster; iCluster<lastEMCALCluster; iCluster++)
-      hEEMCAL->Fill(esd->GetCaloCluster(iCluster)->E());
-    }
   }
 
   // perform checks