00001
00002
00003
00004
00005
00006
00007
00009
00010
00011
00013
00014 #ifndef StFlowAnalysisMaker_H
00015 #define StFlowAnalysisMaker_H
00016 #include <Stiostream.h>
00017 #include "StMaker.h"
00018 #include "StFlowMaker/StFlowConstants.h"
00019 #include "TVector2.h"
00020 #include "TString.h"
00021 class StFlowMaker;
00022 class StFlowEvent;
00023 class StFlowSelection;
00024 class TH1F;
00025 class TH1D;
00026 class TH2F;
00027 class TH2D;
00028 class TH3F;
00029 class TProfile;
00030 class TProfile2D;
00031
00032 class StFlowAnalysisMaker : public StMaker {
00033
00042 public:
00043
00045 StFlowAnalysisMaker(const Char_t* name="FlowAnalysis");
00047 StFlowAnalysisMaker(const Char_t* name,
00048 const StFlowSelection& pFlowSelect);
00049 StFlowAnalysisMaker(const StFlowAnalysisMaker &from) {};
00050 virtual ~StFlowAnalysisMaker();
00051
00052 Int_t Init();
00053 Int_t Make();
00054 Int_t Finish();
00055 void SetHistoRanges(Bool_t ftpc_included = kFALSE);
00056 void SetPtRange_for_vEta(Float_t lo, Float_t hi);
00057 void SetEtaRange_for_vPt(Float_t lo, Float_t hi);
00058 void SetV1Ep1Ep2(Bool_t v1Ep1Ep2 = kTRUE);
00059 virtual const char *GetCVS() const {static const char cvs[]=
00060 "Tag $Name: $ $Id: StFlowAnalysisMaker.h,v 1.51 2011/03/10 18:56:25 posk Exp $ built "__DATE__" "__TIME__ ;
00061 return cvs;}
00062
00063 private:
00064
00065 Bool_t FillFromFlowEvent();
00066 void FillEventHistograms();
00067 void FillParticleHistograms();
00068 Bool_t mCalcReCentPars;
00069 #ifndef __CINT__
00070 TVector2 mQ[Flow::nSels][Flow::nHars];
00071 Float_t mPsi[Flow::nSels][Flow::nHars];
00072 UInt_t mMult[Flow::nSels][Flow::nHars];
00073 Float_t m_q[Flow::nSels][Flow::nHars];
00074 TVector2 mQSub[Flow::nSels*Flow::nSubs][Flow::nHars];
00075 Float_t mPsiSub[Flow::nSels*Flow::nSubs][Flow::nHars];
00076 UInt_t mMultSub[Flow::nSels*Flow::nSubs][Flow::nHars];
00077 Float_t mRes[Flow::nSels][Flow::nHars];
00078 Float_t mResErr[Flow::nSels][Flow::nHars];
00079 Float_t mZDCSMD_e_PsiWgt,mZDCSMD_w_PsiWgt,mZDCSMD_f_PsiWgt;
00080 Float_t mFlowWeight;
00081 #endif
00082 TString xLabel;
00083 StFlowMaker* pFlowMaker;
00084 StFlowEvent* pFlowEvent;
00085 StFlowSelection* pFlowSelect;
00086
00087
00088 TH1F* mHistTrigger;
00089 TH1F* mHistChargeFtpc;
00090 TH1F* mHistDcaGlobalTpc;
00091 TH1F* mHistDcaGlobalFtpc;
00092 TH1F* mHistDcaTpc;
00093 TH1F* mHistDcaFtpc;
00094 TH1F* mHistChi2Tpc;
00095 TH1F* mHistChi2Ftpc;
00096 TH1F* mHistFitPtsTpc;
00097 TH1F* mHistMaxPtsTpc;
00098 TH1F* mHistFitOverMaxTpc;
00099 TH1F* mHistFitPtsFtpc;
00100 TH1F* mHistMaxPtsFtpc;
00101 TH1F* mHistFitOverMaxFtpc;
00102 TH1F* mHistOrigMult;
00103 TH1F* mHistMultEta;
00104 TH1F* mHistMult;
00105 TH1F* mHistMultOverOrig;
00106 TH1F* mHistMultPart;
00107 TH1F* mHistVertexZ;
00108 TH2F* mHistVertexXY2D;
00109 TH1F* mHistEtaSymTpc;
00110 TH1F* mHistEtaSymFtpc;
00111 TH3F* mHistEtaPtPhi3D;
00112 TH2D* mHistYieldAll2D;
00113 TH2D* mHistYieldPart2D;
00114 TProfile* mHistBinEta;
00115 TProfile* mHistBinPt;
00116 TH1F* mHistPidPiPlus;
00117 TH1F* mHistPidPiMinus;
00118 TH1F* mHistPidProton;
00119 TH1F* mHistPidAntiProton;
00120 TH1F* mHistPidKplus;
00121 TH1F* mHistPidKminus;
00122 TH1F* mHistPidDeuteron;
00123 TH1F* mHistPidAntiDeuteron;
00124 TH1F* mHistPidElectron;
00125 TH1F* mHistPidPositron;
00126 TH1F* mHistPidPiPlusPart;
00127 TH1F* mHistPidPiMinusPart;
00128 TH1F* mHistPidProtonPart;
00129 TH1F* mHistPidAntiProtonPart;
00130 TH1F* mHistPidKplusPart;
00131 TH1F* mHistPidKminusPart;
00132 TH1F* mHistPidDeuteronPart;
00133 TH1F* mHistPidAntiDeuteronPart;
00134 TH1F* mHistPidElectronPart;
00135 TH1F* mHistPidPositronPart;
00136 TProfile* mHistPidMult;
00137 TH1F* mHistCent;
00138 TH2F* mHistEtaSymVerZ2DTpc;
00139 TH2F* mHistEtaSymVerZ2DFtpc;
00140 TH2F* mHistCTBvsZDC2D;
00141 TH2F* mHistMeanDedxPos2D;
00142 TH2F* mHistMeanDedxNeg2D;
00143 TH2F* mHistMeanDedxPiPlus2D;
00144 TH2F* mHistMeanDedxPiMinus2D;
00145 TH2F* mHistMeanDedxProton2D;
00146 TH2F* mHistMeanDedxPbar2D;
00147 TH2F* mHistMeanDedxKplus2D;
00148 TH2F* mHistMeanDedxKminus2D;
00149 TH2F* mHistMeanDedxDeuteron2D;
00150 TH2F* mHistMeanDedxAntiDeuteron2D;
00151 TH2F* mHistMeanDedxPositron2D;
00152 TH2F* mHistMeanDedxElectron2D;
00153 TH1F* mZDC_SMD_west_vert;
00154 TH1F* mZDC_SMD_west_hori;
00155 TH1F* mZDC_SMD_east_vert;
00156 TH1F* mZDC_SMD_east_hori;
00157 TH1D* mHistZDCSMDPsiWgtEast;
00158 TH1D* mHistZDCSMDPsiWgtWest;
00159 TH1D* mHistZDCSMDPsiWgtTest;
00160 TH1D* mHistZDCSMDPsiWgtFull;
00161 TH1D* mHistZDCSMDPsiCorTest;
00162 TH1D* mHistZDCSMDPsiCorFull;
00163
00164
00165 struct histSubHars {
00166 TH1F* mHistPsiSubs;
00167 };
00168 struct histSubs;
00169 friend struct histSubs;
00170 struct histSubs {
00171 struct histSubHars histSubHar[Flow::nHars];
00172 };
00173 struct histSubs histSub[Flow::nSels*Flow::nSubs];
00174
00175
00176 struct histFullHars {
00177 TH1F* mHistPhiCorr;
00178 TH1F* mHistPhiLab;
00179 TH1F* mHistPsiSubCorr;
00180 TH1F* mHistPsiSubCorrDiff;
00181 TH1F* mHistPsi;
00182 TProfile* mHistReCentX;
00183 TProfile* mHistReCentY;
00184 TProfile* mHistQreCent;
00185 TH2D* mHistQXY2D;
00186 TH2D* mHistQFTPCSubXY2D;
00187 TH2D* mHistQTPCSubXY2D;
00188 TH1F* mHistPsi_Diff;
00189 TH1F* mHistMult;
00190 TH1F* mHist_q;
00191 TH2D* mHistYield2D;
00192 TProfile2D* mHist_vObs2D;
00193 TProfile* mHist_vObsEta;
00194 TProfile* mHist_vObsPt;
00195 TH2D* mHist_v2D;
00196 TH1D* mHist_vEta;
00197 TH1D* mHist_vPt;
00198 };
00199
00200
00201 struct histTwoHars {
00202 TH1D* mHistPhiFarEast;
00203 TH1D* mHistPhiEast;
00204 TH1D* mHistPhiWest;
00205 TH1D* mHistPhiFarWest;
00206 TH1D* mHistPhiFtpcFarEast;
00207 TH1D* mHistPhiFtpcEast;
00208 TH1D* mHistPhiFtpcWest;
00209 TH1D* mHistPhiFtpcFarWest;
00210 TH1D* mHistPhiWgtFarEast;
00211 TH1D* mHistPhiWgtEast;
00212 TH1D* mHistPhiWgtWest;
00213 TH1D* mHistPhiWgtFarWest;
00214 TH1D* mHistPhiWgtFtpcFarEast;
00215 TH1D* mHistPhiWgtFtpcEast;
00216 TH1D* mHistPhiWgtFtpcWest;
00217 TH1D* mHistPhiWgtFtpcFarWest;
00218 TH1D* mHistPhiFlatFarEast;
00219 TH1D* mHistPhiFlatEast;
00220 TH1D* mHistPhiFlatWest;
00221 TH1D* mHistPhiFlatFarWest;
00222 TH1D* mHistPhiFlatFtpcFarEast;
00223 TH1D* mHistPhiFlatFtpcEast;
00224 TH1D* mHistPhiFlatFtpcWest;
00225 TH1D* mHistPhiFlatFtpcFarWest;
00226 };
00227
00228
00229 struct histFulls;
00230 friend struct histFulls;
00231 struct histFulls {
00232 TProfile* mHistCos;
00233 TH1F* mHistRes;
00234 TProfile* mHist_vObs;
00235 TH1D* mHist_v;
00236 struct histFullHars histFullHar[Flow::nHars];
00237 struct histTwoHars histTwoHar[2];
00238 };
00239 struct histFulls histFull[Flow::nSels];
00240
00241 TString MakerName;
00242
00243 Float_t mEtaMin;
00244 Float_t mEtaMax;
00245 Int_t mNEtaBins;
00246
00247 Float_t mPtRange_for_vEta[2];
00248 Float_t mEtaRange_for_vPt[2];
00249
00250 Bool_t mV1Ep1Ep2;
00251
00252 ClassDef(StFlowAnalysisMaker,0)
00253 };
00254 #endif
00255
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276
00277
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290
00291
00292
00293
00294
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372
00373
00374
00375
00376
00377
00378
00379
00380
00381
00382
00383
00384
00385
00386
00387
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402
00403
00404
00405
00406
00407
00408
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418
00419
00420
00421
00422
00423
00424
00425
00426
00427
00428
00429
00430