New TTask based method to do Digits To clusters. Works with files of multiple
[u/mrichter/AliRoot.git] / MUON / Config_slat.C
CommitLineData
f5e13b7c 1enum gentype_t {hijing, gun, box, pythia, param, cocktail, fluka, halo, ntuple, scan, doublescan, hijing_g};
2
3gentype_t gentype=scan;
4// Int_t ntracks=6407;
5// Int_t ntracks=12000;
6// Int_t ntracks=28380;
7// Int_t ntracks=19900;
8Int_t ntracks=1;
9
10void Config()
11
12{
13new AliGeant3("C++ Interface to Geant3");
14
15//=======================================================================
16// Create the output file
17
3c084d9f 18 TFile *rootfile = new TFile("galice.root","recreate");
19 rootfile->SetCompressionLevel(2);
20 TGeant3 *geant3 = (TGeant3*)gMC;
21 AliDecayer* decayer = new AliDecayerPythia();
4ec16dd1 22 decayer->SetForceDecay(kAll);
3c084d9f 23 decayer->Init();
24 gMC->SetExternalDecayer(decayer);
25
f5e13b7c 26//=======================================================================
27// ******* GEANT STEERING parameters FOR ALICE SIMULATION *******
f5e13b7c 28geant3->SetTRIG(1); //Number of events to be processed
29geant3->SetSWIT(4,100);
30geant3->SetDEBU(0,0,1);
31geant3->SetDCAY(1);
32geant3->SetPAIR(1);
33geant3->SetCOMP(1);
34geant3->SetPHOT(1);
35geant3->SetPFIS(0);
36geant3->SetDRAY(0);
37geant3->SetANNI(1);
38geant3->SetBREM(1);
39geant3->SetMUNU(1);
40geant3->SetCKOV(0);
41geant3->SetHADR(4); //Select pure GEANH (HADR 1) or GEANH/NUCRIN (HADR 3)
42geant3->SetLOSS(1);
43geant3->SetMULS(1);
44geant3->SetRAYL(0);
45geant3->SetAUTO(1); //Select automatic STMIN etc... calc. (AUTO 1) or manual (AUTO 0)
46geant3->SetABAN(1); //Restore 3.16 behaviour for abandoned tracks
47geant3->SetOPTI(2); //Select optimisation level for GEANT geometry searches (0,1,2)
48Float_t cut = 1.e-4; // 100MeV cut by default
49Float_t tofmax = 1.e10;
50// GAM ELEC NHAD CHAD MUON EBREM MUHAB EDEL MUDEL MUPA TOFMAX
51geant3->SetCUTS(1.e-4, 1.e-4, 1.e-3, 1.e-4, 1.e-3, cut, cut, cut, cut, cut, 1.e-5);
52
4ec16dd1 53gAlice->TrackingLimits(700, 2000);
f5e13b7c 54
55//
56//=======================================================================
57// ************* STEERING parameters FOR ALICE SIMULATION **************
58// --- Specify event type to be tracked through the ALICE setup
59// --- All positions are in cm, angles in degrees, and P and E in GeV
60
61 switch(gentype)
62 {
63 case gun:
64//*********************************************
65// Example for Fixed Particle Gun *
66//*********************************************
67 AliGenFixed *gener = new AliGenFixed(ntracks);
68 gener->SetMomentum(10);
69 gener->SetPhiRange(0);
70 gener->SetThetaRange(0.);
71 gener->SetOrigin(30,30,1200); //vertex position
72 gener->SetPart(kProton); //GEANT particle type
73 break;
74 case box:
75//*********************************************
76// Example for Moving Particle Gun *
77//*********************************************
78 AliGenBox *gener = new AliGenBox(ntracks);
3c084d9f 79 gener->SetMomentumRange(33,34);
80 gener->SetPhiRange(-180,180);
81 gener->SetThetaRange(2., 9.);
82 gener->SetOrigin(0,0,0);
f5e13b7c 83 gener->SetVertexSmear(kPerTrack);
84 //vertex position
3c084d9f 85 gener->SetSigma(0, 0, 0); // Sigma in (X,Y,Z) (cm) on IP position
86 gener->SetPart(kMuonPlus); // GEANT particle type
f5e13b7c 87 break;
88 case scan:
89//*********************************************
90// Scanning on a grid *
91//*********************************************
92 AliGenScan *gener = new AliGenScan(-1);
93 gener->SetMomentumRange(20,20);
94 gener->SetPhiRange(90,90);
95 gener->SetThetaRange(0,0);
96 //vertex position
97 gener->SetSigma(1,1,0); //Sigma in (X,Y,Z) (cm) on IP position
98 gener->SetPart(kMuonMinus);
21a18f36 99 gener->SetRange(100, -300., 300., 100, -300., 300., 1, 900, 900);
f5e13b7c 100 break;
101 case doublescan:
102//*********************************************
103// Scanning on a grid *
104//*********************************************
105 AliGenDoubleScan *gener = new AliGenDoubleScan(-1);
106 gener->SetMomentumRange(4,4);
107 gener->SetPhiRange(0,360);
108 gener->SetThetaRange(0,0);
109 //vertex position
110 gener->SetSigma(3,3,0); //Sigma in (X,Y,Z) (cm) on IP position
111 gener->SetPart(8);
112 gener->SetRange(20, -100, 100, 20, -100, 100, 1, 500, 500);
113 gener->SetDistance(1);
114 break;
115
116 case hijing:
117 AliGenHIJINGpara *gener = new AliGenHIJINGpara(ntracks);
118 gener->SetMomentumRange(0,999);
119 gener->SetPtRange(0,999);
120 gener->SetPhiRange(0,360);
121// gener->SetThetaRange(0.104,33.52);
122 gener->SetThetaRange(0.104,90.0);
123// gener->SetThetaRange(2.,9.);
124 gener->SetOrigin(0., 0.0 ,0); // vertex position
125 gener->SetSigma(0,0,5.3); // Sigma in (X,Y,Z) (cm) on IP position
126 gener->SetVertexSmear(kPerTrack);
127 gener->SetTrackingFlag(0);
128 break;
129 case hijing_g:
130 AliGenHijing *gener = new AliGenHijing(-1);
131
132 gener->SetEnergyCMS(5600.);
133 gener->SetReferenceFrame("CMS");
134 gener->SetProjectile("A", 208, 82);
135 gener->SetTarget ("A", 208, 82);
136 gener->SetImpactParameterRange(0, 5.);
137 gener->SetEvaluate(0);
138 gener->KeepFullEvent();
139 gener->SetJetQuenching(1);
140 gener->SetShadowing(1);
141 gener->SetDecaysOff(1);
142 gener->SetTrigger(0);
143 gener->SetSelectAll(1);
144 gener->SetMomentumRange(0,9999);
145 gener->SetPhiRange(-180,180);
146 gener->SetThetaRange(0.104,90.0);
147// gener->SetFlavor(4);
f5e13b7c 148 gener->SetOrigin(0., 0.0 ,0);
149 gener->SetSigma(0,0,5.3);
150 gener->SetVertexSmear(kPerEvent);
151 gener->SetTrackingFlag(0);
152
153 break;
154
155 case pythia:
156//********************************************
157// Example for Charm Production with Pythia *
158//********************************************
159AliGenPythia *gener = new AliGenPythia(ntracks);
160 gener->SetMomentumRange(0,999);
161 gener->SetPhiRange(0,360);
162 gener->SetThetaRange(0., 180.);
163 gener->SetYRange(-10,10);
164 gener->SetPtRange(0,100);
165 //gener->SetOrigin(0,0,0); // vertex position
166 //gener->SetVertexSmear(kPerEvent);
167 //gener->SetSigma(0,0,5.6); // Sigma in (X,Y,Z) (cm) on IP
168position
4ec16dd1 169 gener->SetStrucFunc(kDO_Set_1);
170 gener->SetProcess(kPyCharm);
f5e13b7c 171 gener->SetEnergyCMS(5500.);
172 break;
173/*
174 AliGenPythia *gener = new AliGenPythia(ntracks);
175 gener->SetMomentumRange(0,999);
176 gener->SetPhiRange(0,360);
177 gener->SetThetaRange(0., 180.);
178 gener->SetYRange(-10,10);
179 gener->SetPtRange(0,100);
180 gener->SetOrigin(0,0,0); // vertex position
181 gener->SetVertexSmear(kPerEvent);
182 gener->SetSigma(0,0,5.6); // Sigma in (X,Y,Z) (cm) on IP position
183 gener->SetStrucFunc(DO_Set_1);
184 gener->SetProcess(charm);
185 gener->SetForceDecay(dimuon);
186 gener->SetEnergyCMS(5500.);
187 gener->SetTrackingFlag(0);
188
189 break;
190 */
191 case param:
192//*******************************************************
4ec16dd1 193// Example for J/psi or Upsilon Production from Parameterisation *
f5e13b7c 194//*******************************************************
4ec16dd1 195 AliGenParam *gener = new AliGenParam(ntracks, AliGenMUONlib::kUpsilon);
f5e13b7c 196 gener->SetMomentumRange(0,999);
197 gener->SetPhiRange(-180, 180);
198 gener->SetYRange(2.5,4);
199 gener->SetCutOnChild(1);
4ec16dd1 200 gener->SetChildThetaRange(2.0,9);
f5e13b7c 201 gener->SetOrigin(0,0,0); //vertex position
202 gener->SetSigma(0,0,0); //Sigma in (X,Y,Z) (cm) on IP position
4ec16dd1 203 gener->SetForceDecay(kDiMuon);
3c084d9f 204 gener->SetTrackingFlag(1);
f5e13b7c 205
206 break;
207
208 case fluka:
209//*******************************************************
210// Example for a FLUKA Boundary Source *
211//*******************************************************
212 AliGenFLUKAsource *gener = new AliGenFLUKAsource(-1);
213 gener->AddFile("$(ALICE_ROOT)/data/alice.root");
214 rootfile->cd();
215 gener->SetPartFlag(7);
216 gener->SetMomentumRange(0,999);
217 gener->SetPhiRange(0,360);
218 gener->SetThetaRange(0., 180.);
219 gener->SetAgeMax(1.e-5);
220
221// 31.7 events
222 gener->SetFraction(1.);
223 break;
224
225 case ntuple:
226//*******************************************************
227// Example for reading from a external file *
228//*******************************************************
229 AliGenExtFileCH *gener = new AliGenExtFileCH(-1);
230 gener->SetFileName("$(ALICE_ROOT)/data/pbpb.root");
231 gener->SetThetaRange(0.104,90.);
232 gener->SetOrigin(0,0,0); //vertex position
233 gener->SetSigma(0,0,5.6); //Sigma in (X,Y,Z) (cm) on IP position
234 gener->SetVertexSmear(kPerTrack);
235 gener->SetTrackingFlag(1);
236 break;
237
238 case halo:
239//*******************************************************
240// Example for Tunnel Halo Source *
241//*******************************************************
242 AliGenHalo *gener = new AliGenHalo(ntracks);
243 gener->SetFileName("/h1/morsch/marsip/marsip5.mu");
244 break;
245
246 case cocktail:
247//*******************************************************
248// Example for a Cocktail *
249//*******************************************************
250 AliGenCocktail *gener = new AliGenCocktail();
251 gener->SetMomentumRange(0,10);
252 gener->SetPhiRange(0,360);
253 gener->SetThetaRange(2.,9.);
254 gener->SetTrackingFlag(0);
4ec16dd1 255 AliGenParam *Pi0 = new AliGenParam(100, new AliGenPMDlib(), AliGenPMDlib::kPion);
256 AliGenParam *Eta = new AliGenParam( 10, new AliGenPMDlib(), AliGenPMDlib::kEta);
f5e13b7c 257 gener->AddGenerator(Pi0, "neutral pions" , 1.);
258 gener->AddGenerator(Eta, "neutral etas" , 1.);
259 break;
260 }
261
262
263gener->Init();
3c084d9f 264gAlice->SetField(2,1); //Specify maximum magnetic field in Tesla (neg. ==> default field)
f5e13b7c 265
266Int_t iFRAME =0;
267Int_t iMAG =0;
268Int_t iITS =0;
4ec16dd1 269Int_t iABSO =1;
21a18f36 270Int_t iDIPO =1;
f5e13b7c 271Int_t iHALL =0;
4ec16dd1 272Int_t iSHIL =1;
f5e13b7c 273Int_t iPIPE =0;
274Int_t iFMD =0;
275Int_t iMUON =1;
276
277//=================== Alice BODY parameters =============================
278AliBODY *BODY = new AliBODY("BODY","Alice envelop");
279
280if(iFRAME) {
281//=================== FRAME parameters ============================
282AliFRAME *FRAME = new AliFRAMEv0("FRAME","Space Frame");
283}
284
285if(iMAG) {
286//=================== MAG parameters ============================
287// --- Start with Magnet since detector layouts may be depending ---
288// --- on the selected Magnet dimensions ---
289AliMAG *MAG = new AliMAG("MAG","Magnet");
290}
291
292if(iABSO) {
293//=================== ABSO parameters ============================
294 AliABSO *ABSO = new AliABSOv0("ABSO","Muon Absorber");
295}
296
297if(iDIPO) {
298//=================== DIPO parameters ============================
299
300 AliDIPO *DIPO = new AliDIPOv2("DIPO","Dipole version 2");
301}
302
303if(iHALL) {
304//=================== HALL parameters ============================
305 AliHALL *HALL = new AliHALL("HALL","Alice Hall");
306}
307
308
309
310if(iSHIL) {
311//=================== SHIL parameters ============================
312// AliSHIL *SHIL = new AliSAROV("SHIL","Shielding");
4ec16dd1 313 AliSHILvF *SHIL = new AliSHILvF("SHIL","Shielding");
f5e13b7c 314 SHIL->SetPbCone(1);
315// AliSAROV *SHIL = new AliSAROV("SHIL","Shielding");
316}
317
318
319if(iPIPE) {
320//=================== PIPE parameters ============================
321 AliPIPE *PIPE = new AliPIPEv0("PIPE","Beam Pipe");
322}
323
324
325if(iFMD) {
326//=================== FMD parameters ============================
327 AliFMD *FMD = new AliFMDv1("FMD","normal FMD");
328}
329
330if(iMUON) {
331//=================== MUON parameters ===========================
332
333AliMUON *MUON = new AliMUONv1("MUON","normal MUON");
0c5e39a8 334 MUON->SetIshunt(0);
f5e13b7c 335 MUON->SetMaxStepGas(0.1);
336 MUON->SetMaxStepAlu(0.1);
337//
338// Version 0
339//
340// First define the number of planes that are segmented (1 or 2) by a call
341// to SetNsec.
342// Then chose for each chamber (chamber plane) the segmentation
343// and response model.
344// They should be equal for the two chambers of each station. In a future
345// version this will be enforced.
346//
347//
348 Int_t chamber;
349 Int_t station;
b64652f5 350 // Default response: 5 mm of gas
f5e13b7c 351 AliMUONResponseV0* response0 = new AliMUONResponseV0;
b64652f5 352 response0->SetSqrtKx3AndDeriveKx2Kx4(0.7131); // sqrt(0.5085)
353 response0->SetSqrtKy3AndDeriveKy2Ky4(0.7642); // sqrt(0.5840)
354 response0->SetPitch(0.25); // anode-cathode distance
f5e13b7c 355 response0->SetSigmaIntegration(10.);
356 response0->SetChargeSlope(50);
357 response0->SetChargeSpread(0.18, 0.18);
358 response0->SetMaxAdc(4096);
359 response0->SetZeroSuppression(6);
b64652f5 360
361 // Response for 4 mm of gas (station 1)
362 // automatic consistency with width of sensitive medium in CreateGeometry ????
363 AliMUONResponseV0* responseSt1 = new AliMUONResponseV0;
364 // Mathieson parameters from L.Kharmandarian's thesis, page 190
365 responseSt1->SetSqrtKx3AndDeriveKx2Kx4(0.7000); // sqrt(0.4900)
366 responseSt1->SetSqrtKy3AndDeriveKy2Ky4(0.7550); // sqrt(0.5700)
367 responseSt1->SetPitch(0.20); // anode-cathode distance
368 responseSt1->SetSigmaIntegration(10.);
369 // ChargeSlope larger to compensate for the smaller anode-cathode distance
370 // and keep the same most probable ADC channel for mip's
371 responseSt1->SetChargeSlope(62.5);
372 // assumed proportionality to anode-cathode distance for ChargeSpread
373 responseSt1->SetChargeSpread(0.144, 0.144);
374 responseSt1->SetMaxAdc(4096);
375 responseSt1->SetZeroSuppression(6);
376
f5e13b7c 377//--------------------------------------------------------
378// Configuration for Chamber TC1/2 (Station 1) ----------
379//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
380 Float_t rseg1[4]={17.5, 55.2, 71.3, 95.5};
381 Int_t nseg1[4]={4, 4, 2, 1};
382//
383 chamber=1;
384//^^^^^^^^^
385 MUON->SetNsec(chamber-1,2);
386//
4ec16dd1 387 AliMUONSegmentationV01 *seg11=new AliMUONSegmentationV01(4);
f5e13b7c 388
389 seg11->SetSegRadii(rseg1);
b64652f5 390 seg11->SetPadSize(2.4, 0.4); // smaller pad size
b64652f5 391 seg11->SetDAnod(0.20); // smaller distance between anode wires
f5e13b7c 392 seg11->SetPadDivision(nseg1);
393
394 MUON->SetSegmentationModel(chamber-1, 1, seg11);
4ec16dd1 395
396 AliMUONSegmentationV02 *seg12=new AliMUONSegmentationV02(4);
f5e13b7c 397 seg12->SetSegRadii(rseg1);
b64652f5 398 seg12->SetPadSize(0.6, 1.6); // smaller pad size
b64652f5 399 seg12->SetDAnod(0.20); // smaller distance between anode wires
f5e13b7c 400 seg12->SetPadDivision(nseg1);
401
402 MUON->SetSegmentationModel(chamber-1, 2, seg12);
403
b64652f5 404 MUON->SetResponseModel(chamber-1, responseSt1); // special response
681d067b 405 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
f5e13b7c 406
407 chamber=2;
408//^^^^^^^^^
409//
410 MUON->SetNsec(chamber-1,2);
411//
4ec16dd1 412 AliMUONSegmentationV01 *seg21=new AliMUONSegmentationV01(4);
f5e13b7c 413 seg21->SetSegRadii(rseg1);
b64652f5 414 seg21->SetPadSize(2.4, 0.4); // smaller pad size
b64652f5 415 seg21->SetDAnod(0.20); // smaller distance between anode wires
f5e13b7c 416 seg21->SetPadDivision(nseg1);
417 MUON->SetSegmentationModel(chamber-1, 1, seg21);
418//
4ec16dd1 419 AliMUONSegmentationV02 *seg22=new AliMUONSegmentationV02(4);
f5e13b7c 420 seg22->SetSegRadii(rseg1);
b64652f5 421 seg22->SetPadSize(0.6, 1.6); // smaller pad size
b64652f5 422 seg22->SetDAnod(0.20); // smaller distance between anode wires
f5e13b7c 423 seg22->SetPadDivision(nseg1);
424 MUON->SetSegmentationModel(chamber-1, 2, seg22);
425
b64652f5 426 MUON->SetResponseModel(chamber-1, responseSt1); // special response
681d067b 427 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
b64652f5 428
f5e13b7c 429//
430//--------------------------------------------------------
de7e3024 431// Configuration for Chamber TC3/4 (Station 2) -----------
432///^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
f5e13b7c 433// Float_t rseg2[4]={23.5, 87.7, 122.4, 122.5};
434 Float_t rseg2[4]={23.5, 47.1, 87.7, 122.5};
435 Int_t nseg2[4]={4, 4, 2, 1};
436//
437 chamber=3;
438//^^^^^^^^^
439 MUON->SetNsec(chamber-1,2);
440//
4ec16dd1 441 AliMUONSegmentationV01 *seg31=new AliMUONSegmentationV01(4);
f5e13b7c 442 seg31->SetSegRadii(rseg2);
7dfbb987 443 seg31->SetPadSize(3.0, 0.5);
f5e13b7c 444 seg31->SetDAnod(3.0/3./4);
445 seg31->SetPadDivision(nseg2);
446 MUON->SetSegmentationModel(chamber-1, 1, seg31);
447//
4ec16dd1 448 AliMUONSegmentationV02 *seg32=new AliMUONSegmentationV02(4);
f5e13b7c 449 seg32->SetSegRadii(rseg2);
7dfbb987 450 seg32->SetPadSize(0.75, 2.0);
f5e13b7c 451 seg32->SetPadDivision(nseg2);
452 seg32->SetDAnod(3.0/3./4);
453
454 MUON->SetSegmentationModel(chamber-1, 2, seg32);
455
456 MUON->SetResponseModel(chamber-1, response0);
681d067b 457 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
f5e13b7c 458
459 chamber=4;
460//^^^^^^^^^
461//
462 MUON->SetNsec(chamber-1,2);
463//
4ec16dd1 464 AliMUONSegmentationV01 *seg41=new AliMUONSegmentationV01(4);
f5e13b7c 465 seg41->SetSegRadii(rseg2);
7dfbb987 466 seg41->SetPadSize(3.0, 0.5);
f5e13b7c 467 seg41->SetDAnod(3.0/3./4);
468 seg41->SetPadDivision(nseg2);
469 MUON->SetSegmentationModel(chamber-1, 1, seg41);
470//
4ec16dd1 471 AliMUONSegmentationV02 *seg42=new AliMUONSegmentationV02(4);
f5e13b7c 472 seg42->SetSegRadii(rseg2);
7dfbb987 473 seg42->SetPadSize(0.75, 2.0);
f5e13b7c 474 seg42->SetPadDivision(nseg2);
475 seg42->SetDAnod(3.0/3./4);
476
477 MUON->SetSegmentationModel(chamber-1, 2, seg42);
478
479 MUON->SetResponseModel(chamber-1, response0);
681d067b 480 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
f5e13b7c 481
482
483//--------------------------------------------------------
de7e3024 484// Configuration for Chamber TC5/6 (Station 3) ----------
f5e13b7c 485//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
f9f7c205 486 Int_t nseg3[4]={4, 4, 2, 1};
a083207d 487 Int_t npcb5[36] = {0,0,2,0,
488 0,0,3,0,
489 0,1,3,0,
490 0,2,2,0,
de7e3024 491 0,1,2,0,
a083207d 492 0,2,2,0,
493 0,1,3,0,
494 0,0,3,0,
495 0,0,2,0};
de7e3024 496
f9f7c205 497 Float_t shift = 1.5/2.;
21a18f36 498 Float_t xpos5[9] = {2., 2., 2., 2.,33., 2., 2., 2., 2.};
a083207d 499 Float_t ypos5 = -(20.+4.*(40.-2.*shift));
f5e13b7c 500
501 chamber=5;
f9f7c205 502 MUON->SetNsec(chamber-1,2);
4ec16dd1 503 AliMUONSegmentationSlat *seg51=new AliMUONSegmentationSlat(4);
a083207d 504 seg51->SetNSlats(9);
f9f7c205 505 seg51->SetShift(shift);
506 seg51->SetNPCBperSector(npcb5);
507 seg51->SetSlatXPositions(xpos5);
508 seg51->SetSlatYPosition(ypos5);
509 seg51->SetPadSize(10.,0.5);
510 seg51->SetDAnod(0.25);
511 seg51->SetPadDivision(nseg3);
512 MUON->SetSegmentationModel(chamber-1, 1, seg51);
513
4ec16dd1 514 AliMUONSegmentationSlatN *seg52=new AliMUONSegmentationSlatN(4);
a083207d 515 seg52->SetNSlats(9);
f9f7c205 516 seg52->SetShift(shift);
517 seg52->SetNPCBperSector(npcb5);
518 seg52->SetSlatXPositions(xpos5);
519 seg52->SetSlatYPosition(ypos5);
3f853d10 520 seg52->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending)
f9f7c205 521 seg52->SetDAnod(0.25);
522 seg52->SetPadDivision(nseg3);
523 MUON->SetSegmentationModel(chamber-1, 2, seg52);
524 MUON->SetResponseModel(chamber-1, response0);
681d067b 525 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
f5e13b7c 526
527 chamber=6;
f9f7c205 528 MUON->SetNsec(chamber-1,2);
4ec16dd1 529 AliMUONSegmentationSlat *seg61=new AliMUONSegmentationSlat(4);
a083207d 530 seg61->SetNSlats(9);
f9f7c205 531 seg61->SetShift(shift);
532 seg61->SetNPCBperSector(npcb5);
533 seg61->SetSlatXPositions(xpos5);
534 seg61->SetSlatYPosition(ypos5);
535 seg61->SetPadSize(10.,0.5);
536 seg61->SetDAnod(0.25);
537 seg61->SetPadDivision(nseg3);
538 MUON->SetSegmentationModel(chamber-1, 1, seg61);
539
4ec16dd1 540 AliMUONSegmentationSlatN *seg62=new AliMUONSegmentationSlatN(4);
a083207d 541 seg62->SetNSlats(9);
f9f7c205 542 seg62->SetShift(shift);
543 seg62->SetNPCBperSector(npcb5);
544 seg62->SetSlatXPositions(xpos5);
545 seg62->SetSlatYPosition(ypos5);
3f853d10 546 seg62->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending)
f9f7c205 547 seg62->SetDAnod(0.25);
548 seg62->SetPadDivision(nseg3);
549 MUON->SetSegmentationModel(chamber-1, 2, seg62);
550 MUON->SetResponseModel(chamber-1, response0);
681d067b 551 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
f5e13b7c 552
553//--------------------------------------------------------
554// Configuration for Chamber TC7/8 (Station 4) ----------
555//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
556
557 Int_t nseg4[4]={4, 4, 2, 1};
558
559 chamber=7;
560//^^^^^^^^^
561
562 MUON->SetNsec(chamber-1,2);
563//
4ec16dd1 564 AliMUONSegmentationSlat *seg71=new AliMUONSegmentationSlat(4);
a083207d 565 Int_t npcb7[44] = {0,0,0,3,
f9f7c205 566 0,0,2,2,
a083207d 567 0,0,3,2,
568 0,2,2,1,
569 0,2,2,1,
570 0,1,2,1,
571 0,2,2,1,
572 0,2,2,1,
573 0,0,3,2,
f9f7c205 574 0,0,2,2,
a083207d 575 0,0,0,3};
21a18f36 576 Float_t xpos7[11] = {2., 2., 2., 2., 2., 40.5, 2., 2., 2., 2., 2.};
f9f7c205 577 Float_t ypos7 = -(20.+5.*(40.-2.*shift));
f5e13b7c 578
f9f7c205 579 seg71->SetNSlats(11);
f5e13b7c 580 seg71->SetShift(shift);
581 seg71->SetNPCBperSector(npcb7);
f9f7c205 582 seg71->SetSlatXPositions(xpos7);
583 seg71->SetSlatYPosition(ypos7);
584
f5e13b7c 585 seg71->SetPadSize(10.,0.5);
586 seg71->SetDAnod(0.25);
587 seg71->SetPadDivision(nseg4);
588 MUON->SetSegmentationModel(chamber-1, 1, seg71);
589
4ec16dd1 590 AliMUONSegmentationSlatN *seg72=new AliMUONSegmentationSlatN(4);
f5e13b7c 591
592 MUON->SetSegmentationModel(chamber-1, 2, seg72);
f9f7c205 593 seg72->SetNSlats(11);
594 seg72->SetShift(shift);
f5e13b7c 595 seg72->SetNPCBperSector(npcb7);
f9f7c205 596 seg72->SetSlatXPositions(xpos7);
597 seg72->SetSlatYPosition(ypos7);
3f853d10 598 seg72->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending)
f5e13b7c 599 seg72->SetDAnod(0.25);
600 seg72->SetPadDivision(nseg4);
601
602 MUON->SetResponseModel(chamber-1, response0);
681d067b 603 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
f5e13b7c 604
605 chamber=8;
606//^^^^^^^^^
607 MUON->SetNsec(chamber-1,2);
608//
4ec16dd1 609 AliMUONSegmentationSlat *seg81=new AliMUONSegmentationSlat(4);
f5e13b7c 610
f9f7c205 611 seg81->SetNSlats(11);
f5e13b7c 612 seg81->SetShift(shift);
613 seg81->SetNPCBperSector(npcb7);
f9f7c205 614 seg81->SetSlatXPositions(xpos7);
615 seg81->SetSlatYPosition(ypos7);
f5e13b7c 616 seg81->SetPadSize(10.,0.5);
617 seg81->SetDAnod(0.25);
618 seg81->SetPadDivision(nseg4);
619 MUON->SetSegmentationModel(chamber-1, 1, seg81);
620
4ec16dd1 621 AliMUONSegmentationSlat *seg82=new AliMUONSegmentationSlatN(4);
f5e13b7c 622
623 MUON->SetSegmentationModel(chamber-1, 2, seg82);
f9f7c205 624 seg82->SetNSlats(11);
f5e13b7c 625 seg82->SetShift(shift);
626 seg82->SetNPCBperSector(npcb7);
f9f7c205 627 seg82->SetSlatXPositions(xpos7);
628 seg82->SetSlatYPosition(ypos7);
3f853d10 629 seg82->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending)
f5e13b7c 630 seg82->SetDAnod(0.25);
631 seg82->SetPadDivision(nseg4);
632
633 MUON->SetResponseModel(chamber-1, response0);
681d067b 634 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
f5e13b7c 635
636
637//--------------------------------------------------------
638// Configuration for Chamber TC9/10 (Station 5) ---------
639//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
640 chamber=9;
641//^^^^^^^^^
f9f7c205 642
f5e13b7c 643 MUON->SetNsec(chamber-1,2);
644//
4ec16dd1 645 AliMUONSegmentationSlat *seg91=new AliMUONSegmentationSlat(4);
a083207d 646 Int_t npcb9[52] = {0,0,0,3,
f9f7c205 647 0,0,0,4,
648 0,0,2,3,
649 0,0,3,3,
650 0,2,2,2,
a083207d 651 0,2,2,2,
652 0,1,2,2,
653 0,2,2,2,
f9f7c205 654 0,2,2,2,
655 0,0,3,3,
656 0,0,2,3,
657 0,0,0,4,
a083207d 658 0,0,0,3};
f9f7c205 659
21a18f36 660 Float_t xpos9[13] = {2., 2., 2., 2., 2., 2., 40.5, 2., 2., 2., 2., 2., 2.};
f9f7c205 661 Float_t ypos9 = -(20.+6.*(40.-2.*shift));
662
663 seg91->SetNSlats(13);
664 seg91->SetShift(shift);
665 seg91->SetNPCBperSector(npcb9);
666 seg91->SetSlatXPositions(xpos9);
667 seg91->SetSlatYPosition(ypos9);
f5e13b7c 668 seg91->SetPadSize(10.,0.5);
669 seg91->SetDAnod(0.25);
670 seg91->SetPadDivision(nseg4);
671 MUON->SetSegmentationModel(chamber-1, 1, seg91);
672
4ec16dd1 673 AliMUONSegmentationSlatN *seg92=new AliMUONSegmentationSlatN(4);
f5e13b7c 674
675 MUON->SetSegmentationModel(chamber-1, 2, seg92);
f9f7c205 676 seg92->SetNSlats(13);
677 seg92->SetShift(shift);
678 seg92->SetNPCBperSector(npcb9);
679 seg92->SetSlatXPositions(xpos9);
680 seg92->SetSlatYPosition(ypos9);
3f853d10 681 seg92->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending)
f9f7c205 682 seg92->SetDAnod(0.25);
683 seg92->SetPadDivision(nseg4);
f5e13b7c 684
685 MUON->SetResponseModel(chamber-1, response0);
681d067b 686 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
f5e13b7c 687
688 chamber=10;
689//^^^^^^^^^
690 MUON->SetNsec(chamber-1,2);
f9f7c205 691//
4ec16dd1 692 AliMUONSegmentationSlat *seg101=new AliMUONSegmentationSlat(4);
f9f7c205 693
694 seg101->SetNSlats(13);
695 seg101->SetShift(shift);
696 seg101->SetNPCBperSector(npcb9);
697 seg101->SetSlatXPositions(xpos9);
698 seg101->SetSlatYPosition(ypos9);
699 seg101->SetPadSize(10.,0.5);
f5e13b7c 700 seg101->SetDAnod(0.25);
f9f7c205 701 seg101->SetPadDivision(nseg4);
f5e13b7c 702 MUON->SetSegmentationModel(chamber-1, 1, seg101);
703
4ec16dd1 704 AliMUONSegmentationSlatN *seg102=new AliMUONSegmentationSlatN(4);
f9f7c205 705
f5e13b7c 706 MUON->SetSegmentationModel(chamber-1, 2, seg102);
f9f7c205 707 seg102->SetNSlats(13);
708 seg102->SetShift(shift);
709 seg102->SetNPCBperSector(npcb9);
710 seg102->SetSlatXPositions(xpos9);
711 seg102->SetSlatYPosition(ypos9);
3f853d10 712 seg102->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending)
f9f7c205 713 seg102->SetDAnod(0.25);
714 seg102->SetPadDivision(nseg4);
f5e13b7c 715
716 MUON->SetResponseModel(chamber-1, response0);
681d067b 717 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
f5e13b7c 718
719//--------------------------------------------------------
de7e3024 720// Configuration for Trigger Stations --------------------
f5e13b7c 721//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
9e8ff550 722// Cluster-size off
f5e13b7c 723 AliMUONResponseTrigger* responseTrigger0 = new AliMUONResponseTrigger;
9e8ff550 724// Cluster-size on
725// AliMUONResponseTriggerV1* responseTrigger0 = new AliMUONResponseTriggerV1;
f5e13b7c 726
727 chamber=11;
728 MUON->SetNsec(chamber-1,2);
729 AliMUONSegmentationTriggerX *seg111=new AliMUONSegmentationTriggerX;
730 MUON->SetSegmentationModel(chamber-1, 1, seg111);
731 AliMUONSegmentationTriggerY *seg112=new AliMUONSegmentationTriggerY;
732 MUON->SetSegmentationModel(chamber-1, 2, seg112);
733
734 MUON->SetResponseModel(chamber-1, responseTrigger0);
681d067b 735 MUON->Chamber(chamber-1).SetChargeCorrel(0); // same charge on cathodes
f5e13b7c 736
737
738 chamber=12;
739 MUON->SetNsec(chamber-1,2);
740 AliMUONSegmentationTriggerX *seg121=new AliMUONSegmentationTriggerX;
741 MUON->SetSegmentationModel(chamber-1, 1, seg121);
742 AliMUONSegmentationTriggerY *seg122=new AliMUONSegmentationTriggerY;
743 MUON->SetSegmentationModel(chamber-1, 2, seg122);
744
681d067b 745 MUON->SetResponseModel(chamber-1, responseTrigger0);
746 MUON->Chamber(chamber-1).SetChargeCorrel(0); // same charge on cathodes
747
3c084d9f 748 chamber=13;
f5e13b7c 749 MUON->SetNsec(chamber-1,2);
750 AliMUONSegmentationTriggerX *seg131=new AliMUONSegmentationTriggerX;
751 MUON->SetSegmentationModel(chamber-1, 1, seg131);
752 AliMUONSegmentationTriggerY *seg132=new AliMUONSegmentationTriggerY;
753 MUON->SetSegmentationModel(chamber-1, 2, seg132);
754 MUON->SetResponseModel(chamber-1, responseTrigger0);
681d067b 755 MUON->Chamber(chamber-1).SetChargeCorrel(0); // same charge on cathodes
f5e13b7c 756
757 chamber=14;
758 MUON->SetNsec(chamber-1,2);
759 AliMUONSegmentationTriggerX *seg141=new AliMUONSegmentationTriggerX;
760 MUON->SetSegmentationModel(chamber-1, 1, seg141);
761 AliMUONSegmentationTriggerY *seg142=new AliMUONSegmentationTriggerY;
762 MUON->SetSegmentationModel(chamber-1, 2, seg142);
763
764 MUON->SetResponseModel(chamber-1, responseTrigger0);
681d067b 765 MUON->Chamber(chamber-1).SetChargeCorrel(0); // same charge on cathodes
f5e13b7c 766}
f5e13b7c 767}
768
769
770
771
772