1 enum gentype_t {hijing, gun, box, pythia, param, cocktail, fluka, halo, ntuple, scan, doublescan, hijing_g};
3 gentype_t gentype=param;
9 new AliGeant3("C++ Interface to Geant3");
11 //=======================================================================
12 // Create the output file
14 TFile *rootfile = new TFile("galice.root","recreate");
15 rootfile->SetCompressionLevel(2);
16 TGeant3 *geant3 = (TGeant3*)gMC;
17 AliDecayer* decayer = new AliDecayerPythia();
18 decayer->SetForceDecay(kAll);
20 gMC->SetExternalDecayer(decayer);
22 //=======================================================================
23 // ******* GEANT STEERING parameters FOR ALICE SIMULATION *******
24 geant3->SetTRIG(1); //Number of events to be processed
25 geant3->SetSWIT(4,100);
26 geant3->SetDEBU(0,0,1);
37 geant3->SetHADR(4); //Select pure GEANH (HADR 1) or GEANH/NUCRIN (HADR 3)
41 geant3->SetAUTO(1); //Select automatic STMIN etc... calc. (AUTO 1) or manual (AUTO 0)
42 geant3->SetABAN(1); //Restore 3.16 behaviour for abandoned tracks
43 geant3->SetOPTI(2); //Select optimisation level for GEANT geometry searches (0,1,2)
44 Float_t cut = 1.e-4; // 100MeV cut by default
45 Float_t tofmax = 1.e10;
46 // GAM ELEC NHAD CHAD MUON EBREM MUHAB EDEL MUDEL MUPA TOFMAX
47 geant3->SetCUTS(1.e-4, 1.e-4, 1.e-3, 1.e-4, 1.e-3, cut, cut, cut, cut, cut, 1.e-5);
49 gAlice->TrackingLimits(700, 2000);
52 //=======================================================================
53 // ************* STEERING parameters FOR ALICE SIMULATION **************
54 // --- Specify event type to be tracked through the ALICE setup
55 // --- All positions are in cm, angles in degrees, and P and E in GeV
60 //*********************************************
61 // Example for Fixed Particle Gun *
62 //*********************************************
63 AliGenFixed *gener = new AliGenFixed(ntracks);
64 gener->SetMomentum(10);
65 gener->SetPhiRange(0);
66 gener->SetThetaRange(0.);
67 gener->SetOrigin(30,30,1200); //vertex position
68 gener->SetPart(kProton); //GEANT particle type
71 //*********************************************
72 // Example for Moving Particle Gun *
73 //*********************************************
74 AliGenBox *gener = new AliGenBox(ntracks);
75 gener->SetMomentumRange(33,34);
76 gener->SetPhiRange(-180,180);
77 gener->SetThetaRange(2., 9.);
78 gener->SetOrigin(0,0,0);
79 gener->SetVertexSmear(kPerTrack);
81 gener->SetSigma(0, 0, 0); // Sigma in (X,Y,Z) (cm) on IP position
82 gener->SetPart(kMuonPlus); // GEANT particle type
85 //*********************************************
86 // Scanning on a grid *
87 //*********************************************
88 AliGenScan *gener = new AliGenScan(-1);
89 gener->SetMomentumRange(20,20);
90 gener->SetPhiRange(90,90);
91 gener->SetThetaRange(0,0);
93 gener->SetSigma(1,1,0); //Sigma in (X,Y,Z) (cm) on IP position
94 gener->SetPart(kMuonMinus);
95 gener->SetRange(100, -300., 300., 100, -300., 300., 1, 900, 900);
98 //*********************************************
99 // Scanning on a grid *
100 //*********************************************
101 AliGenDoubleScan *gener = new AliGenDoubleScan(-1);
102 gener->SetMomentumRange(4,4);
103 gener->SetPhiRange(0,360);
104 gener->SetThetaRange(0,0);
106 gener->SetSigma(3,3,0); //Sigma in (X,Y,Z) (cm) on IP position
108 gener->SetRange(20, -100, 100, 20, -100, 100, 1, 500, 500);
109 gener->SetDistance(1);
113 AliGenHIJINGpara *gener = new AliGenHIJINGpara(ntracks);
114 gener->SetMomentumRange(0,999);
115 gener->SetPtRange(0,999);
116 gener->SetPhiRange(0,360);
117 // gener->SetThetaRange(0.104,33.52);
118 gener->SetThetaRange(0.104,90.0);
119 // gener->SetThetaRange(2.,9.);
120 gener->SetOrigin(0., 0.0 ,0); // vertex position
121 gener->SetSigma(0,0,5.3); // Sigma in (X,Y,Z) (cm) on IP position
122 gener->SetVertexSmear(kPerTrack);
123 gener->SetTrackingFlag(0);
126 AliGenHijing *gener = new AliGenHijing(-1);
128 gener->SetEnergyCMS(5600.);
129 gener->SetReferenceFrame("CMS");
130 gener->SetProjectile("A", 208, 82);
131 gener->SetTarget ("A", 208, 82);
132 gener->SetImpactParameterRange(0, 5.);
133 gener->SetEvaluate(0);
134 gener->KeepFullEvent();
135 gener->SetJetQuenching(1);
136 gener->SetShadowing(1);
137 gener->SetDecaysOff(1);
138 gener->SetTrigger(0);
139 gener->SetSelectAll(1);
140 gener->SetMomentumRange(0,9999);
141 gener->SetPhiRange(-180,180);
142 gener->SetThetaRange(0.104,90.0);
143 // gener->SetFlavor(4);
144 gener->SetOrigin(0., 0.0 ,0);
145 gener->SetSigma(0,0,5.3);
146 gener->SetVertexSmear(kPerEvent);
147 gener->SetTrackingFlag(0);
152 //********************************************
153 // Example for Charm Production with Pythia *
154 //********************************************
155 AliGenPythia *gener = new AliGenPythia(ntracks);
156 gener->SetMomentumRange(0,999);
157 gener->SetPhiRange(0,360);
158 gener->SetThetaRange(0., 180.);
159 gener->SetYRange(-10,10);
160 gener->SetPtRange(0,100);
161 //gener->SetOrigin(0,0,0); // vertex position
162 //gener->SetVertexSmear(kPerEvent);
163 //gener->SetSigma(0,0,5.6); // Sigma in (X,Y,Z) (cm) on IP
165 gener->SetStrucFunc(kDO_Set_1);
166 gener->SetProcess(kPyCharm);
167 gener->SetEnergyCMS(5500.);
170 AliGenPythia *gener = new AliGenPythia(ntracks);
171 gener->SetMomentumRange(0,999);
172 gener->SetPhiRange(0,360);
173 gener->SetThetaRange(0., 180.);
174 gener->SetYRange(-10,10);
175 gener->SetPtRange(0,100);
176 gener->SetOrigin(0,0,0); // vertex position
177 gener->SetVertexSmear(kPerEvent);
178 gener->SetSigma(0,0,5.6); // Sigma in (X,Y,Z) (cm) on IP position
179 gener->SetStrucFunc(DO_Set_1);
180 gener->SetProcess(charm);
181 gener->SetForceDecay(dimuon);
182 gener->SetEnergyCMS(5500.);
183 gener->SetTrackingFlag(0);
188 //*******************************************************
189 // Example for J/psi or Upsilon Production from Parameterisation *
190 //*******************************************************
191 AliGenParam *gener = new AliGenParam(ntracks, AliGenMUONlib::kUpsilon);
192 gener->SetMomentumRange(0,999);
193 gener->SetPhiRange(-180, 180);
194 gener->SetYRange(2.5,4);
195 gener->SetCutOnChild(1);
196 gener->SetChildThetaRange(2.0,9);
197 gener->SetOrigin(0,0,0); //vertex position
198 gener->SetSigma(0,0,0); //Sigma in (X,Y,Z) (cm) on IP position
199 gener->SetForceDecay(kDiMuon);
200 gener->SetTrackingFlag(1);
205 //*******************************************************
206 // Example for a FLUKA Boundary Source *
207 //*******************************************************
208 AliGenFLUKAsource *gener = new AliGenFLUKAsource(-1);
209 gener->AddFile("$(ALICE_ROOT)/data/alice.root");
211 gener->SetPartFlag(7);
212 gener->SetMomentumRange(0,999);
213 gener->SetPhiRange(0,360);
214 gener->SetThetaRange(0., 180.);
215 gener->SetAgeMax(1.e-5);
218 gener->SetFraction(1.);
222 //*******************************************************
223 // Example for reading from a external file *
224 //*******************************************************
225 AliGenExtFileCH *gener = new AliGenExtFileCH(-1);
226 gener->SetFileName("$(ALICE_ROOT)/data/pbpb.root");
227 gener->SetThetaRange(0.104,90.);
228 gener->SetOrigin(0,0,0); //vertex position
229 gener->SetSigma(0,0,5.6); //Sigma in (X,Y,Z) (cm) on IP position
230 gener->SetVertexSmear(kPerTrack);
231 gener->SetTrackingFlag(1);
235 //*******************************************************
236 // Example for Tunnel Halo Source *
237 //*******************************************************
238 AliGenHalo *gener = new AliGenHalo(ntracks);
239 gener->SetFileName("/h1/morsch/marsip/marsip5.mu");
243 //*******************************************************
244 // Example for a Cocktail *
245 //*******************************************************
246 AliGenCocktail *gener = new AliGenCocktail();
247 gener->SetMomentumRange(0,10);
248 gener->SetPhiRange(0,360);
249 gener->SetThetaRange(2.,9.);
250 gener->SetTrackingFlag(0);
251 AliGenParam *Pi0 = new AliGenParam(100, new AliGenPMDlib(), AliGenPMDlib::kPion);
252 AliGenParam *Eta = new AliGenParam( 10, new AliGenPMDlib(), AliGenPMDlib::kEta);
253 gener->AddGenerator(Pi0, "neutral pions" , 1.);
254 gener->AddGenerator(Eta, "neutral etas" , 1.);
260 gAlice->SetField(2,1); //Specify maximum magnetic field in Tesla (neg. ==> default field)
273 //=================== Alice BODY parameters =============================
274 AliBODY *BODY = new AliBODY("BODY","Alice envelop");
277 //=================== FRAME parameters ============================
278 AliFRAME *FRAME = new AliFRAMEv0("FRAME","Space Frame");
282 //=================== MAG parameters ============================
283 // --- Start with Magnet since detector layouts may be depending ---
284 // --- on the selected Magnet dimensions ---
285 AliMAG *MAG = new AliMAG("MAG","Magnet");
289 //=================== ABSO parameters ============================
290 AliABSO *ABSO = new AliABSOv0("ABSO","Muon Absorber");
294 //=================== DIPO parameters ============================
296 AliDIPO *DIPO = new AliDIPOv2("DIPO","Dipole version 2");
300 //=================== HALL parameters ============================
301 AliHALL *HALL = new AliHALL("HALL","Alice Hall");
307 //=================== SHIL parameters ============================
308 // AliSHIL *SHIL = new AliSAROV("SHIL","Shielding");
309 AliSHILvF *SHIL = new AliSHILvF("SHIL","Shielding");
311 // AliSAROV *SHIL = new AliSAROV("SHIL","Shielding");
316 //=================== PIPE parameters ============================
317 AliPIPE *PIPE = new AliPIPEv0("PIPE","Beam Pipe");
322 //=================== FMD parameters ============================
323 AliFMD *FMD = new AliFMDv1("FMD","normal FMD");
327 //=================== MUON parameters ===========================
329 AliMUON *MUON = new AliMUONv1("MUON","normal MUON");
331 MUON->SetMaxStepGas(0.1);
332 MUON->SetMaxStepAlu(0.1);
336 // First define the number of planes that are segmented (1 or 2) by a call
338 // Then chose for each chamber (chamber plane) the segmentation
339 // and response model.
340 // They should be equal for the two chambers of each station. In a future
341 // version this will be enforced.
346 // Default response: 5 mm of gas
347 AliMUONResponseV0* response0 = new AliMUONResponseV0;
348 response0->SetSqrtKx3AndDeriveKx2Kx4(0.7131); // sqrt(0.5085)
349 response0->SetSqrtKy3AndDeriveKy2Ky4(0.7642); // sqrt(0.5840)
350 response0->SetPitch(0.25); // anode-cathode distance
351 response0->SetSigmaIntegration(10.);
352 response0->SetChargeSlope(50);
353 response0->SetChargeSpread(0.18, 0.18);
354 response0->SetMaxAdc(4096);
355 response0->SetZeroSuppression(6);
357 // Response for 4 mm of gas (station 1)
358 // automatic consistency with width of sensitive medium in CreateGeometry ????
359 AliMUONResponseV0* responseSt1 = new AliMUONResponseV0;
360 // Mathieson parameters from L.Kharmandarian's thesis, page 190
361 responseSt1->SetSqrtKx3AndDeriveKx2Kx4(0.7000); // sqrt(0.4900)
362 responseSt1->SetSqrtKy3AndDeriveKy2Ky4(0.7550); // sqrt(0.5700)
363 responseSt1->SetPitch(0.20); // anode-cathode distance
364 responseSt1->SetSigmaIntegration(10.);
365 // ChargeSlope larger to compensate for the smaller anode-cathode distance
366 // and keep the same most probable ADC channel for mip's
367 responseSt1->SetChargeSlope(62.5);
368 // assumed proportionality to anode-cathode distance for ChargeSpread
369 responseSt1->SetChargeSpread(0.144, 0.144);
370 responseSt1->SetMaxAdc(4096);
371 responseSt1->SetZeroSuppression(6);
373 //--------------------------------------------------------
374 // Configuration for Chamber TC1/2 (Station 1) ----------
375 //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
376 Float_t rseg1[4]={17.5, 55.2, 71.3, 95.5};
377 Int_t nseg1[4]={4, 4, 2, 1};
381 MUON->SetNsec(chamber-1,2);
383 AliMUONSegmentationV01 *seg11=new AliMUONSegmentationV01(4);
385 seg11->SetSegRadii(rseg1);
386 seg11->SetPadSize(2.4, 0.4); // smaller pad size
387 seg11->SetDAnod(0.20); // smaller distance between anode wires
388 seg11->SetPadDivision(nseg1);
390 MUON->SetSegmentationModel(chamber-1, 1, seg11);
392 AliMUONSegmentationV02 *seg12=new AliMUONSegmentationV02(4);
393 seg12->SetSegRadii(rseg1);
394 seg12->SetPadSize(0.6, 1.6); // smaller pad size
395 seg12->SetDAnod(0.20); // smaller distance between anode wires
396 seg12->SetPadDivision(nseg1);
398 MUON->SetSegmentationModel(chamber-1, 2, seg12);
400 MUON->SetResponseModel(chamber-1, responseSt1); // special response
401 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
406 MUON->SetNsec(chamber-1,2);
408 AliMUONSegmentationV01 *seg21=new AliMUONSegmentationV01(4);
409 seg21->SetSegRadii(rseg1);
410 seg21->SetPadSize(2.4, 0.4); // smaller pad size
411 seg21->SetDAnod(0.20); // smaller distance between anode wires
412 seg21->SetPadDivision(nseg1);
413 MUON->SetSegmentationModel(chamber-1, 1, seg21);
415 AliMUONSegmentationV02 *seg22=new AliMUONSegmentationV02(4);
416 seg22->SetSegRadii(rseg1);
417 seg22->SetPadSize(0.6, 1.6); // smaller pad size
418 seg22->SetDAnod(0.20); // smaller distance between anode wires
419 seg22->SetPadDivision(nseg1);
420 MUON->SetSegmentationModel(chamber-1, 2, seg22);
422 MUON->SetResponseModel(chamber-1, responseSt1); // special response
423 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
426 //--------------------------------------------------------
427 // Configuration for Chamber TC3/4 (Station 2) -----------
428 ///^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
429 // Float_t rseg2[4]={23.5, 87.7, 122.4, 122.5};
430 Float_t rseg2[4]={23.5, 47.1, 87.7, 122.5};
431 Int_t nseg2[4]={4, 4, 2, 1};
435 MUON->SetNsec(chamber-1,2);
437 AliMUONSegmentationV01 *seg31=new AliMUONSegmentationV01(4);
438 seg31->SetSegRadii(rseg2);
439 seg31->SetPadSize(3.0, 0.5);
440 seg31->SetDAnod(3.0/3./4);
441 seg31->SetPadDivision(nseg2);
442 MUON->SetSegmentationModel(chamber-1, 1, seg31);
444 AliMUONSegmentationV02 *seg32=new AliMUONSegmentationV02(4);
445 seg32->SetSegRadii(rseg2);
446 seg32->SetPadSize(0.75, 2.0);
447 seg32->SetPadDivision(nseg2);
448 seg32->SetDAnod(3.0/3./4);
450 MUON->SetSegmentationModel(chamber-1, 2, seg32);
452 MUON->SetResponseModel(chamber-1, response0);
453 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
458 MUON->SetNsec(chamber-1,2);
460 AliMUONSegmentationV01 *seg41=new AliMUONSegmentationV01(4);
461 seg41->SetSegRadii(rseg2);
462 seg41->SetPadSize(3.0, 0.5);
463 seg41->SetDAnod(3.0/3./4);
464 seg41->SetPadDivision(nseg2);
465 MUON->SetSegmentationModel(chamber-1, 1, seg41);
467 AliMUONSegmentationV02 *seg42=new AliMUONSegmentationV02(4);
468 seg42->SetSegRadii(rseg2);
469 seg42->SetPadSize(0.75, 2.0);
470 seg42->SetPadDivision(nseg2);
471 seg42->SetDAnod(3.0/3./4);
473 MUON->SetSegmentationModel(chamber-1, 2, seg42);
475 MUON->SetResponseModel(chamber-1, response0);
476 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
479 //--------------------------------------------------------
480 // Configuration for Chamber TC5/6 (Station 3) ----------
481 //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
482 Int_t nseg3[4]={4, 4, 2, 1};
483 Int_t npcb5[36] = {0,0,2,0,
493 Float_t shift = 1.5/2.;
494 Float_t xpos5[9] = {2., 2., 2., 2.,33., 2., 2., 2., 2.};
495 Float_t ypos5 = -(20.+4.*(40.-2.*shift));
498 MUON->SetNsec(chamber-1,2);
499 AliMUONSegmentationSlat *seg51=new AliMUONSegmentationSlat(4);
501 seg51->SetShift(shift);
502 seg51->SetNPCBperSector(npcb5);
503 seg51->SetSlatXPositions(xpos5);
504 seg51->SetSlatYPosition(ypos5);
505 seg51->SetPadSize(10.,0.5);
506 seg51->SetDAnod(0.25);
507 seg51->SetPadDivision(nseg3);
508 MUON->SetSegmentationModel(chamber-1, 1, seg51);
510 AliMUONSegmentationSlatN *seg52=new AliMUONSegmentationSlatN(4);
512 seg52->SetShift(shift);
513 seg52->SetNPCBperSector(npcb5);
514 seg52->SetSlatXPositions(xpos5);
515 seg52->SetSlatYPosition(ypos5);
516 seg52->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending)
517 seg52->SetDAnod(0.25);
518 seg52->SetPadDivision(nseg3);
519 MUON->SetSegmentationModel(chamber-1, 2, seg52);
520 MUON->SetResponseModel(chamber-1, response0);
521 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
524 MUON->SetNsec(chamber-1,2);
525 AliMUONSegmentationSlat *seg61=new AliMUONSegmentationSlat(4);
527 seg61->SetShift(shift);
528 seg61->SetNPCBperSector(npcb5);
529 seg61->SetSlatXPositions(xpos5);
530 seg61->SetSlatYPosition(ypos5);
531 seg61->SetPadSize(10.,0.5);
532 seg61->SetDAnod(0.25);
533 seg61->SetPadDivision(nseg3);
534 MUON->SetSegmentationModel(chamber-1, 1, seg61);
536 AliMUONSegmentationSlatN *seg62=new AliMUONSegmentationSlatN(4);
538 seg62->SetShift(shift);
539 seg62->SetNPCBperSector(npcb5);
540 seg62->SetSlatXPositions(xpos5);
541 seg62->SetSlatYPosition(ypos5);
542 seg62->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending)
543 seg62->SetDAnod(0.25);
544 seg62->SetPadDivision(nseg3);
545 MUON->SetSegmentationModel(chamber-1, 2, seg62);
546 MUON->SetResponseModel(chamber-1, response0);
547 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
549 //--------------------------------------------------------
550 // Configuration for Chamber TC7/8 (Station 4) ----------
551 //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
553 Int_t nseg4[4]={4, 4, 2, 1};
558 MUON->SetNsec(chamber-1,2);
560 AliMUONSegmentationSlat *seg71=new AliMUONSegmentationSlat(4);
561 Int_t npcb7[44] = {0,0,0,3,
572 Float_t xpos7[11] = {2., 2., 2., 2., 2., 40.5, 2., 2., 2., 2., 2.};
573 Float_t ypos7 = -(20.+5.*(40.-2.*shift));
575 seg71->SetNSlats(11);
576 seg71->SetShift(shift);
577 seg71->SetNPCBperSector(npcb7);
578 seg71->SetSlatXPositions(xpos7);
579 seg71->SetSlatYPosition(ypos7);
581 seg71->SetPadSize(10.,0.5);
582 seg71->SetDAnod(0.25);
583 seg71->SetPadDivision(nseg4);
584 MUON->SetSegmentationModel(chamber-1, 1, seg71);
586 AliMUONSegmentationSlatN *seg72=new AliMUONSegmentationSlatN(4);
588 MUON->SetSegmentationModel(chamber-1, 2, seg72);
589 seg72->SetNSlats(11);
590 seg72->SetShift(shift);
591 seg72->SetNPCBperSector(npcb7);
592 seg72->SetSlatXPositions(xpos7);
593 seg72->SetSlatYPosition(ypos7);
594 seg72->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending)
595 seg72->SetDAnod(0.25);
596 seg72->SetPadDivision(nseg4);
598 MUON->SetResponseModel(chamber-1, response0);
599 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
603 MUON->SetNsec(chamber-1,2);
605 AliMUONSegmentationSlat *seg81=new AliMUONSegmentationSlat(4);
607 seg81->SetNSlats(11);
608 seg81->SetShift(shift);
609 seg81->SetNPCBperSector(npcb7);
610 seg81->SetSlatXPositions(xpos7);
611 seg81->SetSlatYPosition(ypos7);
612 seg81->SetPadSize(10.,0.5);
613 seg81->SetDAnod(0.25);
614 seg81->SetPadDivision(nseg4);
615 MUON->SetSegmentationModel(chamber-1, 1, seg81);
617 AliMUONSegmentationSlat *seg82=new AliMUONSegmentationSlatN(4);
619 MUON->SetSegmentationModel(chamber-1, 2, seg82);
620 seg82->SetNSlats(11);
621 seg82->SetShift(shift);
622 seg82->SetNPCBperSector(npcb7);
623 seg82->SetSlatXPositions(xpos7);
624 seg82->SetSlatYPosition(ypos7);
625 seg82->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending)
626 seg82->SetDAnod(0.25);
627 seg82->SetPadDivision(nseg4);
629 MUON->SetResponseModel(chamber-1, response0);
630 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
633 //--------------------------------------------------------
634 // Configuration for Chamber TC9/10 (Station 5) ---------
635 //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
639 MUON->SetNsec(chamber-1,2);
641 AliMUONSegmentationSlat *seg91=new AliMUONSegmentationSlat(4);
642 Int_t npcb9[52] = {0,0,0,3,
656 Float_t xpos9[13] = {2., 2., 2., 2., 2., 2., 40.5, 2., 2., 2., 2., 2., 2.};
657 Float_t ypos9 = -(20.+6.*(40.-2.*shift));
659 seg91->SetNSlats(13);
660 seg91->SetShift(shift);
661 seg91->SetNPCBperSector(npcb9);
662 seg91->SetSlatXPositions(xpos9);
663 seg91->SetSlatYPosition(ypos9);
664 seg91->SetPadSize(10.,0.5);
665 seg91->SetDAnod(0.25);
666 seg91->SetPadDivision(nseg4);
667 MUON->SetSegmentationModel(chamber-1, 1, seg91);
669 AliMUONSegmentationSlatN *seg92=new AliMUONSegmentationSlatN(4);
671 MUON->SetSegmentationModel(chamber-1, 2, seg92);
672 seg92->SetNSlats(13);
673 seg92->SetShift(shift);
674 seg92->SetNPCBperSector(npcb9);
675 seg92->SetSlatXPositions(xpos9);
676 seg92->SetSlatYPosition(ypos9);
677 seg92->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending)
678 seg92->SetDAnod(0.25);
679 seg92->SetPadDivision(nseg4);
681 MUON->SetResponseModel(chamber-1, response0);
682 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
686 MUON->SetNsec(chamber-1,2);
688 AliMUONSegmentationSlat *seg101=new AliMUONSegmentationSlat(4);
690 seg101->SetNSlats(13);
691 seg101->SetShift(shift);
692 seg101->SetNPCBperSector(npcb9);
693 seg101->SetSlatXPositions(xpos9);
694 seg101->SetSlatYPosition(ypos9);
695 seg101->SetPadSize(10.,0.5);
696 seg101->SetDAnod(0.25);
697 seg101->SetPadDivision(nseg4);
698 MUON->SetSegmentationModel(chamber-1, 1, seg101);
700 AliMUONSegmentationSlatN *seg102=new AliMUONSegmentationSlatN(4);
702 MUON->SetSegmentationModel(chamber-1, 2, seg102);
703 seg102->SetNSlats(13);
704 seg102->SetShift(shift);
705 seg102->SetNPCBperSector(npcb9);
706 seg102->SetSlatXPositions(xpos9);
707 seg102->SetSlatYPosition(ypos9);
708 seg102->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending)
709 seg102->SetDAnod(0.25);
710 seg102->SetPadDivision(nseg4);
712 MUON->SetResponseModel(chamber-1, response0);
713 MUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread
715 //--------------------------------------------------------
716 // Configuration for Trigger Stations --------------------
717 //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
719 AliMUONResponseTrigger* responseTrigger0 = new AliMUONResponseTrigger;
721 // AliMUONResponseTriggerV1* responseTrigger0 = new AliMUONResponseTriggerV1;
724 MUON->SetNsec(chamber-1,2);
725 AliMUONSegmentationTriggerX *seg111=new AliMUONSegmentationTriggerX;
726 MUON->SetSegmentationModel(chamber-1, 1, seg111);
727 AliMUONSegmentationTriggerY *seg112=new AliMUONSegmentationTriggerY;
728 MUON->SetSegmentationModel(chamber-1, 2, seg112);
730 MUON->SetResponseModel(chamber-1, responseTrigger0);
731 MUON->Chamber(chamber-1).SetChargeCorrel(0); // same charge on cathodes
735 MUON->SetNsec(chamber-1,2);
736 AliMUONSegmentationTriggerX *seg121=new AliMUONSegmentationTriggerX;
737 MUON->SetSegmentationModel(chamber-1, 1, seg121);
738 AliMUONSegmentationTriggerY *seg122=new AliMUONSegmentationTriggerY;
739 MUON->SetSegmentationModel(chamber-1, 2, seg122);
741 MUON->SetResponseModel(chamber-1, responseTrigger0);
742 MUON->Chamber(chamber-1).SetChargeCorrel(0); // same charge on cathodes
745 MUON->SetNsec(chamber-1,2);
746 AliMUONSegmentationTriggerX *seg131=new AliMUONSegmentationTriggerX;
747 MUON->SetSegmentationModel(chamber-1, 1, seg131);
748 AliMUONSegmentationTriggerY *seg132=new AliMUONSegmentationTriggerY;
749 MUON->SetSegmentationModel(chamber-1, 2, seg132);
750 MUON->SetResponseModel(chamber-1, responseTrigger0);
751 MUON->Chamber(chamber-1).SetChargeCorrel(0); // same charge on cathodes
754 MUON->SetNsec(chamber-1,2);
755 AliMUONSegmentationTriggerX *seg141=new AliMUONSegmentationTriggerX;
756 MUON->SetSegmentationModel(chamber-1, 1, seg141);
757 AliMUONSegmentationTriggerY *seg142=new AliMUONSegmentationTriggerY;
758 MUON->SetSegmentationModel(chamber-1, 2, seg142);
760 MUON->SetResponseModel(chamber-1, responseTrigger0);
761 MUON->Chamber(chamber-1).SetChargeCorrel(0); // same charge on cathodes