5 #include "AliToyMCEvent.h"
6 #include "AliToyMCEventGenerator.h"
7 #include "AliToyMCEventGeneratorSimple.h"
10 //to use: root -l loadlibs.C
12 // makeTree(50,10,10) for 50 kHz average frequency, 10MHz bunch crossing and 10 events.
15 void makeTree(Double_t collFreq/*kHz*/, Double_t bunchFreq/*MHz*/, Int_t nEvents, Bool_t fixedFreq = kFALSE, Bool_t noVertSpread = kFALSE) {
18 TFile* outFile = new TFile(Form("toymcevents%2.1fkHz_%d%s%s.root",collFreq,nEvents,fixedFreq?"_fixedfreq":"",noVertSpread?"_novertspread":"" ),"recreate");
19 TTree* outTree = new TTree("AliToyMC","AliToyMC");
20 AliToyMCEvent* event = 0x0;
21 outTree->Bronch("AliToyMCEvents","AliToyMCEvent",&event);
24 Double_t collProb = (collFreq*1000)/(bunchFreq*1000000);
25 Int_t generatedEvents = 0;
26 AliToyMCEventGeneratorSimple* evGen = new AliToyMCEventGeneratorSimple();
27 if(noVertSpread)evGen->SetParameters("files/params.root",0.,0.); //mean, sigma of vertex
28 else evGen->SetParameters("files/params.root",0,0.7); //mean, sigma of vertex
31 while(generatedEvents < nEvents) {
33 //draw number of collissions in crossing
34 Int_t nColls = gRandom->Poisson(collProb);
35 if(fixedFreq) nColls =1;
36 for (Int_t iColl = 0; iColl<nColls; iColl++) {
38 event = evGen->Generate(time);
43 if(!fixedFreq) time += 1./(bunchFreq); //microseconds
44 else time += 1./(collFreq/1000);
45 ///*if(generatedEvents%10==0)*/ std::cout << generatedEvents << " time: " << time << " " << collProb << std::endl;