ROOT logo
#ifndef ALIGLAUBERNUCLEUS_H
#define ALIGLAUBERNUCLEUS_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

////////////////////////////////////////////////////////////////////////////////
//
//  AliGlauberNucleus
//  support classfor Glauber MC
//
//  origin: PHOBOS experiment
//  alification: Mikolaj Krzewicki, Nikhef, mikolaj.krzewicki@cern.ch
//
////////////////////////////////////////////////////////////////////////////////

//class TNamed;
#include <TNamed.h>
class TObjArray;
class TF1;

class AliGlauberNucleus : public TNamed {
private:
   Int_t      fN;          //Number of nucleons
   Double_t   fR;          //Parameters of function
   Double_t   fA;          //Parameters of function
   Double_t   fW;          //Parameters of function
   Double_t   fMinDist;    //Minimum separation distance
   Int_t      fF;          //Type of radial distribution
   Int_t      fTrials;     //Store trials needed to complete nucleus
   TF1*       fFunction;   //Probability density function rho(r)
   TObjArray* fNucleons;   //Array of nucleons

   void       Lookup(Option_t* name);

public:
   AliGlauberNucleus(Option_t* iname="Au", Int_t iN=0, Double_t iR=0, Double_t ia=0, Double_t iw=0, TF1* ifunc=0);
   virtual ~AliGlauberNucleus();
   AliGlauberNucleus(const AliGlauberNucleus& in);
   AliGlauberNucleus& operator=(const AliGlauberNucleus& in);

   using      TObject::Draw;
   void       Draw(Double_t xs, Int_t col);
   Int_t      GetN()             const {return fN;}
   Double_t   GetR()             const {return fR;}
   Double_t   GetA()             const {return fA;}
   Double_t   GetW()             const {return fW;}
   TObjArray *GetNucleons()      const {return fNucleons;}
   Int_t      GetTrials()        const {return fTrials;}
   void       SetN(Int_t in)           {fN=in;}
   void       SetR(Double_t ir);
   void       SetA(Double_t ia);
   void       SetW(Double_t iw);
   void       SetMinDist(Double_t min) {fMinDist=min;}
   void       ThrowNucleons(Double_t xshift=0.);

   ClassDef(AliGlauberNucleus,1)
};

#endif
 AliGlauberNucleus.h:1
 AliGlauberNucleus.h:2
 AliGlauberNucleus.h:3
 AliGlauberNucleus.h:4
 AliGlauberNucleus.h:5
 AliGlauberNucleus.h:6
 AliGlauberNucleus.h:7
 AliGlauberNucleus.h:8
 AliGlauberNucleus.h:9
 AliGlauberNucleus.h:10
 AliGlauberNucleus.h:11
 AliGlauberNucleus.h:12
 AliGlauberNucleus.h:13
 AliGlauberNucleus.h:14
 AliGlauberNucleus.h:15
 AliGlauberNucleus.h:16
 AliGlauberNucleus.h:17
 AliGlauberNucleus.h:18
 AliGlauberNucleus.h:19
 AliGlauberNucleus.h:20
 AliGlauberNucleus.h:21
 AliGlauberNucleus.h:22
 AliGlauberNucleus.h:23
 AliGlauberNucleus.h:24
 AliGlauberNucleus.h:25
 AliGlauberNucleus.h:26
 AliGlauberNucleus.h:27
 AliGlauberNucleus.h:28
 AliGlauberNucleus.h:29
 AliGlauberNucleus.h:30
 AliGlauberNucleus.h:31
 AliGlauberNucleus.h:32
 AliGlauberNucleus.h:33
 AliGlauberNucleus.h:34
 AliGlauberNucleus.h:35
 AliGlauberNucleus.h:36
 AliGlauberNucleus.h:37
 AliGlauberNucleus.h:38
 AliGlauberNucleus.h:39
 AliGlauberNucleus.h:40
 AliGlauberNucleus.h:41
 AliGlauberNucleus.h:42
 AliGlauberNucleus.h:43
 AliGlauberNucleus.h:44
 AliGlauberNucleus.h:45
 AliGlauberNucleus.h:46
 AliGlauberNucleus.h:47
 AliGlauberNucleus.h:48
 AliGlauberNucleus.h:49
 AliGlauberNucleus.h:50
 AliGlauberNucleus.h:51
 AliGlauberNucleus.h:52
 AliGlauberNucleus.h:53
 AliGlauberNucleus.h:54
 AliGlauberNucleus.h:55
 AliGlauberNucleus.h:56
 AliGlauberNucleus.h:57
 AliGlauberNucleus.h:58
 AliGlauberNucleus.h:59
 AliGlauberNucleus.h:60