StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StFlowScalarProdMaker.h
1 //
3 // $Id: StFlowScalarProdMaker.h,v 1.7 2014/08/06 11:43:14 jeromel Exp $
4 //
5 // Authors: method proposed by Art and Sergei, code written by Aihong
6 // Frame adopted from Art and Raimond's StFlowAnalysisMaker.
8 //
9 // Description: Maker to analyze Flow using the scalar product method
10 //
12 
13 #ifndef StFlowScalarProdMaker_H
14 #define StFlowScalarProdMaker_H
15 #include <Stiostream.h>
16 #include "StMaker.h"
17 #include "StFlowMaker/StFlowConstants.h"
18 #include "TVector2.h"
19 #include "TString.h"
20 class StFlowEvent;
21 class StFlowSelection;
22 class TH1F;
23 class TH1D;
24 class TH2F;
25 class TH2D;
26 //class TH3F;
27 class TProfile;
28 class TProfile2D;
29 
31 
32 public:
33 
34  StFlowScalarProdMaker(const Char_t* name="FlowScalarProdAnalysis");
35  StFlowScalarProdMaker(const Char_t* name,
36  const StFlowSelection& pFlowSelect);
38  virtual ~StFlowScalarProdMaker();
39 
40  Int_t Init();
41  Int_t Make();
42  Int_t Finish();
43  void SetHistoRanges(Bool_t ftpc_included = kFALSE);
44  virtual const char *GetCVS() const {static const char cvs[]=
45  "Tag $Name: $ $Id: StFlowScalarProdMaker.h,v 1.7 2014/08/06 11:43:14 jeromel Exp $ built " __DATE__ " " __TIME__ ;
46  return cvs;}
47 
48 private:
49 
50  void FillFromFlowEvent();
51  void FillEventHistograms();
52  void FillParticleHistograms();
53 #ifndef __CINT__
54  TVector2 mQ[Flow::nSels][Flow::nHars];
55  TVector2 mQSub[Flow::nSels*Flow::nSubs][Flow::nHars];
56 
57  Float_t mRes[Flow::nSels][Flow::nHars];
58  Float_t mResErr[Flow::nSels][Flow::nHars];
59 #endif /*__CINT__*/
60  TString xLabel;
61  StFlowEvent* pFlowEvent;
62  StFlowSelection* pFlowSelect;
63 
64  // for each harmonic and each selection
65  struct histFullHars {
66  TProfile2D* mHist_vObs2D;
67  TProfile* mHist_vObsEta;
68  TProfile* mHist_vObsPt;
69  TH2D* mHist_v2D;
70  TH1D* mHist_vEta;
71  TH1D* mHist_vPt;
72  };
73 
74  // for each selection
75  struct histFulls;
76  friend struct histFulls;
77  struct histFulls {
78  TProfile* mHistRes;
79  TProfile* mHist_vObs;
80  TH1D* mHist_v;
81  struct histFullHars histFullHar[Flow::nHars];
82  };
83  struct histFulls histFull[Flow::nSels];
84 
85  TString MakerName;
86 
87  Float_t mEtaMin;
88  Float_t mEtaMax;
89  Int_t mNEtaBins;
90 
91  ClassDef(StFlowScalarProdMaker,0) // macro for rootcint
92 };
93 
94 #endif
95 
97 //
98 // $Log: StFlowScalarProdMaker.h,v $
99 // Revision 1.7 2014/08/06 11:43:14 jeromel
100 // Suffix on literals need to be space (later gcc compiler makes it an error) - first wave of fixes
101 //
102 // Revision 1.6 2003/09/10 19:47:15 perev
103 // ansi corrs
104 //
105 // Revision 1.5 2003/09/02 17:58:11 perev
106 // gcc 3.2 updates + WarnOff
107 //
108 // Revision 1.4 2003/01/10 16:40:52 oldi
109 // Several changes to comply with FTPC tracks:
110 // - Switch to include/exclude FTPC tracks introduced.
111 // The same switch changes the range of the eta histograms.
112 // - Eta symmetry plots for FTPC tracks added and separated from TPC plots.
113 // - PhiWgts and related histograms for FTPC tracks split in FarEast, East,
114 // West, FarWest (depending on vertex.z()).
115 // - Psi_Diff plots for 2 different selections and the first 2 harmonics added.
116 // - Cut to exclude mu-events with no primary vertex introduced.
117 // (This is possible for UPC events and FTPC tracks.)
118 // - Global DCA cut for FTPC tracks added.
119 // - Global DCA cuts for event plane selection separated for TPC and FTPC tracks.
120 // - Charge cut for FTPC tracks added.
121 //
122 // Revision 1.3 2002/01/14 23:42:55 posk
123 // Renamed ScalerProd histograms. Moved print commands to FlowMaker::Finish().
124 //
125 // Revision 1.2 2001/12/21 17:01:59 aihong
126 // minor changes
127 //
128 // Revision 1.1 2001/12/18 23:46:47 aihong
129 // install scalar product method
130 //
131 //