-// Retrieve histograms array if already build or build it
-
- if(fHistos) return fHistos;
-
- fHistos = new TObjArray(kNhistos+1);
- fHistos->SetOwner(kTRUE);
-
- TH1 *h = NULL;
-
- // clusters per track
- const Int_t kNpt(30);
- Float_t pt(0.2);
- Float_t binsPt[kNpt+1];
- for(Int_t i=0;i<kNpt+1; i++,pt+=(TMath::Exp(i*i*.001)-1.)) binsPt[i]=pt;
- if(!(h = (TH2I*)gROOT->FindObject("hNCl"))){
- h = new TH2I("hNCl", "Clusters per TRD track;N_{cl}^{TRD};SPECIES;entries", 60, 0., 180., 10, -0.5, 9.5);
- TAxis *ay(h->GetYaxis());
- ay->SetLabelOffset(0.015);
- for(Int_t i(0); i<AliPID::kSPECIES; i++){
- ay->SetBinLabel(2*i+1, Form("%s^{-}", AliPID::ParticleLatexName(i)));
- ay->SetBinLabel(2*i+2, Form("%s^{+}", AliPID::ParticleLatexName(i)));
- }
- } else h->Reset();
- fHistos->AddAt(h, kNCl); fNRefFigures++;
-
- // status bits histogram
- const Int_t kNbits(5);
- Float_t bits(.5);
- Float_t binsBits[kNbits+1];
- for(Int_t i=0; i<kNbits+1; i++,bits+=1.) binsBits[i]=bits;
- if(!(h = (TH2I*)gROOT->FindObject("hTRDstat"))){
- h = new TH2I("hTRDstat", "TRD status bits;p_{t} @ TRD [GeV/c];status;entries", kNpt, binsPt, kNbits, binsBits);
- TAxis *ay(h->GetYaxis());
- ay->SetBinLabel(1, "kTPCout");
- ay->SetBinLabel(2, "kTRDin");
- ay->SetBinLabel(3, "kTRDout");
- ay->SetBinLabel(4, "kTRDpid");
- ay->SetBinLabel(5, "kTRDrefit");
- } else h->Reset();
- fHistos->AddAt(h, kTRDstat);
-
- // energy loss
- if(!(h = (TH2I*)gROOT->FindObject("hTRDmom"))){
- h = new TH2I("hTRDmom", "TRD energy loss;p_{inner} - p_{ly} [GeV/c];ly;entries", 100, -1., 2., 6, -0.5, 5.5);
- } else h->Reset();
- fHistos->AddAt(h, kTRDmom);
- //if(!HasMC()) return fHistos;
-
- // pt resolution
- const Int_t kNdpt(100), kNspec(4*AliPID::kSPECIES);
- Float_t dpt(-3.), spec(-0.5);
- Float_t binsDPt[kNdpt+1], binsSpec[kNspec+1];
- for(Int_t i=0; i<kNdpt+1; i++,dpt+=6.e-2) binsDPt[i]=dpt;
- for(Int_t i=0; i<kNspec+1; i++,spec+=1.) binsSpec[i]=spec;
- if(!(h = (TH3S*)gROOT->FindObject("hPtRes"))){
- h = new TH3S("hPtRes", "P_{t} resolution @ DCA;p_{t}^{MC} [GeV/c];#Delta p_{t}/p_{t}^{MC} [%];SPECIES", kNpt, binsPt, kNdpt, binsDPt, kNspec, binsSpec);
- TAxis *az(h->GetZaxis());
- az->SetLabelOffset(0.015);
- for(Int_t i(0); i<AliPID::kSPECIES; i++){
- az->SetBinLabel(2*i+1, Form("%s^{-}", AliPID::ParticleLatexName(i)));
- az->SetBinLabel(2*i+2, Form("%s^{+}", AliPID::ParticleLatexName(i)));
- az->SetBinLabel(10+2*i+1, Form("%s^{-}", AliPID::ParticleLatexName(i)));
- az->SetBinLabel(10+2*i+2, Form("%s^{+}", AliPID::ParticleLatexName(i)));
- }
- } else h->Reset();
- fHistos->AddAt(h, kPtRes);
-
- // TPC event vertex distribution
- if(!(h = (TH1F*)gROOT->FindObject("hTPCVertex"))){
- h = new TH1F("hTPCVertex", "Event vertex Z coord. from TPC tracks", 100, -25., 25.);
- } else h->Reset();
- fHistos->AddAt(h, kTPCVertex);
-
- // Event vertex
- if(!(h = (TH1F*)gROOT->FindObject("hEventVertex"))){
- h = new TH1F("hEventVertex", "Event vertex Z coord.", 100, -25., 25.);
- } else h->Reset();
- fHistos->AddAt(h, kEventVertex);
-
- // Number of all tracks
- if(!(h = (TH1I*)gROOT->FindObject("hNTracksAll"))){
- h = new TH1I("hNTracksAll", "Number of tracks per event, event vertex cuts", 5000, 0, 5000);
- } else h->Reset();
- fHistos->AddAt(h, kNTracksAll);
-
- // Number of tracks in acceptance and DCA cut
- if(!(h = (TH1I*)gROOT->FindObject("hNTracksAcc"))){
- h = new TH1I("hNTracksAcc", Form("Number of tracks per event, |#eta|<%.1f, |DCAxy|<%.1f, |DCAz|<%.1f",
- fgkEta, fgkTrkDCAxy, fgkTrkDCAz), 5000, 0, 5000);
- } else h->Reset();
- fHistos->AddAt(h, kNTracksAcc);
-
- // Number of tracks in TPC (Ncls>10)
- if(!(h = (TH1I*)gROOT->FindObject("hNTracksTPC"))){
- h = new TH1I("hNTracksTPC", Form("Number of tracks per event, |#eta|<%.1f, pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d",
- fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 5000, 0, 5000);
- } else h->Reset();
- fHistos->AddAt(h, kNTracksTPC);
-
- // Distribution of DCA-xy
- if(!(h = (TH1F*)gROOT->FindObject("hDCAxy"))){
- h = new TH1F("hDCAxy", "Distribution of transverse DCA", 100, -100., 100.);
- } else h->Reset();
- fHistos->AddAt(h, kDCAxy);
-
- // Distribution of DCA-z
- if(!(h = (TH1F*)gROOT->FindObject("hDCAz"))){
- h = new TH1F("hDCAz", "Distribution of longitudinal DCA", 100, -100., 100.);
- } else h->Reset();
- fHistos->AddAt(h, kDCAz);
-
- Double_t binPtLimits[33] = {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9,
- 1.0, 1.1, 1.2, 1.3, 1.4,
- 1.6, 1.8, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0,
- 3.4, 3.8, 4.2, 4.6, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0};
- // Pt distributions
- if(!(h = (TH1F*)gROOT->FindObject("hPt1"))){
- h = new TH1F("hPt1", Form("dN/dpt, |#eta|<%.1f and pt>%.1f", fgkEta, fgkPt), 32, binPtLimits);
- } else h->Reset();
- fHistos->AddAt(h, kPt1);
-
- if(!(h = (TH1F*)gROOT->FindObject("hPt2"))){
- h = new TH1F("hPt2", Form("dN/dpt, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f",
- fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz), 32, binPtLimits);
- } else h->Reset();
- fHistos->AddAt(h, kPt2);
-
- if(!(h = (TH1F*)gROOT->FindObject("hPt3pos"))){
- h = new TH1F("hPt3pos", Form("dN/dpt (positives), |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d",
- fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 32, binPtLimits);
- } else h->Reset();
- fHistos->AddAt(h, kPt3pos);
-
- if(!(h = (TH1F*)gROOT->FindObject("hPt3neg"))){
- h = new TH1F("hPt3neg", Form("dN/dpt (negatives), |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d",
- fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 32, binPtLimits);
- } else h->Reset();
- fHistos->AddAt(h, kPt3neg);
-
- if(!(h = (TH1F*)gROOT->FindObject("hPt4pos"))){
- h = new TH1F("hPt4pos", Form("dN/dpt (positives), |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, nTRDtracklets#geq 1",
- fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 32, binPtLimits);
- } else h->Reset();
- fHistos->AddAt(h, kPt4pos);
-
- if(!(h = (TH1F*)gROOT->FindObject("hPt4neg"))){
- h = new TH1F("hPt4pos", Form("dN/dpt (negatives), |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, nTRDtracklets#geq 1",
- fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 32, binPtLimits);
- } else h->Reset();
- fHistos->AddAt(h, kPt4neg);
-
- // theta distribution of TRD tracks
- if(!(h = (TH1F*)gROOT->FindObject("hTheta"))){
- h = new TH1F("hTheta", Form("dN/d#theta, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, nTRDtracklets#geq 1",
- fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 220,.5,2.7);
- } else h->Reset();
- fHistos->AddAt(h, kTheta);
-
- // phi distribution of TRD tracks
- if(!(h = (TH1F*)gROOT->FindObject("hPhi"))){
- h = new TH1F("hPhi", Form("dN/d#varphi, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, nTRDtracklets#geq 1",
- fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 157,0,6.28);
- } else h->Reset();
- fHistos->AddAt(h, kPhi);
-
- // TPC cluster distribution
- if(!(h = (TH1F*)gROOT->FindObject("hNTPCCl"))){
- h = new TH1I("hNTPCCl", Form("Number of TPC clusters/track, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f",
- fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz), 160, 0, 160);
- } else h->Reset();
- fHistos->AddAt(h, kNTPCCl);
-
- if(!(h = (TH1I*)gROOT->FindObject("hNTPCCl2"))){
- h = new TH1F("hNTPCCl2", Form("Number of TPC clusters/track, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, pt>1.0 GeV/c",
- fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz), 160, 0, 160);
- } else h->Reset();
- fHistos->AddAt(h, kNTPCCl2);
-
- // dE/dx vs P for TPC reference tracks
- if(!(h = (TH2F*)gROOT->FindObject("hTPCDedx"))){
- h = new TH2F("hTPCDedx", Form("TPC dE/dx vs P, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d",
- fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100, 0.1,10.1, 150, 0, 150.);
- } else h->Reset();
- fHistos->AddAt(h, kTPCDedx);
-
- // eta,phi distribution of TPC reference tracks
- if(!(h = (TH2F*)gROOT->FindObject("hEtaPhi"))){
- h = new TH2F("hEtaPhi", Form("TPC (#eta,#varphi), |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d",
- fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 50, -1, 1, 157, 0, 6.28);
- } else h->Reset();
- fHistos->AddAt(h, kEtaPhi);
-
- // Nclusters vs eta distribution for TPC tracks
- if(!(h = (TH2F*)gROOT->FindObject("hEtaNclsTPC"))){
- h = new TH2F("hEtaNclsTPC", Form("TPC Nclusters vs. #eta, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f",
- fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz), 50, -1, 1, 160, 0, 160.);
- } else h->Reset();
- fHistos->AddAt(h, kEtaNclsTPC);
-
- // Nclusters vs phi distribution for TPC reference tracks
- if(!(h = (TH2F*)gROOT->FindObject("hPhiNclsTPC"))){
- h = new TH2F("hPhiNclsTPC", Form("TPC Nclusters vs. #varphi, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f",
- fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz), 157, 0, 6.28, 160, 0, 160.);
- } else h->Reset();
- fHistos->AddAt(h, kPhiNclsTPC);
-
- // SPD multiplicity distribution
- if(!(h = (TH1F*)gROOT->FindObject("hSPDMult"))){
- h = new TH1F("hSPDMult", "SPD multiplicity", 10000, -0.5, 9999.5);
- } else h->Reset();
- fHistos->AddAt(h, kSPDMult);
-
- // Ntracklets/track vs P for TRD reference tracks
- Double_t binsP[19] = {0.0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.7, 2.0,
- 2.5, 3.0, 3.5, 4.0, 5.0, 6.0, 7.0, 9.0, 12.0};
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH2F*)gROOT->FindObject(Form("hNTrackletsTRD_cent%d",iCent+1)))){
- h = new TH2F(Form("hNTrackletsTRD_cent%d",iCent+1), Form("TRD Ntracklets/track vs. P, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 18, binsP, 7, -0.5, 6.5);
- } else h->Reset();
- fHistos->AddAt(h, kNTrackletsTRD+iCent);
- }
-
- // Nclusters/track vs P for TRD reference tracks
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH2F*)gROOT->FindObject(Form("hNClsTrackTRD_cent%d",iCent+1)))){
- h = new TH2F(Form("hNClsTrackTRD_cent%d",iCent+1), Form("TRD Nclusters/track vs. P, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 18, binsP, 300, 0., 300.);
- } else h->Reset();
- fHistos->AddAt(h, kNClsTrackTRD+iCent);
- }
-
- // <PH> vs slice number for TRD reference tracklets
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH2F*)gROOT->FindObject(Form("hPHSlice_cent%d",iCent+1)))){
- h = new TH2F(Form("hPHSlice_cent%d",iCent+1), Form("<PH> vs sliceNo, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 8, -0.5, 7.5, 200, 0., 2000.);
- } else h->Reset();
- fHistos->AddAt(h, kPHSlice+iCent);
- }
-
- // <PH> vs slice number for TRD reference tracklets, from TPC pions
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH2F*)gROOT->FindObject(Form("hPHSliceTPCpions_cent%d",iCent+1)))){
- h = new TH2F(Form("hPHSliceTPCpions_cent%d",iCent+1), Form("<PH> vs sliceNo, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, TPC pions",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 8, -0.5, 7.5, 100, 0., 2000.);
- } else h->Reset();
- fHistos->AddAt(h, kPHSliceTPCpions+iCent);
- }
-
- // TPC dE/dx vs P for TRD reference tracks, pions
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH2F*)gROOT->FindObject(Form("hTPCdedxPions_cent%d",iCent+1)))){
- h = new TH2F(Form("hTPCdedxPions_cent%d",iCent+1), Form("TPC dE/dx vs P, TPC pions, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100, 0.1,10.1, 100, 0,100.);
- } else h->Reset();
- fHistos->AddAt(h, kTPCdedxPions+iCent);
- }
-
- // <PH> vs slice number for TRD reference tracklets, from TPC electrons
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH2F*)gROOT->FindObject(Form("hPHSliceTPCelectrons_cent%d",iCent+1)))){
- h = new TH2F(Form("hPHSliceTPCelectrons_cent%d",iCent+1), Form("<PH> vs sliceNo, centrality %d,|#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, TPC electrons",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 8, -0.5, 7.5, 100, 0., 2000.);
- } else h->Reset();
- fHistos->AddAt(h, kPHSliceTPCelectrons+iCent);
- }
-
- // TPC dE/dx vs P for TRD reference tracks, electrons
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH2F*)gROOT->FindObject(Form("hTPCdedxElectrons_cent%d",iCent+1)))){
- h = new TH2F(Form("hTPCdedxElectrons_cent%d",iCent+1), Form("TPC dE/dx vs P, TPC electrons, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100, 0.1,10.1, 100, 0,100.);
- } else h->Reset();
- fHistos->AddAt(h, kTPCdedxElectrons+iCent);
- }
-
- // Qtot vs P for TRD reference tracklets
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH2F*)gROOT->FindObject(Form("hQtotP_cent%d",iCent+1)))){
- h = new TH2F(Form("hQtotP_cent%d",iCent+1), Form("Qtot(from slices) vs P, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 18, binsP, 400, 0., 20);
- } else h->Reset();
- fHistos->AddAt(h, kQtotP+iCent);
- }
-
- // (X,Y,momentum) distribution after AliESDtrack::PropagateTo(r=300.)
- if(!(h = (TH3F*)gROOT->FindObject("hPropagXYvsP"))){
- h = new TH3F("hPropagXYvsP", Form("(x,y) vs P after AliESDtrack::PropagateTo(r=300.), |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d",
- fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100,-500,500, 100,-500,500, 10, 0.,10.);
- } else h->Reset();
- fHistos->AddAt(h, kPropagXYvsP);
-
- // (R,Z,momentum) distribution after AliESDtrack::PropagateTo(r=300.)
- if(!(h = (TH3F*)gROOT->FindObject("hPropagRZvsP"))){
- h = new TH3F("hPropagRZvsP", Form("(r,z) vs P after AliESDtrack::PropagateTo(r=300.), |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d",
- fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100,-350., 350., 100,0.,500., 10, 0.,10.);
- } else h->Reset();
- fHistos->AddAt(h, kPropagRZvsP);
-
- Double_t etaBinLimits[101];
- for(Int_t i=0; i<101; i++) etaBinLimits[i] = -1.0 + i*2.0/100.;
- Double_t phiBinLimits[151];
- for(Int_t i=0; i<151; i++) phiBinLimits[i] = -1.1*TMath::Pi() + i*2.2*TMath::Pi()/150.;
- // (eta,detector phi,P) distribution of reference TPC positive tracks
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH3F*)gROOT->FindObject(Form("hTPCRefTracksPos_cent%d",iCent+1)))){
- h = new TH3F(Form("hTPCRefTracksPos_cent%d",iCent+1), Form("(#eta,detector #varphi,p) for TPC positive reference tracks, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100, etaBinLimits, 150, phiBinLimits, 32, binPtLimits);
- } else h->Reset();
- fHistos->AddAt(h, kTPCRefTracksPos+iCent);
- }
-
- // (eta,detector phi,P) distribution of reference TPC negative tracks
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH3F*)gROOT->FindObject(Form("hTPCRefTracksNeg_cent%d",iCent+1)))){
- h = new TH3F(Form("hTPCRefTracksNeg_cent%d",iCent+1), Form("(#eta,detector #varphi,p) for TPC negative reference tracks, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100, etaBinLimits, 150, phiBinLimits, 32, binPtLimits);
- } else h->Reset();
- fHistos->AddAt(h, kTPCRefTracksNeg+iCent);
- }
-
- // (eta,detector phi,P) distribution of reference TRD positive tracks
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH3F*)gROOT->FindObject(Form("hTRDRefTracksPos_cent%d",iCent+1)))){
- h = new TH3F(Form("hTRDRefTracksPos_cent%d",iCent+1), Form("(#eta,detector #varphi,p) for TRD positive reference tracks, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, nTRDtracklets#geq1",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100, etaBinLimits, 150, phiBinLimits, 32, binPtLimits);
- } else h->Reset();
- fHistos->AddAt(h, kTRDRefTracksPos+iCent);
- }
-
- // (eta,detector phi,P) distribution of reference TRD negative tracks
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH3F*)gROOT->FindObject(Form("hTRDRefTracksNeg_cent%d",iCent+1)))){
- h = new TH3F(Form("hTRDRefTracksNeg_cent%d",iCent+1), Form("(#eta,detector #varphi,p) for TRD negative reference tracks, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, nTRDtracklets#geq1",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100, etaBinLimits, 150, phiBinLimits, 32, binPtLimits);
- } else h->Reset();
- fHistos->AddAt(h, kTRDRefTracksNeg+iCent);
- }
-
- // (eta,detector phi,P) distribution of reference TRD positive tracks with 4 tracklets
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH3F*)gROOT->FindObject(Form("hTRDRefTracksPos4_cent%d",iCent+1)))){
- h = new TH3F(Form("hTRDRefTracksPos4_cent%d",iCent+1), Form("(#eta,detector #varphi,p) for TRD positive reference tracks, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, nTRDtracklets#geq1",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100, etaBinLimits, 150, phiBinLimits, 32, binPtLimits);
- } else h->Reset();
- fHistos->AddAt(h, kTRDRefTracksPos4+iCent);
- }
-
- // (eta,detector phi,P) distribution of reference TRD positive tracks with 5 tracklets
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH3F*)gROOT->FindObject(Form("hTRDRefTracksPos5_cent%d",iCent+1)))){
- h = new TH3F(Form("hTRDRefTracksPos5_cent%d",iCent+1), Form("(#eta,detector #varphi,p) for TRD positive reference tracks, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, nTRDtracklets#geq1",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100, etaBinLimits, 150, phiBinLimits, 32, binPtLimits);
- } else h->Reset();
- fHistos->AddAt(h, kTRDRefTracksPos5+iCent);
- }
-
- // (eta,detector phi,P) distribution of reference TRD positive tracks with 6 tracklets
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH3F*)gROOT->FindObject(Form("hTRDRefTracksPos6_cent%d",iCent+1)))){
- h = new TH3F(Form("hTRDRefTracksPos6_cent%d",iCent+1), Form("(#eta,detector #varphi,p) for TRD positive reference tracks, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, nTRDtracklets#geq1",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100, etaBinLimits, 150, phiBinLimits, 32, binPtLimits);
- } else h->Reset();
- fHistos->AddAt(h, kTRDRefTracksPos6+iCent);
- }
-
- // (eta,detector phi,P) distribution of reference TRD negative tracks with 4 tracklets
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH3F*)gROOT->FindObject(Form("hTRDRefTracksNeg4_cent%d",iCent+1)))){
- h = new TH3F(Form("hTRDRefTracksNeg4_cent%d",iCent+1), Form("(#eta,detector #varphi,p) for TRD negative reference tracks, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, nTRDtracklets#geq1",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100, etaBinLimits, 150, phiBinLimits, 32, binPtLimits);
- } else h->Reset();
- fHistos->AddAt(h, kTRDRefTracksNeg4+iCent);
- }
-
- // (eta,detector phi,P) distribution of reference TRD negative tracks with 5 tracklets
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH3F*)gROOT->FindObject(Form("hTRDRefTracksNeg5_cent%d",iCent+1)))){
- h = new TH3F(Form("hTRDRefTracksNeg5_cent%d",iCent+1), Form("(#eta,detector #varphi,p) for TRD negative reference tracks, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, nTRDtracklets#geq1",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100, etaBinLimits, 150, phiBinLimits, 32, binPtLimits);
- } else h->Reset();
- fHistos->AddAt(h, kTRDRefTracksNeg5+iCent);
- }
-
- // (eta,detector phi,P) distribution of reference TRD negative tracks with 6 tracklets
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TH3F*)gROOT->FindObject(Form("hTRDRefTracksNeg6_cent%d",iCent+1)))){
- h = new TH3F(Form("hTRDRefTracksNeg6_cent%d",iCent+1), Form("(#eta,detector #varphi,p) for TRD negative reference tracks, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, nTRDtracklets#geq1",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100, etaBinLimits, 150, phiBinLimits, 32, binPtLimits);
- } else h->Reset();
- fHistos->AddAt(h, kTRDRefTracksNeg6+iCent);
- }
-
-
- // (eta,detector phi) profile of average number of TRD tracklets/track
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TProfile2D*)gROOT->FindObject(Form("hTRDEtaPhiAvNtrkl_cent%d",iCent+1)))){
- h = new TProfile2D(Form("hTRDEtaPhiAvNtrkl_cent%d",iCent+1), Form("<Ntracklets/track> vs (#eta,detector #varphi) for TRD reference tracks, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, nTRDtracklets#geq1",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100, -1.0, 1.0, 150, -1.1*TMath::Pi(), 1.1*TMath::Pi());
- } else h->Reset();
- fHistos->AddAt(h, kTRDEtaPhiAvNtrkl+iCent);
- }
-
- // (eta,delta phi) profile of average number of TRD tracklets/track
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- if(!(h = (TProfile2D*)gROOT->FindObject(Form("hTRDEtaDeltaPhiAvNtrkl_cent%d",iCent+1)))){
- h = new TProfile2D(Form("hTRDEtaDeltaPhiAvNtrkl_cent%d",iCent+1), Form("<Ntracklets/track> vs (#eta, #Delta#varphi) for TRD reference tracks, centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, nTRDtracklets#geq1",
- iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100, -1.0, 1.0, 50, -0.4*TMath::Pi(), 0.4*TMath::Pi());
- } else h->Reset();
- fHistos->AddAt(h, kTRDEtaDeltaPhiAvNtrkl+iCent);
- }
-
- // (eta, detector phi) profile of average tracklet Qtot from slices
- for(Int_t iCent=0; iCent<=5; ++iCent) {
- for(Int_t iLayer=0;iLayer<6;iLayer++) {
- if(!(h = (TProfile2D*)gROOT->FindObject(Form("hTRDEtaPhiAvQtot_Layer%d_cent%d",iLayer,iCent+1)))) {
- h = new TProfile2D(Form("hTRDEtaPhiAvQtot_Layer%d_cent%d",iLayer,iCent+1),
- Form("<Q_{tot}> vs (#eta, detector #varphi) for TRD reference tracks (layer %d), centrality %d, |#eta|<%.1f and pt>%.1f, |DCAxy|<%.1f, |DCAz|<%.1f, TPC nclusters>%d, nTRDtracklets#geq1",
- iLayer, iCent+1, fgkEta, fgkPt, fgkTrkDCAxy, fgkTrkDCAz, fgkNclTPC), 100, -1.0, 1.0, 150, -1.1*TMath::Pi(), 1.1*TMath::Pi());
- } else h->Reset();
- fHistos->AddAt(h, kTRDEtaPhiAvQtot+iCent*6+iLayer);
- }