1 /*************************************************************************
2 * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 /********************************
17 * integrated flow estimate by *
18 * fitting q-distribution *
20 * author: Ante Bilandzic *
22 *******************************/
24 #define AliFittingQDistribution_cxx
26 #include "Riostream.h"
27 #include "AliFlowCommonConstants.h"
28 #include "AliFlowCommonHist.h"
29 #include "AliFlowCommonHistResults.h"
33 #include "TParticle.h"
35 #include "AliFlowEventSimple.h"
36 #include "AliFlowTrackSimple.h"
37 #include "AliFittingQDistribution.h"
38 #include "AliFittingFunctionsForQDistribution.h"
53 //================================================================================================================
55 ClassImp(AliFittingQDistribution)
57 AliFittingQDistribution::AliFittingQDistribution():
60 fAvMultIntFlowFQD(NULL),
61 fIntFlowResultsFQD(NULL),
63 fCommonHistsResults(NULL),
64 fQDistributionFQD(NULL)
67 fHistList = new TList();
70 AliFittingQDistribution::~AliFittingQDistribution()
76 //================================================================================================================
78 void AliFittingQDistribution::CreateOutputObjects()
80 //various output histograms
82 //avarage multiplicity
83 fAvMultIntFlowFQD = new TProfile("fAvMultIntFlowFQD","Average Multiplicity",1,0,1,"s");
84 fAvMultIntFlowFQD->SetXTitle("");
85 fAvMultIntFlowFQD->SetYTitle("");
86 fAvMultIntFlowFQD->SetLabelSize(0.06);
87 fAvMultIntFlowFQD->SetMarkerStyle(25);
88 fAvMultIntFlowFQD->SetLabelOffset(0.02);
89 (fAvMultIntFlowFQD->GetXaxis())->SetBinLabel(1,"Average Multiplicity");
90 fHistList->Add(fAvMultIntFlowFQD);
92 //final result for integrated flow
93 fIntFlowResultsFQD = new TH1D("fIntFlowResultsFQD","Integrated Flow By Fitting q-distribution",1,0,1);
94 fIntFlowResultsFQD->SetXTitle("");
95 fIntFlowResultsFQD->SetYTitle("");
96 fIntFlowResultsFQD->SetMarkerStyle(25);
97 fIntFlowResultsFQD->SetLabelSize(0.06);
98 fAvMultIntFlowFQD->SetLabelOffset(0.02);
99 (fIntFlowResultsFQD->GetXaxis())->SetBinLabel(1,"v_{n}{FQD}");
100 fHistList->Add(fIntFlowResultsFQD);
103 fQDistributionFQD = new TH1D("fQDistributionFQD","q-distribution",100,0,10);
104 fQDistributionFQD->SetXTitle("q_{n}=Q_{n}/#sqrt{M}");
105 fQDistributionFQD->SetYTitle("Counts");
106 fHistList->Add(fQDistributionFQD);
108 //common control histograms
109 fCommonHists = new AliFlowCommonHist("AliFlowCommonHistFQD");
110 fHistList->Add(fCommonHists);
112 //common histograms for final results (2nd order)
113 fCommonHistsResults= new AliFlowCommonHistResults("AliFlowCommonHistResultsFQD");
114 fHistList->Add(fCommonHistsResults);
116 }//end of CreateOutputObjects()
118 //================================================================================================================
120 void AliFittingQDistribution::Make(AliFlowEventSimple* anEvent)
123 //Int_t nPrim = anEvent->NumberOfTracks();//total multiplicity
125 Int_t n=2;//harmonic (to be improved)
127 //fill the common control histograms
128 fCommonHists->FillControlHistograms(anEvent);
130 //calculating Q-vector of event
131 AliFlowVector fQVector;
134 fQVector=anEvent->GetQ(n);
137 fAvMultIntFlowFQD->Fill(0.,fQVector.GetMult(),1.);
142 if(fQVector.GetMult()!=0)
144 q = fQVector.Mod()/sqrt(fQVector.GetMult());
145 fQDistributionFQD->Fill(q,1.);
149 //================================================================================================================
151 void AliFittingQDistribution::Finish()
153 //calculate the final results
154 AliFittingFunctionsForQDistribution finalFitting(fAvMultIntFlowFQD,fQDistributionFQD,fIntFlowResultsFQD,fCommonHistsResults);
156 finalFitting.Calculate();
159 //================================================================================================================
161 void AliFittingQDistribution::WriteHistograms(TString* outputFileName)
163 //store the final results in output .root file
164 TFile *output = new TFile(outputFileName->Data(),"RECREATE");
169 //================================================================================================================