ROOT logo
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
*                                                                        *
* Author: The ALICE Off-line Project.                                    *
* Contributors are mentioned in the code where appropriate.              *
*                                                                        *
* Permission to use, copy, modify and distribute this software and its   *
* documentation strictly for non-commercial purposes is hereby granted   *
* without fee, provided that the above copyright notice appears in all   *
* copies and that both the copyright notice and this permission notice   *
* appear in the supporting documentation. The authors make no claims     *
* about the suitability of this software for any purpose. It is          *
* provided "as is" without express or implied warranty.                  *
**************************************************************************/

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

#include <Riostream.h>
#include <TMath.h>
#include <TEllipse.h>
#include <TNamed.h>
#include <TObjArray.h>
#include <TF1.h>
#include <TRandom.h>
#include "AliGlauberNucleon.h"
#include "AliGlauberNucleus.h"

using std::cout;
using std::endl;
using std::cerr;
ClassImp(AliGlauberNucleus)

//______________________________________________________________________________
AliGlauberNucleus::AliGlauberNucleus(Option_t* iname, Int_t iN, Double_t iR, Double_t ia, Double_t iw, TF1* ifunc) : 
  TNamed(iname,""),
  fN(iN),
  fR(iR),
  fA(ia),
  fW(iw),
  fMinDist(-1),
  fF(0),
  fTrials(0),
  fFunction(ifunc),
  fNucleons(NULL)
{
   if (fN==0) {
      cout << "Setting up nucleus " << iname << endl;
      Lookup(iname);
   }
}

//______________________________________________________________________________
AliGlauberNucleus::~AliGlauberNucleus()
{
   if (fNucleons) {
      delete fNucleons;
   }
   delete fFunction;
}

//______________________________________________________________________________
AliGlauberNucleus::AliGlauberNucleus(const AliGlauberNucleus& in):
  TNamed(in),
  fN(in.fN),
  fR(in.fR),
  fA(in.fA),
  fW(in.fW),
  fMinDist(in.fMinDist),
  fF(in.fF),
  fTrials(in.fTrials),
  fFunction(in.fFunction),
  fNucleons(NULL)
{
  //copy ctor
  if (in.fNucleons)
    fNucleons=static_cast<TObjArray*>((in.fNucleons)->Clone());
}

//______________________________________________________________________________
AliGlauberNucleus& AliGlauberNucleus::operator=(const AliGlauberNucleus& in)
{
  //assignment
  if (&in==this) return *this;
  fN=in.fN;
  fR=in.fR;
  fA=in.fA;
  fW=in.fW;
  fMinDist=in.fMinDist;
  fF=in.fF;
  fTrials=in.fTrials;
  fFunction=in.fFunction;
  delete fNucleons;
  fNucleons=static_cast<TObjArray*>((in.fNucleons)->Clone());
  fNucleons->SetOwner();
  return *this;
}

//______________________________________________________________________________
void AliGlauberNucleus::Draw(Double_t xs, Int_t col)
{
   Double_t r = 0.5*sqrt(xs/TMath::Pi()/10.);
   TEllipse e;
   e.SetLineColor(col);
   e.SetFillColor(0);
   e.SetLineWidth(1);

   for (Int_t i = 0;i<fNucleons->GetEntries();++i) {
      AliGlauberNucleon* gn = (AliGlauberNucleon*) fNucleons->UncheckedAt(i);
      e.SetLineStyle(1);
      if (gn->IsSpectator()) e.SetLineStyle(3);
      e.DrawEllipse(gn->GetX(),gn->GetY(),r,r,0,360,0,"");
   }
}

//______________________________________________________________________________
void AliGlauberNucleus::Lookup(Option_t* name)
{
   SetName(name);

   if      (TString(name) == "p")    {fN = 1;   fR = 0.6;   fA = 0;      fW =  0;      fF = 0;}
   else if (TString(name) == "d")    {fN = 2;   fR = 0.01;  fA = 0.5882; fW =  0;      fF = 1;}
   else if (TString(name) == "dh")   {fN = 2;   fR = 0.01;  fA = 0.5882; fW =  0;      fF = 3;}
   else if (TString(name) == "dhh")  {fN = 2;   fR = 0.01;  fA = 0.5882; fW =  0;      fF = 4;}
   else if (TString(name) == "O")    {fN = 16;  fR = 2.608; fA = 0.513;  fW = -0.051;  fF = 1;}
   else if (TString(name) == "Si")   {fN = 28;  fR = 3.34;  fA = 0.580;  fW = -0.233;  fF = 1;}
   else if (TString(name) == "S")    {fN = 32;  fR = 2.54;  fA = 2.191;  fW =  0.16;   fF = 2;}
   else if (TString(name) == "Ca")   {fN = 40;  fR = 3.766; fA = 0.586;  fW = -0.161;  fF = 1;}
   else if (TString(name) == "Ni")   {fN = 58;  fR = 4.309; fA = 0.517;  fW = -0.1308; fF = 1;}
   else if (TString(name) == "Cu")   {fN = 63;  fR = 4.2;   fA = 0.596;  fW =  0;      fF = 1;}
   else if (TString(name) == "W")    {fN = 186; fR = 6.58;  fA = 0.480;  fW =  0;      fF = 1;}
   else if (TString(name) == "Au")   {fN = 197; fR = 6.38;  fA = 0.535;  fW =  0;      fF = 1;}
   else if (TString(name) == "Pb")   {fN = 208; fR = 6.62;  fA = 0.546;  fW =  0;      fF = 1;}
//   else if (TString(name) == "Pb")   {fN = 208; fR = 6.62;  fA = 0.546;  fW =  0;      fF = 1;}
   else if (TString(name) == "U")    {fN = 238; fR = 6.81;  fA = 0.6;    fW =  0;      fF = 1;}
   else {
      cout << "Could not find nucleus " << name << endl;
      return;
   }

   switch (fF)
   {
      case 0: // Proton
         fFunction = new TF1("prot","x*x*exp(-x/[0])",0,10);
         fFunction->SetParameter(0,fR);
         break;
      case 1: // 3pF
         fFunction = new TF1(name,"x*x*(1+[2]*(x/[0])**2)/(1+exp((x-[0])/[1]))",0,15);
         fFunction->SetParameters(fR,fA,fW);
         break;
      case 2: // 3pG
         fFunction = new TF1("3pg","x*x*(1+[2]*(x/[0])**2)/(1+exp((x**2-[0]**2)/[1]**2))",0,15);
         fFunction->SetParameters(fR,fA,fW);
         break;
      case 3: // Hulthen
         fFunction = new TF1("f3","x*x*([0]*[1]*([0]+[1]))/(2*pi*(pow([0]-[1],2)))*pow((exp(-[0]*x)-exp(-[1]*x))/x,2)",0,10);
         fFunction->SetParameters(1/4.38,1/.85);
         break;
      case 4: // Hulthen HIJING
         fFunction = new TF1("f4","x*x*([0]*[1]*([0]+[1]))/(2*pi*(pow([0]-[1],2)))*pow((exp(-[0]*x)-exp(-[1]*x))/x,2)",0,20);
         fFunction->SetParameters(2/4.38,2/.85);
         break;
      default:
         cerr << "Could not find function type " << fF << endl;
         return;
   }
}

//______________________________________________________________________________
void AliGlauberNucleus::SetR(Double_t ir)
{
   fR = ir;
   switch (fF)
   {
      case 0: // Proton
         fFunction->SetParameter(0,fR);
         break;
      case 1: // 3pF
         fFunction->SetParameter(0,fR);
         break;
      case 2: // 3pG
         fFunction->SetParameter(0,fR);
         break;
   }
}

//______________________________________________________________________________
void AliGlauberNucleus::SetA(Double_t ia)
{
   fA = ia;
   switch (fF)
   {
      case 0: // Proton
         break;
      case 1: // 3pF
         fFunction->SetParameter(1,fA);
         break;
      case 2: // 3pG
         fFunction->SetParameter(1,fA);
         break;
   }
}

//______________________________________________________________________________
void AliGlauberNucleus::SetW(Double_t iw)
{
   fW = iw;
   switch (fF)
   {
      case 0: // Proton
         break;
      case 1: // 3pF
         fFunction->SetParameter(2,fW);
         break;
      case 2: // 3pG
         fFunction->SetParameter(2,fW);
         break;
   }
}

//______________________________________________________________________________
void AliGlauberNucleus::ThrowNucleons(Double_t xshift)
{
   if (fNucleons==0) {
      fNucleons=new TObjArray(fN);
      fNucleons->SetOwner();
      for(Int_t i=0;i<fN;i++) {
	 AliGlauberNucleon *nucleon=new AliGlauberNucleon(); 
	 fNucleons->Add(nucleon); 
      }
   } 
   
   fTrials = 0;

   Double_t sumx=0;       
   Double_t sumy=0;       
   Double_t sumz=0;       

   Bool_t hulthen = (TString(GetName())=="dh");
   if (fN==2 && hulthen) { //special treatmeant for Hulten

      Double_t r = fFunction->GetRandom()/2;
      Double_t phi = gRandom->Rndm() * 2 * TMath::Pi() ;
      Double_t ctheta = 2*gRandom->Rndm() - 1 ;
      Double_t stheta = sqrt(1-ctheta*ctheta);
     
      AliGlauberNucleon *nucleon1=(AliGlauberNucleon*)(fNucleons->UncheckedAt(0));
      AliGlauberNucleon *nucleon2=(AliGlauberNucleon*)(fNucleons->UncheckedAt(1));
      nucleon1->Reset();
      nucleon1->SetXYZ(r * stheta * cos(phi) + xshift,
		       r * stheta * sin(phi),
		       r * ctheta);
      nucleon2->Reset();
      nucleon2->SetXYZ(-nucleon1->GetX() + 2*xshift,
		       -nucleon1->GetY(),
		       -nucleon1->GetZ());
      fTrials = 1;
      return;
   }

   for (Int_t i = 0; i<fN; i++) {
      AliGlauberNucleon *nucleon=(AliGlauberNucleon*)(fNucleons->UncheckedAt(i));
      nucleon->Reset();
      while(1) {
         fTrials++;
         Double_t r = fFunction->GetRandom();
         Double_t phi = gRandom->Rndm() * 2 * TMath::Pi() ;
         Double_t ctheta = 2*gRandom->Rndm() - 1 ;
         Double_t stheta = TMath::Sqrt(1-ctheta*ctheta);
         Double_t x = r * stheta * cos(phi) + xshift;
         Double_t y = r * stheta * sin(phi);      
         Double_t z = r * ctheta;      
         nucleon->SetXYZ(x,y,z);
         if(fMinDist<0) break;
         Bool_t test=1;
         for (Int_t j = 0; j<i; j++) {
            AliGlauberNucleon *other=(AliGlauberNucleon*)fNucleons->UncheckedAt(j);
            Double_t xo=other->GetX();
            Double_t yo=other->GetY();
            Double_t zo=other->GetZ();
            Double_t dist = TMath::Sqrt((x-xo)*(x-xo)+
                                       (y-yo)*(y-yo)+
                                       (z-zo)*(z-zo));
	       
            if(dist<fMinDist) {
               test=0;
               break;
            }
         }
         if (test) break; //found nucleuon outside of mindist
      }
           
      sumx += nucleon->GetX();
      sumy += nucleon->GetY();
      sumz += nucleon->GetZ();
   }
      
   if(1) { // set the centre-of-mass to be at zero (+xshift)
      sumx = sumx/fN;  
      sumy = sumy/fN;  
      sumz = sumz/fN;  
      for (Int_t i = 0; i<fN; i++) {
         AliGlauberNucleon *nucleon=(AliGlauberNucleon*)(fNucleons->UncheckedAt(i));
         nucleon->SetXYZ(nucleon->GetX()-sumx-xshift,
                         nucleon->GetY()-sumy,
                         nucleon->GetZ()-sumz);
      }
   }
}

 AliGlauberNucleus.cxx:1
 AliGlauberNucleus.cxx:2
 AliGlauberNucleus.cxx:3
 AliGlauberNucleus.cxx:4
 AliGlauberNucleus.cxx:5
 AliGlauberNucleus.cxx:6
 AliGlauberNucleus.cxx:7
 AliGlauberNucleus.cxx:8
 AliGlauberNucleus.cxx:9
 AliGlauberNucleus.cxx:10
 AliGlauberNucleus.cxx:11
 AliGlauberNucleus.cxx:12
 AliGlauberNucleus.cxx:13
 AliGlauberNucleus.cxx:14
 AliGlauberNucleus.cxx:15
 AliGlauberNucleus.cxx:16
 AliGlauberNucleus.cxx:17
 AliGlauberNucleus.cxx:18
 AliGlauberNucleus.cxx:19
 AliGlauberNucleus.cxx:20
 AliGlauberNucleus.cxx:21
 AliGlauberNucleus.cxx:22
 AliGlauberNucleus.cxx:23
 AliGlauberNucleus.cxx:24
 AliGlauberNucleus.cxx:25
 AliGlauberNucleus.cxx:26
 AliGlauberNucleus.cxx:27
 AliGlauberNucleus.cxx:28
 AliGlauberNucleus.cxx:29
 AliGlauberNucleus.cxx:30
 AliGlauberNucleus.cxx:31
 AliGlauberNucleus.cxx:32
 AliGlauberNucleus.cxx:33
 AliGlauberNucleus.cxx:34
 AliGlauberNucleus.cxx:35
 AliGlauberNucleus.cxx:36
 AliGlauberNucleus.cxx:37
 AliGlauberNucleus.cxx:38
 AliGlauberNucleus.cxx:39
 AliGlauberNucleus.cxx:40
 AliGlauberNucleus.cxx:41
 AliGlauberNucleus.cxx:42
 AliGlauberNucleus.cxx:43
 AliGlauberNucleus.cxx:44
 AliGlauberNucleus.cxx:45
 AliGlauberNucleus.cxx:46
 AliGlauberNucleus.cxx:47
 AliGlauberNucleus.cxx:48
 AliGlauberNucleus.cxx:49
 AliGlauberNucleus.cxx:50
 AliGlauberNucleus.cxx:51
 AliGlauberNucleus.cxx:52
 AliGlauberNucleus.cxx:53
 AliGlauberNucleus.cxx:54
 AliGlauberNucleus.cxx:55
 AliGlauberNucleus.cxx:56
 AliGlauberNucleus.cxx:57
 AliGlauberNucleus.cxx:58
 AliGlauberNucleus.cxx:59
 AliGlauberNucleus.cxx:60
 AliGlauberNucleus.cxx:61
 AliGlauberNucleus.cxx:62
 AliGlauberNucleus.cxx:63
 AliGlauberNucleus.cxx:64
 AliGlauberNucleus.cxx:65
 AliGlauberNucleus.cxx:66
 AliGlauberNucleus.cxx:67
 AliGlauberNucleus.cxx:68
 AliGlauberNucleus.cxx:69
 AliGlauberNucleus.cxx:70
 AliGlauberNucleus.cxx:71
 AliGlauberNucleus.cxx:72
 AliGlauberNucleus.cxx:73
 AliGlauberNucleus.cxx:74
 AliGlauberNucleus.cxx:75
 AliGlauberNucleus.cxx:76
 AliGlauberNucleus.cxx:77
 AliGlauberNucleus.cxx:78
 AliGlauberNucleus.cxx:79
 AliGlauberNucleus.cxx:80
 AliGlauberNucleus.cxx:81
 AliGlauberNucleus.cxx:82
 AliGlauberNucleus.cxx:83
 AliGlauberNucleus.cxx:84
 AliGlauberNucleus.cxx:85
 AliGlauberNucleus.cxx:86
 AliGlauberNucleus.cxx:87
 AliGlauberNucleus.cxx:88
 AliGlauberNucleus.cxx:89
 AliGlauberNucleus.cxx:90
 AliGlauberNucleus.cxx:91
 AliGlauberNucleus.cxx:92
 AliGlauberNucleus.cxx:93
 AliGlauberNucleus.cxx:94
 AliGlauberNucleus.cxx:95
 AliGlauberNucleus.cxx:96
 AliGlauberNucleus.cxx:97
 AliGlauberNucleus.cxx:98
 AliGlauberNucleus.cxx:99
 AliGlauberNucleus.cxx:100
 AliGlauberNucleus.cxx:101
 AliGlauberNucleus.cxx:102
 AliGlauberNucleus.cxx:103
 AliGlauberNucleus.cxx:104
 AliGlauberNucleus.cxx:105
 AliGlauberNucleus.cxx:106
 AliGlauberNucleus.cxx:107
 AliGlauberNucleus.cxx:108
 AliGlauberNucleus.cxx:109
 AliGlauberNucleus.cxx:110
 AliGlauberNucleus.cxx:111
 AliGlauberNucleus.cxx:112
 AliGlauberNucleus.cxx:113
 AliGlauberNucleus.cxx:114
 AliGlauberNucleus.cxx:115
 AliGlauberNucleus.cxx:116
 AliGlauberNucleus.cxx:117
 AliGlauberNucleus.cxx:118
 AliGlauberNucleus.cxx:119
 AliGlauberNucleus.cxx:120
 AliGlauberNucleus.cxx:121
 AliGlauberNucleus.cxx:122
 AliGlauberNucleus.cxx:123
 AliGlauberNucleus.cxx:124
 AliGlauberNucleus.cxx:125
 AliGlauberNucleus.cxx:126
 AliGlauberNucleus.cxx:127
 AliGlauberNucleus.cxx:128
 AliGlauberNucleus.cxx:129
 AliGlauberNucleus.cxx:130
 AliGlauberNucleus.cxx:131
 AliGlauberNucleus.cxx:132
 AliGlauberNucleus.cxx:133
 AliGlauberNucleus.cxx:134
 AliGlauberNucleus.cxx:135
 AliGlauberNucleus.cxx:136
 AliGlauberNucleus.cxx:137
 AliGlauberNucleus.cxx:138
 AliGlauberNucleus.cxx:139
 AliGlauberNucleus.cxx:140
 AliGlauberNucleus.cxx:141
 AliGlauberNucleus.cxx:142
 AliGlauberNucleus.cxx:143
 AliGlauberNucleus.cxx:144
 AliGlauberNucleus.cxx:145
 AliGlauberNucleus.cxx:146
 AliGlauberNucleus.cxx:147
 AliGlauberNucleus.cxx:148
 AliGlauberNucleus.cxx:149
 AliGlauberNucleus.cxx:150
 AliGlauberNucleus.cxx:151
 AliGlauberNucleus.cxx:152
 AliGlauberNucleus.cxx:153
 AliGlauberNucleus.cxx:154
 AliGlauberNucleus.cxx:155
 AliGlauberNucleus.cxx:156
 AliGlauberNucleus.cxx:157
 AliGlauberNucleus.cxx:158
 AliGlauberNucleus.cxx:159
 AliGlauberNucleus.cxx:160
 AliGlauberNucleus.cxx:161
 AliGlauberNucleus.cxx:162
 AliGlauberNucleus.cxx:163
 AliGlauberNucleus.cxx:164
 AliGlauberNucleus.cxx:165
 AliGlauberNucleus.cxx:166
 AliGlauberNucleus.cxx:167
 AliGlauberNucleus.cxx:168
 AliGlauberNucleus.cxx:169
 AliGlauberNucleus.cxx:170
 AliGlauberNucleus.cxx:171
 AliGlauberNucleus.cxx:172
 AliGlauberNucleus.cxx:173
 AliGlauberNucleus.cxx:174
 AliGlauberNucleus.cxx:175
 AliGlauberNucleus.cxx:176
 AliGlauberNucleus.cxx:177
 AliGlauberNucleus.cxx:178
 AliGlauberNucleus.cxx:179
 AliGlauberNucleus.cxx:180
 AliGlauberNucleus.cxx:181
 AliGlauberNucleus.cxx:182
 AliGlauberNucleus.cxx:183
 AliGlauberNucleus.cxx:184
 AliGlauberNucleus.cxx:185
 AliGlauberNucleus.cxx:186
 AliGlauberNucleus.cxx:187
 AliGlauberNucleus.cxx:188
 AliGlauberNucleus.cxx:189
 AliGlauberNucleus.cxx:190
 AliGlauberNucleus.cxx:191
 AliGlauberNucleus.cxx:192
 AliGlauberNucleus.cxx:193
 AliGlauberNucleus.cxx:194
 AliGlauberNucleus.cxx:195
 AliGlauberNucleus.cxx:196
 AliGlauberNucleus.cxx:197
 AliGlauberNucleus.cxx:198
 AliGlauberNucleus.cxx:199
 AliGlauberNucleus.cxx:200
 AliGlauberNucleus.cxx:201
 AliGlauberNucleus.cxx:202
 AliGlauberNucleus.cxx:203
 AliGlauberNucleus.cxx:204
 AliGlauberNucleus.cxx:205
 AliGlauberNucleus.cxx:206
 AliGlauberNucleus.cxx:207
 AliGlauberNucleus.cxx:208
 AliGlauberNucleus.cxx:209
 AliGlauberNucleus.cxx:210
 AliGlauberNucleus.cxx:211
 AliGlauberNucleus.cxx:212
 AliGlauberNucleus.cxx:213
 AliGlauberNucleus.cxx:214
 AliGlauberNucleus.cxx:215
 AliGlauberNucleus.cxx:216
 AliGlauberNucleus.cxx:217
 AliGlauberNucleus.cxx:218
 AliGlauberNucleus.cxx:219
 AliGlauberNucleus.cxx:220
 AliGlauberNucleus.cxx:221
 AliGlauberNucleus.cxx:222
 AliGlauberNucleus.cxx:223
 AliGlauberNucleus.cxx:224
 AliGlauberNucleus.cxx:225
 AliGlauberNucleus.cxx:226
 AliGlauberNucleus.cxx:227
 AliGlauberNucleus.cxx:228
 AliGlauberNucleus.cxx:229
 AliGlauberNucleus.cxx:230
 AliGlauberNucleus.cxx:231
 AliGlauberNucleus.cxx:232
 AliGlauberNucleus.cxx:233
 AliGlauberNucleus.cxx:234
 AliGlauberNucleus.cxx:235
 AliGlauberNucleus.cxx:236
 AliGlauberNucleus.cxx:237
 AliGlauberNucleus.cxx:238
 AliGlauberNucleus.cxx:239
 AliGlauberNucleus.cxx:240
 AliGlauberNucleus.cxx:241
 AliGlauberNucleus.cxx:242
 AliGlauberNucleus.cxx:243
 AliGlauberNucleus.cxx:244
 AliGlauberNucleus.cxx:245
 AliGlauberNucleus.cxx:246
 AliGlauberNucleus.cxx:247
 AliGlauberNucleus.cxx:248
 AliGlauberNucleus.cxx:249
 AliGlauberNucleus.cxx:250
 AliGlauberNucleus.cxx:251
 AliGlauberNucleus.cxx:252
 AliGlauberNucleus.cxx:253
 AliGlauberNucleus.cxx:254
 AliGlauberNucleus.cxx:255
 AliGlauberNucleus.cxx:256
 AliGlauberNucleus.cxx:257
 AliGlauberNucleus.cxx:258
 AliGlauberNucleus.cxx:259
 AliGlauberNucleus.cxx:260
 AliGlauberNucleus.cxx:261
 AliGlauberNucleus.cxx:262
 AliGlauberNucleus.cxx:263
 AliGlauberNucleus.cxx:264
 AliGlauberNucleus.cxx:265
 AliGlauberNucleus.cxx:266
 AliGlauberNucleus.cxx:267
 AliGlauberNucleus.cxx:268
 AliGlauberNucleus.cxx:269
 AliGlauberNucleus.cxx:270
 AliGlauberNucleus.cxx:271
 AliGlauberNucleus.cxx:272
 AliGlauberNucleus.cxx:273
 AliGlauberNucleus.cxx:274
 AliGlauberNucleus.cxx:275
 AliGlauberNucleus.cxx:276
 AliGlauberNucleus.cxx:277
 AliGlauberNucleus.cxx:278
 AliGlauberNucleus.cxx:279
 AliGlauberNucleus.cxx:280
 AliGlauberNucleus.cxx:281
 AliGlauberNucleus.cxx:282
 AliGlauberNucleus.cxx:283
 AliGlauberNucleus.cxx:284
 AliGlauberNucleus.cxx:285
 AliGlauberNucleus.cxx:286
 AliGlauberNucleus.cxx:287
 AliGlauberNucleus.cxx:288
 AliGlauberNucleus.cxx:289
 AliGlauberNucleus.cxx:290
 AliGlauberNucleus.cxx:291
 AliGlauberNucleus.cxx:292
 AliGlauberNucleus.cxx:293
 AliGlauberNucleus.cxx:294
 AliGlauberNucleus.cxx:295
 AliGlauberNucleus.cxx:296
 AliGlauberNucleus.cxx:297
 AliGlauberNucleus.cxx:298
 AliGlauberNucleus.cxx:299
 AliGlauberNucleus.cxx:300
 AliGlauberNucleus.cxx:301
 AliGlauberNucleus.cxx:302
 AliGlauberNucleus.cxx:303
 AliGlauberNucleus.cxx:304
 AliGlauberNucleus.cxx:305
 AliGlauberNucleus.cxx:306
 AliGlauberNucleus.cxx:307
 AliGlauberNucleus.cxx:308
 AliGlauberNucleus.cxx:309
 AliGlauberNucleus.cxx:310
 AliGlauberNucleus.cxx:311
 AliGlauberNucleus.cxx:312
 AliGlauberNucleus.cxx:313
 AliGlauberNucleus.cxx:314
 AliGlauberNucleus.cxx:315
 AliGlauberNucleus.cxx:316
 AliGlauberNucleus.cxx:317