//========================correction=============================//\r
Double_t AliAnalysisTaskBFPsi::GetTrackbyTrackCorrectionMatrix( Double_t vEta, Double_t vPhi, \r
Double_t vPt, Short_t vCharge, Double_t gCentrality) {\r
- // -- Get efficiency correction of particle dependent on (eta, phi, pt, charge, centrality) \r
- \r
+ // -- Get efficiency correction of particle dependent on (eta, phi, pt, charge, centrality) \r
+\r
Double_t correction = 1.;\r
//Double_t dimBin[3] = {vEta, vPhi, vPt, gCentrality}; // eta, phi, pt, centrality\r
\r
gCentralityInt = i;\r
}\r
}\r
+\r
+ // safety check if correction matrix is available --> return correction = 1.\r
+ if(!fHistMatrixCorrectionPlus[gCentralityInt-1] || !fHistMatrixCorrectionPlus[gCentralityInt-1]){\r
+ return 1.;\r
+ }\r
\r
if (vCharge > 0) {\r
correction = fHistMatrixCorrectionPlus[gCentralityInt-1]->GetBinContent(fHistMatrixCorrectionPlus[gCentralityInt-1]->GetBin(binEta, binPt, binPhi));\r
class TH2D;
class TH3D;
-const Int_t kTrackVariablesSingle = 2; // track variables in histogram (centrality, phi-Psi2, eta, phi, pTtrig)
-const Int_t kTrackVariablesPair = 5; // track variables in histogram (centrality, phi-Psi2, dEta, dPhi, pTtrig, ptAssociated)
+const Int_t kTrackVariablesSingle = 2; // track variables in histogram (event class, pTtrig)
+const Int_t kTrackVariablesPair = 5; // track variables in histogram (event class, dEta, dPhi, pTtrig, ptAssociated)
const TString gBFPsiAnalysisType[ANALYSIS_TYPES] = {"y","eta","qlong","qout","qside","qinv","phi"};
class AliBalancePsi : public TObject {
void SetShuffle(Bool_t shuffle) {fShuffle = shuffle;}
void SetCentralityInterval(Double_t cStart, Double_t cStop) { fCentStart = cStart; fCentStop = cStop;};
void SetEventClass(TString receivedEventClass){ fEventClass = receivedEventClass; }
+ void SetDeltaEtaMax(Double_t receivedDeltaEtaMax){ fDeltaEtaMax = receivedDeltaEtaMax; }
void InitHistograms(void);
TH2D *fHistPsiMinusPhi;//
Double_t fPsiInterval;// interval in Psi-phi1
+ Double_t fDeltaEtaMax;// maximum delta eta for output THnSparse
Bool_t fHBTCut;//HBT cut
Bool_t fConversionCut;//conversion cut
- TString fEventClass;
+ TString fEventClass;
AliBalancePsi & operator=(const AliBalancePsi & ) {return *this;}
Double_t ptMax=1.5,\r
Double_t etaMin=-0.8,\r
Double_t etaMax=0.8,\r
+ Double_t deltaEtaMax=2.0,\r
Double_t maxTPCchi2 = -1, \r
Int_t minNClustersTPC = -1,\r
Bool_t kUsePID = kFALSE,\r
AliBalancePsi *bfm = 0; // mixing Balance function object\r
\r
if (analysisType=="ESD"){\r
- bf = GetBalanceFunctionObject("ESD",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass);\r
- if(gRunShuffling) bfs = GetBalanceFunctionObject("ESD",centralityEstimator,centrMin,centrMax,kTRUE,bHBTcut,bConversionCut,fArgEventClass);\r
- if(gRunMixing) bfm = GetBalanceFunctionObject("ESD",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass);\r
+ bf = GetBalanceFunctionObject("ESD",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
+ if(gRunShuffling) bfs = GetBalanceFunctionObject("ESD",centralityEstimator,centrMin,centrMax,kTRUE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
+ if(gRunMixing) bfm = GetBalanceFunctionObject("ESD",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
}\r
else if (analysisType=="AOD"){\r
- bf = GetBalanceFunctionObject("AOD",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass);\r
- if(gRunShuffling) bfs = GetBalanceFunctionObject("AOD",centralityEstimator,centrMin,centrMax,kTRUE,bHBTcut,bConversionCut,fArgEventClass);\r
- if(gRunMixing) bfm = GetBalanceFunctionObject("AOD",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass);\r
+ bf = GetBalanceFunctionObject("AOD",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
+ if(gRunShuffling) bfs = GetBalanceFunctionObject("AOD",centralityEstimator,centrMin,centrMax,kTRUE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
+ if(gRunMixing) bfm = GetBalanceFunctionObject("AOD",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
}\r
else if (analysisType=="MC"){\r
- bf = GetBalanceFunctionObject("MC",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass);\r
- if(gRunShuffling) bfs = GetBalanceFunctionObject("MC",centralityEstimator,centrMin,centrMax,kTRUE,bHBTcut,bConversionCut,fArgEventClass);\r
- if(gRunMixing) bfm = GetBalanceFunctionObject("MC",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass);\r
+ bf = GetBalanceFunctionObject("MC",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
+ if(gRunShuffling) bfs = GetBalanceFunctionObject("MC",centralityEstimator,centrMin,centrMax,kTRUE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
+ if(gRunMixing) bfm = GetBalanceFunctionObject("MC",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
}\r
else{\r
::Error("AddTaskBF", "analysis type NOT known.");\r