]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/Upgrade/macros/runSimRec.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / TPC / Upgrade / macros / runSimRec.C
1 void runSimRec(Int_t simtype, Int_t SCtype, Int_t nevents, Int_t ntracks, Int_t rate=50, Int_t gas=0)
2 {
3   //rate is in kHz
4   // recType: 0 = LongT0
5   //          1 = noLongT0 
6   //          2 = LongT0, T0list
7   //          3 = LongT0, Z0list
8
9   Int_t recoType=simtype/10;
10   recoType%=10;
11   Int_t subRecoType=simtype/100;
12   simtype%=10;
13   
14   //simulation part
15   AliToyMCEventGeneratorSimple s;
16
17   TString outputFile="toyMC";
18
19   //for simtype also below
20   switch (simtype%2) {
21     case 0:
22       outputFile.Append(Form("_fixed_%dkHz",rate));
23       break;
24     case 1:
25       outputFile.Append(Form("_train_%dkHz",rate));
26       break;
27   }
28
29   AliToyMCEventGeneratorSimple::EGasType gasType=AliToyMCEventGeneratorSimple::kNeCO2_9010;
30   
31   switch (gas) {
32     case 0:
33       gasType=AliToyMCEventGeneratorSimple::kNeCO2_9010;
34       outputFile.Append("_NeCO2");
35       break;
36     case 1:
37       gasType=AliToyMCEventGeneratorSimple::kNeCO2N2_90105;
38       outputFile.Append("_NeCO2N2");
39       break;
40   }
41   
42   switch (SCtype) {
43     case 0:
44       s.SetSpaceCharge(AliToyMCEventGeneratorSimple::kEps5, gasType);
45       outputFile.Append("_eps05");
46       break;
47     case 1:
48       s.SetSpaceCharge(AliToyMCEventGeneratorSimple::kEps10, gasType);
49       outputFile.Append("_eps10");
50       break;
51     case 2:
52       s.SetSpaceCharge(AliToyMCEventGeneratorSimple::kEps20, gasType);
53       outputFile.Append("_eps20");
54       break;
55     case 3:
56       s.SetSpaceCharge(AliToyMCEventGeneratorSimple::kEps25, gasType);
57       outputFile.Append("_eps25");
58       break;
59     case 4:
60       s.SetSpaceCharge(AliToyMCEventGeneratorSimple::kEps30, gasType);
61       outputFile.Append("_eps30");
62       break;
63     case 5:
64       s.SetSpaceCharge(AliToyMCEventGeneratorSimple::kEps35, gasType);
65       outputFile.Append("_eps35");
66       break;
67     case 6:
68       s.SetSpaceCharge(AliToyMCEventGeneratorSimple::kEps40, gasType);
69       outputFile.Append("_eps40");
70       break;
71   }
72
73   outputFile.Append(Form("_%04dev_%04dtr",nevents,ntracks));
74   outputFile.Append(".root");
75   s.SetOutputFileName(outputFile.Data());
76
77   //TODO: Add other types
78   switch (simtype) {
79     case 0:
80       s.RunSimulation(nevents,ntracks,rate);
81       break;
82     case 1:
83       s.RunSimulationBunchTrain(nevents,ntracks);
84       break;
85   }
86
87   //reconstruction part
88   AliToyMCReconstruction rec;
89   rec.SetForceAlpha(kTRUE);
90   // rec.SetUseMaterialBudget(kTRUE)
91   if (recoType==0) {
92     rec.SetFillClusterRes(kTRUE);
93     rec.SetLongT0seed(kTRUE);
94     //rec.SetUseT0list(kTRUE);
95   } else if (recoType==1) {
96     rec.SetFillClusterRes(kTRUE);
97     rec.SetLongT0seed(kFALSE);
98     //rec.SetUseT0list(kTRUE);
99   } else if (recoType==2) {
100     rec.SetFillClusterRes(kTRUE);
101     rec.SetLongT0seed(kTRUE);
102     rec.SetUseT0list(kTRUE);
103   } else if (recoType==3) {
104     rec.SetFillClusterRes(kTRUE);
105     rec.SetLongT0seed(kTRUE);
106     rec.SetUseZ0list(kTRUE);
107   }
108
109 //  if (recoType==0){
110   rec.SetRecoSettings(1,0,AliToyMCReconstruction::kNoCorrection);
111   if (!subRecoType||subRecoType==1) rec.RunReco(outputFile.Data());
112
113   rec.SetRecoSettings(1,1,AliToyMCReconstruction::kIdeal);
114   if (!subRecoType||subRecoType==2) rec.RunReco(outputFile.Data());
115
116   rec.SetRecoSettings(0,1,AliToyMCReconstruction::kIdeal);
117   if (!subRecoType||subRecoType==3) rec.RunReco(outputFile.Data());
118
119   rec.SetRecoSettings(0,1,AliToyMCReconstruction::kAverageEta);
120   if (!subRecoType||subRecoType==4) rec.RunReco(outputFile.Data());
121
122   rec.SetRecoSettings(0,1,AliToyMCReconstruction::kNoCorrection);
123   if (!subRecoType||subRecoType==5) rec.RunReco(outputFile.Data());
124
125   rec.SetRecoSettings(0,0,AliToyMCReconstruction::kNoCorrection);
126   if (!subRecoType||subRecoType==6) rec.RunReco(outputFile.Data());
127 // }
128
129 //  if (recoType==1) {
130 //    rec.SetRecoSettings(0,1,AliToyMCReconstruction::kNoCorrection);
131 //    if (!subRecoType||subRecoType==1) rec.RunFullTracking(outputFile.Data());
132 //    
133 //    rec.SetRecoSettings(0,0,AliToyMCReconstruction::kNoCorrection);
134 //    if (!subRecoType||subRecoType==2) rec.RunFullTracking(outputFile.Data());
135 //  }
136   
137 }