fNbinsPt(1),
fCentAxis(0x0),
fPtAxis(0x0),
+ fEtaAxis(0x0),
fHistV0Multiplicity(0x0),
fHistITSMultiplicity(0x0),
fHistCentrality(0x0),
for (Int_t iPtBinMA=0; iPtBinMA<fNMaxBinsPt; iPtBinMA++) {
fHistDeltaPhi[iCent][iPtBinCB][iPtBinMA] = NULL;
fHistDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] = NULL;
+ fHistEtaDeltaPhi[iCent][iPtBinCB][iPtBinMA] = NULL;
+ fHistEtaDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] = NULL;
}
}
fHistNTracksCB_vs_NTracksMA[iCent] = NULL;
fHistTracksEtaMAvsEtaCBmixed[iCent] = NULL;
fHistSingleMuonsPt[iCent] = NULL;
fHistSingleMuonsPtmixed[iCent] = NULL;
+ fHistSingleMuonsEtaPt[iCent] = NULL;
+ fHistSingleMuonsEtaPtmixed[iCent] = NULL;
fHistSingleMuonsEtaVsPt[iCent] = NULL;
fHistSingleMuonsEtaVsRAbs[iCent] = NULL;
}
fNbinsPt(1),
fCentAxis(0x0),
fPtAxis(0x0),
+ fEtaAxis(0x0),
fHistV0Multiplicity(0x0),
fHistITSMultiplicity(0x0),
fHistCentrality(0x0),
for (Int_t iPtBinMA=0; iPtBinMA<fNMaxBinsPt; iPtBinMA++) {
fHistDeltaPhi[iCent][iPtBinCB][iPtBinMA] = NULL;
fHistDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] = NULL;
+ fHistEtaDeltaPhi[iCent][iPtBinCB][iPtBinMA] = NULL;
+ fHistEtaDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] = NULL;
}
}
fHistNTracksCB_vs_NTracksMA[iCent] = NULL;
fHistTracksEtaMAvsEtaCBmixed[iCent] = NULL;
fHistSingleMuonsPt[iCent] = NULL;
fHistSingleMuonsPtmixed[iCent] = NULL;
+ fHistSingleMuonsEtaPt[iCent] = NULL;
+ fHistSingleMuonsEtaPtmixed[iCent] = NULL;
fHistSingleMuonsEtaVsPt[iCent] = NULL;
fHistSingleMuonsEtaVsRAbs[iCent] = NULL;
}
delete fCentAxis;
delete fPtAxis;
+ delete fEtaAxis;
if (fOutputList && !AliAnalysisManager::GetAnalysisManager()->IsProofMode())
delete fOutputList;
fOutputList -> Add(fHistDeltaPhi[iCent][iPtBinCB][iPtBinMA]);
fOutputList -> Add(fHistDeltaPhiMix[iCent][iPtBinCB][iPtBinMA]);
+ fHistEtaDeltaPhi[iCent][iPtBinCB][iPtBinMA] = new TH2D(Form("fHistEtaDeltaPhi_Cent%02d_PtBin%02d_%02d",iCent,iPtBinCB,iPtBinMA),
+ Form("%d-%d %%, %3.1f<p_{T}^{TPC}<%3.1f, %3.1f<p_{T}^{Muon}<%3.1f",
+ Int_t(fCentAxis->GetBinLowEdge(iCent+1)),
+ Int_t(fCentAxis->GetBinUpEdge(iCent+1)),
+ fPtAxis->GetBinLowEdge(iPtBinCB+1),
+ fPtAxis->GetBinUpEdge(iPtBinCB+1),
+ fPtAxis->GetBinLowEdge(iPtBinMA+1),
+ fPtAxis->GetBinUpEdge(iPtBinMA+1)),
+ 100, -0.5*TMath::RadToDeg()*TMath::Pi(), 1.5*TMath::RadToDeg()*TMath::Pi(),
+ fEtaAxis->GetNbins(),(Double_t*)fEtaAxis->GetXbins()->GetArray());
+
+ fHistEtaDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] = new TH2D(Form("fHistEtaDeltaPhiMix_Cent%02d_PtBin%02d_%02d",iCent,iPtBinCB,iPtBinMA),
+ Form("%d-%d %%, %3.1f<p_{T}^{TPC}<%3.1f, %3.1f<p_{T}^{Muon}<%3.1f MIXED",
+ Int_t(fCentAxis->GetBinLowEdge(iCent+1)),
+ Int_t(fCentAxis->GetBinUpEdge(iCent+1)),
+ fPtAxis->GetBinLowEdge(iPtBinCB+1),
+ fPtAxis->GetBinUpEdge(iPtBinCB+1),
+ fPtAxis->GetBinLowEdge(iPtBinMA+1),
+ fPtAxis->GetBinUpEdge(iPtBinMA+1)),
+ 100, -0.5*TMath::RadToDeg()*TMath::Pi(), 1.5*TMath::RadToDeg()*TMath::Pi(),
+ fEtaAxis->GetNbins(),(Double_t*)fEtaAxis->GetXbins()->GetArray());
+
+ fHistEtaDeltaPhi[iCent][iPtBinCB][iPtBinMA] -> SetXTitle("#Delta#varphi [degrees]");
+ fHistEtaDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] -> SetXTitle("#Delta#varphi [degrees]");
+ fHistEtaDeltaPhi[iCent][iPtBinCB][iPtBinMA] -> SetYTitle("#eta");
+ fHistEtaDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] -> SetYTitle("#eta");
+
+ fHistEtaDeltaPhi[iCent][iPtBinCB][iPtBinMA] -> Sumw2();
+ fHistEtaDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] -> Sumw2();
+
+ fOutputList -> Add(fHistEtaDeltaPhi[iCent][iPtBinCB][iPtBinMA]);
+ fOutputList -> Add(fHistEtaDeltaPhiMix[iCent][iPtBinCB][iPtBinMA]);
+
}
}
fOutputList -> Add(fHistSingleMuonsPt[iCent]);
fOutputList -> Add(fHistSingleMuonsPtmixed[iCent]);
+ fHistSingleMuonsEtaPt[iCent] = new TH2D(Form("fHistSingleMuonEtaPt_Cent%02d",iCent),
+ "#eta vs p_{T} for single muons",
+ fNbinsPt, (Double_t*)fPtAxis->GetXbins()->GetArray(),
+ fEtaAxis->GetNbins(),(Double_t*)fEtaAxis->GetXbins()->GetArray());
+ fHistSingleMuonsEtaPtmixed[iCent] = new TH2D(Form("fHistSingleMuonEtaPtmixed_Cent%02d",iCent),
+ "#eta vs p_{T} for single muons",
+ fNbinsPt, (Double_t*)fPtAxis->GetXbins()->GetArray(),
+ fEtaAxis->GetNbins(),(Double_t*)fEtaAxis->GetXbins()->GetArray());
+ fOutputList -> Add(fHistSingleMuonsEtaPt[iCent]);
+ fOutputList -> Add(fHistSingleMuonsEtaPtmixed[iCent]);
+
fHistSingleMuonsEtaVsPt[iCent] = new TH2D(Form("fHistSingleMuonsEtaVsPt_Cent%02d",iCent),
"#eta vs p_{T} for single muons",
100, -4.5, -2., 100, 0., 10.);
for (Int_t iTrMA=0; iTrMA<tracksMuonArm->GetEntriesFast(); iTrMA++) {
fTrackMA = (AliAODTrack*) tracksMuonArm->At(iTrMA);
fHistSingleMuonsPt[centBin]->Fill(fTrackMA->Pt());
+ fHistSingleMuonsEtaPt[centBin]->Fill(fTrackMA->Pt(),fTrackMA->Eta());
for (Int_t iTrCB=0; iTrCB<tracksCentralBarrel->GetEntriesFast(); iTrCB++) {
fTrackCB = (AliAODTrack*) tracksCentralBarrel -> At(iTrCB);
FillHistograms(centBin, kSingleEvent);
for (Int_t iTrMA=0; iTrMA<tracksMuonArm->GetEntriesFast(); iTrMA++) {
fTrackMA = (AliAODTrack*) tracksMuonArm->At(iTrMA);
fHistSingleMuonsPtmixed[centBin]->Fill(fTrackMA->Pt());
+ fHistSingleMuonsEtaPtmixed[centBin]->Fill(fTrackMA->Pt(),fTrackMA->Eta());
for (Int_t iTrCB=0; iTrCB<mixedTracks->GetEntriesFast(); iTrCB++) {
fTrackCB = (AliAODTrack*) mixedTracks -> At(iTrCB);
FillHistograms(centBin, kMixedEvent);
if (option==kSingleEvent) fHistDeltaPhi[centrality][ptBinTrackCB-1][ptBinTrackMA-1] -> Fill(TMath::RadToDeg()*deltaPhi);
else if (option==kMixedEvent) fHistDeltaPhiMix[centrality][ptBinTrackCB-1][ptBinTrackMA-1] -> Fill(TMath::RadToDeg()*deltaPhi);
+ if (option==kSingleEvent) fHistEtaDeltaPhi[centrality][ptBinTrackCB-1][ptBinTrackMA-1] -> Fill(TMath::RadToDeg()*deltaPhi,fTrackMA->Eta());
+ else if (option==kMixedEvent) fHistEtaDeltaPhiMix[centrality][ptBinTrackCB-1][ptBinTrackMA-1] -> Fill(TMath::RadToDeg()*deltaPhi,fTrackMA->Eta());
+
if (option==kSingleEvent) fHistTracksEtaMAvsEtaCB[centrality]->Fill(fTrackMA->Eta(),fTrackCB->Eta());
else if (option==kMixedEvent) fHistTracksEtaMAvsEtaCBmixed[centrality]->Fill(fTrackMA->Eta(),fTrackCB->Eta());
}
//====================================================================================================================================================
+void AliAnalysisTaskMuonHadronCorrelations::SetEtaBinning(Int_t nBins, Double_t *limits) {
+
+ if (nBins>fNMaxBinsEta) {
+ AliInfo(Form("WARNING : only %d pt bins (out of the %d proposed) will be considered",fNMaxBinsEta,nBins));
+ nBins = fNMaxBinsEta;
+ }
+ if (nBins<=0) {
+ AliInfo("WARNING : at least one pt bin must be considered");
+ nBins = 1;
+ }
+
+ fEtaAxis = new TAxis(nBins, limits);
+
+}
+
+//====================================================================================================================================================
+
Int_t AliAnalysisTaskMuonHadronCorrelations::GetCentBin() {
Double_t percentile = fAOD->GetCentrality()->GetCentralityPercentile(fCentMethod.Data());
TObjArray* GetAcceptedTracksMuonArm(AliAODEvent *aodEvent, Int_t centBin);
void SetPtBinning(Int_t nBins, Double_t *limits);
void SetCentBinning(Int_t nBins, Double_t *limits);
+ void SetEtaBinning(Int_t nBins, Double_t *limits);
void SetCentMethod(const Char_t *method) { fCentMethod = method; }
void FillHistograms(Int_t centrality, Int_t option);
Int_t GetCentBin();
static const Int_t fNMaxBinsCentrality = 20;
static const Int_t fNMaxBinsPt = 10;
+ static const Int_t fNMaxBinsEta = 10;
AliAODEvent *fAOD; //!
AliEventPoolManager *fPoolMgr; //! event pool manager
TAxis *fCentAxis;
TAxis *fPtAxis;
+ TAxis *fEtaAxis;
TH1D *fHistDeltaPhi[fNMaxBinsCentrality][fNMaxBinsPt][fNMaxBinsPt]; //!
TH1D *fHistDeltaPhiMix[fNMaxBinsCentrality][fNMaxBinsPt][fNMaxBinsPt]; //!
+ TH2D *fHistEtaDeltaPhi[fNMaxBinsCentrality][fNMaxBinsPt][fNMaxBinsPt]; //!
+ TH2D *fHistEtaDeltaPhiMix[fNMaxBinsCentrality][fNMaxBinsPt][fNMaxBinsPt]; //!
TH2D *fHistNTracksCB_vs_NTracksMA[fNMaxBinsCentrality]; //!
TH2D *fHistNTracksCB_vs_NTracksMAmixed[fNMaxBinsCentrality]; //!
TH2D *fHistTracksEtaMAvsEtaCB[fNMaxBinsCentrality]; //!
TH2D *fHistTracksEtaMAvsEtaCBmixed[fNMaxBinsCentrality]; //!
TH1D *fHistSingleMuonsPt[fNMaxBinsCentrality]; //!
TH1D *fHistSingleMuonsPtmixed[fNMaxBinsCentrality]; //!
+ TH2D *fHistSingleMuonsEtaPt[fNMaxBinsCentrality]; //!
+ TH2D *fHistSingleMuonsEtaPtmixed[fNMaxBinsCentrality]; //!
TH1D *fHistV0Multiplicity; //!
TH1D *fHistITSMultiplicity; //!
AliAnalysisTaskMuonHadronCorrelations(const AliAnalysisTaskMuonHadronCorrelations&);//not implimented
AliAnalysisTaskMuonHadronCorrelations& operator=(const AliAnalysisTaskMuonHadronCorrelations&);//not implimnted
- ClassDef(AliAnalysisTaskMuonHadronCorrelations, 1) // example of analysis
+ ClassDef(AliAnalysisTaskMuonHadronCorrelations, 2) // example of analysis
};