]> git.uio.no Git - u/mrichter/AliRoot.git/blame - doc/aliroot-primer/scripts/fastGen.C
extension .F -> .f
[u/mrichter/AliRoot.git] / doc / aliroot-primer / scripts / fastGen.C
CommitLineData
967f5306 1void fastGen(Int_t nev = 1, char* filename = "galice.root")
2{
3 // Run loader
4 AliRunLoader* rl = AliRunLoader::Open("galice.root","FASTRUN","recreate");
5 rl->SetCompressionLevel(2);
6 rl->SetNumberOfEventsPerFile(nev);
7 rl->LoadKinematics("RECREATE");
8 rl->MakeTree("E");
9 gAlice->SetRunLoader(rl);
10
11 // Create stack
12 rl->MakeStack();
13 AliStack* stack = rl->Stack();
14
15 // Header
16 AliHeader* header = rl->GetHeader();
17
18 // Generator
19 AliGenPythia *gener = new AliGenPythia(-1);
20 gener->SetMomentumRange(0,999999);
21 gener->SetProcess(kPyMb);
22 gener->SetEnergyCMS(14000.);
23 gener->SetThetaRange(45, 135);
24 gener->SetPtRange(0., 1000.);
25 gener->SetStack(stack);
26 gener->Init();
27 rl->CdGAFile();
28 //
29 // Event Loop
30 //
31 for (Int_t iev = 0; iev < nev; iev++) {
32
33 // Initialize event
34 header->Reset(0,iev);
35 rl->SetEventNumber(iev);
36 stack->Reset();
37 rl->MakeTree("K");
38
39 // Generate event
40 Int_t nprim = 0;
41 Int_t ntrial = 0;
42 Int_t minmult = 1000;
43
44 while(nprim<minmult) {
45 // Selection of events with multiplicity
46 // bigger than "minmult"
47 stack->Reset();
48 gener->Generate();
49 ntrial++;
50 nprim = stack->GetNprimary();
51
52 }
53 cout << "Number of particles " << nprim << endl;
54 cout << "Number of trials " << ntrial << endl;
55
56 // Finish event
57 header->SetNprimary(stack->GetNprimary());
58 header->SetNtrack(stack->GetNtrack());
59
60 // I/O
61 stack->FinishEvent();
62 header->SetStack(stack);
63 rl->TreeE()->Fill();
64 rl->WriteKinematics("OVERWRITE");
65
66 } // event loop
67
68 // Termination
69 // Generator
70 gener->FinishRun();
71 // Stack
72 stack->FinishRun();
73 // Write file
74 rl->WriteHeader("OVERWRITE");
75 gener->Write();
76 rl->Write();
77}
78
79
80
81