]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/Upgrade/macros/makeTree.C
o fix names
[u/mrichter/AliRoot.git] / TPC / Upgrade / macros / makeTree.C
1 #include <iostream> 
2 #include <TFile.h>
3 #include <TTree.h>
4 #include <TRandom3.h>
5 #include "AliToyMCEvent.h"
6 #include "AliToyMCEventGenerator.h"
7 #include "AliToyMCEventGeneratorSimple.h"
8 #include <TRandom.h>
9
10 //to use: root -l loadlibs.C
11 //    .L makeTree.C+
12 //    makeTree(50,10,10) for 50 kHz average frequency, 10MHz bunch crossing and 10 events. 
13
14
15 void makeTree(Double_t collFreq/*kHz*/, Double_t bunchFreq/*MHz*/, Int_t nEvents, Bool_t fixedFreq = kFALSE, Bool_t noVertSpread = kFALSE) {
16
17   
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);
22
23
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
29   //generate events
30   Double_t time = 0.;
31   while(generatedEvents < nEvents) {
32
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++)       {
37       
38       event = evGen->Generate(time);
39       outTree->Fill();
40       generatedEvents++;
41       delete event;
42     }
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;
46   }
47   outFile->Write();
48   outFile->Close();
49 }  
50