]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MONITOR/galice.C
ALIROOT-5769: Better handling of the error (R. Preghenella)
[u/mrichter/AliRoot.git] / MONITOR / galice.C
1 // In order to create galice.root follow the steps shown below
2 //
3 //  gAlice->Init("galice.C");
4 //  AliRunLoader::Instance()->Write();
5 //  delete AliRunLoader::Instance();
6 //
7
8
9
10 void Config()
11 {
12     AliRunLoader* runLoader = AliRunLoader::Open("galice.root", AliConfig::GetDefaultEventFolderName(), "recreate");
13     runLoader->SetCompressionLevel(2);
14     runLoader->SetNumberOfEventsPerFile(1);
15     gAlice->SetRunLoader(runLoader);
16
17     gSystem->Load("libgeant321");
18     new TGeant3("C++ Interface to Geant3");
19
20     // Field (L3 0.4 T)
21     TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 1., 1., AliMagF::k5kG));
22
23     Int_t   iABSO  =  0;
24     Int_t   iDIPO  =  0;
25     Int_t   iFMD   =  0;
26     Int_t   iFRAME =  0;
27     Int_t   iHALL  =  0;
28     Int_t   iITS   =  1;
29     Int_t   iMAG   =  0;
30     Int_t   iMUON  =  0;
31     Int_t   iPHOS  =  0;
32     Int_t   iPIPE  =  0;
33     Int_t   iPMD   =  0;
34     Int_t   iHMPID  =  0;
35     Int_t   iSHIL  =  0;
36     Int_t   iT0 =  0;
37     Int_t   iTOF   =  0;
38     Int_t   iTPC   =  1;
39     Int_t   iTRD   =  0;
40     Int_t   iZDC   =  0;
41     Int_t   iEMCAL =  0;
42     Int_t   iACORDE   =  0;
43     Int_t   iVZERO =  0;
44     runLoader->CdGAFile();
45     //=================== Alice BODY parameters =============================
46     AliBODY *BODY = new AliBODY("BODY", "Alice envelop");
47
48     if (iMAG)
49     {
50         //=================== MAG parameters ============================
51         // --- Start with Magnet since detector layouts may be depending ---
52         // --- on the selected Magnet dimensions ---
53         AliMAG *MAG = new AliMAG("MAG", "Magnet");
54     }
55
56
57     if (iABSO)
58     {
59         //=================== ABSO parameters ============================
60         AliABSO *ABSO = new AliABSOv0("ABSO", "Muon Absorber");
61     }
62
63     if (iDIPO)
64     {
65         //=================== DIPO parameters ============================
66
67         AliDIPO *DIPO = new AliDIPOv2("DIPO", "Dipole version 2");
68     }
69
70     if (iHALL)
71     {
72         //=================== HALL parameters ============================
73
74         AliHALL *HALL = new AliHALL("HALL", "Alice Hall");
75     }
76
77
78     if (iFRAME)
79     {
80         //=================== FRAME parameters ============================
81
82         AliFRAMEv2 *FRAME = new AliFRAMEv2("FRAME", "Space Frame");
83         if (geo == kHoles) {
84             FRAME->SetHoles(1);
85         } else {
86             FRAME->SetHoles(0);
87         }
88     }
89
90     if (iSHIL)
91     {
92         //=================== SHIL parameters ============================
93
94         AliSHIL *SHIL = new AliSHILv2("SHIL", "Shielding Version 2");
95     }
96
97
98     if (iPIPE)
99     {
100         //=================== PIPE parameters ============================
101
102         AliPIPE *PIPE = new AliPIPEv0("PIPE", "Beam Pipe");
103     }
104  
105     if(iITS) {
106
107     //=================== ITS parameters ============================
108     //
109     // As the innermost detector in ALICE, the Inner Tracking System "impacts" on
110     // almost all other detectors. This involves the fact that the ITS geometry
111     // still has several options to be followed in parallel in order to determine
112     // the best set-up which minimizes the induced background. All the geometries
113     // available to date are described in the following. Read carefully the comments
114     // and use the default version (the only one uncommented) unless you are making
115     // comparisons and you know what you are doing. In this case just uncomment the
116     // ITS geometry you want to use and run Aliroot.
117     //
118     // Detailed geometries:         
119     //
120     //
121     //AliITS *ITS  = new AliITSv5symm("ITS","Updated ITS TDR detailed version with symmetric services");
122     //
123     //AliITS *ITS  = new AliITSv5asymm("ITS","Updates ITS TDR detailed version with asymmetric services");
124     //
125         AliITSvPPRasymmFMD *ITS  = new AliITSvPPRasymmFMD("ITS","New ITS PPR detailed version with asymmetric services");
126         ITS->SetMinorVersion(2);                                         // don't touch this parameter if you're not an ITS developer
127         ITS->SetReadDet(kFALSE);                                         // don't touch this parameter if you're not an ITS developer
128     //    ITS->SetWriteDet("$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.det");  // don't touch this parameter if you're not an ITS developer
129         ITS->SetThicknessDet1(200.);   // detector thickness on layer 1 must be in the range [100,300]
130         ITS->SetThicknessDet2(200.);   // detector thickness on layer 2 must be in the range [100,300]
131         ITS->SetThicknessChip1(200.);  // chip thickness on layer 1 must be in the range [150,300]
132         ITS->SetThicknessChip2(200.);  // chip thickness on layer 2 must be in the range [150,300]
133         ITS->SetRails(0);            // 1 --> rails in ; 0 --> rails out
134         ITS->SetCoolingFluid(1);   // 1 --> water ; 0 --> freon
135         //
136     //AliITSvPPRsymm *ITS  = new AliITSvPPRsymm("ITS","New ITS PPR detailed version with symmetric services");
137     //ITS->SetMinorVersion(2);                                       // don't touch this parameter if you're not an ITS developer
138     //ITS->SetReadDet(kFALSE);                                       // don't touch this parameter if you're not an ITS developer
139     //ITS->SetWriteDet("$ALICE_ROOT/ITS/ITSgeometry_vPPRsymm2.det"); // don't touch this parameter if you're not an ITS developer
140     //ITS->SetThicknessDet1(200.);   // detector thickness on layer 1 must be in the range [100,300]
141     //ITS->SetThicknessDet2(200.);   // detector thickness on layer 2 must be in the range [100,300]
142     //ITS->SetThicknessChip1(200.);  // chip thickness on layer 1 must be in the range [150,300]
143     //ITS->SetThicknessChip2(200.);  // chip thickness on layer 2 must be in the range [150,300]
144     //ITS->SetRails(0);              // 1 --> rails in ; 0 --> rails out
145     //ITS->SetCoolingFluid(1);       // 1 --> water ; 0 --> freon
146     //
147     //
148     // Coarse geometries (warning: no hits are produced with these coarse geometries and they unuseful 
149     // for reconstruction !):
150     //                                                     
151     //
152     //AliITSvPPRcoarseasymm *ITS  = new AliITSvPPRcoarseasymm("ITS","New ITS PPR coarse version with asymmetric services");
153     //ITS->SetRails(0);                // 1 --> rails in ; 0 --> rails out
154     //ITS->SetSupportMaterial(0);      // 0 --> Copper ; 1 --> Aluminum ; 2 --> Carbon
155     //
156     //AliITS *ITS  = new AliITSvPPRcoarsesymm("ITS","New ITS PPR coarse version with symmetric services");
157     //ITS->SetRails(0);                // 1 --> rails in ; 0 --> rails out
158     //ITS->SetSupportMaterial(0);      // 0 --> Copper ; 1 --> Aluminum ; 2 --> Carbon
159     //                      
160     //
161     //
162     // Geant3 <-> EUCLID conversion
163     // ============================
164     //
165     // SetEUCLID is a flag to output (=1) or not to output (=0) both geometry and
166     // media to two ASCII files (called by default ITSgeometry.euc and
167     // ITSgeometry.tme) in a format understandable to the CAD system EUCLID.
168     // The default (=0) means that you dont want to use this facility.
169     //
170      ITS->SetEUCLID(0);  
171     }
172
173     if (iTPC)
174     {
175         //============================ TPC parameters ================================
176         // --- This allows the user to specify sectors for the SLOW (TPC geometry 2)
177         // --- Simulator. SecAL (SecAU) <0 means that ALL lower (upper)
178         // --- sectors are specified, any value other than that requires at least one 
179         // --- sector (lower or upper)to be specified!
180         // --- Reminder: sectors 1-24 are lower sectors (1-12 -> z>0, 13-24 -> z<0)
181         // ---           sectors 25-72 are the upper ones (25-48 -> z>0, 49-72 -> z<0)
182         // --- SecLows - number of lower sectors specified (up to 6)
183         // --- SecUps - number of upper sectors specified (up to 12)
184         // --- Sens - sensitive strips for the Slow Simulator !!!
185         // --- This does NOT work if all S or L-sectors are specified, i.e.
186         // --- if SecAL or SecAU < 0
187         //
188         //
189         //-----------------------------------------------------------------------------
190
191         //  gROOT->LoadMacro("SetTPCParam.C");
192         //  AliTPCParam *param = SetTPCParam();
193         AliTPC *TPC = new AliTPCv2("TPC", "Default");
194
195         // All sectors included 
196         TPC->SetSecAU(-1);
197         TPC->SetSecAL(-1);
198     }
199
200
201     if (iTOF) {
202         if (geo == kHoles) {
203         //=================== TOF parameters ============================
204             AliTOF *TOF = new AliTOFv2FHoles("TOF", "TOF with Holes");
205         } else {
206             AliTOF *TOF = new AliTOFv4T0("TOF", "normal TOF");
207         }
208     }
209
210
211     if (iHMPID)
212     {
213         //=================== HMPID parameters ===========================
214         AliHMPID *HMPID = new AliHMPIDv3("HMPID", "normal HMPID");
215
216     }
217
218
219     if (iZDC)
220     {
221         //=================== ZDC parameters ============================
222
223         AliZDC *ZDC = new AliZDCv2("ZDC", "normal ZDC");
224     }
225
226     if (iTRD)
227     {
228         //=================== TRD parameters ============================
229
230         AliTRD *TRD = new AliTRDv1("TRD", "TRD slow simulator");
231
232         // Select the gas mixture (0: 97% Xe + 3% isobutane, 1: 90% Xe + 10% CO2)
233         TRD->SetGasMix(1);
234         if (geo == kHoles) {
235             // With hole in front of PHOS
236             TRD->SetPHOShole();
237             // With hole in front of HMPID
238             TRD->SetHMPIDhole();
239         }
240             // Switch on TR
241             AliTRDsim *TRDsim = TRD->CreateTR();
242     }
243
244     if (iFMD)
245     {
246         //=================== FMD parameters ============================
247         AliFMD *FMD = new AliFMDv1("FMD", "normal FMD");
248         FMD->SetRingsSi1(256);
249         FMD->SetRingsSi2(128);
250         FMD->SetSectorsSi1(20);
251         FMD->SetSectorsSi2(40);      
252    }
253
254     if (iMUON)
255     {
256         //=================== MUON parameters ===========================
257
258         AliMUON *MUON = new AliMUONv1("MUON", "default");
259     }
260     //=================== PHOS parameters ===========================
261
262     if (iPHOS)
263     {
264         AliPHOS *PHOS = new AliPHOSv1("PHOS", "IHEP");
265     }
266
267
268     if (iPMD)
269     {
270         //=================== PMD parameters ============================
271         AliPMD *PMD = new AliPMDv1("PMD", "normal PMD");
272     }
273
274     if (iT0)
275     {
276         //=================== T0 parameters ============================
277         AliT0 *T0 = new AliT0v1("T0", "T0 Detector");
278     }
279
280     if (iEMCAL)
281     {
282         //=================== EMCAL parameters ============================
283         AliEMCAL *EMCAL = new AliEMCALv1("EMCAL", "EMCALArch1a");
284     }
285
286      if (iACORDE)
287     {
288         //=================== ACORDE parameters ============================
289         AliACORDE *ACORDE = new AliACORDEv1("ACORDE", "normal ACORDE");
290     }
291
292      if (iVZERO)
293     {
294         //=================== ACORDE parameters ============================
295         AliVZERO *VZERO = new AliVZEROv2("VZERO", "normal VZERO");
296     }
297
298 }