ROOT logo
AliRoot » PWG » GLAUBER » AliGlauberMC

class AliGlauberMC: public TNamed


  Glauber MC implementation

  origin: PHOBOS experiment
  alification: Mikolaj Krzewicki, Nikhef, mikolaj.krzewicki@cern.ch
  update:      You Zhou, Nikhef, yzhou@nikhef.nl

Function Members (Methods)

public:
AliGlauberMC(const AliGlauberMC& in)
AliGlauberMC(Option_t* NA = "Pb", Option_t* NB = "Pb", Double_t xsect = 64)
virtual~AliGlauberMC()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
Bool_tCalcEvent(Double_t bgen)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
Int_tDoubleNegativeBinomialRandom(Int_t k1, Double_t nmean1, Int_t k2, Double_t nmean2, Double_t alpha) const
virtual voidDraw(Option_t* option)
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Double_tGetB() const
Double_tGetBMax() const
Double_tGetBMin() const
Double_tGetdNdEta() const
Double_tGetdNdEtaGBW(const Double_t* param) const
Double_tGetdNdEtaNBD(const Double_t* param) const
Double_tGetdNdEtaNBDSV(const Double_t* param) const
Double_t*GetdNdEtaParam()
Double_tGetdNdEtaSimple(const Double_t* param) const
Double_tGetdNdEtaTwoNBD(const Double_t* param) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Double_tGetEccentricity() const
Double_tGetEccentricityColl() const
Double_tGetEccentricityCom() const
Double_tGetEccentricityPart() const
Double_tGetEccentricityPartColl() const
Double_tGetEccentricityPartCom() const
Double_tGetEpsilon2Coll() const
Double_tGetEpsilon2Com() const
Double_tGetEpsilon2Part() const
Double_tGetEpsilon3Coll() const
Double_tGetEpsilon3Com() const
Double_tGetEpsilon3Part() const
Double_tGetEpsilon4Coll() const
Double_tGetEpsilon4Com() const
Double_tGetEpsilon4Part() const
Double_tGetEpsilon5Coll() const
Double_tGetEpsilon5Com() const
Double_tGetEpsilon5Part() const
virtual const char*TObject::GetIconName() const
virtual const char*TNamed::GetName() const
Int_tGetNcoll() const
Int_tGetNpart() const
Int_tGetNpartFound() const
TNtuple*GetNtuple() const
AliGlauberNucleus&GetNucA()
AliGlauberNucleus&GetNucB()
TObjArray*GetNucleons()
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Double_tGetPsi2() const
Double_tGetPsi3() const
Double_tGetPsi4() const
Double_tGetPsi5() const
Double_tGetStoa() const
virtual const char*TNamed::GetTitle() const
Double_tGetTotXSect() const
Double_tGetTotXSectErr() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
static Double_tNegativeBinomialDistribution(Int_t x, Int_t k, Double_t nmean)
Int_tNegativeBinomialRandom(Int_t k, Double_t nmean) const
Int_tNegativeBinomialRandomSV(Double_t nbar, Double_t k) const
Bool_tNextEvent(Double_t bgen = -1)
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
AliGlauberMC&operator=(const AliGlauberMC& in)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
static voidPrintVersion()
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidReset()
voidTObject::ResetBit(UInt_t f)
voidRun(Int_t nevents)
static voidRunAndSaveNtuple(Int_t n, Option_t* sysA = "Pb", Option_t* sysB = "Pb", Double_t signn = 64, Double_t mind = 0.4, Double_t r = 6.62, Double_t a = 0.546, const char* fname = "glau_pbpb_ntuple.root")
voidRunAndSaveNucleons(Int_t n, Option_t* sysA, Option_t* sysB, Double_t signn, Double_t mind, Bool_t verbose, const char* fname)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidSeta(Double_t a)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetBmax(Double_t bmax)
voidSetBmin(Double_t bmin)
voidSetdNdEtaType(AliGlauberMC::EdNdEtaType method)
voidSetDoFluc(Double_t omega, Double_t sig0, Double_t lam, Bool_t on = kTRUE)
voidSetDoPartProduction(Bool_t b)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetMinDistance(Double_t d)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetr(Double_t r)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
static const char*Version()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
Bool_tCalcResults(Double_t bgen)

Data Members

public:
enum EdNdEtaType { kSimple
kNBD
kNBDSV
kTwoNBD
kGBW
kNone
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title
private:
Int_tfANNumber of nucleons in nucleus A
AliGlauberNucleusfANucleusNucleus A
Double_tfBMCImpact parameter (b)
Double_tfBMaxMaximum impact parameter to be generated
Double_tfBMinMinimum impact parameter to be generated
Int_tfBNNumber of nucleons in nucleus B
Double_tfBNNaverage NN impact parameter
AliGlauberNucleusfBNucleusNucleus B
Bool_tfDoFluc=kTRUE then fluc sigma (only useful for pPb)
Bool_tfDoPartProd=1 then particle production on
Int_tfEventsNumber of events with at least one collision
Double_tfLambdalambda parameter
Int_tfMaxNpartFoundLargest value of Npart obtained
Double_tfMeanOXA<x> of nucleons in nucleus A
Double_tfMeanOXB<x> of nucleons in nucleus B
Double_tfMeanOXColl<x> of binary collisions
Double_tfMeanOXCom<x> of
Double_tfMeanOXParts<x> of wounded nucleons
Double_tfMeanOYA<x> of nucleons in nucleus A
Double_tfMeanOYB<x> of nucleons in nucleus B
Double_tfMeanOYColl<y> of binary collisions
Double_tfMeanOYCom<y> of
Double_tfMeanOYParts<y> of wounded nucleons
Double_tfMeanX2<x^2> of wounded nucleons
Double_tfMeanX2Coll<x^2> of binary collisions
Double_tfMeanX2Com<x^2> of
Double_tfMeanX2Parts<x^2> of wounded nucleons
Double_tfMeanXA<x> of nucleons in nucleus A
Double_tfMeanXB<x> of nucleons in nucleus B
Double_tfMeanXColl<x> of binary collisions
Double_tfMeanXCom<x> of combine
Double_tfMeanXParts<x> of wounded nucleons
Double_tfMeanXSystem<x> of all nucleons
Double_tfMeanXY<xy> of wounded nucleons
Double_tfMeanXYColl<xy> of binary collisions
Double_tfMeanXYCom<xy> of
Double_tfMeanXYParts<xy> of wounded nucleons
Double_tfMeanY2<y^2> of wounded nucleons
Double_tfMeanY2Coll<y^2> of binary collisions
Double_tfMeanY2Com<y^2> of
Double_tfMeanY2Parts<y^2> of wounded nucleons
Double_tfMeanYA<x> of nucleons in nucleus A
Double_tfMeanYB<x> of nucleons in nucleus B
Double_tfMeanYColl<y> of binary collisions
Double_tfMeanYCom<y> of
Double_tfMeanYParts<y> of wounded nucleons
Double_tfMeanYSystem<x> of all nucleons
Double_tfMeanr2----------<r^2> of wounded nucleons
Double_tfMeanr2Coll----------<r^2> of wounded nucleons
Double_tfMeanr2Com----------<r^2> of wounded nucleons
Double_tfMeanr2Cos2Phi------<r^2*cos2phi> of wounded nucleons
Double_tfMeanr2Cos2PhiColl------<r^2*cos2phi>
Double_tfMeanr2Cos2PhiCom------<r^2*cos2phi>
Double_tfMeanr2Cos3Phi------<r^2*cos3phi> of wounded nucleons
Double_tfMeanr2Cos3PhiColl------<r^2*cos3phi>
Double_tfMeanr2Cos3PhiCom------<r^2*cos3phi>
Double_tfMeanr2Cos4Phi------<r^2*cos4phi> of wounded nucleons
Double_tfMeanr2Cos4PhiColl------<r^2*cos4phi>
Double_tfMeanr2Cos4PhiCom------<r^2*cos4phi>
Double_tfMeanr2Cos5Phi------<r^2*cos5phi> of wounded nucleons
Double_tfMeanr2Cos5PhiColl------<r^2*cos5phi>
Double_tfMeanr2Cos5PhiCom------<r^2*cos5phi>
Double_tfMeanr2Sin2Phi------<r^2*sin2phi> of wounded nucleons
Double_tfMeanr2Sin2PhiColl------<r^2*sin2phi>
Double_tfMeanr2Sin2PhiCom------<r^2*sin2phi>
Double_tfMeanr2Sin3Phi------<r^2*sin3phi> of wounded nucleons
Double_tfMeanr2Sin3PhiColl------<r^2*sin3phi>
Double_tfMeanr2Sin3PhiCom------<r^2*sin3phi>
Double_tfMeanr2Sin4Phi------<r^2*sin4phi> of wounded nucleons
Double_tfMeanr2Sin4PhiColl------<r^2*sin4phi>
Double_tfMeanr2Sin4PhiCom------<r^2*sin4phi>
Double_tfMeanr2Sin5Phi------<r^2*sin5phi> of wounded nucleons
Double_tfMeanr2Sin5PhiColl------<r^2*sin5phi>
Double_tfMeanr2Sin5PhiCom------<r^2*sin5phi>
Double_tfMeanr3----------<r^3> of wounded nucleons
Double_tfMeanr3Coll----------<r^3> of wounded nucleons
Double_tfMeanr3Com----------<r^3> of wounded nucleons
Double_tfMeanr3Cos3Phi------<r^3*cos3phi> of wounded nucleons
Double_tfMeanr3Cos3PhiColl------<r^3*cos3phi>
Double_tfMeanr3Cos3PhiCom------<r^3*cos3phi>
Double_tfMeanr3Sin3Phi------<r^3*sin3phi> of wounded nucleons
Double_tfMeanr3Sin3PhiColl------<r^3*sin3phi>
Double_tfMeanr3Sin3PhiCom------<r^3*sin3phi>
Double_tfMeanr4----------<r^4> of wounded nucleons
Double_tfMeanr4Coll----------<r^4> of wounded nucleons
Double_tfMeanr4Com----------<r^4> of wounded nucleons
Double_tfMeanr4Cos4Phi------<r^4*cos4phi> of wounded nucleons
Double_tfMeanr4Cos4PhiColl------<r^4*cos4phi>
Double_tfMeanr4Cos4PhiCom------<r^4*cos4phi>
Double_tfMeanr4Sin4Phi------<r^4*sin4phi> of wounded nucleons
Double_tfMeanr4Sin4PhiColl------<r^4*sin4phi>
Double_tfMeanr4Sin4PhiCom------<r^4*sin4phi>
Double_tfMeanr5----------<r^5> of wounded nucleons
Double_tfMeanr5Coll----------<r^5> of wounded nucleons
Double_tfMeanr5Com----------<r^5> of wounded nucleons
Double_tfMeanr5Cos5Phi------<r^5*cos5phi> of wounded nucleons
Double_tfMeanr5Cos5PhiColl------<r^5*cos5phi>
Double_tfMeanr5Cos5PhiCom------<r^5*cos5phi>
Double_tfMeanr5Sin5Phi------<r^5*sin5phi> of wounded nucleons
Double_tfMeanr5Sin5PhiColl------<r^5*sin5phi>
Double_tfMeanr5Sin5PhiCom------<r^5*sin5phi>
AliGlauberMC::EdNdEtaTypefMultTypemutliplicity method selection
Int_tfNcollNumber of binary collisions in current event
Int_tfNcollwNumber of binary collisions in current event
Double_tfNcom
Int_tfNpartNumber of wounded (participating) nucleons in current event
Double_tfNppMultiplicity normalization
TObjArray*fNucleonsAArray of nucleons in nucleus A
TObjArray*fNucleonsBArray of nucleons in nucleus B
Int_tfONcoll
Double_tfONcom
Int_tfONpart
Double_tfOmegafluctuation parameter
Int_tfQANNumber of nucleons in nucleus A
Int_tfQBNNumber of nucleons in nucleus B
Double_tfSig0regularization parameter
TF1*fSigFluc!parameterization for fluctuating sigNN
Double_tfSx2CollVariance of x of binaruy collisions
Double_tfSx2ComVariance of x of binaruy collisions
Double_tfSx2PartsVariance of x of wounded nucleons
Double_tfSxyCollCovariance of x and y of binaruy collisions
Double_tfSxyComCovariance of x and y of binaruy collisions
Double_tfSxyPartsCovariance of x and y of wounded nucleons
Double_tfSy2CollVariance of y of binaruy collisions
Double_tfSy2ComVariance of y of binaruy collisions
Double_tfSy2PartsVariance of y of wounded nucleons
Int_tfTotalEventsAll events within selected impact parameter range
Double_tfXhard particle production fraction
Double_tfXSectNucleon-nucleon cross section
Double_tfdNdEtaParam[10]Parameters for multiplicity calculation: meaning depends on method selection
TNtuple*fntNtuple for results (created, but not deleted)

Class Charts

Inheritance Chart:
TNamed
AliGlauberMC

Function documentation

AliGlauberMC(Option_t* NA = "Pb", Option_t* NB = "Pb", Double_t xsect = 64)
ctor
~AliGlauberMC()
dtor
AliGlauberMC(const AliGlauberMC& in)
copy ctor
AliGlauberMC& operator=(const AliGlauberMC& in)
assignment
Bool_t CalcEvent(Double_t bgen)
 prepare event
Bool_t CalcResults(Double_t bgen)
 calc results for the given event
return true if we have participants
void Draw(Option_t* option)
draw method
Double_t GetTotXSect() const
total xsection
Double_t GetTotXSectErr() const
total xsection error
TObjArray * GetNucleons()
get array of nucleons
Double_t NegativeBinomialDistribution(Int_t x, Int_t k, Double_t nmean)
produce a number distributed acc. neg.bin.dist
Int_t NegativeBinomialRandom(Int_t k, Double_t nmean) const
return random integer from a Negative Binomial Distribution
Int_t NegativeBinomialRandomSV(Double_t nbar, Double_t k) const
 negative binomial distribution generator, S. Voloshin, 09-May-2007
Int_t DoubleNegativeBinomialRandom(Int_t k1, Double_t nmean1, Int_t k2, Double_t nmean2, Double_t alpha) const
return random integer from a Double Negative Binomial Distribution
Double_t GetdNdEta() const
Double_t GetdNdEtaSimple(const Double_t* param) const
Get particle density per unit of rapidity
using two component model
Parameters: npp, x
Double_t GetdNdEtaGBW(const Double_t* param) const
Get particle density per unit of rapidity
using the GBW model
Parameters: delta, lambda, snn
Double_t GetdNdEtaNBDSV(const Double_t* param) const
Get particle density per unit of rapidity (from Sergei)
Double_t GetdNdEtaNBD(const Double_t* param) const
Get particle density per unit of rapidity
using a aandomized number from a negative binomial distrubution
Parameters:   k  = related to distribition width=3
              nmean = mean of distribution=4
              beta = set contribution of participants / binary collisions to multiplicity=0.13
Double_t GetdNdEtaTwoNBD(const Double_t* param) const
Get particle density per unit of rapidity
using random numbers from two negative binomial distributions
Parameters:   k1 = related to distribition width of distribution 1=3
              nmean1 = mean of distribution 1=4
              k2 = related to distribition width of distribution 2=2
              nmean2 = mean of distribution 2=11
              alpha = set contributions of distrubitin 1 / distribution 2=0.4
              beta = set contribution of participants / binary collisions to multiplicity =0.13
Double_t GetEccentricityPart() const
get participant eccentricity of participants
Double_t GetEccentricityPartColl() const
get participant eccentricity of binary collisions
Double_t GetEccentricityPartCom() const
get participant eccentricity of binary collisions
Double_t GetEccentricity() const
get standard eccentricity of participants
Double_t GetEccentricityColl() const
get standard eccentricity of binary collisions
Double_t GetEccentricityCom() const
get standard eccentricity of combined weight
Double_t GetStoa() const
get standard Transverse Overlap Area
Bool_t NextEvent(Double_t bgen = -1)
Make a new event
Double_t GetEpsilon2Part() const
get participant eccentricity of participants
Double_t GetEpsilon3Part() const
get participant eccentricity of participants
Double_t GetEpsilon4Part() const
get participant eccentricity of participants
Double_t GetEpsilon5Part() const
get participant eccentricity of participants
Double_t GetEpsilon2Coll() const
get epsilon2 of binary collisions
Double_t GetEpsilon3Coll() const
get epsilon3 of binary collisions
Double_t GetEpsilon4Coll() const
get epsilon4 of binary collisions
Double_t GetEpsilon5Coll() const
get epsilon5 of binary collisions
Double_t GetEpsilon2Com() const
get epsilon2 of binary collisions
Double_t GetEpsilon3Com() const
get epsilon3 of binary collisions
Double_t GetEpsilon4Com() const
get epsilon4 of binary collisions
Double_t GetEpsilon5Com() const
get epsilon5 of binary collisions
Double_t GetPsi2() const
Double_t GetPsi3() const
Double_t GetPsi4() const
Double_t GetPsi5() const
void Run(Int_t nevents)
example run
void RunAndSaveNtuple(Int_t n, Option_t* sysA = "Pb", Option_t* sysB = "Pb", Double_t signn = 64, Double_t mind = 0.4, Double_t r = 6.62, Double_t a = 0.546, const char* fname = "glau_pbpb_ntuple.root")
example run
void RunAndSaveNucleons(Int_t n, Option_t* sysA, Option_t* sysB, Double_t signn, Double_t mind, Bool_t verbose, const char* fname)
example run
void Reset()
delete the ntuple
Double_t GetB() const
{return fBMC;}
Double_t GetBMin() const
{return fBMin;}
Double_t GetBMax() const
{return fBMax;}
Int_t GetNcoll() const
{return fNcoll;}
Int_t GetNpart() const
{return fNpart;}
Int_t GetNpartFound() const
{return fMaxNpartFound;}
TNtuple* GetNtuple() const
{return fnt;}
AliGlauberNucleus & GetNucA()
{return fANucleus;}
AliGlauberNucleus & GetNucB()
{return fBNucleus;}
Double_t* GetdNdEtaParam()
{return fdNdEtaParam;}
void SetdNdEtaType(AliGlauberMC::EdNdEtaType method)
{fMultType=method;}
void SetBmin(Double_t bmin)
{fBMin = bmin;}
void SetBmax(Double_t bmax)
{fBMax = bmax;}
void SetMinDistance(Double_t d)
void SetDoPartProduction(Bool_t b)
{ fDoPartProd = b; }
void Setr(Double_t r)
void Seta(Double_t a)
void SetDoFluc(Double_t omega, Double_t sig0, Double_t lam, Bool_t on = kTRUE)
{fDoFluc=on;fOmega=omega;fSig0=sig0;fLambda=lam;}
void PrintVersion()
{cout << "AliGlauberMC " << Version() << endl;}
const char * Version()
{return "v1.2";}