StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StGlauberTree.h
1 //====================================================================================================
2 // Glauber MC tree
3 // - Event-wise tree contains Npart, Ncoll, eccentricity etc
4 // - Header tree contains all relevavnt parameters used in the Glauber MC simulation
5 //
6 // You can access the data members by
7 // Get*() functions, like GetNpart()
8 //
9 //====================================================================================================
10 // $Id: StGlauberTree.h,v 1.2 2012/04/25 04:45:26 hmasui Exp $
11 // $Log: StGlauberTree.h,v $
12 // Revision 1.2 2012/04/25 04:45:26 hmasui
13 // Expand branches for eccentricity in the main tree, and deformation parameters in header
14 //
15 //====================================================================================================
16 
17 #ifndef __StGlauberTree_h__
18 #define __StGlauberTree_h__
19 
20 class TBranch ;
21 class TFile ;
22 class TTree ;
23 #include "TString.h"
24 
25 //____________________________________________________________________________________________________
26 // Class StGlauberTree: MC Glauber ROOT tree (read/write)
28  public:
29  // Mode
30  // 0 read
31  // 1 write
32  StGlauberTree(const UInt_t mode=0);
33  virtual ~StGlauberTree();
34 
35  Int_t Clear() ;
36  Int_t Open(const TString filename) ;
37  void Sort() ;
38  Int_t Fill() ;
39  Int_t FillHeader() ;
40  Int_t Close() ;
41 
42  Int_t GetEntries() const ;
43  Int_t GetEntry(const Int_t ievent) ;
44 
45  // Setter/Getter for event-wise tree
46  void SetB (const Double_t val) ;
47  void SetNpart (const UInt_t val) ;
48  void SetNcoll (const UInt_t val) ;
49  void SetMultiplicity (const UInt_t val) ;
50  void SetTheta (const UInt_t id, const Double_t val) ;
51  void SetPhi (const UInt_t id, const Double_t val) ;
52  void SetSumX (const UInt_t id, const Double_t val) ;
53  void SetSumY (const UInt_t id, const Double_t val) ;
54  void SetSumX2 (const UInt_t id, const Double_t val) ;
55  void SetSumY2 (const UInt_t id, const Double_t val) ;
56  void SetSumXY (const UInt_t id, const Double_t val) ;
57  void SetEccRP2 (const UInt_t id, const Double_t val) ;
58  void SetEccPP2 (const UInt_t id, const Double_t val) ;
59  void SetEccPP3 (const UInt_t id, const Double_t val) ;
60  void SetEccPP4 (const UInt_t id, const Double_t val) ;
61  void SetPP2 (const UInt_t id, const Double_t val) ;
62  void SetPP3 (const UInt_t id, const Double_t val) ;
63  void SetPP4 (const UInt_t id, const Double_t val) ;
64 
65  Double_t GetB () const ;
66  UInt_t GetNpart () const ;
67  UInt_t GetNcoll () const ;
68  UInt_t GetMultiplicity () const ;
69  Double_t GetTheta (const UInt_t id) const ; // polar angle rotation
70  Double_t GetPhi (const UInt_t id) const ; // azimuthal angle rotation
71  Double_t GetSumX (const UInt_t id) const ; // {x}
72  Double_t GetSumY (const UInt_t id) const ; // {y}
73  Double_t GetSumX2 (const UInt_t id) const ; // {x^2}
74  Double_t GetSumY2 (const UInt_t id) const ; // {y^2}
75  Double_t GetSumXY (const UInt_t id) const ; // {xy}
76  Double_t GetEccRP2 (const UInt_t id) const ; // 2nd order Reaction plane eccentricity
77  Double_t GetEccPP2 (const UInt_t id) const ; // 2nd order Participant plane eccentricity
78  Double_t GetEccPP3 (const UInt_t id) const ; // 3rd order Participant plane eccentricity
79  Double_t GetEccPP4 (const UInt_t id) const ; // 4th order Participant plane eccentricity
80  Double_t GetPP2 (const UInt_t id) const ; // 2nd order participant plane
81  Double_t GetPP3 (const UInt_t id) const ; // 3rd order participant plane
82  Double_t GetPP4 (const UInt_t id) const ; // 4th order participant plane
83 
84  Double_t GetSigmaA2 (const Double_t a2, const Double_t a) const ; // {a^2} - {a}^2
85  Double_t GetSigmaXY (const Double_t xy, const Double_t x, const Double_t y) const ; // {xy} - {x}{y}
86  Double_t GetSRP (const UInt_t id) const ; // Reaction plane area (fm^2)
87  Double_t GetSPP (const UInt_t id) const ; // Participant plane area (fm^2)
88 
89  // For header tree
90  void SetNameNucleusA (const Char_t* val) ;
91  void SetNameNucleusB (const Char_t* val) ;
92  void SetMassNumberA (const UInt_t val) ;
93  void SetMassNumberB (const UInt_t val) ;
94  void SetRadiusA (const Float_t val) ;
95  void SetRadiusB (const Float_t val) ;
96  void SetSkinDepthA (const Float_t val) ;
97  void SetSkinDepthB (const Float_t val) ;
98  void SetBeta2A (const Float_t val) ;
99  void SetBeta4A (const Float_t val) ;
100  void SetBeta2B (const Float_t val) ;
101  void SetBeta4B (const Float_t val) ;
102  void SetSigmaNN (const Float_t val) ;
103  void SetSqrtSNN (const Float_t val) ;
104  void SetRepulsionD (const Float_t val) ;
105  void SetTotalXsec (const Float_t val) ;
106  void SetTotalXsecError (const Float_t val) ;
107  void SetSmearHardCore (const UInt_t val) ;
108  void SetSmearGaussian (const UInt_t val) ;
109  void SetCollisionHardCore (const UInt_t val) ;
110  void SetCollisionGaussian (const UInt_t val) ;
111  void SetBMax (const Float_t val) ;
112  void SetNeventsAccept (const UInt_t val) ;
113  void SetNeventsThrow (const UInt_t val) ;
114  void SetNpp (const Float_t val) ;
115  void SetK (const Float_t val) ;
116  void SetX (const Float_t val) ;
117  void SetEfficiency (const Float_t val) ;
118  void SetIsConstEfficiency (const UInt_t val) ;
119  void SetVersion (const UInt_t val) ;
120 
121  Char_t* GetNameNucleusA () ;
122  Char_t* GetNameNucleusB () ;
123  UInt_t GetMassNumberA () const ;
124  UInt_t GetMassNumberB () const ;
125  Float_t GetRadiusA () const ;
126  Float_t GetRadiusB () const ;
127  Float_t GetSkinDepthA () const ;
128  Float_t GetSkinDepthB () const ;
129  Float_t GetBeta2A () const ;
130  Float_t GetBeta4A () const ;
131  Float_t GetBeta2B () const ;
132  Float_t GetBeta4B () const ;
133  Float_t GetSigmaNN () const ;
134  Float_t GetSqrtSNN () const ;
135  Float_t GetRepulsionD () const ;
136  Float_t GetTotalXsec () const ;
137  Float_t GetTotalXsecError () const ;
138  UInt_t GetSmearHardCore () const ;
139  UInt_t GetSmearGaussian () const ;
140  UInt_t GetCollisionHardCore () const ;
141  UInt_t GetCollisionGaussian () const ;
142  Float_t GetBMax () const ;
143  UInt_t GetNeventsAccept () const ;
144  UInt_t GetNeventsThrow () const ;
145  Float_t GetNpp () const ;
146  Float_t GetK () const ;
147  Float_t GetX () const ;
148  Float_t GetEfficiency () const ;
149  UInt_t GetIsConstEfficiency () const ;
150  UInt_t GetVersion () const ;
151 
152  private:
153  // Initialize branches (in read mode)
154  Int_t InitBranch() ;
155 
156  const UInt_t mMode ;
157  TFile* mFile ;
158  TTree* mTree ;
159  TTree* mHeader ;
160 
161  // Data members in event-wise tree
162  Double_t mB ;
163  UInt_t mNpart ;
164  UInt_t mNcoll ;
165  UInt_t mMultiplicity ;
166  Double_t mTheta[2] ;
167  Double_t mPhi[2] ;
168  Double_t mSumX[4] ;
169  Double_t mSumY[4] ;
170  Double_t mSumX2[4] ;
171  Double_t mSumY2[4] ;
172  Double_t mSumXY[4] ;
173  Double_t mEccRP2[4] ;
174  Double_t mEccPP2[4] ;
175  Double_t mEccPP3[4] ;
176  Double_t mEccPP4[4] ;
177  Double_t mPP2[4] ;
178  Double_t mPP3[4] ;
179  Double_t mPP4[4] ;
180 
181  // Data members in header
182  Char_t mNameNucleusA[4] ;
183  Char_t mNameNucleusB[4] ;
184  UInt_t mMassNumberA ;
185  UInt_t mMassNumberB ;
186  Float_t mRadiusA ;
187  Float_t mRadiusB ;
188  Float_t mSkinDepthA ;
189  Float_t mSkinDepthB ;
190  Float_t mBeta2A ;
191  Float_t mBeta4A ;
192  Float_t mBeta2B ;
193  Float_t mBeta4B ;
194  Float_t mSigmaNN ;
195  Float_t mSqrtSNN ;
196  Float_t mRepulsionD ;
197  Float_t mTotalXsec ;
198  Float_t mTotalXsecError ;
199  UInt_t mSmearHardCore ;
200  UInt_t mSmearGaussian ;
201  UInt_t mCollisionHardCore ;
202  UInt_t mCollisionGaussian ;
203  Float_t mBMax ;
204  UInt_t mNeventsAccept ;
205  UInt_t mNeventsThrow ;
206  Float_t mNpp ;
207  Float_t mK ;
208  Float_t mX ;
209  Float_t mEfficiency ;
210  UInt_t mIsConstEfficiency ;
211  UInt_t mVersion ;
212 
213  // Branches
214  TBranch* b_b ;
215  TBranch* b_npart ;
216  TBranch* b_ncoll ;
217  TBranch* b_mult ;
218  TBranch* b_theta ;
219  TBranch* b_phi ;
220  TBranch* b_sumx ;
221  TBranch* b_sumy ;
222  TBranch* b_sumx2 ;
223  TBranch* b_sumy2 ;
224  TBranch* b_sumxy ;
225  TBranch* b_eccrp2 ;
226  TBranch* b_eccpp2 ;
227  TBranch* b_eccpp3 ;
228  TBranch* b_eccpp4 ;
229  TBranch* b_pp2 ;
230  TBranch* b_pp3 ;
231  TBranch* b_pp4 ;
232 
233  TBranch* b_nameA ;
234  TBranch* b_nameB ;
235  TBranch* b_massNumberA ;
236  TBranch* b_massNumberB ;
237  TBranch* b_radiusA ;
238  TBranch* b_radiusB ;
239  TBranch* b_skinDepthA ;
240  TBranch* b_skinDepthB ;
241  TBranch* b_beta2A ;
242  TBranch* b_beta4A ;
243  TBranch* b_beta2B ;
244  TBranch* b_beta4B ;
245  TBranch* b_sigmaNN ;
246  TBranch* b_sqrtSNN ;
247  TBranch* b_repulsionD ;
248  TBranch* b_totalXsec ;
249  TBranch* b_totalXsecError ;
250  TBranch* b_smearHardCore ;
251  TBranch* b_smearGaussian ;
252  TBranch* b_collisionHardCore ;
253  TBranch* b_collisionGaussian ;
254  TBranch* b_maxB ;
255  TBranch* b_neventsAccept ;
256  TBranch* b_neventsThrow ;
257  TBranch* b_npp ;
258  TBranch* b_k ;
259  TBranch* b_x ;
260  TBranch* b_efficiency ;
261  TBranch* b_isConstEfficiency ;
262  TBranch* b_version ;
263 
264  ClassDef(StGlauberTree, 1)
265 };
266 
267 // Setter for event-wise tree
268 inline void StGlauberTree::SetB (const Double_t val) { mB = val ; }
269 inline void StGlauberTree::SetNpart (const UInt_t val) { mNpart = val ; }
270 inline void StGlauberTree::SetNcoll (const UInt_t val) { mNcoll = val ; }
271 inline void StGlauberTree::SetMultiplicity (const UInt_t val) { mMultiplicity = val ; }
272 inline void StGlauberTree::SetTheta (const UInt_t id, const Double_t val) { mTheta[id] = val ; }
273 inline void StGlauberTree::SetPhi (const UInt_t id, const Double_t val) { mPhi[id] = val ; }
274 inline void StGlauberTree::SetSumX (const UInt_t id, const Double_t val) { mSumX[id] = val ; }
275 inline void StGlauberTree::SetSumY (const UInt_t id, const Double_t val) { mSumY[id] = val ; }
276 inline void StGlauberTree::SetSumX2 (const UInt_t id, const Double_t val) { mSumX2[id] = val ; }
277 inline void StGlauberTree::SetSumY2 (const UInt_t id, const Double_t val) { mSumY2[id] = val ; }
278 inline void StGlauberTree::SetSumXY (const UInt_t id, const Double_t val) { mSumXY[id] = val ; }
279 inline void StGlauberTree::SetEccRP2 (const UInt_t id, const Double_t val) { mEccRP2[id] = val ; }
280 inline void StGlauberTree::SetEccPP2 (const UInt_t id, const Double_t val) { mEccPP2[id] = val ; }
281 inline void StGlauberTree::SetEccPP3 (const UInt_t id, const Double_t val) { mEccPP3[id] = val ; }
282 inline void StGlauberTree::SetEccPP4 (const UInt_t id, const Double_t val) { mEccPP4[id] = val ; }
283 inline void StGlauberTree::SetPP2 (const UInt_t id, const Double_t val) { mPP2[id] = val ; }
284 inline void StGlauberTree::SetPP3 (const UInt_t id, const Double_t val) { mPP3[id] = val ; }
285 inline void StGlauberTree::SetPP4 (const UInt_t id, const Double_t val) { mPP4[id] = val ; }
286 
287 // Getter for event-wise tree
288 inline Double_t StGlauberTree::GetB () const { return mB ; }
289 inline UInt_t StGlauberTree::GetNpart () const { return mNpart ; }
290 inline UInt_t StGlauberTree::GetNcoll () const { return mNcoll ; }
291 inline UInt_t StGlauberTree::GetMultiplicity () const { return mMultiplicity ; }
292 inline Double_t StGlauberTree::GetTheta (const UInt_t id) const { return mTheta[id] ; }
293 inline Double_t StGlauberTree::GetPhi (const UInt_t id) const { return mPhi[id] ; }
294 inline Double_t StGlauberTree::GetSumX (const UInt_t id) const { return mSumX[id] ; }
295 inline Double_t StGlauberTree::GetSumY (const UInt_t id) const { return mSumY[id] ; }
296 inline Double_t StGlauberTree::GetSumX2 (const UInt_t id) const { return mSumX2[id] ; }
297 inline Double_t StGlauberTree::GetSumY2 (const UInt_t id) const { return mSumY2[id] ; }
298 inline Double_t StGlauberTree::GetSumXY (const UInt_t id) const { return mSumXY[id] ; }
299 inline Double_t StGlauberTree::GetEccRP2 (const UInt_t id) const { return mEccRP2[id] ; }
300 inline Double_t StGlauberTree::GetEccPP2 (const UInt_t id) const { return mEccPP2[id] ; }
301 inline Double_t StGlauberTree::GetEccPP3 (const UInt_t id) const { return mEccPP3[id] ; }
302 inline Double_t StGlauberTree::GetEccPP4 (const UInt_t id) const { return mEccPP4[id] ; }
303 inline Double_t StGlauberTree::GetPP2 (const UInt_t id) const { return mPP2[id] ; }
304 inline Double_t StGlauberTree::GetPP3 (const UInt_t id) const { return mPP3[id] ; }
305 inline Double_t StGlauberTree::GetPP4 (const UInt_t id) const { return mPP4[id] ; }
306 
307 // Setter for header tree
308 inline void StGlauberTree::SetMassNumberA (const UInt_t val) { mMassNumberA = val ; }
309 inline void StGlauberTree::SetMassNumberB (const UInt_t val) { mMassNumberB = val ; }
310 inline void StGlauberTree::SetRadiusA (const Float_t val) { mRadiusA = val ; }
311 inline void StGlauberTree::SetRadiusB (const Float_t val) { mRadiusB = val ; }
312 inline void StGlauberTree::SetSkinDepthA (const Float_t val) { mSkinDepthA = val ; }
313 inline void StGlauberTree::SetSkinDepthB (const Float_t val) { mSkinDepthB = val ; }
314 inline void StGlauberTree::SetBeta2A (const Float_t val) { mBeta2A = val ; }
315 inline void StGlauberTree::SetBeta4A (const Float_t val) { mBeta4A = val ; }
316 inline void StGlauberTree::SetBeta2B (const Float_t val) { mBeta2B = val ; }
317 inline void StGlauberTree::SetBeta4B (const Float_t val) { mBeta4B = val ; }
318 inline void StGlauberTree::SetSigmaNN (const Float_t val) { mSigmaNN = val ; }
319 inline void StGlauberTree::SetSqrtSNN (const Float_t val) { mSqrtSNN = val ; }
320 inline void StGlauberTree::SetRepulsionD (const Float_t val) { mRepulsionD = val ; }
321 inline void StGlauberTree::SetTotalXsec (const Float_t val) { mTotalXsec = val ; }
322 inline void StGlauberTree::SetTotalXsecError (const Float_t val) { mTotalXsecError = val ; }
323 inline void StGlauberTree::SetSmearHardCore (const UInt_t val) { mSmearHardCore = val ; }
324 inline void StGlauberTree::SetSmearGaussian (const UInt_t val) { mSmearGaussian = val ; }
325 inline void StGlauberTree::SetCollisionHardCore (const UInt_t val) { mCollisionHardCore = val ; }
326 inline void StGlauberTree::SetCollisionGaussian (const UInt_t val) { mCollisionGaussian = val ; }
327 inline void StGlauberTree::SetBMax (const Float_t val) { mBMax = val ; }
328 inline void StGlauberTree::SetNeventsAccept (const UInt_t val) { mNeventsAccept = val ; }
329 inline void StGlauberTree::SetNeventsThrow (const UInt_t val) { mNeventsThrow = val ; }
330 inline void StGlauberTree::SetNpp (const Float_t val) { mNpp = val ; }
331 inline void StGlauberTree::SetK (const Float_t val) { mK = val ; }
332 inline void StGlauberTree::SetX (const Float_t val) { mX = val ; }
333 inline void StGlauberTree::SetEfficiency (const Float_t val) { mEfficiency = val ; }
334 inline void StGlauberTree::SetIsConstEfficiency (const UInt_t val) { mIsConstEfficiency = val ; }
335 inline void StGlauberTree::SetVersion (const UInt_t val) { mVersion = val ; }
336 
337 inline Char_t* StGlauberTree::GetNameNucleusA () { return mNameNucleusA ; }
338 inline Char_t* StGlauberTree::GetNameNucleusB () { return mNameNucleusB ; }
339 inline UInt_t StGlauberTree::GetMassNumberA () const { return mMassNumberA ; }
340 inline UInt_t StGlauberTree::GetMassNumberB () const { return mMassNumberB ; }
341 inline Float_t StGlauberTree::GetRadiusA () const { return mRadiusA ; }
342 inline Float_t StGlauberTree::GetRadiusB () const { return mRadiusB ; }
343 inline Float_t StGlauberTree::GetSkinDepthA () const { return mSkinDepthA ; }
344 inline Float_t StGlauberTree::GetSkinDepthB () const { return mSkinDepthB ; }
345 inline Float_t StGlauberTree::GetBeta2A () const { return mBeta2A ; }
346 inline Float_t StGlauberTree::GetBeta4A () const { return mBeta4A ; }
347 inline Float_t StGlauberTree::GetBeta2B () const { return mBeta2B ; }
348 inline Float_t StGlauberTree::GetBeta4B () const { return mBeta4B ; }
349 inline Float_t StGlauberTree::GetSigmaNN () const { return mSigmaNN ; }
350 inline Float_t StGlauberTree::GetSqrtSNN () const { return mSqrtSNN ; }
351 inline Float_t StGlauberTree::GetRepulsionD () const { return mRepulsionD ; }
352 inline Float_t StGlauberTree::GetTotalXsec () const { return mTotalXsec ; }
353 inline Float_t StGlauberTree::GetTotalXsecError () const { return mTotalXsecError ; }
354 inline UInt_t StGlauberTree::GetSmearHardCore () const { return mSmearHardCore ; }
355 inline UInt_t StGlauberTree::GetSmearGaussian () const { return mSmearGaussian ; }
356 inline UInt_t StGlauberTree::GetCollisionHardCore () const { return mCollisionHardCore ; }
357 inline UInt_t StGlauberTree::GetCollisionGaussian () const { return mCollisionGaussian ; }
358 inline Float_t StGlauberTree::GetBMax () const { return mBMax ; }
359 inline UInt_t StGlauberTree::GetNeventsAccept () const { return mNeventsAccept ; }
360 inline UInt_t StGlauberTree::GetNeventsThrow () const { return mNeventsThrow ; }
361 inline Float_t StGlauberTree::GetNpp () const { return mNpp ; }
362 inline Float_t StGlauberTree::GetK () const { return mK ; }
363 inline Float_t StGlauberTree::GetX () const { return mX ; }
364 inline Float_t StGlauberTree::GetEfficiency () const { return mEfficiency ; }
365 inline UInt_t StGlauberTree::GetIsConstEfficiency () const { return mIsConstEfficiency ; }
366 inline UInt_t StGlauberTree::GetVersion () const { return mVersion ; }
367 
368 
369 #endif
370 
Int_t Clear()
Default destructor.
Double_t GetSPP(const UInt_t id) const
Int_t GetEntries() const
Close ROOT file.
void Sort()
Open ROOT file, initialize tree.
Int_t FillHeader()
Fill event-wise tree.
Int_t GetEntry(const Int_t ievent)
Get entries.
Int_t Close()
Fill header tree.
virtual ~StGlauberTree()
Default constructor.
Double_t GetSRP(const UInt_t id) const
void SetB(const Double_t val)
Get entry for all branches.
Int_t Open(const TString filename)
Clear data members.
Int_t Fill()
Sort outputs in ROOT file.