-/**************************************************************************
+ /**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* *
* Author: The ALICE Off-line Project. *
/*
$Log$
+Revision 1.25 2001/05/03 08:40:15 barbera
+Volume ITSD slightly modified to be consistent with v5. Some improvement in the printouts. The last commit did not complete successfully.
+
+Revision 1.23 2001/04/04 07:02:16 barbera
+Position of the cylinders holding rails corrected
+
+Revision 1.22 2001/03/29 22:01:53 barbera
+New flag added to change the material for some service supports as asked by the PMD people. Some changes to the services due to the new drawings from the engineers
+
+Revision 1.21 2001/03/29 05:28:56 barbera
+Rails material changed from aluminum to carbon fiber according with the decision of the last Technical Board
+
+Revision 1.20 2001/03/28 06:40:21 barbera
+Central and services mother volumes made consistenf for detailed and coarse geometry. Switch for rails added to the coarse geometries
+
Revision 1.19 2001/03/13 18:13:30 barbera
Some mother volumes sligthly modified to eliminate an overlap with the absorber
Int_t idrotm[1999], i;
Float_t dgh[100];
-
Int_t rails = 1; // flag for rails (1 --> rails in; 0 --> rails out)
-
+ Int_t suppmat = 0; // flag to change the material of the services
+ // supports (=0 copper, =1 aluminum, =2 carbon)
rails = GetRails();
if(rails != 0 && rails != 1) {
- cout << "WARNING: the switch for rails is not set neither to 0 (rails out) nor to 1 (rails in)."
+ cout << "ITS - WARNING: the switch for rails is not set neither to 0 (rails out) nor to 1 (rails in)."
" The default value of 1 (rails in) will be used." << endl;
-
}
- if(rails == 0 ) {
- cout << "Rails are out." << endl;
+ if (rails == 0 ) {
+ cout << "ITS: Rails are out." << endl;
} else {
- cout << "Rails are in." << endl;
+ cout << "ITS: Rails are in." << endl;
}
-
+
+ suppmat = GetSupportMaterial();
+
+ if (suppmat != 0 && suppmat != 1 && suppmat != 2) {
+ cout << "ITS - WARNING: the flag for the material of services supports is not set neither to 0 (copper) nor to 1 (aluminum) nor to 2 (carbon)."
+ " The default value of 0 (copper) will be used." << endl;
+ }
+
+ if (suppmat == 0) {
+ cout << "ITS: The material of the services supports is copper." << endl;
+ } else if (suppmat == 1){
+ cout << "ITS: The material of the services supports is aluminum." << endl;
+ } else {
+ cout << "ITS: The material of the services supports is carbon." << endl;
+ }
+
Int_t *idtmed = fIdtmed->GetArray()-199;
// FIELD CAGE HALF LENGTH
- rlim = 56.;
+ rlim = 50.;
zmax = 74.;
ztpc = 284.;
dgh[8] = 85.;
dgh[9] = -ztpc;
dgh[10] = 46;
- dgh[11] = rlim+0.1;
+ dgh[11] = rlim+6;
dgh[12] = -97.5;
dgh[13] = 46;
- dgh[14] = rlim+0.1;
+ dgh[14] = rlim+6;
dgh[15] = -zmax;
dgh[16] = 46;
- dgh[17] = rlim+0.1;
+ dgh[17] = rlim+6;
dgh[18] = -48;
dgh[19] = 6;
- dgh[20] = rlim+0.1;
+ dgh[20] = rlim+6;
dgh[21] = -28.6;
dgh[22] = 6;
- dgh[23] = rlim+0.1;
+ dgh[23] = rlim+6;
dgh[24] = -27.6;
dgh[25] = 3.295;
- dgh[26] = rlim+0.1;
+ dgh[26] = rlim+6;
dgh[27] = 27.6;
dgh[28] = 3.295;
- dgh[29] = rlim+0.1;
+ dgh[29] = rlim+6;
dgh[30] = 28.6;
dgh[31] = 6;
- dgh[32] = rlim+0.1;
+ dgh[32] = rlim+6;
dgh[33] = 48;
dgh[34] = 6;
- dgh[35] = rlim+0.1;
+ dgh[35] = rlim+6;
dgh[36] = zmax;
dgh[37] = 46;
- dgh[38] = rlim+0.1;
+ dgh[38] = rlim+6;
dgh[39] = 97.5;
dgh[40] = 46;
- dgh[41] = rlim+0.1;
+ dgh[41] = rlim+6;
dgh[42] = ztpc;
dgh[43] = 62;
dgh[44] = 62+4.;
// --- DEFINE CABLES AT THE END OF THE ITS CONES - COPPER PART
+ // UPPER PART
dgh[0] = 46.;
dgh[1] = 46.+1.0;
dgh[2] = 9.5;
+ dgh[3] = 12.;
+ dgh[4] = 168.;
+
+ if (suppmat == 0) {
+ gMC->Gsvolu("I1CU", "TUBS", idtmed[279], dgh, 5); // copper
+ } else if (suppmat == 1) {
+ gMC->Gsvolu("I1CU", "TUBS", idtmed[285], dgh, 5); // aluminum
+ } else {
+ gMC->Gsvolu("I1CU", "TUBS", idtmed[274], dgh, 5); // carbon
+ }
+ gMC->Gspos("I1CU", 1, "ITSV", 0., 0., 83.5, 0, "ONLY");
+ gMC->Gspos("I1CU", 2, "ITSV", 0., 0., -83.5, idrotm[200], "ONLY");
- gMC->Gsvolu("ICCU", "TUBE", idtmed[279], dgh, 3);
- gMC->Gspos("ICCU", 1, "ITSV", 0., 0., 83.5, 0, "ONLY");
- gMC->Gspos("ICCU", 2, "ITSV", 0., 0., -83.5, idrotm[200], "ONLY");
+ // --- DEFINE CABLES AT THE END OF THE ITS CONES - COPPER PART
+ // LOWER PART
+
+ dgh[0] = 46.;
+ dgh[1] = 46.+1.0;
+ dgh[2] = 9.5;
+ dgh[3] = 192.;
+ dgh[4] = 348.;
+ if (suppmat == 0) {
+ gMC->Gsvolu("I2CU", "TUBS", idtmed[279], dgh, 5); // copper
+ } else if (suppmat == 1) {
+ gMC->Gsvolu("I2CU", "TUBS", idtmed[285], dgh, 5); // aluminum
+ } else {
+ gMC->Gsvolu("I2CU", "TUBS", idtmed[274], dgh, 5); // carbon
+ }
+ gMC->Gspos("I2CU", 1, "ITSV", 0., 0., 83.5, 0, "ONLY");
+ gMC->Gspos("I2CU", 2, "ITSV", 0., 0., -83.5, idrotm[200], "ONLY");
+
+
// --- DEFINE CABLES AT THE END OF THE ITS CONES - CARBON PART
+ // UPPER PART
dgh[0] = 46.+1.0;
dgh[1] = 46.+1.0+1.5;
dgh[2] = 9.5;
+ dgh[3] = 12.;
+ dgh[4] = 168.;
- gMC->Gsvolu("ICCC", "TUBE", idtmed[274], dgh, 3);
- gMC->Gspos("ICCC", 1, "ITSV", 0., 0., 83.5, 0, "ONLY");
- gMC->Gspos("ICCC", 2, "ITSV", 0., 0., -83.5, idrotm[200], "ONLY");
+ gMC->Gsvolu("I1CC", "TUBS", idtmed[274], dgh, 5);
+ gMC->Gspos("I1CC", 1, "ITSV", 0., 0., 83.5, 0, "ONLY");
+ gMC->Gspos("I1CC", 2, "ITSV", 0., 0., -83.5, idrotm[200], "ONLY");
- // --- DEFINE PATCH PANELS AT THE END OF THE ITS CONES
+ // --- DEFINE CABLES AT THE END OF THE ITS CONES - CARBON PART
+ // LOWER PART
+ dgh[0] = 46.+1.0;
+ dgh[1] = 46.+1.0+1.5;
+ dgh[2] = 9.5;
+ dgh[3] = 192.;
+ dgh[4] = 348.;
+
+ gMC->Gsvolu("I2CC", "TUBS", idtmed[274], dgh, 5);
+ gMC->Gspos("I2CC", 1, "ITSV", 0., 0., 83.5, 0, "ONLY");
+ gMC->Gspos("I2CC", 2, "ITSV", 0., 0., -83.5, idrotm[200], "ONLY");
+
+ // --- DEFINE PATCH PANELS AT THE END OF THE ITS CONES
+ // UPPER PART
+
dgh[0] = 46.;
dgh[1] = 56.;
dgh[2] = 2.25;
+ dgh[3] = 12.;
+ dgh[4] = 168.;
- gMC->Gsvolu("IPAN", "TUBE", idtmed[285], dgh, 3);
- gMC->Gspos("IPAN", 1, "ITSV", 0., 0., 95.25, 0, "ONLY");
- gMC->Gspos("IPAN", 2, "ITSV", 0., 0., -95.25, idrotm[200], "ONLY");
+ gMC->Gsvolu("IPA1", "TUBS", idtmed[285], dgh, 5);
+ gMC->Gspos("IPA1", 1, "ITSV", 0., 0., 95.25, 0, "ONLY");
+ gMC->Gspos("IPA1", 2, "ITSV", 0., 0., -95.25, idrotm[200], "ONLY");
+
+
+ // --- DEFINE PATCH PANELS AT THE END OF THE ITS CONES
+ // LOWER PART
+
+ dgh[0] = 46.;
+ dgh[1] = 56.;
+ dgh[2] = 2.25;
+ dgh[3] = 192.;
+ dgh[4] = 348.;
+ gMC->Gsvolu("IPA2", "TUBS", idtmed[285], dgh, 5);
+ gMC->Gspos("IPA2", 1, "ITSV", 0., 0., 95.25, 0, "ONLY");
+ gMC->Gspos("IPA2", 2, "ITSV", 0., 0., -95.25, idrotm[200], "ONLY");
+
+
// --- DEFINE CABLES/COOLING BELOW THE TPC ON THE ABSORBER SIDE - COPPER PART
// UPPER PART
dgh[4] = 62.3+1.0;
dgh[5] = 12.;
dgh[6] = 168.;
- gMC->Gsvolu("ICU1", "CONS", idtmed[279], dgh, 7);
+ if (suppmat == 0) {
+ gMC->Gsvolu("ICU1", "CONS", idtmed[279], dgh, 7); // copper
+ } else if (suppmat == 1) {
+ gMC->Gsvolu("ICU1", "CONS", idtmed[285], dgh, 7); // aluminum
+ } else {
+ gMC->Gsvolu("ICU1", "CONS", idtmed[274], dgh, 7); // carbon
+ }
gMC->Gspos("ICU1", 1, "ITSV", 0., 0., 97.5+dgh[0], 0, "ONLY");
// --- DEFINE CABLES/COOLING BELOW THE TPC ON THE ABSORBER SIDE - COPPER PART
dgh[4] = 62.3+1.0;
dgh[5] = 192.;
dgh[6] = 348.;
- gMC->Gsvolu("ICU2", "CONS", idtmed[279], dgh, 7);
+ if (suppmat == 0) {
+ gMC->Gsvolu("ICU2", "CONS", idtmed[279], dgh, 7); // copper
+ } else if (suppmat == 1) {
+ gMC->Gsvolu("ICU2", "CONS", idtmed[285], dgh, 7); // aluminum
+ } else {
+ gMC->Gsvolu("ICU2", "CONS", idtmed[274], dgh, 7); // carbon
+ }
gMC->Gspos("ICU2", 1, "ITSV", 0., 0., 97.5+dgh[0], 0, "ONLY");
dgh[2] = 0.5;
dgh[3] = 12.;
dgh[4] = 168.;
- gMC->Gsvolu("ICU3", "TUBS", idtmed[279], dgh, 5);
+ if (suppmat == 0) {
+ gMC->Gsvolu("ICU3", "TUBS", idtmed[279], dgh, 5); // copper
+ } else if (suppmat == 1) {
+ gMC->Gsvolu("ICU3", "TUBS", idtmed[285], dgh, 5); // aluminum
+ } else {
+ gMC->Gsvolu("ICU3", "TUBS", idtmed[274], dgh, 5); // carbon
+ }
gMC->Gspos("ICU3", 1, "ITSV", 0., 0., ztpc+1.5+dgh[2], 0, "ONLY");
// --- DEFINE CABLES/COOLING BEHIND THE TPC ON THE ABSORBER SIDE - COPPER PART
dgh[2] = 0.5;
dgh[3] = 192.;
dgh[4] = 348.;
- gMC->Gsvolu("ICU4", "TUBS", idtmed[279], dgh, 5);
+ if (suppmat == 0) {
+ gMC->Gsvolu("ICU4", "TUBS", idtmed[279], dgh, 5); // copper
+ } else if (suppmat == 1) {
+ gMC->Gsvolu("ICU4", "TUBS", idtmed[285], dgh, 5); // aluminum
+ } else {
+ gMC->Gsvolu("ICU4", "TUBS", idtmed[274], dgh, 5); // carbon
+ }
gMC->Gspos("ICU4", 1, "ITSV", 0., 0., ztpc+1.5+dgh[2], 0, "ONLY");
// --- DEFINE CABLES/COOLING BEHIND THE TPC ON THE ABSORBER SIDE - CARBON PART
dgh[2] = (ztpc-97.5+1.5)/2.;
dgh[3] = 12.;
dgh[4] = 168.;
- gMC->Gsvolu("ICU5", "TUBS", idtmed[279], dgh, 5);
+ if (suppmat == 0) {
+ gMC->Gsvolu("ICU5", "TUBS", idtmed[279], dgh, 5); // copper
+ } else if (suppmat == 1) {
+ gMC->Gsvolu("ICU5", "TUBS", idtmed[285], dgh, 5); // aluminum
+ } else {
+ gMC->Gsvolu("ICU5", "TUBS", idtmed[274], dgh, 5); // carbon
+ }
gMC->Gspos("ICU5", 1, "ITSV", 0., 0., -97.5-dgh[2], 0, "ONLY");
// --- DEFINE CABLES/COOLING BELOW THE TPC ON THE OTHER SIDE W.R.T.
dgh[2] = (ztpc-97.5+1.5)/2.;
dgh[3] = 192.;
dgh[4] = 348.;
- gMC->Gsvolu("ICU6", "TUBS", idtmed[279], dgh, 5);
+ if (suppmat == 0) {
+ gMC->Gsvolu("ICU6", "TUBS", idtmed[279], dgh, 5); // copper
+ } else if (suppmat == 1) {
+ gMC->Gsvolu("ICU6", "TUBS", idtmed[285], dgh, 5); // aluminum
+ } else {
+ gMC->Gsvolu("ICU6", "TUBS", idtmed[274], dgh, 5); // carbon
+ }
gMC->Gspos("ICU6", 1, "ITSV", 0., 0., -97.5-dgh[2], 0, "ONLY");
// --- DEFINE CABLES/COOLING BELOW THE TPC ON THE OTHER SIDE W.R.T.
dgh[2] = 0.5;
dgh[3] = 12.;
dgh[4] = 168.;
- gMC->Gsvolu("ICU7", "TUBS", idtmed[279], dgh, 5);
+ if (suppmat == 0) {
+ gMC->Gsvolu("ICU7", "TUBS", idtmed[279], dgh, 5); // copper
+ } else if (suppmat == 1) {
+ gMC->Gsvolu("ICU7", "TUBS", idtmed[285], dgh, 5); // aluminum
+ } else {
+ gMC->Gsvolu("ICU7", "TUBS", idtmed[274], dgh, 5); // carbon
+ }
gMC->Gspos("ICU7", 1, "ITSV", 0., 0., -(ztpc+1.5+dgh[2]), 0, "ONLY");
// --- DEFINE CABLES/COOLING BEHIND THE TPC ON OTHER SIDE W.R.T. THE ABSORBER
dgh[2] = 0.5;
dgh[3] = 192.;
dgh[4] = 348.;
- gMC->Gsvolu("ICU8", "TUBS", idtmed[279], dgh, 5);
+ if (suppmat == 0) {
+ gMC->Gsvolu("ICU8", "TUBS", idtmed[279], dgh, 5); // copper
+ } else if (suppmat == 1) {
+ gMC->Gsvolu("ICU8", "TUBS", idtmed[285], dgh, 5); // aluminum
+ } else {
+ gMC->Gsvolu("ICU8", "TUBS", idtmed[274], dgh, 5); // carbon
+ }
gMC->Gspos("ICU8", 1, "ITSV", 0., 0., -(ztpc+1.5+dgh[2]), 0, "ONLY");
// --- DEFINE CABLES/COOLING BEHIND THE TPC ON OTHER SIDE W.R.T. THE ABSORBER
dgh[0] = 2.;
dgh[1] = 8.;
dgh[2] = 190.;
- gMC->Gsvolu("IRA1", "BOX ", idtmed[285], dgh, 3);
+ gMC->Gsvolu("IRA1", "BOX ", idtmed[239], dgh, 3);
gMC->Gspos("IRA1", 1, "ITSV", 53.5, 0., -69.5, 0, "ONLY");
- gMC->Gsvolu("IRA2", "BOX ", idtmed[285], dgh, 3);
+ gMC->Gsvolu("IRA2", "BOX ", idtmed[239], dgh, 3);
gMC->Gspos("IRA2", 1, "ITSV", -53.5, 0., -69.5, 0, "ONLY");
- dgh[0] = 2.-0.5531; // 0.5531 was determined in such a way that the aluminum area is 20.9 cm^2
- dgh[1] = 8.-0.5531; // 0.5531 was determined in such a way that the aluminum area is 20.9 cm^2
+ dgh[0] = 2.-0.5; // 0.5 was determined in such a way that the aluminum area is 20.9 cm^2
+ dgh[1] = 8.-0.5; // 0.5 was determined in such a way that the aluminum area is 20.9 cm^2
dgh[2] = 190.;
gMC->Gsvolu("IRA3", "BOX ", idtmed[275], dgh, 3);
gMC->Gspos("IRA3", 1, "IRA1", 0., 0., 0., 0, "ONLY");
dgh[1] = 59.;
dgh[2] = 0.6;
gMC->Gsvolu("ICYL", "TUBE", idtmed[285], dgh, 3);
- gMC->Gspos("ICYL", 1, "ALIC", 0., 0., 73.4, 0, "ONLY");
- gMC->Gspos("ICYL", 2, "ALIC", 0., 0., -73.4, idrotm[200], "ONLY");
+ gMC->Gspos("ICYL", 1, "ALIC", 0., 0., 74.1, 0, "ONLY");
+ gMC->Gspos("ICYL", 2, "ALIC", 0., 0., -74.1, idrotm[200], "ONLY");
// --- DEFINE SUPPORTS FOR RAILS ATTACHED TO THE CYLINDERS
dgh[1] = 3.;
dgh[2] = 5.; // 5. comes from the fact that the volume has to be 567.6/2 cm^3
gMC->Gsvolu("ISR1", "TUBE", idtmed[286], dgh, 3);
- gMC->Gspos("ISR1", 1, "ALIC", 54.9, 11., 79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 2, "ALIC", 54.9, -11., 79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 3, "ALIC", -54.9, 11., 79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 4, "ALIC", -54.9, -11., 79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 5, "ALIC", 54.9, 11., -79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 6, "ALIC", 54.9, -11., -79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 7, "ALIC", -54.9, 11., -79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 8, "ALIC", -54.9, -11., -79.5, 0, "ONLY");
+ gMC->Gspos("ISR1", 1, "ITSV", 53.4292, 10.7053, 79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 2, "ITSV", 53.4292, -10.7053, 79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 3, "ITSV", -53.4292, 10.7053, 79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 4, "ITSV", -53.4292, -10.7053, 79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 5, "ITSV", 53.4292, 10.7053, -79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 6, "ITSV", 53.4292, -10.7053, -79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 7, "ITSV", -53.4292, 10.7053, -79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 8, "ITSV", -53.4292, -10.7053, -79.75, 0, "ONLY");
// --- DEFINE SUPPORTS FOR RAILS ATTACHED TO THE ABSORBER
AliMixture( 36, "SDD Ceramics$", acer, zcer, denscer, -5, wcer);
AliMaterial(37, "SDD Kapton$", 12.011, 6., 1.3, 31.27, 999.);
AliMaterial(38, "SDD End ladder$", 69.9298, 29.8246, 0.3824, 36.5103, 999.);
- AliMaterial(39, "SDD cone$",63.546, 29., 1.15, 1.265, 999.);
+ AliMaterial(39, "SDD cone$",63.546, 29., 1.15, 1.265, 999.);
+ AliMaterial(40, "SDD M55J$",12.3565, 6.4561, 1.8097, 22.9570, 999.);
//AliMaterial(38, "SDD End ladder$", 69.9298, 29.8246, -0.3824, -36.5103, 999.);
//AliMaterial(39, "SDD cone$",63.546, 29., -1.15, -1.265, 999.);
AliMedium(37, "SDD Kapton$", 37, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
AliMedium(38, "SDD End ladder$",38, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
AliMedium(39, "SDD cone$", 39, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-
+ AliMedium(40, "SDD M55J$", 40, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
// 250-274 --> Silicon Strip Detectors (detectors, chips, buses, cooling,..)
AliMaterial(50, "SSD Si$", 28.0855, 14., 2.33, 9.36, 999.);