]>
Commit | Line | Data |
---|---|---|
967f5306 | 1 | void 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 |