Skip to content

Commit 29718bf

Browse files
authored
[examples] Macro demonstrates reading a star generator event file (#506)
Demonstrates how to read one of the event generator record files, load an event, and iterate over all particles.
1 parent 44e89aa commit 29718bf

1 file changed

Lines changed: 83 additions & 0 deletions

File tree

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
/**!
2+
* Example macro for running an event generator in standalone mode.
3+
*
4+
* Usage:
5+
*
6+
* ln -s starsim.reader.C reader.C
7+
*
8+
* root4star
9+
* .L reader.C
10+
* int nevents=100;
11+
* reader( nevents )
12+
*
13+
* or
14+
*
15+
* root4star -q -b reader.C
16+
*
17+
*/
18+
19+
class St_geant_Maker;
20+
St_geant_Maker *geant_maker = 0;
21+
22+
class StarGenEvent;
23+
StarGenEvent *event = 0;
24+
25+
class StarPrimaryMaker;
26+
StarPrimaryMaker *_primary = 0;
27+
28+
class StarGenEventReader;
29+
StarGenEventReader *eventreader = 0;
30+
31+
32+
// ----------------------------------------------------------------------------
33+
// ----------------------------------------------------------------------------
34+
// ----------------------------------------------------------------------------
35+
void reader( Int_t nevents=1, UInt_t rngSeed = 12345 )
36+
{
37+
38+
gROOT->ProcessLine(".L bfc.C");
39+
{
40+
TString simple = "tables nodefault";
41+
bfc(0, simple );
42+
}
43+
44+
gSystem->Load( "libVMC.so");
45+
gSystem->Load( "St_g2t.so" );
46+
gSystem->Load( "St_geant_Maker.so" );
47+
48+
gSystem->Load( "StarGeneratorUtil.so" );
49+
gSystem->Load( "StarGeneratorEvent.so" );
50+
gSystem->Load( "StarGeneratorBase.so" );
51+
52+
gSystem->Load( "libMathMore.so" );
53+
gSystem->Load( "libStarGenEventReader.so" );
54+
55+
56+
eventreader = new StarGenEventReader();
57+
eventreader -> SetInputFile("pythia_jet_vz0_run1.genevent.root","genevents","primaryEvent");
58+
59+
60+
chain->Clear();
61+
chain->Make();
62+
63+
StarGenEvent* event = eventreader->Event();
64+
65+
66+
std::cout << "GENERATOR ID = " << event->GetGeneratorId() << std::endl;
67+
std::cout << "PROCESS ID = " << event->GetProcessId() << std::endl;
68+
std::cout << "RUN NUMBER = " << event->GetRunNumber() << std::endl;
69+
std::cout << "EVENT NUMBER = " << event->GetEventNumber() << std::endl;
70+
std::cout << "NUM PARTICLES = " << event->GetNumberOfParticles() << std::endl;
71+
72+
StarGenParticle* particle;
73+
TIter& Next = event->IterAll();
74+
while( (particle = (StarGenParticle*)Next() ) ) {
75+
particle->Print();
76+
}
77+
78+
79+
80+
81+
}
82+
// ----------------------------------------------------------------------------
83+

0 commit comments

Comments
 (0)