if(fListHistos)
{
+ //final results (integrated flow)
+ TH1D *intFlowResults = dynamic_cast<TH1D*>(fListHistos->FindObject("fIntFlowResultsFQD"));
+
+ //common histograms to store the final results for the integrated flow
+ AliFlowCommonHistResults *commonHistRes = dynamic_cast<AliFlowCommonHistResults*>(fListHistos->FindObject("AliFlowCommonHistResultsFQD"));
- //profile with avarage selected multiplicity for int. flow
+ //average selected multiplicity (for int. flow)
TProfile *AvMult = dynamic_cast<TProfile*>(fListHistos->FindObject("fAvMultIntFlowFQD"));
//q-distribution
TH1D *qDist = dynamic_cast<TH1D*>(fListHistos->FindObject("fQDistributionFQD"));
- //histograms to store the final results (integrated flow)
- TH1D *intFlowResults = dynamic_cast<TH1D*>(fListHistos->FindObject("fIntFlowResultsFQD"));
+ //----------------------------------------------------
+
+ fFQDA = new AliFittingQDistribution();
+
+ fFQDA->SetIntFlowResults(intFlowResults);
+ fFQDA->SetCommonHistsResults(commonHistRes);
+
+ fFQDA->SetAverageMultiplicity(AvMult);
+ fFQDA->SetQDistribution(qDist);
- AliFittingFunctionsForQDistribution finalFitting(AvMult,qDist,intFlowResults);
-
- finalFitting.Calculate();
+ fFQDA->Finish();
+
+ //----------------------------------------------------
}
else
{
}
}
-
+//================================================================================================================
#define AliFittingFunctionsForQDistribution_cxx
#include "Riostream.h"
-#include "AliFlowCommonConstants.h"
#include "TChain.h"
#include "TFile.h"
#include "TList.h"
#include "TAxis.h"
#include "TH1.h"
#include "TH1D.h"
-#include "TF1.h"
#include "TMath.h"
#include "AliFlowEventSimple.h"
#include "AliFlowTrackSimple.h"
#include "AliFittingQDistribution.h"
#include "AliFlowCommonConstants.h"
+#include "AliFlowCommonHistResults.h"
#include "AliFittingFunctionsForQDistribution.h"
ClassImp(AliFittingFunctionsForQDistribution)
AliFittingFunctionsForQDistribution::AliFittingFunctionsForQDistribution():
fAvMultFQD(NULL),
fQDistributionFQD(NULL),
- fIntFlowResFQD(NULL)
+ fIntFlowResFQD(NULL),
+ fchrFQD(NULL)
{
//default constructor
}
//destructor
}
-AliFittingFunctionsForQDistribution::AliFittingFunctionsForQDistribution(TProfile *AvMult, TH1D *QDistribution, TH1D *intFlowRes):
+AliFittingFunctionsForQDistribution::AliFittingFunctionsForQDistribution(TProfile *AvMult, TH1D *QDistribution, TH1D *intFlowRes, AliFlowCommonHistResults *chr):
fAvMultFQD(AvMult),
fQDistributionFQD(QDistribution),
- fIntFlowResFQD(intFlowRes)
+ fIntFlowResFQD(intFlowRes),
+ fchrFQD(chr)
{
//custom constructor
}
cout<<" "<<endl;
cout<<"************************************"<<endl;
cout<<"************************************"<<endl;
- cout<<" integrated flow by fitting"<<endl;
+ cout<<" integrated flow by fitting "<<endl;
cout<<" q-distribution: "<<endl;
cout<<""<<endl;
cout<<" v_"<<n<<"{FQD} = "<<v<<" +/- "<<errorv<<endl;
cout<<"************************************"<<endl;
fIntFlowResFQD->SetBinContent(1,v);
fIntFlowResFQD->SetBinError(1,errorv);
+ //common histograms:
+ fchrFQD->FillIntegratedFlow(v,errorv);
+ fchrFQD->FillChi(v*pow(AvM,0.5));
cout<<" "<<endl;
//fQDistributionFQD->Draw("");
public:
AliFittingFunctionsForQDistribution();
virtual ~AliFittingFunctionsForQDistribution();
- AliFittingFunctionsForQDistribution(TProfile *AvMult, TH1D *QDistribution, TH1D *intFlowRes);
+ AliFittingFunctionsForQDistribution(TProfile *AvMult, TH1D *QDistribution, TH1D *intFlowRes, AliFlowCommonHistResults *chr);
void Calculate();
AliFittingFunctionsForQDistribution(const AliFittingFunctionsForQDistribution& fun);
AliFittingFunctionsForQDistribution& operator=(const AliFittingFunctionsForQDistribution& fun);
- TProfile *fAvMultFQD; //avarage selected multiplicity for int. flow
- TH1D *fQDistributionFQD; //q-distribution
- TH1D *fIntFlowResFQD; //integrated flow final result
+ TProfile *fAvMultFQD; //avarage selected multiplicity for int. flow
+ TH1D *fQDistributionFQD; //q-distribution
+ TH1D *fIntFlowResFQD; //integrated flow final result
+ AliFlowCommonHistResults *fchrFQD; //final results for integrated flow stored in the common histograms
ClassDef(AliFittingFunctionsForQDistribution, 0);
};
fAvMultIntFlowFQD(NULL),
fIntFlowResultsFQD(NULL),
fCommonHists(NULL),
+ fCommonHistsResults(NULL),
fQDistributionFQD(NULL)
{
//constructor
fAvMultIntFlowFQD->SetYTitle("");
fAvMultIntFlowFQD->SetLabelSize(0.06);
fAvMultIntFlowFQD->SetMarkerStyle(25);
- fAvMultIntFlowFQD->SetLabelOffset(0.01);
+ fAvMultIntFlowFQD->SetLabelOffset(0.02);
(fAvMultIntFlowFQD->GetXaxis())->SetBinLabel(1,"Average Multiplicity");
fHistList->Add(fAvMultIntFlowFQD);
fIntFlowResultsFQD->SetMarkerStyle(25);
fIntFlowResultsFQD->SetLabelSize(0.06);
fAvMultIntFlowFQD->SetLabelOffset(0.02);
- (fIntFlowResultsFQD->GetXaxis())->SetBinLabel(1,"v_{n}");
+ (fIntFlowResultsFQD->GetXaxis())->SetBinLabel(1,"v_{n}{FQD}");
fHistList->Add(fIntFlowResultsFQD);
//q-distribution
fHistList->Add(fQDistributionFQD);
//common control histograms
- fCommonHists = new AliFlowCommonHist("FittingQDistribution");
- fHistList->Add(fCommonHists->GetHistList());
+ fCommonHists = new AliFlowCommonHist("AliFlowCommonHistFQD");
+ fHistList->Add(fCommonHists);
+
+ //common histograms for final results (2nd order)
+ fCommonHistsResults= new AliFlowCommonHistResults("AliFlowCommonHistResultsFQD");
+ fHistList->Add(fCommonHistsResults);
}//end of CreateOutputObjects()
void AliFittingQDistribution::Finish()
{
//calculate the final results
- AliFittingFunctionsForQDistribution finalFitting(fAvMultIntFlowFQD,fQDistributionFQD,fIntFlowResultsFQD);
+ AliFittingFunctionsForQDistribution finalFitting(fAvMultIntFlowFQD,fQDistributionFQD,fIntFlowResultsFQD,fCommonHistsResults);
finalFitting.Calculate();
}
virtual void Make(AliFlowEventSimple* anEvent);
virtual void Finish();
virtual void WriteHistograms(TString* outputFileName);
-
+
+//----------------------------------------------------------------------------------------------------------------
+// setters and getters
+//----------------------------------------------------------------------------------------------------------------
TList* GetHistList() const {return this->fHistList;} //output histogram list
+
+ void SetIntFlowResults(TH1D* ifr) {this->fIntFlowResultsFQD = ifr;};
+ TH1D* GetIntFlowResults() const {return this->fIntFlowResultsFQD;};
+
+ void SetCommonHistsResults(AliFlowCommonHistResults* chr) {this->fCommonHistsResults = chr;};
+ AliFlowCommonHistResults* GetCommonHistsResults() const {return this->fCommonHistsResults;};
+
+ void SetAverageMultiplicity(TProfile* am) {this->fAvMultIntFlowFQD = am;};
+ TProfile* GetAverageMultiplicity() const {return this->fAvMultIntFlowFQD;};
+
+ void SetQDistribution(TH1D* qd) {this->fQDistributionFQD = qd;};
+ TH1D* GetQDistribution() const {return this->fQDistributionFQD;};
+//----------------------------------------------------------------------------------------------------------------
private:
AliFittingQDistribution(const AliFittingQDistribution& afqd);
AliFittingQDistribution& operator=(const AliFittingQDistribution& afqd);
- AliFlowTrackSimple* fTrack; //track
- TList* fHistList; //list to hold all output histograms
- TProfile* fAvMultIntFlowFQD; //avarage selected multiplicity
- TH1D* fIntFlowResultsFQD; //integrated flow final results
- AliFlowCommonHist* fCommonHists; //common control histograms
- TH1D* fQDistributionFQD; //q-distribution
+ AliFlowTrackSimple* fTrack; //track
+
+ TList* fHistList; //list to hold all output histograms
+ TProfile* fAvMultIntFlowFQD; //avarage selected multiplicity
+ TH1D* fIntFlowResultsFQD; //integrated flow final results
+ AliFlowCommonHist* fCommonHists; //common control histograms
+ AliFlowCommonHistResults* fCommonHistsResults; //final results for integrated flow stored in the common histograms
+ TH1D* fQDistributionFQD; //q-distribution
ClassDef(AliFittingQDistribution, 0);
};