AliDhcTask::AliDhcTask()
: AliAnalysisTaskSE(), fVerbosity(0), fEtaMax(1), fZVtxMax(10), fPtMin(0.25), fPtMax(15),
fTrackDepth(1000), fPoolSize(200), fTracksName(), fDoWeights(kFALSE), fFillMuons(kFALSE),
- fPtTACrit(kTRUE), fAllTAHists(kFALSE),
+ fPtTACrit(kTRUE), fAllTAHists(kFALSE), fMixInEtaT(kFALSE),
fEtaTLo(-1.0), fEtaTHi(1.0), fEtaALo(-1.0), fEtaAHi(1.0),
fESD(0x0), fAOD(0x0), fOutputList(0x0), fHEvt(0x0), fHTrk(0x0),
fHPtAss(0x0), fHPtTrg(0x0), fHPtTrgEvt(0x0),
fHPtTrgNorm1S(0x0), fHPtTrgNorm1M(0x0), fHPtTrgNorm2S(0x0), fHPtTrgNorm2M(0x0),
fHCent(0x0), fHZvtx(0x0), fNbins(0), fHSs(0x0), fHMs(0x0), fHPts(0x0),
- fHQAT(0x0), fHQAA(0x0),
+ fHQAT(0x0), fHQAA(0x0), fHPtCentT(0x0), fHPtCentA(0x0),
fIndex(0x0),
fCentrality(99), fZVertex(99), fEsdTPCOnly(0), fPoolMgr(0),
fCentMethod("V0M"), fNBdeta(20), fNBdphi(36),
AliDhcTask::AliDhcTask(const char *name)
: AliAnalysisTaskSE(name), fVerbosity(0), fEtaMax(1), fZVtxMax(10), fPtMin(0.25), fPtMax(15),
fTrackDepth(1000), fPoolSize(200), fTracksName(), fDoWeights(kFALSE), fFillMuons(kFALSE),
- fPtTACrit(kTRUE), fAllTAHists(kFALSE),
+ fPtTACrit(kTRUE), fAllTAHists(kFALSE), fMixInEtaT(kFALSE),
fEtaTLo(-1.0), fEtaTHi(1.0), fEtaALo(-1.0), fEtaAHi(1.0),
fESD(0x0), fAOD(0x0), fOutputList(0x0), fHEvt(0x0), fHTrk(0x0),
fHPtAss(0x0), fHPtTrg(0x0), fHPtTrgEvt(0x0),
fHPtTrgNorm1S(0x0), fHPtTrgNorm1M(0x0), fHPtTrgNorm2S(0x0), fHPtTrgNorm2M(0x0),
fHCent(0x0), fHZvtx(0x0), fNbins(0), fHSs(0x0), fHMs(0x0), fHPts(0x0),
- fHQAT(0x0), fHQAA(0x0),
+ fHQAT(0x0), fHQAA(0x0), fHPtCentT(0x0), fHPtCentA(0x0),
fIndex(0x0),
fCentrality(99), fZVertex(99), fEsdTPCOnly(0), fPoolMgr(0),
fCentMethod("V0M"), fNBdeta(20), fNBdphi(36),
{
// Create histograms
// Called once (per slave on PROOF!)
- AliInfo("Initialize Dhc Task");
- AliInfo(Form(" centrality estimator %s", fCentMethod.Data()));
- AliInfo(Form(" using tracks named %s", fTracksName.Data()));
- AliInfo(Form(" efficiency correct triggers? %d", fHEffT!=0));
- AliInfo(Form(" efficiency correct associates? %d", fHEffA!=0));
- AliInfo(Form(" fill muons? %d", fFillMuons));
- AliInfo(Form(" use pTT > pTA criterion? %d", fPtTACrit));
- AliInfo(Form(" create all pTT, pTA hists? %d", fAllTAHists));
- AliInfo(Form(" trigger eta range %f .. %f", fEtaTLo, fEtaTHi));
- AliInfo(Form(" associate eta range %f .. %f", fEtaALo, fEtaAHi));
+ PrintDhcSettings();
fOutputList = new TList();
fOutputList->SetOwner(1);
PostData(1, fOutputList);
}
+//________________________________________________________________________
+void AliDhcTask::PrintDhcSettings()
+{
+ AliInfo(Form("Dhc Task %s settings",fName.Data()));
+ AliInfo(Form(" centrality estimator %s", fCentMethod.Data()));
+ AliInfo(Form(" using tracks named %s", fTracksName.Data()));
+ AliInfo(Form(" efficiency correct triggers? %d", fHEffT!=0));
+ AliInfo(Form(" efficiency correct associates? %d", fHEffA!=0));
+ AliInfo(Form(" fill muons? %d", fFillMuons));
+ AliInfo(Form(" use pTT > pTA criterion? %d", fPtTACrit));
+ AliInfo(Form(" create all pTT, pTA hists? %d", fAllTAHists));
+ AliInfo(Form(" Mix in eta_T bins instead of z_vertex? %d", fMixInEtaT));
+ AliInfo(Form(" trigger eta range %f .. %f", fEtaTLo, fEtaTHi));
+ AliInfo(Form(" associate eta range %f .. %f", fEtaALo, fEtaAHi));
+
+}
+
//________________________________________________________________________
void AliDhcTask::BookHistos()
{
36,0.0,TMath::TwoPi());
fOutputList->Add(fHQAA);
+ fHPtCentT = new TH2F("fHPtCentT",Form("trigger particles;p_{T} (GeV/c);centrality (%s)",fCentMethod.Data()),
+ 100,0.0,10.0,
+ 100,cent[0],cent[nCent]);
+ fOutputList->Add(fHPtCentT);
+ fHPtCentA = new TH2F("fHPtCentA",Form("associated particles;p_{T} (GeV/c);centrality (%s)",fCentMethod.Data()),
+ 100,0.0,10.0,
+ 100,cent[0],cent[nCent]);
+ fOutputList->Add(fHPtCentA);
+
fNbins = nPtTrig*nPtAssc*nCent*nZvtx;
fHSs = new TH2*[fNbins];
fHMs = new TH2*[fNbins];
Int_t bbin = fHPtAss->FindBin(pta);
if (!(fHPtAss->IsBinOverflow(bbin) || fHPtAss->IsBinUnderflow(bbin))) {
fHQAA->Fill(pta,etaa,phia); // fill every associated particle once
+ fHPtCentA->Fill(pta,fCentrality);
}
}
}
if (pairing == kSameEvt) {
fHTrk->Fill(phia,etaa);
fHQAT->Fill(pta,etaa,phia);
+ fHPtCentT->Fill(pta,fCentrality);
fHPtTrg->Fill(pta);
fHPtTrgNorm1S->Fill(pta,fCentrality,fZVertex,effWtT);
} else {
void SetFillMuons(Bool_t b) { fFillMuons = b; }
void SetPtTACrit(Bool_t b) { fPtTACrit = b; }
void SetAllTAHists(Bool_t b) { fAllTAHists = b; }
+ void SetMixInEtaT(Bool_t b) { fMixInEtaT = b; }
void SetEtaMax(Double_t eta) { fEtaMax = eta; }
void SetEtaTRange(Double_t eL, Double_t eH) { fEtaTLo=eL; fEtaTHi=eH; }
void SetPoolSize(Int_t p) { fPoolSize = p; }
void SetHEffT(THnF *h) { fHEffT=h; }
void SetHEffA(THnF *h) { fHEffA=h; }
void SetAnaMode(Int_t iAna);
+ void PrintDhcSettings();
enum eAnaMode {kHH, kMuH, kHMu, kMuMu, kPSide, kASide};
protected:
Bool_t fFillMuons; // fill the muon tracks into the mini event
Bool_t fPtTACrit; // use the pTT > pTA criterion?
Bool_t fAllTAHists; // create all pTT,pTA combination hists, even t<a?
+ Bool_t fMixInEtaT; // mix in bins of eta_T instead of z_vertex
Double_t fEtaTLo; // Min eta for triggers
Double_t fEtaTHi; // Max eta for triggers
Double_t fEtaALo; // Min eta for associated
TH1 **fHPts; //! Pt distributions
TH3 *fHQAT; //! trigger particle distribution for QA
TH3 *fHQAA; //! associated particle distribution for QA
+ TH2 *fHPtCentT; //! trigger pT vs centrality
+ TH2 *fHPtCentA; //! associated pT vs centrality
TFormula *fIndex; //! Index for histograms
Double_t fCentrality; //! V0M for now
Double_t fZVertex; //! Of current event