1 void fastGenEMCocktail(Int_t nev = 1, char* filename = "galice.root")
5 gSystem->Load("liblhapdf.so"); // Parton density functions
6 gSystem->Load("libpythia6.so"); // Pythia
7 gSystem->Load("libEG");
8 gSystem->Load("libEGPythia6");
9 gSystem->Load("libAliPythia6.so"); // ALICE specific implementations
13 AliRunLoader* rl = AliRunLoader::Open("galice.root","FASTRUN","recreate");
15 rl->SetCompressionLevel(2);
16 rl->SetNumberOfEventsPerFile(nev);
17 rl->LoadKinematics("RECREATE");
19 gAlice->SetRunLoader(rl);
23 AliStack* stack = rl->Stack();
26 AliHeader* header = rl->GetHeader();
28 // Create and Initialize Generator
30 AliGenEMCocktail *gener = new AliGenEMCocktail();
32 //=======================================================================
33 // Set External decayer
34 TVirtualMCDecayer *decayer = new AliDecayerPythia();
36 gener->SetNPart(1000); // source multiplicity per event
37 gener->SetPtRange(0.,20.);
38 gener->SetYRange(-1.,1.);
39 gener->SetPhiRange(0., 360.);
40 gener->SetOrigin(0.,0.,0.);
41 gener->SetSigma(0.,0.,0.);
42 gener->SetVertexSmear(kPerEvent);
43 gener->SetTrackingFlag(0);
44 gener->SelectMotherParticles(62591);
45 gener->SetPtParamPi0(0);
46 gener->SetPtParamEta(3);
47 gener->SetPtParamOmega(3);
48 gener->SetPtParamPhi(0);
49 gener->SetCollisionSystem(2); //pp 7 TeV
50 gener->SetCentrality(0); // kpp
52 gener->SetDecayMode(kGammaEM); // select cocktail:
53 // kElectronEM => single electron
54 // kDiElectronEM => electron-positron
55 // kGammaEM => single photon
56 gener->SetDecayer(decayer);
57 gener->SetWeightingMode(kNonAnalog); // select weighting:
58 // kNonAnalog => weight ~ dN/dp_T
59 // kAnalog => weight ~ 1
60 gener->CreateCocktail();
62 gener->SetStack(stack);
69 for (iev = 0; iev < nev; iev++) {
71 printf("\n \n Event number %d \n \n", iev);
75 rl->SetEventNumber(iev);
78 // stack->ConnectTree();
83 Int_t npart = stack->GetNprimary();
84 printf("Analyse %d Particles\n", npart);
85 for (Int_t part=0; part<npart; part++) {
86 TParticle *MPart = stack->Particle(part);
87 Int_t mpart = MPart->GetPdgCode();
88 // printf("Particle %d\n", mpart);
92 header->SetNprimary(stack->GetNprimary());
93 header->SetNtrack(stack->GetNtrack());
98 header->SetStack(stack);
100 rl->WriteKinematics("OVERWRITE");
109 rl->WriteHeader("OVERWRITE");