00001
00002
00003
00004
00005
00006
00008
00009
00010
00012
00013 #ifndef StFlowDirectCumulantMaker_H
00014 #define StFlowDirectCumulantMaker_H
00015 #include "StMaker.h"
00016 #include "StFlowMaker/StFlowConstants.h"
00017 #include "TString.h"
00018 class StFlowEvent;
00019 class StFlowSelection;
00020 class TH2D;
00021
00022 class StFlowDirectCumulantMaker : public StMaker {
00023
00024
00025 public:
00026
00027 struct EventEntries{
00028 TH2D *cent_yields;
00029 };
00030 struct EventEntries Entries[Flow::SPECIES];
00031
00032 struct structure4{
00033 TH2D *Sum_Singles;
00034 TH2D *Sum_Squares;
00035 };
00036
00037 struct structure3{
00038 struct structure4 Species[Flow::SPECIES];
00039 };
00040 struct structure2{
00041 struct structure3 Phase[Flow::PHASES];
00042 };
00043
00044 struct structure1{
00045 struct structure2 Type[Flow::TYPES];
00046 };
00047
00048 struct structure1 Term[Flow::TERMS];
00049
00050 TH1D *Event_counter;
00051 TH1D *Event_counterWeighted;
00052
00054 StFlowDirectCumulantMaker(const Char_t* name="FlowDirectCumulant");
00056 StFlowDirectCumulantMaker(const Char_t* name,
00057 const StFlowSelection& pFlowSelect);
00058 StFlowDirectCumulantMaker(const StFlowDirectCumulantMaker &from) {};
00059 virtual ~StFlowDirectCumulantMaker();
00060
00061 Int_t Init();
00062 Int_t Make();
00063 Int_t Finish();
00064 virtual const char *GetCVS() const {static const char cvs[]=
00065 "Tag $Name: $ $Id: StFlowDirectCumulantMaker.h,v 1.1 2010/03/08 16:54:45 posk Exp $ built "__DATE__" "__TIME__ ;
00066 return cvs;}
00067
00068 private:
00069
00070 void GetMweights();
00071 void FillParticleArrays();
00072 void CalculateTerms();
00073 void CalculateSumTerms(Bool_t);
00074 void Combinations(Bool_t, int, int);
00075 void CalculateCorrelationsIntegrated();
00076 void CalculateCorrelationsDifferential();
00077 void Fill_Histograms();
00078 void ClearTerms();
00079
00080 int TERM1,TERM2,TERM3,TERM4,TERM5;
00081 int TERM6,TERM7,TERM8,TERM9,TERM10;
00082 int DIF,INT;
00083 int COS,SIN;
00084
00085 double Mweights[30][1000];
00086
00087 int grefmult, zbin;
00088 int id_p[Flow::MAXMULT];
00089 double phi_p[Flow::MAXMULT];
00090 double pt_p[Flow::MAXMULT];
00091 int ptbin_p[Flow::MAXMULT];
00092 double weights_p[Flow::MAXMULT];
00093 int p_count;
00094 double ref_combos_4, ref_combos_3, ref_combos_2, ref_combos_1, ref_combos_0;
00095
00096 double pt_bins[Flow::PTBINS];
00097 int pt_bin_counter_p[Flow::PTBINS];
00098
00099 double sum_1_cos_diff[Flow::SPECIES][Flow::PTBINS], sum_1_sin_diff[Flow::SPECIES][Flow::PTBINS];
00100 double sum_2_cos_diff[Flow::SPECIES][Flow::PTBINS], sum_2_sin_diff[Flow::SPECIES][Flow::PTBINS];
00101 double sum_3_cos_diff[Flow::SPECIES][Flow::PTBINS][Flow::PTBINS], sum_3_sin_diff[Flow::SPECIES][Flow::PTBINS][Flow::PTBINS];
00102 double sum_4_cos_diff[Flow::SPECIES][Flow::PTBINS][Flow::PTBINS], sum_4_sin_diff[Flow::SPECIES][Flow::PTBINS][Flow::PTBINS];
00103 double sum_5_cos_diff[Flow::SPECIES][Flow::PTBINS][Flow::PTBINS], sum_5_sin_diff[Flow::SPECIES][Flow::PTBINS][Flow::PTBINS];
00104 double sum_6_cos_sin_diff[Flow::SPECIES][Flow::PTBINS][Flow::PTBINS], sum_6_sin_cos_diff[Flow::SPECIES][Flow::PTBINS][Flow::PTBINS];
00105 double sum_7_diff[Flow::SPECIES][Flow::PTBINS][Flow::PTBINS], sum_8_diff[Flow::SPECIES][Flow::PTBINS][Flow::PTBINS];
00106 double sum_9_diff[Flow::SPECIES][Flow::PTBINS][Flow::PTBINS], sum_10_diff[Flow::SPECIES][Flow::PTBINS][Flow::PTBINS];
00107 double sum_11_cos_diff[Flow::SPECIES][Flow::PTBINS][Flow::PTBINS], sum_11_sin_diff[Flow::SPECIES][Flow::PTBINS][Flow::PTBINS];
00108
00109 double sum_1_cos_full[Flow::SPECIES], sum_1_sin_full[Flow::SPECIES];
00110 double sum_2_cos_full[Flow::SPECIES], sum_2_sin_full[Flow::SPECIES];
00111
00112 double sum_1_cos[Flow::SPECIES][Flow::PTBINS], sum_1_sin[Flow::SPECIES][Flow::PTBINS];
00113 double sum_2_cos[Flow::SPECIES][Flow::PTBINS], sum_2_sin[Flow::SPECIES][Flow::PTBINS];
00114 double sum_3_cos[Flow::SPECIES][Flow::PTBINS], sum_3_sin[Flow::SPECIES][Flow::PTBINS];
00115 double sum_4_cos[Flow::SPECIES][Flow::PTBINS], sum_4_sin[Flow::SPECIES][Flow::PTBINS];
00116 double sum_5_cos[Flow::SPECIES][Flow::PTBINS], sum_5_sin[Flow::SPECIES][Flow::PTBINS];
00117 double sum_6_cos_sin[Flow::SPECIES][Flow::PTBINS], sum_6_sin_cos[Flow::SPECIES][Flow::PTBINS];
00118 double sum_7[Flow::SPECIES][Flow::PTBINS], sum_8[Flow::SPECIES][Flow::PTBINS];
00119 double sum_9[Flow::SPECIES][Flow::PTBINS], sum_10[Flow::SPECIES][Flow::PTBINS];
00120 double sum_11_cos[Flow::SPECIES][Flow::PTBINS], sum_11_sin[Flow::SPECIES][Flow::PTBINS];
00121
00122 double sum_1_cos_reference[Flow::SPECIES][Flow::PTBINS], sum_1_sin_reference[Flow::SPECIES][Flow::PTBINS];
00123 double sum_2_cos_reference[Flow::SPECIES][Flow::PTBINS], sum_2_sin_reference[Flow::SPECIES][Flow::PTBINS];
00124 double sum_3_cos_reference[Flow::SPECIES][Flow::PTBINS], sum_3_sin_reference[Flow::SPECIES][Flow::PTBINS];
00125 double sum_11_cos_reference[Flow::SPECIES][Flow::PTBINS], sum_11_sin_reference[Flow::SPECIES][Flow::PTBINS];
00126 double Cumulant_Terms[Flow::TERMS][Flow::TYPES][Flow::PHASES][Flow::SPECIES][Flow::PTBINS];
00127
00128 StFlowEvent* pFlowEvent;
00129 StFlowSelection* pFlowSelect;
00130
00131 TString MakerName;
00132
00133 ClassDef(StFlowDirectCumulantMaker,0)
00134 };
00135
00136 #endif
00137