1 // Example: generation of kinematics tree with selected properties.
2 // Below we select events containing the decays D* -> D0 pi, D0 -> K- pi+
3 // inside the barrel part of the ALICE detector (45 < theta < 135)
5 #if !defined(__CINT__) || defined(__MAKECINT__)
8 #include <TStopwatch.h>
11 #include <TDatabasePDG.h>
12 #include <TParticle.h>
15 #include "AliGenerator.h"
17 #include "AliRunLoader.h"
18 #include "AliDecayer.h"
19 #include "AliDecayerPythia.h"
22 #include "AliHeader.h"
23 #include "AliGenAmpt.h"
26 void fastGenAmpt(Int_t nev = 10, const char* filename = "galice.root")
28 AliPDG::AddParticlesToPdgDataBase();
29 TDatabasePDG::Instance();
32 AliRunLoader* rl = AliRunLoader::Open(filename,"FASTRUN","recreate");
33 rl->SetCompressionLevel(2);
34 rl->SetNumberOfEventsPerFile(nev);
35 rl->LoadKinematics("RECREATE");
37 rl->SetNumberOfEventsPerRun(nev);
38 gAlice->SetRunLoader(rl);
42 AliStack* stack = rl->Stack();
45 AliHeader* header = rl->GetHeader();
47 AliGenAmpt *genHi = new AliGenAmpt(-1);
48 //=============================================================================
50 AliDecayer *decayer = new AliDecayerPythia();
51 cout << "*****************************************" << endl;
52 genHi->SetForceDecay( kHadronicD );
53 genHi->SetDecayer( decayer );
54 //=============================================================================
55 genHi->SetEnergyCMS(2760);
56 genHi->SetReferenceFrame("CMS");
57 genHi->SetProjectile("A", 208, 82);
58 genHi->SetTarget ("A", 208, 82);
59 genHi->SetPtHardMin (3);
60 //genHi->SetImpactParameterRange(9.,9.5);
61 genHi->SetImpactParameterRange(0.,20.0);
62 genHi->SetJetQuenching(1); // enable jet quenching
63 genHi->SetShadowing(1); // enable shadowing
64 genHi->SetDecaysOff(1); // neutral pion and heavy particle decays switched off
65 genHi->SetSpectators(1); // track spectators
72 for (Int_t iev = 0; iev < nev; iev++) {
73 cout <<"Event number "<< iev << endl;
76 rl->SetEventNumber(iev);
83 stack->ConnectTree(rl->TreeK());
86 nprim = stack->GetNprimary();
87 cout << "Number of particles " << nprim << endl;
88 cout << "Number of trials " << ntrial << endl;
89 header->SetNprimary(stack->GetNprimary());
90 header->SetNtrack(stack->GetNtrack());
92 header->SetStack(stack);
94 rl->WriteKinematics("OVERWRITE");
99 rl->WriteHeader("OVERWRITE");