]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
new centrality selection
authorjotwinow <jotwinow@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 14 Dec 2010 17:01:51 +0000 (17:01 +0000)
committerjotwinow <jotwinow@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 14 Dec 2010 17:01:51 +0000 (17:01 +0000)
PWG1/TPC/AliPerformanceTask.cxx
PWG1/TPC/AliPerformanceTask.h

index 3bf5fe961f4982cbd75bd50c4a53320826bc7e61..97e092a59b7c628585fc40e67a1c1f77a4be3640 100644 (file)
@@ -49,6 +49,7 @@
 #include "AliGeomManager.h"\r
 #include "AliCDBManager.h"\r
 \r
+#include "AliESDCentrality.h"\r
 #include "AliESDVZERO.h"\r
 #include "AliMultiplicity.h"\r
 \r
@@ -85,6 +86,7 @@ AliPerformanceTask::AliPerformanceTask()
   , fUseTerminate(kTRUE)\r
   , fUseCentrality(0)\r
   , fUseOCDB(kTRUE)\r
+  , fUseCentralityBin(0)\r
 {\r
   // Dummy Constructor\r
   // should not be used\r
@@ -106,6 +108,7 @@ AliPerformanceTask::AliPerformanceTask(const char *name, const char */*title*/)
   , fUseTerminate(kTRUE)\r
   , fUseCentrality(0)\r
   , fUseOCDB(kTRUE)\r
+  , fUseCentralityBin(0)\r
 {\r
   // Constructor\r
 \r
@@ -202,8 +205,6 @@ void AliPerformanceTask::UserExec(Option_t *)
       fMC = MCEvent();\r
   }  \r
 \r
-  //\r
-  AliPerformanceObject *pObj=0;\r
 \r
   if (!fESD) {\r
     Printf("ERROR: ESD event not available");\r
@@ -222,20 +223,23 @@ void AliPerformanceTask::UserExec(Option_t *)
     }\r
   }\r
 \r
-  Int_t centBin = CalculateCentralityBin();\r
+  // Process analysis\r
+  Bool_t process = kTRUE;\r
 \r
+  // Check fo centrality\r
+  if (fUseCentrality) {\r
+    if ( CalculateCentralityBin() != fUseCentralityBin ) {\r
+      process = kFALSE;\r
+    }\r
+  }\r
 \r
   // Process comparison\r
-  fPitList->Reset();\r
-  while(( pObj = (AliPerformanceObject *)fPitList->Next()) != NULL) {\r
-    if (!fUseCentrality) {\r
-      pObj->Exec(fMC,fESD,fESDfriend,fUseMCInfo,fUseESDfriend);\r
-      continue;\r
+  if (process) {\r
+    AliPerformanceObject *pObj=0;\r
+    fPitList->Reset();\r
+    while(( pObj = (AliPerformanceObject *)fPitList->Next()) != NULL) {\r
+          pObj->Exec(fMC,fESD,fESDfriend,fUseMCInfo,fUseESDfriend);\r
     }\r
-\r
-    if (pObj->GetUseCentralityBin() == centBin) {\r
-      pObj->Exec(fMC,fESD,fESDfriend,fUseMCInfo,fUseESDfriend);\r
-    } \r
   }\r
 \r
   // Post output data.\r
@@ -327,86 +331,38 @@ Bool_t AliPerformanceTask::Notify()
 }\r
 \r
 //________________________________________________________________________\r
-Int_t AliPerformanceTask::CalculateCentralityBin()\r
-{\r
+Int_t AliPerformanceTask::CalculateCentralityBin(){\r
   // Get Centrality bin\r
 \r
   Int_t centrality = -1;\r
+  Float_t centralityF = -1;\r
 \r
   if (fUseCentrality == 0)\r
     return centrality;\r
 \r
-  AliESDVZERO* esdV0 = fESD->GetVZEROData();\r
-  Float_t multV0 = esdV0->GetMTotV0A() + esdV0->GetMTotV0C();\r
-  \r
-  Float_t nClusters[6];\r
-\r
-  const AliMultiplicity *mult = fESD->GetMultiplicity();\r
-  for(Int_t ilay = 0; ilay < 6; ilay++){\r
-    nClusters[ilay] = mult->GetNumberOfITSClusters(ilay);\r
-  }\r
-  \r
-  if ( fUseCentrality == 1 ) {\r
-    // -- centrality cuts V0\r
-#if 0 \r
-    // 2010-11-10 - now old cuts\r
-    if (      multV0 >=    0.   && multV0 <=   106.75 ) centrality = 90;\r
-    else if ( multV0 >   106.75 && multV0 <=   277.55 ) centrality = 80;\r
-    else if ( multV0 >   277.55 && multV0 <=   661.85 ) centrality = 70;\r
-    else if ( multV0 >   661.85 && multV0 <=  1345.05 ) centrality = 60;\r
-    else if ( multV0 >  1345.05 && multV0 <=  2412.55 ) centrality = 50;\r
-    else if ( multV0 >  2412.55 && multV0 <=  3907.05 ) centrality = 40;\r
-    else if ( multV0 >  3907.05 && multV0 <=  6042.05 ) centrality = 30;\r
-    else if ( multV0 >  6042.05 && multV0 <=  8902.95 ) centrality = 20;\r
-    else if ( multV0 >  8902.95 && multV0 <= 12788.6  ) centrality = 10;\r
-    else if ( multV0 > 12788.6  && multV0 <= 15222.5  ) centrality = 5;\r
-    else if ( multV0 > 15222.5  && multV0 <= 19449.8  ) centrality = 0;\r
-#else\r
-    // 2010-11-14\r
-    if (      multV0 >=    0.  && multV0 <=   124.5 ) centrality = 90;\r
-    else if ( multV0 >   124.5 && multV0 <=   274.5 ) centrality = 80;\r
-    else if ( multV0 >   274.5 && multV0 <=   574.5 ) centrality = 70;\r
-    else if ( multV0 >   574.5 && multV0 <=  1224.5 ) centrality = 60;\r
-    else if ( multV0 >  1224.5 && multV0 <=  2174.5 ) centrality = 50;\r
-    else if ( multV0 >  2174.5 && multV0 <=  3624.5 ) centrality = 40;\r
-    else if ( multV0 >  3624.5 && multV0 <=  5574.5 ) centrality = 30;\r
-    else if ( multV0 >  5574.5 && multV0 <=  8274.5 ) centrality = 20;\r
-    else if ( multV0 >  8274.5 && multV0 <= 12024.5 ) centrality = 10;\r
-    else if ( multV0 > 12024.5 && multV0 <= 14674.5 ) centrality = 5;\r
-    else if ( multV0 > 14674.5 && multV0 <= 19449.5 ) centrality = 0;\r
-#endif\r
-  }\r
-  else if ( fUseCentrality == 2 ) {\r
-#if 0 \r
-    // 2010-11-10 - now old cuts\r
-    if (      nClusters[1] >=    0.  && nClusters[1] <=    7.18 )  centrality = 100;\r
-    else if ( nClusters[1] >    7.18 && nClusters[1] <=   35.9  )  centrality = 90;\r
-    else if ( nClusters[1] >   35.9  && nClusters[1] <=   93.34 )  centrality = 80;\r
-    else if ( nClusters[1] >   93.34 && nClusters[1] <=  222.58 )  centrality = 70;\r
-    else if ( nClusters[1] >  222.58 && nClusters[1] <=  437.98 )  centrality = 60;\r
-    else if ( nClusters[1] >  437.98 && nClusters[1] <=  768.26 )  centrality = 50;\r
-    else if ( nClusters[1] >  768.26 && nClusters[1] <= 1242.14 )  centrality = 40;\r
-    else if ( nClusters[1] > 1242.14 && nClusters[1] <= 1888.34 )  centrality = 30;\r
-    else if ( nClusters[1] > 1888.34 && nClusters[1] <= 2735.58 )  centrality = 20;\r
-    else if ( nClusters[1] > 2735.58 && nClusters[1] <= 3884.38 )  centrality = 10;\r
-    else if ( nClusters[1] > 3884.38 && nClusters[1] <= 4573.66 )  centrality = 5;\r
-    else if ( nClusters[1] > 4573.66 && nClusters[1] <= 6540.98 )  centrality = 0;\r
-#else\r
-    // 2010-11-14\r
-    if      ( nClusters[1] >     0. && nClusters[1] <=   29.5 )  centrality = 90;\r
-    else if ( nClusters[1] >   29.5 && nClusters[1] <=   69.5 )  centrality = 80;\r
-    else if ( nClusters[1] >   69.5 && nClusters[1] <=  149.5 )  centrality = 70;\r
-    else if ( nClusters[1] >  149.5 && nClusters[1] <=  309.5 )  centrality = 60;\r
-    else if ( nClusters[1] >  309.5 && nClusters[1] <=  589.5 )  centrality = 50;\r
-    else if ( nClusters[1] >  589.5 && nClusters[1] <=  989.5 )  centrality = 40;\r
-    else if ( nClusters[1] >  989.5 && nClusters[1] <= 1569.5 )  centrality = 30;\r
-    else if ( nClusters[1] > 1569.5 && nClusters[1] <= 2369.5 )  centrality = 20;\r
-    else if ( nClusters[1] > 2369.5 && nClusters[1] <= 3509.5 )  centrality = 10;\r
-    else if ( nClusters[1] > 3509.5 && nClusters[1] <= 4349.5 )  centrality = 5;\r
-    else if ( nClusters[1] > 4349.5 && nClusters[1] <= 6540.5 )  centrality = 0;\r
-#endif\r
-  }\r
+  AliESDCentrality *esdCentrality = fESD->GetCentrality();\r
+    \r
+  // New : 2010-11-18 JMT \r
+  if ( fUseCentrality == 1 )\r
+    centralityF = esdCentrality->GetCentralityPercentile("V0M");\r
+  else if ( fUseCentrality == 2 )\r
+    centralityF = esdCentrality->GetCentralityPercentile("CL1");\r
+  else if ( fUseCentrality == 3 )\r
+    centralityF = esdCentrality->GetCentralityPercentile("TRK"); \r
+  if (centralityF == 0.)\r
+    centralityF = 100.;\r
+\r
+  if      ( centralityF >=  0. && centralityF <   5.) centrality =  0;\r
+  else if ( centralityF >=  5. && centralityF <  10.) centrality =  5;\r
+  else if ( centralityF >= 10. && centralityF <  20.) centrality = 10;\r
+  else if ( centralityF >= 20. && centralityF <  30.) centrality = 20;\r
+  else if ( centralityF >= 30. && centralityF <  40.) centrality = 30;\r
+  else if ( centralityF >= 40. && centralityF <  50.) centrality = 40;\r
+  else if ( centralityF >= 50. && centralityF <  60.) centrality = 50;\r
+  else if ( centralityF >= 60. && centralityF <  70.) centrality = 60;\r
+  else if ( centralityF >= 70. && centralityF <  80.) centrality = 70;\r
+  else if ( centralityF >= 80. && centralityF <  90.) centrality = 80;\r
+  else if ( centralityF >= 90. && centralityF <=100.) centrality = 90;\r
   \r
   return centrality;\r
 }\r
-\r
index d8f791492056826b4032426fe51aa31e90e88a27..6b7553d859a15e16af968a31efa07092be814ac7 100644 (file)
@@ -53,6 +53,10 @@ class AliPerformanceTask : public AliAnalysisTaskSE {
   void  SetUseOCDB(Bool_t bOCDB) { fUseOCDB = bOCDB;  }
   Bool_t  GetUseOCDB() { return fUseOCDB; }
 
+  // Centrality bin to be used
+  void  SetUseCentralityBin(Int_t bin) { fUseCentralityBin = bin; }
+  Int_t GetUseCentralityBin()          { return fUseCentralityBin; }
+
  private:
 
   // Calculate centrality
@@ -77,6 +81,8 @@ class AliPerformanceTask : public AliAnalysisTaskSE {
 
   Bool_t  fUseOCDB;           // use OCDB
 
+  Int_t fUseCentralityBin;  // centrality bin to be used 
+
   AliPerformanceTask(const AliPerformanceTask&); // not implemented
   AliPerformanceTask& operator=(const AliPerformanceTask&); // not implemented