- Float_t rout;
- Float_t z;
- Float_t h1, h2, t0, t1, t2;
- Float_t tt;
- Float_t par[3], rin;
- const Float_t v1 = 42.0;
- const Float_t v2 = 4.5;
- const Float_t v3 = 5.62;
- const Float_t v4 = 16.0;
-
- Int_t *idtmed = fIdtmed->GetArray()-899;
-
- // ********************************************************
- // DEFINE RIGHT DISK#3 OF FMD
- // ********************************************************
-
- // Define parameters
-
- rin = 4.5;
- rout = 10.5;
- z = 85.;
- tt = 2.5;
- h1 = TMath::Sqrt(rout * rout + v1/ (tt * kPI)) - rout;
- h2 = .4;
- t0 = v2/ (h1 * kPI * (h1 + rout * 2.));
- t1 = v3/ (h2 * kPI * (h2 + (h1 + rout) * 2.));
- t2 = v4/ (h2 * kPI * (h2 + (h1 + rout) * 2.));
-
- // *******Inner slice***********
- // Inner steel wall
- par[0] = rin - .02;
- par[1] = rin;
- par[2] = 1.5;
- gMC->Gsvolu("IWR3", "TUBE", idtmed[899], par, 3);
- gMC->Gspos("IWR3", 1, "ALIC", 0., 0., z + 1.5, 0, "ONLY");
- // Front steel wall
- par[0] = rin;
- par[1] = rout;
- par[2] = .01;
- gMC->Gsvolu("FWR3", "TUBE", idtmed[899], par, 3);
- gMC->Gspos("FWR3", 1, "ALIC", 0., 0., z + .01, 0, "ONLY");
- // Rear steel wall
- gMC->Gsvolu("RWR3", "TUBE", idtmed[899], par, 3);
- gMC->Gspos("RWR3", 1, "ALIC", 0., 0., z + 2.99, 0, "ONLY");
- // MCP
- par[0] = rin;
- par[1] = rout;
- par[2] = .07;
- gMC->Gsvolu("MPR3", "TUBE", idtmed[900], par, 3);
- gMC->Gspos("MPR3", 1, "ALIC", 0., 0., z + 1.57, 0, "ONLY");
- // Silicon plate
- par[0] = rin;
- par[1] = rout;
- par[2] = .019;
- gMC->Gsvolu("SPR3", "TUBE", idtmed[901], par, 3);
- gMC->Gspos("SPR3", 1, "ALIC", 0., 0., z + 1.719, 0, "ONLY");
- // Summator plate
- par[0] = rin;
- par[1] = rout;
- par[2] = .01;
- gMC->Gsvolu("SMR3", "TUBE", idtmed[902], par, 3);
- gMC->Gspos("SMR3", 1, "ALIC", 0., 0., z + 2.01, 0, "ONLY");
- // *******Outer slice *******
- // Ceramic plate
- par[0] = rout;
- par[1] = rout + h1;
- par[2] = 1.25;
- gMC->Gsvolu("CPR3", "TUBE", idtmed[902], par, 3);
- gMC->Gspos("CPR3", 1, "ALIC", 0., 0., z + 1.5, 0, "ONLY");
- // Covar spring
- par[0] = rout;
- par[1] = rout + h1;
- par[2] = t0 / 2.;
- gMC->Gsvolu("C1R3", "TUBE", idtmed[903], par, 3);
- gMC->Gspos("C1R3", 1, "ALIC", 0., 0., z + .25 - t0 / 2., 0, "ONLY");
- gMC->Gsvolu("C2R3", "TUBE", idtmed[903], par, 3);
- gMC->Gspos("C2R3", 1, "ALIC", 0., 0., z + 2.75 + t0 / 2., 0, "ONLY");
- // Getter camera
- par[0] = rout + h1;
- par[1] = rout + h1 + h2;
- par[2] = t1 / 2.;
- gMC->Gsvolu("GKR3", "TUBE", idtmed[903], par, 3);
- gMC->Gspos("GKR3", 1, "ALIC", 0., 0., z + .25 + t1 / 2., 0, "ONLY");
- // Ceramic slice
- par[0] = rout + h1;
- par[1] = rout + h1 + h2;
- par[2] = t2 / 2.;
- gMC->Gsvolu("SCR3", "TUBE", idtmed[902], par, 3);
- gMC->Gspos("SCR3", 1, "ALIC", 0., 0., z + .25 + t1 + t2 / 2., 0, "ONLY");
- // ******Electronic slice *******
- // Silicon ring
- par[0] = rout + h1 + h2;
- par[1] = rout + h1 + h2 + 5.;
- par[2] = .025;
- gMC->Gsvolu("SER3", "TUBE", idtmed[901], par, 3);
- gMC->Gspos("SER3", 1, "ALIC", 0., 0., z + 1.57 - .025, 0, "ONLY");
- // Ceramic ring
- par[0] = rout + h1 + h2;
- par[1] = rout + h1 + h2 + 5.;
- par[2] = .025;
- gMC->Gsvolu("CER3", "TUBE", idtmed[902], par, 3);
- gMC->Gspos("CER3", 1, "ALIC", 0., 0., z + 1.58 + .025, 0, "ONLY");
- // ***********************************************************
- // DEFINE LEFT DISK#3 OF FMD
- // ***********************************************************
-
- // Define parameters
-
- rin = 4.5;
- rout = 10.5;
- z = -85.;
- tt = 2.5;
- h1 = TMath::Sqrt(rout * rout + v1/ (tt * kPI)) - rout;
- h2 = .4;
- t0 = v2/ (h1 * kPI * (h1 + rout * 2.));
- t1 = v3/ (h2 * kPI * (h2 + (h1 + rout) * 2.));
- t2 = v4/ (h2 * kPI * (h2 + (h1 + rout) * 2.));
-
- // *******Inner slice***********
- // Inner steel wall
- par[0] = rin - .02;
- par[1] = rin;
- par[2] = 1.5;
- gMC->Gsvolu("IWL3", "TUBE", idtmed[899], par, 3);
- gMC->Gspos("IWL3", 1, "ALIC", 0., 0., z - 1.5, 0, "ONLY");
- // Front steel wall
- par[0] = rin;
- par[1] = rout;
- par[2] = .01;
- gMC->Gsvolu("FWL3", "TUBE", idtmed[899], par, 3);
- gMC->Gspos("FWL3", 1, "ALIC", 0., 0., z - .01, 0, "ONLY");
- // Rear steel wall
- gMC->Gsvolu("RWL3", "TUBE", idtmed[899], par, 3);
- gMC->Gspos("RWL3", 1, "ALIC", 0., 0., z - 2.99, 0, "ONLY");
- // MCP
- par[0] = rin;
- par[1] = rout;
- par[2] = .07;
- gMC->Gsvolu("MPL3", "TUBE", idtmed[900], par, 3);
- gMC->Gspos("MPL3", 1, "ALIC", 0., 0., z - 1.57, 0, "ONLY");
- // Silicon plate
- par[0] = rin;
- par[1] = rout;
- par[2] = .019;
- gMC->Gsvolu("SPL3", "TUBE", idtmed[901], par, 3);
- gMC->Gspos("SPL3", 1, "ALIC", 0., 0., z - 1.719, 0, "ONLY");
- // Summator plate
- par[0] = rin;
- par[1] = rout;
- par[2] = .01;
- gMC->Gsvolu("SML3", "TUBE", idtmed[902], par, 3);
- gMC->Gspos("SML3", 1, "ALIC", 0., 0., z - 2.01, 0, "ONLY");
- // *******Outer slice *******
- // Ceramic plate
- par[0] = rout;
- par[1] = rout + h1;
- par[2] = 1.25;
- gMC->Gsvolu("CPL3", "TUBE", idtmed[902], par, 3);
- gMC->Gspos("CPL3", 1, "ALIC", 0., 0., z - 1.5, 0, "ONLY");
- // Covar spring
- par[0] = rout;
- par[1] = rout + h1;
- par[2] = t0 / 2.;
- gMC->Gsvolu("C1L3", "TUBE", idtmed[903], par, 3);
- gMC->Gspos("C1L3", 1, "ALIC", 0., 0., z - .25 + t0 / 2., 0, "ONLY");
- gMC->Gsvolu("C2L3", "TUBE", idtmed[903], par, 3);
- gMC->Gspos("C2L3", 1, "ALIC", 0., 0., z - 2.75 - t0 / 2., 0, "ONLY");
- // Getter camera
- par[0] = rout + h1;
- par[1] = rout + h1 + h2;
- par[2] = t1 / 2.;
- gMC->Gsvolu("GKL3", "TUBE", idtmed[903], par, 3);
- gMC->Gspos("GKL3", 1, "ALIC", 0., 0., z - .25 - t1 / 2., 0, "ONLY");
- // Ceramic slice
- par[0] = rout + h1;
- par[1] = rout + h1 + h2;
- par[2] = t2 / 2.;
- gMC->Gsvolu("SCL3", "TUBE", idtmed[902], par, 3);
- gMC->Gspos("SCL3", 1, "ALIC", 0., 0., z - .25 - t1 - t2 / 2., 0, "ONLY");
- // ******Electronic slice *******
- // Silicon ring
- par[0] = rout + h1 + h2;
- par[1] = rout + h1 + h2 + 5.;
- par[2] = .025;
- gMC->Gsvolu("SEL3", "TUBE", idtmed[901], par, 3);
- gMC->Gspos("SEL3", 1, "ALIC", 0., 0., z - 1.57 + .025, 0, "ONLY");
- // Ceramic ring
- par[0] = rout + h1 + h2;
- par[1] = rout + h1 + h2 + 5.;
- par[2] = .025;
- gMC->Gsvolu("CEL3", "TUBE", idtmed[902], par, 3);
- gMC->Gspos("CEL3", 1, "ALIC", 0., 0., z - 1.58 - .025, 0, "ONLY");
- // ********************************************************
- // DEFINE RIGHT DISK#2 OF FMD
- // ********************************************************
-
- // Define parameters
-
- rin = 8.;
- rout = 14.;
- z = 69.7;
- tt = 2.5;
- h1 = TMath::Sqrt(rout * rout + v1/ (tt * kPI)) - rout;
- h2 = .4;
- t0 = v2/ (h1 * kPI * (h1 + rout * 2.));
- t1 = v3/ (h2 * kPI * (h2 + (h1 + rout) * 2.));
- t2 = v4/ (h2 * kPI * (h2 + (h1 + rout) * 2.));
-
- // *******Inner slice***********
- // Inner steel wall
- par[0] = rin - .02;
- par[1] = rin;
- par[2] = 1.5;
- gMC->Gsvolu("IWR2", "TUBE", idtmed[899], par, 3);
- gMC->Gspos("IWR2", 1, "ALIC", 0., 0., z + 1.5, 0, "ONLY");
- // Front steel wall
- par[0] = rin;
- par[1] = rout;
- par[2] = .01;
- gMC->Gsvolu("FWR2", "TUBE", idtmed[899], par, 3);
- gMC->Gspos("FWR2", 1, "ALIC", 0., 0., z + .01, 0, "ONLY");
- // Rear steel wall
- gMC->Gsvolu("RWR2", "TUBE", idtmed[899], par, 3);
- gMC->Gspos("RWR2", 1, "ALIC", 0., 0., z + 2.99, 0, "ONLY");
- // MCP
- par[0] = rin;
- par[1] = rout;
- par[2] = .07;
- gMC->Gsvolu("MPR2", "TUBE", idtmed[900], par, 3);
- gMC->Gspos("MPR2", 1, "ALIC", 0., 0., z + 1.57, 0, "ONLY");
- // Silicon plate
- par[0] = rin;
- par[1] = rout;
- par[2] = .019;
- gMC->Gsvolu("SPR2", "TUBE", idtmed[901], par, 3);
- gMC->Gspos("SPR2", 1, "ALIC", 0., 0., z + 1.719, 0, "ONLY");
- // Summator plate
- par[0] = rin;
- par[1] = rout;
- par[2] = .01;
- gMC->Gsvolu("SMR2", "TUBE", idtmed[902], par, 3);
- gMC->Gspos("SMR2", 1, "ALIC", 0., 0., z + 2.01, 0, "ONLY");
- // *******Outer slice *******
- // Ceramic plate
- par[0] = rout;
- par[1] = rout + h1;
- par[2] = 1.25;
- gMC->Gsvolu("CPR2", "TUBE", idtmed[902], par, 3);
- gMC->Gspos("CPR2", 1, "ALIC", 0., 0., z + 1.5, 0, "ONLY");
- // Covar spring
- par[0] = rout;
- par[1] = rout + h1;
- par[2] = t0 / 2.;
- gMC->Gsvolu("C1R2", "TUBE", idtmed[903], par, 3);
- gMC->Gspos("C1R2", 1, "ALIC", 0., 0., z + .25 - t0 / 2., 0, "ONLY");
- gMC->Gsvolu("C2R2", "TUBE", idtmed[903], par, 3);
- gMC->Gspos("C2R2", 1, "ALIC", 0., 0., z + 2.75 + t0 / 2., 0, "ONLY");
- // Getter camera
- par[0] = rout + h1;
- par[1] = rout + h1 + h2;
- par[2] = t1 / 2.;
- gMC->Gsvolu("GKR2", "TUBE", idtmed[903], par, 3);
- gMC->Gspos("GKR2", 1, "ALIC", 0., 0., z + .25 + t1 / 2., 0, "ONLY");
- // Ceramic slice
- par[0] = rout + h1;
- par[1] = rout + h1 + h2;
- par[2] = t2 / 2.;
- gMC->Gsvolu("SCR2", "TUBE", idtmed[902], par, 3);
- gMC->Gspos("SCR2", 1, "ALIC", 0., 0., z + .25 + t1 + t2 / 2., 0, "ONLY");
- // ******Electronic slice *******
- // Silicon ring
- par[0] = rout + h1 + h2;
- par[1] = rout + h1 + h2 + 5.;
- par[2] = .025;
- gMC->Gsvolu("SER2", "TUBE", idtmed[901], par, 3);
- gMC->Gspos("SER2", 1, "ALIC", 0., 0., z + 1.57 - .025, 0, "ONLY");
- // Ceramic ring
- par[0] = rout + h1 + h2;
- par[1] = rout + h1 + h2 + 5.;
- par[2] = .025;
- gMC->Gsvolu("CER2", "TUBE", idtmed[902], par, 3);
- gMC->Gspos("CER2", 1, "ALIC", 0., 0., z + 1.58 + .025, 0, "ONLY");
- // ***********************************************************
- // DEFINE LEFT DISK#2 OF FMD
- // ***********************************************************
-
- // Define parameters
-
- rin = 8.;
- rout = 14.;
- z = -69.7;
- tt = 2.5;
- h1 = TMath::Sqrt(rout * rout + v1/ (tt * kPI)) - rout;
- h2 = .4;
- t0 = v2/ (h1 * kPI * (h1 + rout * 2.));
- t1 = v3/ (h2 * kPI * (h2 + (h1 + rout) * 2.));
- t2 = v4/ (h2 * kPI * (h2 + (h1 + rout) * 2.));
-
- // *******Inner slice***********
- // Inner steel wall
- par[0] = rin - .02;
- par[1] = rin;
- par[2] = 1.5;
- gMC->Gsvolu("IWL2", "TUBE", idtmed[899], par, 3);
- gMC->Gspos("IWL2", 1, "ALIC", 0., 0., z - 1.5, 0, "ONLY");
- // Front steel wall
- par[0] = rin;
- par[1] = rout;
- par[2] = .01;
- gMC->Gsvolu("FWL2", "TUBE", idtmed[899], par, 3);
- gMC->Gspos("FWL2", 1, "ALIC", 0., 0., z - .01, 0, "ONLY");
- // Rear steel wall
- gMC->Gsvolu("RWL2", "TUBE", idtmed[899], par, 3);
- gMC->Gspos("RWL2", 1, "ALIC", 0., 0., z - 2.99, 0, "ONLY");
- // MCP
- par[0] = rin;
- par[1] = rout;
- par[2] = .07;
- gMC->Gsvolu("MPL2", "TUBE", idtmed[900], par, 3);
- gMC->Gspos("MPL2", 1, "ALIC", 0., 0., z - 1.57, 0, "ONLY");
- // Silicon plate
- par[0] = rin;
- par[1] = rout;
- par[2] = .019;
- gMC->Gsvolu("SPL2", "TUBE", idtmed[901], par, 3);
- gMC->Gspos("SPL2", 1, "ALIC", 0., 0., z - 1.719, 0, "ONLY");
- // Summator plate
- par[0] = rin;
- par[1] = rout;
- par[2] = .01;
- gMC->Gsvolu("SML2", "TUBE", idtmed[902], par, 3);
- gMC->Gspos("SML2", 1, "ALIC", 0., 0., z - 2.01, 0, "ONLY");
- // *******Outer slice *******
- // Ceramic plate
- par[0] = rout;
- par[1] = rout + h1;
- par[2] = 1.25;
- gMC->Gsvolu("CPL2", "TUBE", idtmed[902], par, 3);
- gMC->Gspos("CPL2", 1, "ALIC", 0., 0., z - 1.5, 0, "ONLY");
- // Covar spring
- par[0] = rout;
- par[1] = rout + h1;
- par[2] = t0 / 2.;
- gMC->Gsvolu("C1L2", "TUBE", idtmed[903], par, 3);
- gMC->Gspos("C1L2", 1, "ALIC", 0., 0., z - .25 + t0 / 2., 0, "ONLY");
- gMC->Gsvolu("C2L2", "TUBE", idtmed[903], par, 3);
- gMC->Gspos("C2L2", 1, "ALIC", 0., 0., z - 2.75 - t0 / 2., 0, "ONLY");
- // Getter camera
- par[0] = rout + h1;
- par[1] = rout + h1 + h2;
- par[2] = t1 / 2.;
- gMC->Gsvolu("GKL2", "TUBE", idtmed[903], par, 3);
- gMC->Gspos("GKL2", 1, "ALIC", 0., 0., z - .25 - t1 / 2., 0, "ONLY");
- // Ceramic slice
- par[0] = rout + h1;
- par[1] = rout + h1 + h2;
- par[2] = t2 / 2.;
- gMC->Gsvolu("SCL2", "TUBE", idtmed[902], par, 3);
- gMC->Gspos("SCL2", 1, "ALIC", 0., 0., z - .25 - t1 - t2 / 2., 0, "ONLY");
- // ******Electronic slice *******
- // Silicon ring
- par[0] = rout + h1 + h2;
- par[1] = rout + h1 + h2 + 5.;
- par[2] = .025;
- gMC->Gsvolu("SEL2", "TUBE", idtmed[901], par, 3);
- gMC->Gspos("SEL2", 1, "ALIC", 0., 0., z - 1.57 + .025, 0, "ONLY");
- // Ceramic ring
- par[0] = rout + h1 + h2;
- par[1] = rout + h1 + h2 + 5.;
- par[2] = .025;
- gMC->Gsvolu("CEL2", "TUBE", idtmed[902], par, 3);
- gMC->Gspos("CEL2", 1, "ALIC", 0., 0., z - 1.58 - .025, 0, "ONLY");
- // ********************************************************
- // DEFINE RIGHT DISK#1 OF FMD
- // ********************************************************
-
- // Define parameters