]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG0/multiplicity/AliMultiplicityTask.cxx
more fine binning for SPD
[u/mrichter/AliRoot.git] / PWG0 / multiplicity / AliMultiplicityTask.cxx
index 621b30c5934b3ac4387cdf277a2430abb088beb9..6e24595aab31805b3dec48b48139112ff926e4bb 100644 (file)
@@ -34,6 +34,7 @@
 #include "multiplicity/AliMultiplicityCorrection.h"
 #include "AliCorrection.h"
 #include "AliCorrectionMatrix3D.h"
+#include "AliTriggerAnalysis.h"
 
 ClassImp(AliMultiplicityTask)
 
@@ -41,8 +42,8 @@ AliMultiplicityTask::AliMultiplicityTask(const char* opt) :
   AliAnalysisTask("AliMultiplicityTask", ""),
   fESD(0),
   fOption(opt),
-  fAnalysisMode(AliPWG0Helper::kSPD),
-  fTrigger(AliPWG0Helper::kMB1),
+  fAnalysisMode((AliPWG0Helper::AnalysisMode) (AliPWG0Helper::kSPD | AliPWG0Helper::kFieldOn)),
+  fTrigger(AliTriggerAnalysis::kMB1),
   fDeltaPhiCut(-1),
   fReadMC(kFALSE),
   fUseMCVertex(kFALSE),
@@ -101,11 +102,11 @@ void AliMultiplicityTask::ConnectInputData(Option_t *)
     tree->SetBranchStatus("AliESDHeader*", 1);
     tree->SetBranchStatus("*Vertex*", 1);
 
-    if (fAnalysisMode == AliPWG0Helper::kSPD) {
+    if (fAnalysisMode & AliPWG0Helper::kSPD) {
       tree->SetBranchStatus("AliMultiplicity*", 1);
     }
 
-    if (fAnalysisMode == AliPWG0Helper::kTPC || fAnalysisMode == AliPWG0Helper::kTPCITS) {
+    if (fAnalysisMode & AliPWG0Helper::kTPC || fAnalysisMode & AliPWG0Helper::kTPCITS) {
       //AliESDtrackCuts::EnableNeededBranches(tree);
       tree->SetBranchStatus("Tracks*", 1);
     }
@@ -214,7 +215,9 @@ void AliMultiplicityTask::Exec(Option_t*)
     return;
   }
 
-  Bool_t eventTriggered = AliPWG0Helper::IsEventTriggered(fESD, fTrigger);
+  static AliTriggerAnalysis* triggerAnalysis = new AliTriggerAnalysis;
+  Bool_t eventTriggered = triggerAnalysis->IsTriggerFired(fESD, fTrigger);
+  //Printf("%lld", fESD->GetTriggerMask());
 
   const AliESDVertex* vtxESD = AliPWG0Helper::GetVertex(fESD, fAnalysisMode);
   Bool_t eventVertex = (vtxESD != 0);
@@ -232,7 +235,7 @@ void AliMultiplicityTask::Exec(Option_t*)
   Int_t inputCount = 0;
   Int_t* labelArr = 0;
   Float_t* etaArr = 0;
-  if (fAnalysisMode == AliPWG0Helper::kSPD)
+  if (fAnalysisMode & AliPWG0Helper::kSPD)
   {
     // get tracklets
     const AliMultiplicity* mult = fESD->GetMultiplicity();
@@ -266,7 +269,7 @@ void AliMultiplicityTask::Exec(Option_t*)
       ++inputCount;
     }
   }
-  else if (fAnalysisMode == AliPWG0Helper::kTPC || fAnalysisMode == AliPWG0Helper::kTPCITS)
+  else if (fAnalysisMode & AliPWG0Helper::kTPC || fAnalysisMode & AliPWG0Helper::kTPCITS)
   {
     if (!fEsdTrackCuts)
     {
@@ -277,7 +280,7 @@ void AliMultiplicityTask::Exec(Option_t*)
     if (vtxESD)
     {
       // get multiplicity from ESD tracks
-      TObjArray* list = fEsdTrackCuts->GetAcceptedTracks(fESD, (fAnalysisMode == AliPWG0Helper::kTPC));
+      TObjArray* list = fEsdTrackCuts->GetAcceptedTracks(fESD, (fAnalysisMode & AliPWG0Helper::kTPC));
       Int_t nGoodTracks = list->GetEntries();
   
       labelArr = new Int_t[nGoodTracks];
@@ -303,14 +306,15 @@ void AliMultiplicityTask::Exec(Option_t*)
   }
 
   // eta range for nMCTracksSpecies, nESDTracksSpecies
-  Float_t etaRange = -1;
-  switch (fAnalysisMode) {
-    case AliPWG0Helper::kInvalid: break;
-    case AliPWG0Helper::kTPC:
-    case AliPWG0Helper::kTPCITS:
-       etaRange = 1.0; break;
-    case AliPWG0Helper::kSPD: etaRange = 1.0; break;
-  }
+  Float_t etaRange = 1.0;
+//   switch (fAnalysisMode) {
+//     case AliPWG0Helper::kInvalid: break;
+//     case AliPWG0Helper::kTPC:
+//     case AliPWG0Helper::kTPCITS:
+//             etaRange = 1.0; break;
+//     case AliPWG0Helper::kSPD: etaRange = 1.0; break;
+//     default: break;
+//   }
 
   if (!fReadMC) // Processing of ESD information
   {
@@ -318,8 +322,7 @@ void AliMultiplicityTask::Exec(Option_t*)
     {
       Int_t nESDTracks05 = 0;
       Int_t nESDTracks10 = 0;
-      Int_t nESDTracks15 = 0;
-      Int_t nESDTracks20 = 0;
+      Int_t nESDTracks14 = 0;
 
       for (Int_t i=0; i<inputCount; ++i)
       {
@@ -331,14 +334,11 @@ void AliMultiplicityTask::Exec(Option_t*)
         if (TMath::Abs(eta) < 1.0)
           nESDTracks10++;
 
-        if (TMath::Abs(eta) < 1.5)
-          nESDTracks15++;
-
-        if (TMath::Abs(eta) < 2.0)
-          nESDTracks20++;
+        if (TMath::Abs(eta) < 1.4)
+          nESDTracks14++;
       }
 
-      fMultiplicity->FillMeasured(vtx[2], nESDTracks05, nESDTracks10, nESDTracks15, nESDTracks20);
+      fMultiplicity->FillMeasured(vtx[2], nESDTracks05, nESDTracks10, nESDTracks14);
     }
   }
   else if (fReadMC)   // Processing of MC information
@@ -419,8 +419,7 @@ void AliMultiplicityTask::Exec(Option_t*)
       // tracks in different eta ranges
       Int_t nMCTracks05 = 0;
       Int_t nMCTracks10 = 0;
-      Int_t nMCTracks15 = 0;
-      Int_t nMCTracks20 = 0;
+      Int_t nMCTracks14 = 0;
       Int_t nMCTracksAll = 0;
 
       // tracks per particle species, in |eta| < 2 (systematic study)
@@ -489,11 +488,8 @@ void AliMultiplicityTask::Exec(Option_t*)
         if (TMath::Abs(particle->Eta()) < 1.0)
           nMCTracks10 += particleWeight;
 
-        if (TMath::Abs(particle->Eta()) < 1.5)
-          nMCTracks15 += particleWeight;
-
-        if (TMath::Abs(particle->Eta()) < 2.0)
-          nMCTracks20 += particleWeight;
+        if (TMath::Abs(particle->Eta()) < 1.4)
+          nMCTracks14 += particleWeight;
 
         nMCTracksAll += particleWeight;
         
@@ -519,14 +515,13 @@ void AliMultiplicityTask::Exec(Option_t*)
         }
       } // end of mc particle
 
-      fMultiplicity->FillGenerated(vtxMC[2], eventTriggered, eventVertex, processType, (Int_t) nMCTracks05, (Int_t) nMCTracks10, (Int_t) nMCTracks15, (Int_t) nMCTracks20, (Int_t) nMCTracksAll);
+      fMultiplicity->FillGenerated(vtxMC[2], eventTriggered, eventVertex, processType, (Int_t) nMCTracks05, (Int_t) nMCTracks10, (Int_t) nMCTracks14, (Int_t) nMCTracksAll);
 
       if (eventTriggered && eventVertex)
       {
         Int_t nESDTracks05 = 0;
         Int_t nESDTracks10 = 0;
-        Int_t nESDTracks15 = 0;
-        Int_t nESDTracks20 = 0;
+        Int_t nESDTracks14 = 0;
 
         // tracks per particle species, in |eta| < 2 (systematic study)
         Int_t nESDTracksSpecies[7]; // (pi, K, p, other, nolabel, doublecount_prim, doublecount_all)
@@ -600,12 +595,8 @@ void AliMultiplicityTask::Exec(Option_t*)
           if (TMath::Abs(eta) < 1.0)
             nESDTracks10 += particleWeight;
 
-          if (TMath::Abs(eta) < 1.5)
-            nESDTracks15 += particleWeight;
-
-          if (TMath::Abs(eta) < 2.0)
-            nESDTracks20 += particleWeight;
-
+          if (TMath::Abs(eta) < 1.4)
+            nESDTracks14 += particleWeight;
 
           if (fParticleSpecies)
           {
@@ -697,7 +688,7 @@ void AliMultiplicityTask::Exec(Option_t*)
           // if the particle decays/stops before this radius we do not see it
           // 8cm larger than SPD layer 2
           // 123cm TPC radius where a track has about 50 clusters (cut limit)          
-          const Float_t endRadius = (fAnalysisMode == AliPWG0Helper::kSPD) ? 8. : 123;
+          const Float_t endRadius = (fAnalysisMode & AliPWG0Helper::kSPD) ? 8. : 123;
                   
           // loop over all primaries that have not been found
           for (Int_t i=0; i<nPrim; i++)
@@ -788,16 +779,16 @@ void AliMultiplicityTask::Exec(Option_t*)
         delete[] foundPrimaries;
         delete[] foundPrimaries2;
 
-        if ((Int_t) nMCTracks15 > 10 && nESDTracks15 <= 3)
+        if ((Int_t) nMCTracks14 > 10 && nESDTracks14 <= 3)
         {
             TTree* tree = dynamic_cast<TTree*> (GetInputData(0));
-            printf("WARNING: Event %lld %s (vtx-z = %f, recon: %f, contrib: %d, res: %f) has %d generated and %d reconstructed...\n", tree->GetReadEntry(), tree->GetCurrentFile()->GetName(), vtxMC[2], vtx[2], vtxESD->GetNContributors(), vtxESD->GetZRes(), nMCTracks15, nESDTracks15);
+            printf("WARNING: Event %lld %s (vtx-z = %f, recon: %f, contrib: %d, res: %f) has %d generated and %d reconstructed...\n", tree->GetReadEntry(), tree->GetCurrentFile()->GetName(), vtxMC[2], vtx[2], vtxESD->GetNContributors(), vtxESD->GetZRes(), nMCTracks14, nESDTracks14);
         }
 
         // fill response matrix using vtxMC (best guess)
-        fMultiplicity->FillCorrection(vtxMC[2],  nMCTracks05,  nMCTracks10,  nMCTracks15,  nMCTracks20,  nMCTracksAll,  nESDTracks05,  nESDTracks10,  nESDTracks15,  nESDTracks20);
+        fMultiplicity->FillCorrection(vtxMC[2],  nMCTracks05,  nMCTracks10,  nMCTracks14,  nMCTracksAll,  nESDTracks05,  nESDTracks10, nESDTracks14);
 
-        fMultiplicity->FillMeasured(vtx[2], nESDTracks05, nESDTracks10, nESDTracks15, nESDTracks20);
+        fMultiplicity->FillMeasured(vtx[2], nESDTracks05, nESDTracks10, nESDTracks14);
 
         if (fParticleSpecies)
           fParticleSpecies->Fill(vtxMC[2], nMCTracksSpecies[0], nMCTracksSpecies[1], nMCTracksSpecies[2], nMCTracksSpecies[3], nESDTracksSpecies[0], nESDTracksSpecies[1], nESDTracksSpecies[2], nESDTracksSpecies[3], nESDTracksSpecies[4], nESDTracksSpecies[5], nESDTracksSpecies[6]);
@@ -852,5 +843,5 @@ void AliMultiplicityTask::Terminate(Option_t *)
 
   file->Close();
 
-  Printf("Writting result to multiplicity.root");
+  Printf("Written result to multiplicity.root");
 }