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>
16 #include "AliGenerator.h"
18 #include "AliRunLoader.h"
19 #include "AliDecayer.h"
20 #include "AliDecayerPythia.h"
23 #include "AliHeader.h"
24 #include "AliGenAmpt.h"
27 void fastGenAmpt(Int_t nev = 100, const char* filename = "galice.root")
29 AliPDG::AddParticlesToPdgDataBase();
30 TDatabasePDG::Instance();
33 AliRunLoader* rl = AliRunLoader::Open(filename,"FASTRUN","recreate");
34 rl->SetCompressionLevel(2);
35 rl->SetNumberOfEventsPerFile(nev);
36 rl->LoadKinematics("RECREATE");
38 rl->SetNumberOfEventsPerRun(nev);
39 gAlice->SetRunLoader(rl);
43 AliStack* stack = rl->Stack();
46 AliHeader* header = rl->GetHeader();
48 AliGenAmpt *genHi = new AliGenAmpt(-1);
49 //=============================================================================
51 AliDecayer *decayer = new AliDecayerPythia();
52 cout << "*****************************************" << endl;
53 genHi->SetForceDecay( kHadronicD );
54 genHi->SetDecayer( decayer );
55 //=============================================================================
56 genHi->SetEnergyCMS(2760);
57 genHi->SetReferenceFrame("CMS");
58 genHi->SetProjectile("A", 208, 82);
59 genHi->SetTarget ("A", 208, 82);
60 genHi->SetIsoft(4); //1: defaul - 4: string melting
61 genHi->SetPtHardMin (3);
62 //genHi->SetImpactParameterRange(9.,9.5);
63 genHi->SetImpactParameterRange(0.,20.0);
64 genHi->SetNtMax(150); //NTMAX: number of timesteps (D=150)
65 genHi->SetXmu(3.2264); //parton screening mass in fm^(-1) (D=3.2264d0)
66 genHi->SetJetQuenching(0); // enable jet quenching
67 genHi->SetShadowing(1); // enable shadowing
68 genHi->SetDecaysOff(1); // neutral pion and heavy particle decays switched off
69 genHi->SetSpectators(0); // track spectators
76 for (Int_t iev = 0; iev < nev; iev++) {
77 cout <<"Event number "<< iev << endl;
80 rl->SetEventNumber(iev);
87 stack->ConnectTree(rl->TreeK());
90 nprim = stack->GetNprimary();
91 cout << "Number of particles " << nprim << endl;
92 cout << "Number of trials " << ntrial << endl;
93 header->SetNprimary(stack->GetNprimary());
94 header->SetNtrack(stack->GetNtrack());
96 header->SetStack(stack);
98 rl->WriteKinematics("OVERWRITE");
103 rl->WriteHeader("OVERWRITE");