+}
+
+//_____________________________________________________________________________
+void AliTOFv6T0::MakeNinoMask(Float_t xtof) const
+{
+ //
+ // Make cooling Nino mask
+ // for each FEA card (FAL2/3 and FRO2 volumes)
+ // in FCA1 volume container.
+ //
+
+ Int_t *idtmed = fIdtmed->GetArray()-499;
+
+ // first Nino ASIC mask volume definition
+ Float_t al2[3] = {fgkAl2parameters[0], fgkAl2parameters[1], fgkAl2parameters[2]};
+ gMC->Gsvolu("FAL2", "BOX ", idtmed[504], al2, 3); // Al
+
+ // second Nino ASIC mask volume definition
+ Float_t al3[3] = {fgkAl3parameters[0], fgkAl3parameters[1], fgkAl3parameters[2]};
+ gMC->Gsvolu("FAL3", "BOX ", idtmed[504], al3, 3); // Al
+
+ // third Nino ASIC mask volume definition
+ Float_t feaRoof2[3] = {fgkRoof2parameters[0], fgkRoof2parameters[1], fgkRoof2parameters[2]};
+ gMC->Gsvolu("FRO2", "BOX ", idtmed[504], feaRoof2, 3); // Al
+
+ Float_t feaRoof1[3] = {fgkRoof1parameters[0], fgkRoof1parameters[1], fgkRoof1parameters[2]};
+ Float_t feaParam[3] = {fgkFEAparameters[0], fgkFEAparameters[1], fgkFEAparameters[2]};
+
+ Float_t carpar[3] = {xtof*0.5 - fgkCBLw - fgkSawThickness,
+ feaParam[1] + feaRoof1[1] + fgkRoof2parameters[1]*0.5,
+ feaRoof1[2] + fgkBetweenLandMask*0.5 + al3[2]};
+
+ // first Nino ASIC mask volume positioning
+ Float_t xcoor = xtof*0.5 - 25.;
+ Float_t ycoor = carpar[1] - 2.*al3[1];
+ Float_t zcoor = carpar[2] - 2.*al3[2] - al2[2];
+ gMC->Gspos("FAL2", 1, "FCA1",-xcoor, ycoor, zcoor, 0, "ONLY");
+ gMC->Gspos("FAL2", 4, "FCA1", xcoor, ycoor, zcoor, 0, "ONLY");
+ xcoor = feaParam[0] + (fgkFEAwidth2*0.5 - fgkFEAwidth1);
+ gMC->Gspos("FAL2", 2, "FCA1",-xcoor, ycoor, zcoor, 0, "ONLY");
+ gMC->Gspos("FAL2", 3, "FCA1", xcoor, ycoor, zcoor, 0, "ONLY");
+
+ // second Nino ASIC mask volume positioning
+ xcoor = xtof*0.5 - 25.;
+ ycoor = carpar[1] - al3[1];
+ zcoor = carpar[2] - al3[2];
+ gMC->Gspos("FAL3", 1, "FCA1",-xcoor, ycoor, zcoor, 0, "ONLY");
+ gMC->Gspos("FAL3", 4, "FCA1", xcoor, ycoor, zcoor, 0, "ONLY");
+ xcoor = feaParam[0] + (fgkFEAwidth2*0.5 - fgkFEAwidth1);
+ gMC->Gspos("FAL3", 2, "FCA1",-xcoor, ycoor, zcoor, 0, "ONLY");
+ gMC->Gspos("FAL3", 3, "FCA1", xcoor, ycoor, zcoor, 0, "ONLY");
+
+ // third Nino ASIC mask volume positioning
+ xcoor = xtof*0.5 - 25.;
+ ycoor = carpar[1] - fgkRoof2parameters[1];
+ zcoor = carpar[2] - 2.*al3[2] - fgkRoof2parameters[2];
+ gMC->Gspos("FRO2", 1, "FCA1",-xcoor, ycoor, zcoor, 0, "ONLY");
+ gMC->Gspos("FRO2", 4, "FCA1", xcoor, ycoor, zcoor, 0, "ONLY");
+ xcoor = feaParam[0] + (fgkFEAwidth2*0.5 - fgkFEAwidth1);
+ gMC->Gspos("FRO2", 2, "FCA1",-xcoor, ycoor, zcoor, 0, "ONLY");
+ gMC->Gspos("FRO2", 3, "FCA1", xcoor, ycoor, zcoor, 0, "ONLY");
+
+}
+
+//_____________________________________________________________________________
+void AliTOFv6T0::MakeSuperModuleCooling(Float_t xtof, Float_t ytof, Float_t zlenA) const
+{
+ //
+ // Make cooling tubes (FTUB volume)
+ // and cooling bars (FTLN and FLO1/2/3 volumes)
+ // in FAIA/B/C volume containers.
+ //
+
+ Int_t *idtmed = fIdtmed->GetArray()-499;
+
+ Int_t idrotm[1];
+
+ // cooling tube volume definition
+ Float_t tubepar[3] = {0., 0.4, xtof*0.5 - fgkCBLw - fgkSawThickness};
+ gMC->Gsvolu("FTUB", "TUBE", idtmed[512], tubepar, 3); // Cu
+
+ // water cooling tube volume definition
+ Float_t tubeparW[3] = {0., 0.3, tubepar[2]};
+ gMC->Gsvolu("FITU", "TUBE", idtmed[509], tubeparW, 3); // H2O
+
+ // Positioning of the water tube into the steel one
+ gMC->Gspos("FITU", 1, "FTUB", 0., 0., 0., 0, "ONLY");
+
+ // definition of transverse components of SM cooling system
+ Float_t trapar[3] = {tubepar[2], 6.175/*6.15*/, 0.7};
+ gMC->Gsvolu("FTLN", "BOX ", idtmed[504], trapar, 3); // Al
+
+ // rotation matrix
+ AliMatrix(idrotm[0], 180., 90., 90., 90., 90., 0.);
+
+ Float_t feaParam[3] = {fgkFEAparameters[0], fgkFEAparameters[1], fgkFEAparameters[2]};
+ Float_t feaRoof1[3] = {fgkRoof1parameters[0], fgkRoof1parameters[1], fgkRoof1parameters[2]};
+ Float_t bar[3] = {fgkBar[0], fgkBar[1], fgkBar[2]};
+ Float_t bar2[3] = {fgkBar2[0], fgkBar2[1], fgkBar2[2]};
+ Float_t al3[3] = {fgkAl3parameters[0], fgkAl3parameters[1], fgkAl3parameters[2]};
+ //Float_t feaRoof2[3] = {fgkRoof2parameters[0], fgkRoof2parameters[1], fgkRoof2parameters[2]};
+
+ Float_t carpar[3] = {xtof*0.5 - fgkCBLw - fgkSawThickness,
+ feaParam[1] + feaRoof1[1] + fgkRoof2parameters[1]*0.5,
+ feaRoof1[2] + fgkBetweenLandMask*0.5 + al3[2]};
+
+ Float_t ytub =-(ytof*0.5 - fgkModuleCoverThickness)*0.5 + carpar[1] +
+ carpar[1] - 2.*fgkRoof2parameters[1]*0.5 - 2.*feaRoof1[1] - 2.*bar2[1] - tubepar[1];
+
+ // Positioning of tubes for the SM cooling system
+ Float_t ycoor = carpar[1] - 2.*fgkRoof2parameters[1]*0.5 - 2.*feaRoof1[1] - 2.*bar2[1] - tubepar[1];
+ Float_t zcoor =-carpar[2] + 2.*bar[2] + tubepar[1];
+ gMC->Gspos("FTUB", 1, "FCA1", 0., ycoor, zcoor, idrotm[0], "ONLY");
+ gMC->Gspos("FTUB", 1, "FCA2", 0., ycoor, zcoor, idrotm[0], "ONLY");
+ gGeoManager->GetVolume("FTUB")->VisibleDaughters(kFALSE);
+
+ Float_t yFLTN = trapar[1] - (ytof*0.5 - fgkModuleCoverThickness)*0.5;
+ for (Int_t sg= -1; sg< 2; sg+= 2) {
+ // Positioning of transverse components for the SM cooling system
+ gMC->Gspos("FTLN", 5+4*sg, "FAIA", 0., yFLTN, 369.9*sg, 0, "MANY");
+ gMC->Gspos("FTLN", 5+3*sg, "FAIA", 0., yFLTN, 366.9*sg, 0, "MANY");
+ gMC->Gspos("FTLN", 5+2*sg, "FAIA", 0., yFLTN, 198.8*sg, 0, "MANY");
+ gMC->Gspos("FTLN", 5+sg, "FAIA", 0., yFLTN, 56.82*sg, 0, "MANY");
+ gMC->Gspos("FTLN", 5+4*sg, "FAIC", 0., yFLTN, 369.9*sg, 0, "MANY");
+ gMC->Gspos("FTLN", 5+3*sg, "FAIC", 0., yFLTN, 366.9*sg, 0, "MANY");
+ gMC->Gspos("FTLN", 5+2*sg, "FAIC", 0., yFLTN, 198.8*sg, 0, "MANY");
+ gMC->Gspos("FTLN", 5+sg, "FAIC", 0., yFLTN, 56.82*sg, 0, "MANY");
+ }
+
+ // definition of longitudinal components of SM cooling system
+ Float_t lonpar1[3] = {2., 0.5, 56.82 - trapar[2]};
+ Float_t lonpar2[3] = {lonpar1[0], lonpar1[1], (198.8 - 56.82)*0.5 - trapar[2]};
+ Float_t lonpar3[3] = {lonpar1[0], lonpar1[1], (366.9 - 198.8)*0.5 - trapar[2]};
+ gMC->Gsvolu("FLO1", "BOX ", idtmed[504], lonpar1, 3); // Al
+ gMC->Gsvolu("FLO2", "BOX ", idtmed[504], lonpar2, 3); // Al
+ gMC->Gsvolu("FLO3", "BOX ", idtmed[504], lonpar3, 3); // Al
+
+ // Positioning of longitudinal components for the SM cooling system
+ ycoor = ytub + (tubepar[1] + 2.*bar2[1] + lonpar1[1]);
+ gMC->Gspos("FLO1", 4, "FAIA",-24., ycoor, 0., 0, "MANY");
+ gMC->Gspos("FLO1", 2, "FAIA", 24., ycoor, 0., 0, "MANY");
+ gMC->Gspos("FLO1", 4, "FAIC",-24., ycoor, 0., 0, "MANY");
+ gMC->Gspos("FLO1", 2, "FAIC", 24., ycoor, 0., 0, "MANY");
+
+ zcoor = (198.8 + 56.82)*0.5;
+ gMC->Gspos("FLO2", 4, "FAIA",-24., ycoor,-zcoor, 0, "MANY");
+ gMC->Gspos("FLO2", 2, "FAIA", 24., ycoor,-zcoor, 0, "MANY");
+ gMC->Gspos("FLO2", 4, "FAIC",-24., ycoor,-zcoor, 0, "MANY");
+ gMC->Gspos("FLO2", 2, "FAIC", 24., ycoor,-zcoor, 0, "MANY");
+ gMC->Gspos("FLO2", 8, "FAIA",-24., ycoor, zcoor, 0, "MANY");
+ gMC->Gspos("FLO2", 6, "FAIA", 24., ycoor, zcoor, 0, "MANY");
+ gMC->Gspos("FLO2", 8, "FAIC",-24., ycoor, zcoor, 0, "MANY");
+ gMC->Gspos("FLO2", 6, "FAIC", 24., ycoor, zcoor, 0, "MANY");
+
+ zcoor = (366.9 + 198.8)*0.5;
+ gMC->Gspos("FLO3", 4, "FAIA",-24., ycoor,-zcoor, 0, "MANY");
+ gMC->Gspos("FLO3", 2, "FAIA", 24., ycoor,-zcoor, 0, "MANY");
+ gMC->Gspos("FLO3", 4, "FAIC",-24., ycoor,-zcoor, 0, "MANY");
+ gMC->Gspos("FLO3", 2, "FAIC", 24., ycoor,-zcoor, 0, "MANY");
+ gMC->Gspos("FLO3", 8, "FAIA",-24., ycoor, zcoor, 0, "MANY");
+ gMC->Gspos("FLO3", 6, "FAIA", 24., ycoor, zcoor, 0, "MANY");
+ gMC->Gspos("FLO3", 8, "FAIC",-24., ycoor, zcoor, 0, "MANY");
+ gMC->Gspos("FLO3", 6, "FAIC", 24., ycoor, zcoor, 0, "MANY");
+
+ ycoor = ytub - (tubepar[1] + 2.*bar2[1] + lonpar1[1]);
+ gMC->Gspos("FLO1", 3, "FAIA",-24., ycoor, 0., 0, "MANY");
+ gMC->Gspos("FLO1", 1, "FAIA", 24., ycoor, 0., 0, "MANY");
+ gMC->Gspos("FLO1", 3, "FAIC",-24., ycoor, 0., 0, "MANY");
+ gMC->Gspos("FLO1", 1, "FAIC", 24., ycoor, 0., 0, "MANY");
+
+ zcoor = (198.8 + 56.82)*0.5;
+ gMC->Gspos("FLO2", 3, "FAIA",-24., ycoor,-zcoor, 0, "MANY");
+ gMC->Gspos("FLO2", 1, "FAIA", 24., ycoor,-zcoor, 0, "MANY");
+ gMC->Gspos("FLO2", 3, "FAIC",-24., ycoor,-zcoor, 0, "MANY");
+ gMC->Gspos("FLO2", 1, "FAIC", 24., ycoor,-zcoor, 0, "MANY");
+ gMC->Gspos("FLO2", 7, "FAIA",-24., ycoor, zcoor, 0, "MANY");
+ gMC->Gspos("FLO2", 5, "FAIA", 24., ycoor, zcoor, 0, "MANY");
+ gMC->Gspos("FLO2", 7, "FAIC",-24., ycoor, zcoor, 0, "MANY");
+ gMC->Gspos("FLO2", 5, "FAIC", 24., ycoor, zcoor, 0, "MANY");
+
+ zcoor = (366.9 + 198.8)*0.5;
+ gMC->Gspos("FLO3", 3, "FAIA",-24., ycoor,-zcoor, 0, "MANY");
+ gMC->Gspos("FLO3", 1, "FAIA", 24., ycoor,-zcoor, 0, "MANY");
+ gMC->Gspos("FLO3", 3, "FAIC",-24., ycoor,-zcoor, 0, "MANY");
+ gMC->Gspos("FLO3", 1, "FAIC", 24., ycoor,-zcoor, 0, "MANY");
+ gMC->Gspos("FLO3", 7, "FAIA",-24., ycoor, zcoor, 0, "MANY");
+ gMC->Gspos("FLO3", 5, "FAIA", 24., ycoor, zcoor, 0, "MANY");
+ gMC->Gspos("FLO3", 7, "FAIC",-24., ycoor, zcoor, 0, "MANY");
+ gMC->Gspos("FLO3", 5, "FAIC", 24., ycoor, zcoor, 0, "MANY");
+
+
+ Float_t carpos[3] = {25. - xtof*0.5,
+ (11.5 - (ytof*0.5 - fgkModuleCoverThickness))*0.5,
+ 0.};
+ if (fTOFHoles) {
+ for (Int_t sg= -1; sg< 2; sg+= 2) {
+ carpos[2] = sg*zlenA*0.5;
+ gMC->Gspos("FTLN", 5+4*sg, "FAIB", 0., yFLTN, 369.9*sg, 0, "MANY");
+ gMC->Gspos("FTLN", 5+3*sg, "FAIB", 0., yFLTN, 366.9*sg, 0, "MANY");
+ gMC->Gspos("FTLN", 5+2*sg, "FAIB", 0., yFLTN, 198.8*sg, 0, "MANY");
+ gMC->Gspos("FTLN", 5+sg, "FAIB", 0., yFLTN, 56.82*sg, 0, "MANY");