#include "TProfile.h"
#include "TMath.h" //needed as include
#include "TList.h"
+#include "TH2F.h"
#include "AliFlowVector.h"
#include "TBrowser.h"
//-----------------------------------------------------------------------
-AliFlowCommonHist::AliFlowCommonHist():TNamed(),
+AliFlowCommonHist::AliFlowCommonHist():
+ TNamed(),
fHistMultOrig(NULL),
fHistMultRP(NULL),
fHistMultPOI(NULL),
fHistPtRP(NULL),
fHistPtPOI(NULL),
+ fHistPtSub0(NULL),
+ fHistPtSub1(NULL),
fHistPhiRP(NULL),
fHistPhiPOI(NULL),
+ fHistPhiSub0(NULL),
+ fHistPhiSub1(NULL),
fHistEtaRP(NULL),
fHistEtaPOI(NULL),
+ fHistEtaSub0(NULL),
+ fHistEtaSub1(NULL),
+ fHistPhiEtaRP(NULL),
+ fHistPhiEtaPOI(NULL),
fHistProMeanPtperBin(NULL),
fHistQ(NULL),
fHarmonic(NULL),
fHistMultPOI(new TH1F(*a.fHistMultPOI)),
fHistPtRP(new TH1F(*a.fHistPtRP)),
fHistPtPOI(new TH1F(*a.fHistPtPOI)),
+ fHistPtSub0(new TH1F(*a.fHistPtSub0)),
+ fHistPtSub1(new TH1F(*a.fHistPtSub1)),
fHistPhiRP(new TH1F(*a.fHistPhiRP)),
fHistPhiPOI(new TH1F(*a.fHistPhiPOI)),
+ fHistPhiSub0(new TH1F(*a.fHistPhiSub0)),
+ fHistPhiSub1(new TH1F(*a.fHistPhiSub1)),
fHistEtaRP(new TH1F(*a.fHistEtaRP)),
fHistEtaPOI(new TH1F(*a.fHistEtaPOI)),
+ fHistEtaSub0(new TH1F(*a.fHistEtaSub0)),
+ fHistEtaSub1(new TH1F(*a.fHistEtaSub1)),
+ fHistPhiEtaRP(new TH2F(*a.fHistPhiEtaRP)),
+ fHistPhiEtaPOI(new TH2F(*a.fHistPhiEtaPOI)),
fHistProMeanPtperBin(new TProfile(*a.fHistProMeanPtperBin)),
fHistQ(new TH1F(*a.fHistQ)),
fHarmonic(new TProfile(*a.fHarmonic)),
fHistList-> Add(fHistMultRP);
fHistList-> Add(fHistMultPOI);
fHistList-> Add(fHistPtRP);
- fHistList-> Add(fHistPtPOI);
+ fHistList-> Add(fHistPtPOI);
+ fHistList-> Add(fHistPtSub0);
+ fHistList-> Add(fHistPtSub1);
fHistList-> Add(fHistPhiRP);
- fHistList-> Add(fHistPhiPOI);
+ fHistList-> Add(fHistPhiPOI);
+ fHistList-> Add(fHistPhiSub0);
+ fHistList-> Add(fHistPhiSub1);
fHistList-> Add(fHistEtaRP);
- fHistList-> Add(fHistEtaPOI);
+ fHistList-> Add(fHistEtaPOI);
+ fHistList-> Add(fHistEtaSub0);
+ fHistList-> Add(fHistEtaSub1);
+ fHistList-> Add(fHistPhiEtaRP);
+ fHistList-> Add(fHistPhiEtaPOI);
fHistList-> Add(fHistProMeanPtperBin);
fHistList-> Add(fHarmonic);
fHistList-> Add(fHistQ);
//-----------------------------------------------------------------------
- AliFlowCommonHist::AliFlowCommonHist(const char *anInput,const char *title):TNamed(anInput,title),
- fHistMultOrig(NULL),
- fHistMultRP(NULL),
- fHistMultPOI(NULL),
- fHistPtRP(NULL),
- fHistPtPOI(NULL),
- fHistPhiRP(NULL),
- fHistPhiPOI(NULL),
- fHistEtaRP(NULL),
- fHistEtaPOI(NULL),
- fHistProMeanPtperBin(NULL),
- fHistQ(NULL),
- fHarmonic(NULL),
- fHistList(NULL)
- {
+ AliFlowCommonHist::AliFlowCommonHist(const char *anInput,const char *title):
+ TNamed(anInput,title),
+ fHistMultOrig(NULL),
+ fHistMultRP(NULL),
+ fHistMultPOI(NULL),
+ fHistPtRP(NULL),
+ fHistPtPOI(NULL),
+ fHistPtSub0(NULL),
+ fHistPtSub1(NULL),
+ fHistPhiRP(NULL),
+ fHistPhiPOI(NULL),
+ fHistPhiSub0(NULL),
+ fHistPhiSub1(NULL),
+ fHistEtaRP(NULL),
+ fHistEtaPOI(NULL),
+ fHistEtaSub0(NULL),
+ fHistEtaSub1(NULL),
+ fHistPhiEtaRP(NULL),
+ fHistPhiEtaPOI(NULL),
+ fHistProMeanPtperBin(NULL),
+ fHistQ(NULL),
+ fHarmonic(NULL),
+ fHistList(NULL)
+{
//constructor creating histograms
Int_t iNbinsMult = AliFlowCommonConstants::GetMaster()->GetNbinsMult();
fHistPtPOI ->SetXTitle("P_{t} (GeV/c) for POI selection");
fHistPtPOI ->SetYTitle("Counts");
+ sName = "Control_Flow_PtSub0_";
+ sName +=anInput;
+ fHistPtSub0 = new TH1F(sName.Data(), sName.Data(),iNbinsPt, dPtMin, dPtMax);
+ fHistPtSub0 ->SetXTitle("P_{t} (GeV/c) for Subevent 0 selection");
+ fHistPtSub0 ->SetYTitle("Counts");
+
+ sName = "Control_Flow_PtSub1_";
+ sName +=anInput;
+ fHistPtSub1 = new TH1F(sName.Data(), sName.Data(),iNbinsPt, dPtMin, dPtMax);
+ fHistPtSub1 ->SetXTitle("P_{t} (GeV/c) for Subevent 1 selection");
+ fHistPtSub1 ->SetYTitle("Counts");
+
//Phi
sName = "Control_Flow_PhiRP_";
sName +=anInput;
fHistPhiPOI ->SetXTitle("#phi for POI selection");
fHistPhiPOI ->SetYTitle("Counts");
+ sName = "Control_Flow_PhiSub0_";
+ sName +=anInput;
+ fHistPhiSub0 = new TH1F(sName.Data(), sName.Data(),iNbinsPhi, dPhiMin, dPhiMax);
+ fHistPhiSub0 ->SetXTitle("#phi for Subevent 0 selection");
+ fHistPhiSub0 ->SetYTitle("Counts");
+
+ sName = "Control_Flow_PhiSub1_";
+ sName +=anInput;
+ fHistPhiSub1 = new TH1F(sName.Data(), sName.Data(),iNbinsPhi, dPhiMin, dPhiMax);
+ fHistPhiSub1 ->SetXTitle("#phi for Subevent 1 selection");
+ fHistPhiSub1 ->SetYTitle("Counts");
+
//Eta
sName = "Control_Flow_EtaRP_";
sName +=anInput;
fHistEtaPOI ->SetXTitle("#eta for POI selection");
fHistEtaPOI ->SetYTitle("Counts");
+ sName = "Control_Flow_EtaSub0_";
+ sName +=anInput;
+ fHistEtaSub0 = new TH1F(sName.Data(), sName.Data(),iNbinsEta, dEtaMin, dEtaMax);
+ fHistEtaSub0 ->SetXTitle("#eta for Subevent 0 selection");
+ fHistEtaSub0 ->SetYTitle("Counts");
+
+ sName = "Control_Flow_EtaSub1_";
+ sName +=anInput;
+ fHistEtaSub1 = new TH1F(sName.Data(), sName.Data(),iNbinsEta, dEtaMin, dEtaMax);
+ fHistEtaSub1 ->SetXTitle("#eta for Subevent 1 selection");
+ fHistEtaSub1 ->SetYTitle("Counts");
+
+ //Phi vs Eta
+ sName = "Control_Flow_PhiEtaRP_";
+ sName +=anInput;
+ fHistPhiEtaRP = new TH2F(sName.Data(), sName.Data(),iNbinsEta, dEtaMin, dEtaMax, iNbinsPhi, dPhiMin, dPhiMax);
+ fHistPhiEtaRP ->SetXTitle("#eta");
+ fHistPhiEtaRP ->SetYTitle("#phi");
+
+ sName = "Control_Flow_PhiEtaPOI_";
+ sName +=anInput;
+ fHistPhiEtaPOI = new TH2F(sName.Data(), sName.Data(),iNbinsEta, dEtaMin, dEtaMax, iNbinsPhi, dPhiMin, dPhiMax);
+ fHistPhiEtaPOI ->SetXTitle("#eta");
+ fHistPhiEtaPOI ->SetYTitle("#phi");
+
//Mean Pt per pt bin
sName = "Control_FlowPro_MeanPtperBin_";
sName +=anInput;
fHistList-> Add(fHistMultRP);
fHistList-> Add(fHistMultPOI);
fHistList-> Add(fHistPtRP);
- fHistList-> Add(fHistPtPOI);
+ fHistList-> Add(fHistPtPOI);
+ fHistList-> Add(fHistPtSub0);
+ fHistList-> Add(fHistPtSub1);
fHistList-> Add(fHistPhiRP);
- fHistList-> Add(fHistPhiPOI);
+ fHistList-> Add(fHistPhiPOI);
+ fHistList-> Add(fHistPhiSub0);
+ fHistList-> Add(fHistPhiSub1);
fHistList-> Add(fHistEtaRP);
- fHistList-> Add(fHistEtaPOI);
+ fHistList-> Add(fHistEtaPOI);
+ fHistList-> Add(fHistEtaSub0);
+ fHistList-> Add(fHistEtaSub1);
+ fHistList-> Add(fHistPhiEtaRP);
+ fHistList-> Add(fHistPhiEtaPOI);
fHistList-> Add(fHistProMeanPtperBin);
fHistList-> Add(fHarmonic);
fHistList-> Add(fHistQ);
-
}
delete fHistMultRP;
delete fHistMultPOI;
delete fHistPtRP;
- delete fHistPtPOI;
+ delete fHistPtPOI;
+ delete fHistPtSub0;
+ delete fHistPtSub1;
delete fHistPhiRP;
- delete fHistPhiPOI;
+ delete fHistPhiPOI;
+ delete fHistPhiSub0;
+ delete fHistPhiSub1;
delete fHistEtaRP;
delete fHistEtaPOI;
+ delete fHistEtaSub0;
+ delete fHistEtaSub1;
+ delete fHistPhiEtaRP;
+ delete fHistPhiEtaPOI;
delete fHistProMeanPtperBin;
delete fHistQ;
delete fHarmonic;
return kFALSE;
}
- Double_t dPt, dPhi, dEta;
+ Double_t dPt, dPhi, dEta, dWeight;
//fill the histograms
vQ.Set(dQX,dQY);
fHistQ->Fill(vQ.Mod());
- Int_t iMultRP = 0;
- Int_t iMultPOI = 0;
+ Double_t dMultRP = 0.;
+ Double_t dMultPOI = 0.;
AliFlowTrackSimple* pTrack = NULL;
for (Int_t i=0;i<iNumberOfTracks;i++) {
pTrack = anEvent->GetTrack(i);
if (pTrack ) {
+ dWeight = pTrack->Weight();
if (pTrack->InRPSelection()){
+ //pt
dPt = pTrack->Pt();
- fHistPtRP->Fill(dPt);
+ fHistPtRP->Fill(dPt,dWeight);
+ //phi
dPhi = pTrack->Phi();
if (dPhi<0.) dPhi+=2*TMath::Pi();
- fHistPhiRP->Fill(dPhi);
+ fHistPhiRP->Fill(dPhi,dWeight);
+ //eta
dEta = pTrack->Eta();
- fHistEtaRP->Fill(dEta);
- iMultRP++;
+ fHistEtaRP->Fill(dEta,dWeight);
+ //eta vs phi
+ fHistPhiEtaRP->Fill(dEta,dPhi,dWeight);
+ //count
+ dMultRP += dWeight;
+ if (pTrack->InSubevent(0)){
+ //Fill distributions for the subevent
+ fHistPtSub0 -> Fill(dPt,dWeight);
+ fHistPhiSub0 -> Fill(dPhi,dWeight);
+ fHistEtaSub0 -> Fill(dEta,dWeight);
+ }
+ else if (pTrack->InSubevent(1)){
+ //Fill distributions for the subevent
+ fHistPtSub1 -> Fill(dPt,dWeight);
+ fHistPhiSub1 -> Fill(dPhi,dWeight);
+ fHistEtaSub1 -> Fill(dEta,dWeight);
+ }
}
if (pTrack->InPOISelection()){
+ //pt
dPt = pTrack->Pt();
- fHistPtPOI->Fill(dPt);
+ fHistPtPOI->Fill(dPt,dWeight);
+ //phi
dPhi = pTrack->Phi();
if (dPhi<0.) dPhi+=2*TMath::Pi();
- fHistPhiPOI->Fill(dPhi);
+ fHistPhiPOI->Fill(dPhi,dWeight);
+ //eta
dEta = pTrack->Eta();
- fHistEtaPOI->Fill(dEta);
- fHistProMeanPtperBin->Fill(dPt,dPt);
- iMultPOI++;
+ fHistEtaPOI->Fill(dEta,dWeight);
+ //eta vs phi
+ fHistPhiEtaPOI->Fill(dEta,dPhi,dWeight);
+ //mean pt
+ fHistProMeanPtperBin->Fill(dPt,dPt,dWeight);
+ //count
+ dMultPOI += dWeight;
}
} //track
} //loop over tracks
- fHistMultRP->Fill(iMultRP);
- fHistMultPOI->Fill(iMultPOI);
+ fHistMultRP->Fill(dMultRP);
+ fHistMultPOI->Fill(dMultPOI);
return kTRUE;
}