#include "AliGeomManager.h"\r
#include "AliCDBManager.h"\r
\r
+#include "AliESDCentrality.h"\r
#include "AliESDVZERO.h"\r
#include "AliMultiplicity.h"\r
\r
, fUseTerminate(kTRUE)\r
, fUseCentrality(0)\r
, fUseOCDB(kTRUE)\r
+ , fUseCentralityBin(0)\r
{\r
// Dummy Constructor\r
// should not be used\r
, fUseTerminate(kTRUE)\r
, fUseCentrality(0)\r
, fUseOCDB(kTRUE)\r
+ , fUseCentralityBin(0)\r
{\r
// Constructor\r
\r
fMC = MCEvent();\r
} \r
\r
- //\r
- AliPerformanceObject *pObj=0;\r
\r
if (!fESD) {\r
Printf("ERROR: ESD event not available");\r
}\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
}\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