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.                  *
 **************************************************************************/

/* $Id$ */

//-----------------------------------------------------------------
//    Generate the final state of the interaction as the input
//    to the MonteCarlo
//    Author: A.Morsch
//-----------------------------------------------------------------
//Begin_Html
/*
<img src="picts/AliGeneratorClass.gif">
</pre>
<br clear=left>
<font size=+2 color=red>
<p>The responsible person for this module is
<a href="mailto:andreas.morsch@cern.ch">Andreas Morsch</a>.
</font>
<pre>
*/
//End_Html
//                                                               //
///////////////////////////////////////////////////////////////////
#include <TGenerator.h>
#include <TMCProcess.h>

#include "AliLog.h"
#include "AliCollisionGeometry.h"
#include "AliConfig.h"
#include "AliGenerator.h"
#include "AliRun.h"
#include "AliStack.h"
#include "AliMC.h"
#include "AliVertexGenerator.h"

ClassImp(AliGenerator)


//_______________________________________________________________________
AliGenerator::AliGenerator():
  TNamed(),
  AliRndm(),
  fMCEvGen(0),
  fThetaMin(0),
  fThetaMax(0),
  fPhiMin(0),
  fPhiMax(0),
  fPMin(0),
  fPMax(0),
  fPtMin(0),
  fPtMax(0),
  fYMin(0),
  fYMax(0),
  fVMin(3),
  fVMax(3),
  fNpart(0),
  fParentWeight(0),
  fChildWeight(0),
  fAnalog(0),
  fVertexSmear(kNoSmear),
  fVertexSource(kInternal),
  fCutVertexZ(0),
  fPileUpTimeWindow(-1.),
  fTrackIt(0),
  fVertexGenerator(0),
  fOrigin(3),
  fOsigma(3),
  fVertex(3),
  fTimeOrigin(0.),
  fTime(0.),
  fEvPlane(0),
  fStack(0),
  fContainer(0),
  fCollisionGeometry(0),
  fEnergyCMS(0),
  fAProjectile(0),
  fZProjectile(0),
  fATarget(0),
  fZTarget(0),
  fProjectile(""),
  fTarget("")    
{
  //
  // Default constructor
  //
    if (gAlice) {
	AliDebug(1, "AliGenerator Default Constructor");
	AliMC * mc = gAlice->GetMCApp();
	if (mc) mc->SetGenerator(this);
    }

    SetThetaRange(); ResetBit(kThetaRange);
    SetPhiRange(); ResetBit(kPhiRange);
    SetMomentumRange(); ResetBit(kMomentumRange);
    SetPtRange(); ResetBit(kPtRange);
    SetYRange(); ResetBit(kYRange);
    SetNumberParticles();
    SetTrackingFlag();
    SetCutVertexZ();


    fOrigin[0]=fOrigin[1]=fOrigin[2]=0;
    fOsigma[0]=fOsigma[1]=fOsigma[2]=0;
    fVertex[0]=fVertex[1]=fVertex[2]=0;

    fVMin[0]=fVMin[1]=fVMin[2]=0;
    fVMax[0]=fVMax[1]=fVMax[2]=10000;
}

//_______________________________________________________________________
AliGenerator::AliGenerator(Int_t npart):
  TNamed(),
  AliRndm(),
  fMCEvGen(0),
  fThetaMin(0),
  fThetaMax(0),
  fPhiMin(0),
  fPhiMax(0),
  fPMin(0),
  fPMax(0),
  fPtMin(0),
  fPtMax(0),
  fYMin(0),
  fYMax(0),
  fVMin(3),
  fVMax(3),
  fNpart(0),
  fParentWeight(0),
  fChildWeight(0),
  fAnalog(0),
  fVertexSmear(kNoSmear),
  fVertexSource(kInternal),
  fCutVertexZ(0),
  fPileUpTimeWindow(-1.),
  fTrackIt(0),
  fVertexGenerator(0),
  fOrigin(3),
  fOsigma(3),
  fVertex(3),
  fTimeOrigin(0.),
  fTime(0.),
  fEvPlane(0),
  fStack(0),
  fContainer(0),
  fCollisionGeometry(0),
  fEnergyCMS(0),
  fAProjectile(0),
  fZProjectile(0),
  fATarget(0),
  fZTarget(0),
  fProjectile(""),
  fTarget("")    
{
  //
  // Standard constructor
  //
    if (gAlice) {
        AliDebug(1, "AliGenerator Constructor initializing number of particles");
	AliMC * mc = gAlice->GetMCApp();
	if (mc) mc->SetGenerator(this);
    }
    
    SetThetaRange(); ResetBit(kThetaRange);
    SetPhiRange(); ResetBit(kPhiRange);
    SetMomentumRange(); ResetBit(kMomentumRange);
    SetPtRange(); ResetBit(kPtRange);
    SetYRange(); ResetBit(kYRange);
    SetTrackingFlag();
    SetCutVertexZ();

    fOrigin[0]=fOrigin[1]=fOrigin[2]=0;
    fOsigma[0]=fOsigma[1]=fOsigma[2]=0;
    fVertex[0]=fVertex[1]=fVertex[2]=0;

    fVMin[0]=fVMin[1]=fVMin[2]=0;
    fVMax[0]=fVMax[1]=fVMax[2]=10000;

    SetNumberParticles(npart);

    AliConfig::Instance()->Add(this);
}

//_______________________________________________________________________
AliGenerator::~AliGenerator()
{
  //
  // Destructor
  //
  fOrigin.Set(0);
  fOsigma.Set(0);
  if (fMCEvGen) {
    delete fMCEvGen;
    fMCEvGen=0;
  }
}

//_______________________________________________________________________
void AliGenerator::Init()
{   
  //
  // Dummy initialisation
  //
}

//_______________________________________________________________________
void AliGenerator::GenerateN(Int_t ntimes)
{
// 
//  Run generator n times
//    Used by AliGenCocktail for adding extra signals in proportion to 
//    multiplicity/centrality
//  By default generates one AliGenHeader for each call to Generate()
//   Can be overloaded (e.g. AliGenBox and AliGenParam) to consolidate headers
//
  for (Int_t i=0; i < ntimes; i++) {
    Generate();
  }
}
//_______________________________________________________________________
void AliGenerator::SetOrigin(Float_t ox, Float_t oy, Float_t oz)
{
  //
  // Set the vertex for the generated tracks
  //
  fOrigin[0]=ox;
  fOrigin[1]=oy;
  fOrigin[2]=oz;
}

//_______________________________________________________________________
void AliGenerator::SetOrigin(const TLorentzVector &o)
{
  //
  // Set the vertex for the generated tracks
  //
  fOrigin[0]=o[0];
  fOrigin[1]=o[1];
  fOrigin[2]=o[2];
}

//_______________________________________________________________________
void AliGenerator::SetSigma(Float_t sx, Float_t sy, Float_t sz)
{
  //
  // Set the spread of the vertex
  //
  fOsigma[0]=sx;
  fOsigma[1]=sy;
  fOsigma[2]=sz;
}

//_______________________________________________________________________
void AliGenerator::SetMomentumRange(Float_t pmin, Float_t pmax)
{
  //
  // Set the momentum range for the generated particles
  //
  fPMin = pmin;
  fPMax = pmax;
  SetBit(kMomentumRange);
}

//_______________________________________________________________________
void AliGenerator::SetPtRange(Float_t ptmin, Float_t ptmax)
{
  //
  // Set the Pt range for the generated particles
  //
  fPtMin = ptmin;
  fPtMax = ptmax;
  SetBit(kPtRange);
}

//_______________________________________________________________________
void AliGenerator::SetPhiRange(Float_t phimin, Float_t phimax)
{
  //
  // Set the Phi range for the generated particles
  //
  fPhiMin = TMath::Pi()*phimin/180;
  fPhiMax = TMath::Pi()*phimax/180;
  SetBit(kPhiRange);
}

//_______________________________________________________________________
void AliGenerator::SetYRange(Float_t ymin, Float_t ymax)
{
  //
  // Set the Rapidity range for the generated particles
  //
  fYMin=ymin;
  fYMax=ymax;
  SetBit(kYRange);
}

//_______________________________________________________________________
void AliGenerator::SetVRange(Float_t vxmin, Float_t vxmax,
			     Float_t vymin, Float_t vymax,
			     Float_t vzmin, Float_t vzmax)
{
  //
  // Set the vertex range for the generated particles
  //
  fVMin[0]=vxmin; fVMin[1]=vymin; fVMin[2]=vzmin;
  fVMax[0]=vxmax; fVMax[1]=vymax; fVMax[2]=vzmax;
  SetBit(kVertexRange);
}

//_______________________________________________________________________
void AliGenerator::SetThetaRange(Float_t thetamin, Float_t thetamax)
{
  //
  // Set the theta range for the generated particles
  //
  fThetaMin = TMath::Pi()*thetamin/180;
  fThetaMax = TMath::Pi()*thetamax/180;
  SetBit(kThetaRange);
}

void AliGenerator::Vertex()
{
  //
  // Obtain vertex for current event from external source or calculated (internal)
  //
    if (fVertexSource == kInternal) {
	VertexInternal();
    } else if (fVertexSource == kContainer) {
	;
    } else if (fVertexSource == kExternal) {
	VertexExternal();
    }
}

//_______________________________________________________________________
void AliGenerator::VertexExternal()
{
    //
    // Obtain vertex from external source (vertex generator)
    //
    TVector3 vertex = fVertexGenerator->GetVertex();
    fVertex[0] = vertex.X();
    fVertex[1] = vertex.Y();
    fVertex[2] = vertex.Z();
    fTime = 0.;
}

//_______________________________________________________________________
void AliGenerator::VertexInternal()
{
    // 
    // Obtain calculated vertex 
    // Default is gaussian smearing
    Float_t random[6];
    Float_t dv[3];
    Int_t j;
    dv[2] = 1.e10;
    if (!TestBit(kVertexRange)) {
	while(TMath::Abs(dv[2]) > fCutVertexZ*fOsigma[2]) {
	    Rndm(random,6);
	    for (j=0; j < 3; j++) {
		dv[j] = fOsigma[j]*TMath::Cos(2*random[2*j]*TMath::Pi())*
		    TMath::Sqrt(-2*TMath::Log(random[2*j+1]));
	    }
	}
	for (j=0; j < 3; j++) fVertex[j] = fOrigin[j] + dv[j];

	// In case of gaussian smearing we smear also the event/collision time
	Rndm(random,2);
	fTime = fTimeOrigin + fOsigma[2]/TMath::Ccgs()*
	  TMath::Cos(2*random[0]*TMath::Pi())*
	  TMath::Sqrt(-2*TMath::Log(random[1]));
	
    } else {
	Rndm(random,3);
	for (j=0; j < 3; j++)
	    fVertex[j] =  fVMin[j] + random[j] * (fVMax[j] - fVMin[j]);
	fTime = 0.;
    }
}

//_______________________________________________________________________
void  AliGenerator::PushTrack(Int_t done, Int_t parent, Int_t pdg,
                               Float_t *pmom, Float_t *vpos, Float_t *polar,
                               Float_t tof, TMCProcess mech, Int_t &ntr,
                               Float_t weight, Int_t is)
{
  //
  // Loads one track on the stack
  //
    
  if (fStack)
    fStack->PushTrack(done, parent, pdg, pmom, vpos, polar, tof,
                     mech, ntr, weight, is);
  else 
    gAlice->GetMCApp()->PushTrack(done, parent, pdg, pmom, vpos, polar, tof,
                     mech, ntr, weight, is);
}

//_______________________________________________________________________
void  AliGenerator::PushTrack(Int_t done, Int_t parent, Int_t pdg,
                      Double_t px, Double_t py, Double_t pz, Double_t e,
                      Double_t vx, Double_t vy, Double_t vz, Double_t tof,
                      Double_t polx, Double_t poly, Double_t polz,
                      TMCProcess mech, Int_t &ntr, Float_t weight, Int_t is)
{
  //
  // Loads one track on the stack
  //
  
  if (fStack)
     fStack->PushTrack(done, parent, pdg, px, py, pz, e, vx, vy, vz, tof,
                      polx, poly, polz, mech, ntr, weight, is);
  else 
     gAlice->GetMCApp()->PushTrack(done, parent, pdg, px, py, pz, e, vx, vy, vz, tof,
                        polx, poly, polz, mech, ntr, weight, is);
}


//_______________________________________________________________________
void AliGenerator:: KeepTrack(Int_t itrack)
{
  //
  // Declare a track permanent on the stack
  //
  if (fStack)
     fStack->KeepTrack(itrack);
  else 
     gAlice->GetMCApp()->KeepTrack(itrack);
   
}

//_______________________________________________________________________
void AliGenerator:: SetHighWaterMark(Int_t nt)
{
  //
  // Internal function to set the maximum index used in the stack
  //
  if (fStack)
     fStack->SetHighWaterMark(nt);
  else 
     gAlice->GetMCApp()->SetHighWaterMark(nt);
   
}
void AliGenerator::FinishRun()
{
    ;
}

//_______________________________________________________________________
void AliGenerator::SetSeed(UInt_t seed)
{
  // 
  // function to set the seed in the random number generator used by this generator
  //
  
  AliFatal("Not implemented!");
}
 AliGenerator.cxx:1
 AliGenerator.cxx:2
 AliGenerator.cxx:3
 AliGenerator.cxx:4
 AliGenerator.cxx:5
 AliGenerator.cxx:6
 AliGenerator.cxx:7
 AliGenerator.cxx:8
 AliGenerator.cxx:9
 AliGenerator.cxx:10
 AliGenerator.cxx:11
 AliGenerator.cxx:12
 AliGenerator.cxx:13
 AliGenerator.cxx:14
 AliGenerator.cxx:15
 AliGenerator.cxx:16
 AliGenerator.cxx:17
 AliGenerator.cxx:18
 AliGenerator.cxx:19
 AliGenerator.cxx:20
 AliGenerator.cxx:21
 AliGenerator.cxx:22
 AliGenerator.cxx:23
 AliGenerator.cxx:24
 AliGenerator.cxx:25
 AliGenerator.cxx:26
 AliGenerator.cxx:27
 AliGenerator.cxx:28
 AliGenerator.cxx:29
 AliGenerator.cxx:30
 AliGenerator.cxx:31
 AliGenerator.cxx:32
 AliGenerator.cxx:33
 AliGenerator.cxx:34
 AliGenerator.cxx:35
 AliGenerator.cxx:36
 AliGenerator.cxx:37
 AliGenerator.cxx:38
 AliGenerator.cxx:39
 AliGenerator.cxx:40
 AliGenerator.cxx:41
 AliGenerator.cxx:42
 AliGenerator.cxx:43
 AliGenerator.cxx:44
 AliGenerator.cxx:45
 AliGenerator.cxx:46
 AliGenerator.cxx:47
 AliGenerator.cxx:48
 AliGenerator.cxx:49
 AliGenerator.cxx:50
 AliGenerator.cxx:51
 AliGenerator.cxx:52
 AliGenerator.cxx:53
 AliGenerator.cxx:54
 AliGenerator.cxx:55
 AliGenerator.cxx:56
 AliGenerator.cxx:57
 AliGenerator.cxx:58
 AliGenerator.cxx:59
 AliGenerator.cxx:60
 AliGenerator.cxx:61
 AliGenerator.cxx:62
 AliGenerator.cxx:63
 AliGenerator.cxx:64
 AliGenerator.cxx:65
 AliGenerator.cxx:66
 AliGenerator.cxx:67
 AliGenerator.cxx:68
 AliGenerator.cxx:69
 AliGenerator.cxx:70
 AliGenerator.cxx:71
 AliGenerator.cxx:72
 AliGenerator.cxx:73
 AliGenerator.cxx:74
 AliGenerator.cxx:75
 AliGenerator.cxx:76
 AliGenerator.cxx:77
 AliGenerator.cxx:78
 AliGenerator.cxx:79
 AliGenerator.cxx:80
 AliGenerator.cxx:81
 AliGenerator.cxx:82
 AliGenerator.cxx:83
 AliGenerator.cxx:84
 AliGenerator.cxx:85
 AliGenerator.cxx:86
 AliGenerator.cxx:87
 AliGenerator.cxx:88
 AliGenerator.cxx:89
 AliGenerator.cxx:90
 AliGenerator.cxx:91
 AliGenerator.cxx:92
 AliGenerator.cxx:93
 AliGenerator.cxx:94
 AliGenerator.cxx:95
 AliGenerator.cxx:96
 AliGenerator.cxx:97
 AliGenerator.cxx:98
 AliGenerator.cxx:99
 AliGenerator.cxx:100
 AliGenerator.cxx:101
 AliGenerator.cxx:102
 AliGenerator.cxx:103
 AliGenerator.cxx:104
 AliGenerator.cxx:105
 AliGenerator.cxx:106
 AliGenerator.cxx:107
 AliGenerator.cxx:108
 AliGenerator.cxx:109
 AliGenerator.cxx:110
 AliGenerator.cxx:111
 AliGenerator.cxx:112
 AliGenerator.cxx:113
 AliGenerator.cxx:114
 AliGenerator.cxx:115
 AliGenerator.cxx:116
 AliGenerator.cxx:117
 AliGenerator.cxx:118
 AliGenerator.cxx:119
 AliGenerator.cxx:120
 AliGenerator.cxx:121
 AliGenerator.cxx:122
 AliGenerator.cxx:123
 AliGenerator.cxx:124
 AliGenerator.cxx:125
 AliGenerator.cxx:126
 AliGenerator.cxx:127
 AliGenerator.cxx:128
 AliGenerator.cxx:129
 AliGenerator.cxx:130
 AliGenerator.cxx:131
 AliGenerator.cxx:132
 AliGenerator.cxx:133
 AliGenerator.cxx:134
 AliGenerator.cxx:135
 AliGenerator.cxx:136
 AliGenerator.cxx:137
 AliGenerator.cxx:138
 AliGenerator.cxx:139
 AliGenerator.cxx:140
 AliGenerator.cxx:141
 AliGenerator.cxx:142
 AliGenerator.cxx:143
 AliGenerator.cxx:144
 AliGenerator.cxx:145
 AliGenerator.cxx:146
 AliGenerator.cxx:147
 AliGenerator.cxx:148
 AliGenerator.cxx:149
 AliGenerator.cxx:150
 AliGenerator.cxx:151
 AliGenerator.cxx:152
 AliGenerator.cxx:153
 AliGenerator.cxx:154
 AliGenerator.cxx:155
 AliGenerator.cxx:156
 AliGenerator.cxx:157
 AliGenerator.cxx:158
 AliGenerator.cxx:159
 AliGenerator.cxx:160
 AliGenerator.cxx:161
 AliGenerator.cxx:162
 AliGenerator.cxx:163
 AliGenerator.cxx:164
 AliGenerator.cxx:165
 AliGenerator.cxx:166
 AliGenerator.cxx:167
 AliGenerator.cxx:168
 AliGenerator.cxx:169
 AliGenerator.cxx:170
 AliGenerator.cxx:171
 AliGenerator.cxx:172
 AliGenerator.cxx:173
 AliGenerator.cxx:174
 AliGenerator.cxx:175
 AliGenerator.cxx:176
 AliGenerator.cxx:177
 AliGenerator.cxx:178
 AliGenerator.cxx:179
 AliGenerator.cxx:180
 AliGenerator.cxx:181
 AliGenerator.cxx:182
 AliGenerator.cxx:183
 AliGenerator.cxx:184
 AliGenerator.cxx:185
 AliGenerator.cxx:186
 AliGenerator.cxx:187
 AliGenerator.cxx:188
 AliGenerator.cxx:189
 AliGenerator.cxx:190
 AliGenerator.cxx:191
 AliGenerator.cxx:192
 AliGenerator.cxx:193
 AliGenerator.cxx:194
 AliGenerator.cxx:195
 AliGenerator.cxx:196
 AliGenerator.cxx:197
 AliGenerator.cxx:198
 AliGenerator.cxx:199
 AliGenerator.cxx:200
 AliGenerator.cxx:201
 AliGenerator.cxx:202
 AliGenerator.cxx:203
 AliGenerator.cxx:204
 AliGenerator.cxx:205
 AliGenerator.cxx:206
 AliGenerator.cxx:207
 AliGenerator.cxx:208
 AliGenerator.cxx:209
 AliGenerator.cxx:210
 AliGenerator.cxx:211
 AliGenerator.cxx:212
 AliGenerator.cxx:213
 AliGenerator.cxx:214
 AliGenerator.cxx:215
 AliGenerator.cxx:216
 AliGenerator.cxx:217
 AliGenerator.cxx:218
 AliGenerator.cxx:219
 AliGenerator.cxx:220
 AliGenerator.cxx:221
 AliGenerator.cxx:222
 AliGenerator.cxx:223
 AliGenerator.cxx:224
 AliGenerator.cxx:225
 AliGenerator.cxx:226
 AliGenerator.cxx:227
 AliGenerator.cxx:228
 AliGenerator.cxx:229
 AliGenerator.cxx:230
 AliGenerator.cxx:231
 AliGenerator.cxx:232
 AliGenerator.cxx:233
 AliGenerator.cxx:234
 AliGenerator.cxx:235
 AliGenerator.cxx:236
 AliGenerator.cxx:237
 AliGenerator.cxx:238
 AliGenerator.cxx:239
 AliGenerator.cxx:240
 AliGenerator.cxx:241
 AliGenerator.cxx:242
 AliGenerator.cxx:243
 AliGenerator.cxx:244
 AliGenerator.cxx:245
 AliGenerator.cxx:246
 AliGenerator.cxx:247
 AliGenerator.cxx:248
 AliGenerator.cxx:249
 AliGenerator.cxx:250
 AliGenerator.cxx:251
 AliGenerator.cxx:252
 AliGenerator.cxx:253
 AliGenerator.cxx:254
 AliGenerator.cxx:255
 AliGenerator.cxx:256
 AliGenerator.cxx:257
 AliGenerator.cxx:258
 AliGenerator.cxx:259
 AliGenerator.cxx:260
 AliGenerator.cxx:261
 AliGenerator.cxx:262
 AliGenerator.cxx:263
 AliGenerator.cxx:264
 AliGenerator.cxx:265
 AliGenerator.cxx:266
 AliGenerator.cxx:267
 AliGenerator.cxx:268
 AliGenerator.cxx:269
 AliGenerator.cxx:270
 AliGenerator.cxx:271
 AliGenerator.cxx:272
 AliGenerator.cxx:273
 AliGenerator.cxx:274
 AliGenerator.cxx:275
 AliGenerator.cxx:276
 AliGenerator.cxx:277
 AliGenerator.cxx:278
 AliGenerator.cxx:279
 AliGenerator.cxx:280
 AliGenerator.cxx:281
 AliGenerator.cxx:282
 AliGenerator.cxx:283
 AliGenerator.cxx:284
 AliGenerator.cxx:285
 AliGenerator.cxx:286
 AliGenerator.cxx:287
 AliGenerator.cxx:288
 AliGenerator.cxx:289
 AliGenerator.cxx:290
 AliGenerator.cxx:291
 AliGenerator.cxx:292
 AliGenerator.cxx:293
 AliGenerator.cxx:294
 AliGenerator.cxx:295
 AliGenerator.cxx:296
 AliGenerator.cxx:297
 AliGenerator.cxx:298
 AliGenerator.cxx:299
 AliGenerator.cxx:300
 AliGenerator.cxx:301
 AliGenerator.cxx:302
 AliGenerator.cxx:303
 AliGenerator.cxx:304
 AliGenerator.cxx:305
 AliGenerator.cxx:306
 AliGenerator.cxx:307
 AliGenerator.cxx:308
 AliGenerator.cxx:309
 AliGenerator.cxx:310
 AliGenerator.cxx:311
 AliGenerator.cxx:312
 AliGenerator.cxx:313
 AliGenerator.cxx:314
 AliGenerator.cxx:315
 AliGenerator.cxx:316
 AliGenerator.cxx:317
 AliGenerator.cxx:318
 AliGenerator.cxx:319
 AliGenerator.cxx:320
 AliGenerator.cxx:321
 AliGenerator.cxx:322
 AliGenerator.cxx:323
 AliGenerator.cxx:324
 AliGenerator.cxx:325
 AliGenerator.cxx:326
 AliGenerator.cxx:327
 AliGenerator.cxx:328
 AliGenerator.cxx:329
 AliGenerator.cxx:330
 AliGenerator.cxx:331
 AliGenerator.cxx:332
 AliGenerator.cxx:333
 AliGenerator.cxx:334
 AliGenerator.cxx:335
 AliGenerator.cxx:336
 AliGenerator.cxx:337
 AliGenerator.cxx:338
 AliGenerator.cxx:339
 AliGenerator.cxx:340
 AliGenerator.cxx:341
 AliGenerator.cxx:342
 AliGenerator.cxx:343
 AliGenerator.cxx:344
 AliGenerator.cxx:345
 AliGenerator.cxx:346
 AliGenerator.cxx:347
 AliGenerator.cxx:348
 AliGenerator.cxx:349
 AliGenerator.cxx:350
 AliGenerator.cxx:351
 AliGenerator.cxx:352
 AliGenerator.cxx:353
 AliGenerator.cxx:354
 AliGenerator.cxx:355
 AliGenerator.cxx:356
 AliGenerator.cxx:357
 AliGenerator.cxx:358
 AliGenerator.cxx:359
 AliGenerator.cxx:360
 AliGenerator.cxx:361
 AliGenerator.cxx:362
 AliGenerator.cxx:363
 AliGenerator.cxx:364
 AliGenerator.cxx:365
 AliGenerator.cxx:366
 AliGenerator.cxx:367
 AliGenerator.cxx:368
 AliGenerator.cxx:369
 AliGenerator.cxx:370
 AliGenerator.cxx:371
 AliGenerator.cxx:372
 AliGenerator.cxx:373
 AliGenerator.cxx:374
 AliGenerator.cxx:375
 AliGenerator.cxx:376
 AliGenerator.cxx:377
 AliGenerator.cxx:378
 AliGenerator.cxx:379
 AliGenerator.cxx:380
 AliGenerator.cxx:381
 AliGenerator.cxx:382
 AliGenerator.cxx:383
 AliGenerator.cxx:384
 AliGenerator.cxx:385
 AliGenerator.cxx:386
 AliGenerator.cxx:387
 AliGenerator.cxx:388
 AliGenerator.cxx:389
 AliGenerator.cxx:390
 AliGenerator.cxx:391
 AliGenerator.cxx:392
 AliGenerator.cxx:393
 AliGenerator.cxx:394
 AliGenerator.cxx:395
 AliGenerator.cxx:396
 AliGenerator.cxx:397
 AliGenerator.cxx:398
 AliGenerator.cxx:399
 AliGenerator.cxx:400
 AliGenerator.cxx:401
 AliGenerator.cxx:402
 AliGenerator.cxx:403
 AliGenerator.cxx:404
 AliGenerator.cxx:405
 AliGenerator.cxx:406
 AliGenerator.cxx:407
 AliGenerator.cxx:408
 AliGenerator.cxx:409
 AliGenerator.cxx:410
 AliGenerator.cxx:411
 AliGenerator.cxx:412
 AliGenerator.cxx:413
 AliGenerator.cxx:414
 AliGenerator.cxx:415
 AliGenerator.cxx:416
 AliGenerator.cxx:417
 AliGenerator.cxx:418
 AliGenerator.cxx:419
 AliGenerator.cxx:420
 AliGenerator.cxx:421
 AliGenerator.cxx:422
 AliGenerator.cxx:423
 AliGenerator.cxx:424
 AliGenerator.cxx:425
 AliGenerator.cxx:426
 AliGenerator.cxx:427
 AliGenerator.cxx:428
 AliGenerator.cxx:429
 AliGenerator.cxx:430
 AliGenerator.cxx:431
 AliGenerator.cxx:432
 AliGenerator.cxx:433
 AliGenerator.cxx:434
 AliGenerator.cxx:435
 AliGenerator.cxx:436
 AliGenerator.cxx:437
 AliGenerator.cxx:438
 AliGenerator.cxx:439
 AliGenerator.cxx:440
 AliGenerator.cxx:441
 AliGenerator.cxx:442
 AliGenerator.cxx:443
 AliGenerator.cxx:444
 AliGenerator.cxx:445
 AliGenerator.cxx:446
 AliGenerator.cxx:447
 AliGenerator.cxx:448
 AliGenerator.cxx:449
 AliGenerator.cxx:450
 AliGenerator.cxx:451
 AliGenerator.cxx:452
 AliGenerator.cxx:453
 AliGenerator.cxx:454
 AliGenerator.cxx:455
 AliGenerator.cxx:456
 AliGenerator.cxx:457
 AliGenerator.cxx:458
 AliGenerator.cxx:459
 AliGenerator.cxx:460
 AliGenerator.cxx:461
 AliGenerator.cxx:462
 AliGenerator.cxx:463
 AliGenerator.cxx:464
 AliGenerator.cxx:465
 AliGenerator.cxx:466
 AliGenerator.cxx:467
 AliGenerator.cxx:468
 AliGenerator.cxx:469
 AliGenerator.cxx:470