// AliFlowCommonHist:
//
// Description: Class to organise common histograms for Flow Analysis
-
+//
// authors: N. van der Kolk (kolk@nikhef.nl), A. Bilandzic (anteb@nikhef.nl), RS
AliFlowCommonHist::AliFlowCommonHist():
TNamed(),
- fHistMultOrig(NULL),
fHistMultRP(NULL),
fHistMultPOI(NULL),
fHistPtRP(NULL),
fHistPhiEtaPOI(NULL),
fHistProMeanPtperBin(NULL),
fHistQ(NULL),
+ fHistAngleQ(NULL),
+ fHistAngleQSub0(NULL),
+ fHistAngleQSub1(NULL),
fHarmonic(NULL),
fRefMultVsNoOfRPs(NULL),
fHistList(NULL)
AliFlowCommonHist::AliFlowCommonHist(const AliFlowCommonHist& a):
TNamed(),
- fHistMultOrig(new TH1F(*a.fHistMultOrig)),
fHistMultRP(new TH1F(*a.fHistMultRP)),
fHistMultPOI(new TH1F(*a.fHistMultPOI)),
fHistPtRP(new TH1F(*a.fHistPtRP)),
fHistPhiEtaPOI(new TH2F(*a.fHistPhiEtaPOI)),
fHistProMeanPtperBin(new TProfile(*a.fHistProMeanPtperBin)),
fHistQ(new TH1F(*a.fHistQ)),
+ fHistAngleQ(new TH1F(*a.fHistAngleQ)),
+ fHistAngleQSub0(new TH1F(*a.fHistAngleQSub0)),
+ fHistAngleQSub1(new TH1F(*a.fHistAngleQSub1)),
fHarmonic(new TProfile(*a.fHarmonic)),
fRefMultVsNoOfRPs(new TProfile(*a.fRefMultVsNoOfRPs)),
fHistList(NULL)
// copy constructor
fHistList = new TList();
- fHistList-> Add(fHistMultOrig);
fHistList-> Add(fHistMultRP);
fHistList-> Add(fHistMultPOI);
fHistList-> Add(fHistPtRP);
fHistList-> Add(fHistProMeanPtperBin);
fHistList-> Add(fHarmonic);
fHistList-> Add(fRefMultVsNoOfRPs);
- fHistList-> Add(fHistQ);
+ fHistList-> Add(fHistQ);
+ fHistList-> Add(fHistAngleQ);
+ fHistList-> Add(fHistAngleQSub0);
+ fHistList-> Add(fHistAngleQSub1);
// TListIter next = TListIter(a.fHistList);
}
-// AliFlowCommonHist& AliFlowCommonHist::operator=(const AliFlowCommonHist& a)
-// {
-// *fHistMultOrig = *a.fHistMultOrig;
-// *fHistMultInt = *a.fHistMultInt;
-// *fHistMultDiff = *a.fHistMultDiff;
-// *fHistPtInt = *a.fHistPtInt;
-// *fHistPtDiff = *a.fHistPtDiff;
-// *fHistPhiInt = *a.fHistPhiInt;
-// *fHistPhiDiff = *a.fHistPhiDiff;
-// *fHistEtaInt = *a.fHistEtaInt;
-// *fHistEtaDiff = *a.fHistEtaDiff;
-// *fHistProMeanPtperBin = *a.fHistProMeanPtperBin;
-// *fHistQ = *a.fHistQ;
-// // *fHistList = *a.fHistList;
-// fHistList = NULL;
-
-// return *this;
-// }
//-----------------------------------------------------------------------
AliFlowCommonHist::AliFlowCommonHist(const char *anInput,const char *title):
TNamed(anInput,title),
- fHistMultOrig(NULL),
fHistMultRP(NULL),
fHistMultPOI(NULL),
fHistPtRP(NULL),
fHistPhiEtaPOI(NULL),
fHistProMeanPtperBin(NULL),
fHistQ(NULL),
+ fHistAngleQ(NULL),
+ fHistAngleQSub0(NULL),
+ fHistAngleQSub1(NULL),
fHarmonic(NULL),
fRefMultVsNoOfRPs(NULL),
fHistList(NULL)
cout<<"Q: "<<iNbinsQ<<" bins between "<<dQMin<<" and "<<dQMax<<endl;
//Multiplicity
- sName = "Control_Flow_OrigMult_";
- sName +=anInput;
- fHistMultOrig = new TH1F(sName.Data(), sName.Data(),iNbinsMult, dMultMin, dMultMax);
- fHistMultOrig ->SetXTitle("Original Multiplicity");
- fHistMultOrig ->SetYTitle("Counts");
-
sName = "Control_Flow_MultRP_";
sName +=anInput;
fHistMultRP = new TH1F(sName.Data(), sName.Data(),iNbinsMult, dMultMin, dMultMax);
fHistQ ->SetXTitle("Q_{vector}/Mult");
fHistQ ->SetYTitle("Counts");
+ //Angle of Q vector
+ sName = "Control_Flow_AngleQ_";
+ sName +=anInput;
+ fHistAngleQ = new TH1F(sName.Data(), sName.Data(),72, 0., TMath::Pi());
+ fHistAngleQ ->SetXTitle("Angle of Q_{vector}");
+ fHistAngleQ ->SetYTitle("Counts");
+
+ sName = "Control_Flow_AngleQSub0_";
+ sName +=anInput;
+ fHistAngleQSub0 = new TH1F(sName.Data(), sName.Data(),72, 0., TMath::Pi());
+ fHistAngleQSub0 ->SetXTitle("Angle of Q_{vector} for Subevent 0");
+ fHistAngleQSub0 ->SetYTitle("Counts");
+
+ sName = "Control_Flow_AngleQSub1_";
+ sName +=anInput;
+ fHistAngleQSub1 = new TH1F(sName.Data(), sName.Data(),72, 0., TMath::Pi());
+ fHistAngleQSub1 ->SetXTitle("Angle of Q_{vector} for Subevent 1");
+ fHistAngleQSub1 ->SetYTitle("Counts");
+
//harmonic
sName = "Control_Flow_Harmonic_";
sName +=anInput;
//list of histograms if added here also add in copy constructor
fHistList = new TList();
- fHistList-> Add(fHistMultOrig);
fHistList-> Add(fHistMultRP);
fHistList-> Add(fHistMultPOI);
fHistList-> Add(fHistPtRP);
fHistList-> Add(fHarmonic);
fHistList-> Add(fRefMultVsNoOfRPs);
fHistList-> Add(fHistQ);
+ fHistList-> Add(fHistAngleQ);
+ fHistList-> Add(fHistAngleQSub0);
+ fHistList-> Add(fHistAngleQSub1);
}
AliFlowCommonHist::~AliFlowCommonHist()
{
//deletes histograms
- delete fHistMultOrig;
delete fHistMultRP;
delete fHistMultPOI;
delete fHistPtRP;
delete fHistPhiEtaPOI;
delete fHistProMeanPtperBin;
delete fHistQ;
+ delete fHistAngleQ;
+ delete fHistAngleQSub0;
+ delete fHistAngleQSub1;
delete fHarmonic;
delete fRefMultVsNoOfRPs;
delete fHistList;
Double_t dPt, dPhi, dEta, dWeight;
-
//fill the histograms
- Int_t iNumberOfTracks = anEvent->NumberOfTracks();
- fHistMultOrig->Fill(iNumberOfTracks);
-
AliFlowVector vQ = anEvent->GetQ();
//weight by the Multiplicity
Double_t dQX = 0.;
}
vQ.Set(dQX,dQY);
fHistQ->Fill(vQ.Mod());
+ fHistAngleQ->Fill(vQ.Phi()/2);
+
+ AliFlowVector* vQSub = new AliFlowVector[2];
+ anEvent->Get2Qsub(vQSub);
+ AliFlowVector vQa = vQSub[0];
+ AliFlowVector vQb = vQSub[1];
+ fHistAngleQSub0->Fill(vQa.Phi()/2);
+ fHistAngleQSub1->Fill(vQb.Phi()/2);
Double_t dMultRP = 0.;
Double_t dMultPOI = 0.;
+ Int_t iNumberOfTracks = anEvent->NumberOfTracks();
AliFlowTrackSimple* pTrack = NULL;
for (Int_t i=0;i<iNumberOfTracks;i++) {