fHistdEdxVsPTPCafterPIDelectron(NULL), //+++++++\r
fHistNSigmaTPCvsPtafterPIDelectron(NULL), //+++++++\r
fCentralityArrayBinsForCorrections(kCENTRALITY),\r
+ fCentralityWeights(0x0),\r
fPIDResponse(0x0),\r
fPIDCombined(0x0),\r
fParticleOfInterest(kPion),\r
// take only events inside centrality class\r
if(fUseCentrality) {\r
if((gRefMultiplicity > fCentralityPercentileMin) && (gRefMultiplicity < fCentralityPercentileMax)){\r
+\r
+ // centrality weighting (optional for 2011 if central and semicentral triggers are used)\r
+ if (fCentralityWeights && !AcceptEventCentralityWeight(gRefMultiplicity)){\r
+ AliInfo(Form("Rejecting event because of centrality weighting: %f", gRefMultiplicity));\r
+ return -1;\r
+ }\r
+ \r
fHistEventStats->Fill(5,gRefMultiplicity); //events with correct centrality\r
return gRefMultiplicity; \r
}//centrality class\r
return 1.0;\r
}\r
\r
+//____________________________________________________________________\r
+Bool_t AliAnalysisTaskBFPsi::AcceptEventCentralityWeight(Double_t centrality)\r
+{\r
+ // copied from AliAnalysisTaskPhiCorrelations\r
+ //\r
+ // rejects "randomly" events such that the centrality gets flat\r
+ // uses fCentralityWeights histogram\r
+\r
+ // TODO code taken and adapted from AliRDHFCuts; waiting for general class AliCentralityFlattening\r
+ \r
+ Double_t weight = fCentralityWeights->GetBinContent(fCentralityWeights->FindBin(centrality));\r
+ Double_t centralityDigits = centrality*100. - (Int_t)(centrality*100.);\r
+ \r
+ Bool_t result = kFALSE;\r
+ if (centralityDigits < weight) \r
+ result = kTRUE;\r
+ \r
+ AliInfo(Form("Centrality: %f; Digits: %f; Weight: %f; Result: %d", centrality, centralityDigits, weight, result));\r
+ \r
+ return result;\r
+}\r
+\r
//________________________________________________________________________\r
void AliAnalysisTaskBFPsi::FinishTaskOutput(){\r
//Printf("END BF");\r
void CheckPileUp() {fCheckPileUp = kTRUE;}\r
void CheckPrimaryFlagAOD() {fCheckPrimaryFlagAOD = kTRUE;}\r
void UseMCforKinematics() {fUseMCforKinematics = kTRUE;}\r
+ void SetCentralityWeights(TH1* hist) { fCentralityWeights = hist; }\r
+ Bool_t AcceptEventCentralityWeight(Double_t centrality);\r
+\r
\r
//Acceptance filter\r
void SetAcceptanceParameterization(TF1 *parameterization) {\r
Double_t fCentralityArrayForCorrections[kCENTRALITY];\r
Int_t fCentralityArrayBinsForCorrections;\r
\r
+ TH1* fCentralityWeights; // for centrality flattening\r
+\r
AliPIDResponse *fPIDResponse; //! PID response object\r
AliPIDCombined *fPIDCombined; //! combined PID object\r
\r