X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STRUCT%2FAliFRAMEv2.cxx;h=0ce634275b797cdf278cf7316d26c92bcafad5a5;hb=27d0c140af015d4c88f7db9ae97810ec395c4d3c;hp=ee1a5c632d915b8c6bc1c9c80319164dad0a26a9;hpb=4a8eca94ef065e5dabcbdc494a256c9d6cf87e8b;p=u%2Fmrichter%2FAliRoot.git diff --git a/STRUCT/AliFRAMEv2.cxx b/STRUCT/AliFRAMEv2.cxx index ee1a5c632d9..0ce634275b7 100644 --- a/STRUCT/AliFRAMEv2.cxx +++ b/STRUCT/AliFRAMEv2.cxx @@ -13,30 +13,17 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ -/* -$Log$ -Revision 1.4 2001/06/22 14:11:17 morsch -Back to official z-positions of rings. - -Revision 1.3 2001/06/22 12:02:20 morsch -Ring locations matching TRD module positions. - -Revision 1.2 2001/05/25 07:59:54 morsch -Initialization print-out in debug mode only. - -Revision 1.1 2001/05/11 13:18:05 morsch -C++ version of spaceframe with specs according to Jan Bielski Feb. 2001 - -*/ +/* $Id$ */ -//////////////////////////////////////////////// -// space frame class / -/////////////////////////////////////////////// +//------------------------------------------------------------------------ +// AliFRAMEv2.cxx +// symmetric space frame with possibility for holes +// Author: A.Morsch +//------------------------------------------------------------------------ #include "AliFRAMEv2.h" #include "AliMagF.h" #include "AliRun.h" -#include "AliMC.h" #include "TSystem.h" ClassImp(AliFRAMEv2) @@ -79,7 +66,7 @@ void AliFRAMEv2::CreateGeometry() // The Space frame // // - Float_t pbox[3], ptrap[11], ptrd1[4], ptube[3], ppgon[10]; + Float_t pbox[3], ptrap[11], ptrd1[4], ppgon[10]; Float_t dx, dy, dz; Int_t i, j, jmod; @@ -92,13 +79,13 @@ void AliFRAMEv2::CreateGeometry() const Float_t krad2deg = 180./TMath::Pi(); const Float_t kdeg2rad = 1./krad2deg; - Float_t iFrH = 114.4; - Float_t ringH = 4.; - Float_t ringW = 10.; - Float_t longH = 5.39; - Float_t longW = 6.; - Float_t dwl = 3.14; - Float_t dwh = 0.96; + Float_t iFrH = 114.40; + Float_t ringH = 4.00; + Float_t ringW = 10.00; + Float_t longH = 5.39; + Float_t longW = 6.00; + Float_t dwl = 3.14; + Float_t dwh = 0.96; // Float_t dymodU[3] = {70.0, 224.0, 341.}; @@ -108,11 +95,26 @@ void AliFRAMEv2::CreateGeometry() // // Frame mother volume // - ptube[0] = 280.; -// ptube[1] = 428.2; - ptube[1] = 430.; - ptube[2] = 376.; - gMC->Gsvolu("B077", "TUBE", kAir, ptube, 3); +// ptube[0] = 280.; +// ptube[1] = 430.; +// ptube[2] = 376.; + ppgon[0] = 0.; + ppgon[1] = 360.; + ppgon[2] = 18.; + + ppgon[3] = 2.; + + ppgon[4] = -376.; + ppgon[5] = 280.; + ppgon[6] = 421.; + + ppgon[7] = -ppgon[4]; + ppgon[8] = ppgon[5]; + ppgon[9] = ppgon[6]; + + gMC->Gsvolu("B077", "PGON", kAir, ppgon, 10); + +// gMC->Gsvolu("B077", "TUBE", kAir, ptube, 3); gMC->Gspos("B077", 1, "ALIC", 0., 0., 0., 0, "ONLY"); // // The outer Frame @@ -180,8 +182,8 @@ void AliFRAMEv2::CreateGeometry() gMC->Gsvolu("B080", "BOX", kSteel, pbox, 3); - gMC->Gspos("B080", 1, "B077", 281.01, 0., 0., 0, "ONLY"); - gMC->Gspos("B080", 2, "B077", -281.01, 0., 0., 0, "ONLY"); + gMC->Gspos("B080", 1, "B077", 286.01, 0., 0., 0, "ONLY"); + gMC->Gspos("B080", 2, "B077", -286.01, 0., 0., 0, "ONLY"); // // Diagonal bars (1) @@ -402,18 +404,18 @@ void AliFRAMEv2::CreateGeometry() dx = rd * TMath::Sin(phi*kdeg2rad); dy = rd * TMath::Cos(phi*kdeg2rad); - gMC->Gspos("B047", 1, "B076", -dx, dy, dz, idrotm[2004], "ONLY"); - gMC->Gspos("B047", 2, "B076", -dx, dy, -dz, idrotm[2003], "ONLY"); - gMC->Gspos("B047", 3, "B076", dx, dy, dz, idrotm[2017], "ONLY"); - gMC->Gspos("B047", 4, "B076", dx, dy, -dz, idrotm[2018], "ONLY"); +// gMC->Gspos("B047", 1, "B076", -dx, dy, dz, idrotm[2004], "ONLY"); +// gMC->Gspos("B047", 2, "B076", -dx, dy, -dz, idrotm[2003], "ONLY"); +// gMC->Gspos("B047", 3, "B076", dx, dy, dz, idrotm[2017], "ONLY"); +// gMC->Gspos("B047", 4, "B076", dx, dy, -dz, idrotm[2018], "ONLY"); gMC->Gspos("B045", 1, "B076", -dx, dy, dz2, idrotm[2019], "ONLY"); gMC->Gspos("B045", 2, "B076", -dx, dy, -dz2, idrotm[2003], "ONLY"); // ? gMC->Gspos("B045", 3, "B076", dx, dy, dz2, idrotm[2020], "ONLY"); gMC->Gspos("B045", 4, "B076", dx, dy, -dz2, idrotm[2027], "ONLY"); - gMC->Gspos("BM49", 1, "B076", dx, dy, 0., idrotm[2020], "ONLY"); - gMC->Gspos("BM49", 2, "B076", -dx, dy, 0., idrotm[2019], "ONLY"); +// gMC->Gspos("BM49", 1, "B076", dx, dy, 0., idrotm[2020], "ONLY"); +// gMC->Gspos("BM49", 2, "B076", -dx, dy, 0., idrotm[2019], "ONLY"); // // phi = 60 @@ -422,18 +424,18 @@ void AliFRAMEv2::CreateGeometry() phi = 60; dx = rd * TMath::Sin(phi*kdeg2rad); dy = rd * TMath::Cos(phi*kdeg2rad); - gMC->Gspos("B047", 5, "B076", -dx, dy, dz, idrotm[2005], "ONLY"); - gMC->Gspos("B047", 6, "B076", -dx, dy, -dz, idrotm[2006], "ONLY"); - gMC->Gspos("B047", 7, "B076", dx, dy, dz, idrotm[2016], "ONLY"); - gMC->Gspos("B047", 8, "B076", dx, dy, -dz, idrotm[2015], "ONLY"); +// gMC->Gspos("B047", 5, "B076", -dx, dy, dz, idrotm[2005], "ONLY"); +// gMC->Gspos("B047", 6, "B076", -dx, dy, -dz, idrotm[2006], "ONLY"); +// gMC->Gspos("B047", 7, "B076", dx, dy, dz, idrotm[2016], "ONLY"); +// gMC->Gspos("B047", 8, "B076", dx, dy, -dz, idrotm[2015], "ONLY"); gMC->Gspos("B045", 5, "B076", -dx, dy, dz2, idrotm[2021], "ONLY"); gMC->Gspos("B045", 6, "B076", -dx, dy, -dz2, idrotm[2028], "ONLY"); gMC->Gspos("B045", 7, "B076", dx, dy, dz2, idrotm[2022], "ONLY"); gMC->Gspos("B045", 8, "B076", dx, dy, -dz2, idrotm[2029], "ONLY"); - gMC->Gspos("BM49", 3, "B076", dx, dy, 0., idrotm[2022], "ONLY"); - gMC->Gspos("BM49", 4, "B076", -dx, dy, 0., idrotm[2021], "ONLY"); +// gMC->Gspos("BM49", 3, "B076", dx, dy, 0., idrotm[2022], "ONLY"); +// gMC->Gspos("BM49", 4, "B076", -dx, dy, 0., idrotm[2021], "ONLY"); // // phi = 80 // @@ -441,10 +443,10 @@ void AliFRAMEv2::CreateGeometry() phi = 80; dx = rd * TMath::Sin(phi*kdeg2rad); dy = rd * TMath::Cos(phi*kdeg2rad); - gMC->Gspos("B047", 9, "B076", -dx, dy, dz, idrotm[2009], "ONLY"); - gMC->Gspos("B047", 10, "B076", -dx, dy, -dz, idrotm[2007], "ONLY"); - gMC->Gspos("B047", 11, "B076", dx, dy, dz, idrotm[2013], "ONLY"); - gMC->Gspos("B047", 12, "B076", dx, dy, -dz, idrotm[2014], "ONLY"); +// gMC->Gspos("B047", 9, "B076", -dx, dy, dz, idrotm[2009], "ONLY"); +// gMC->Gspos("B047", 10, "B076", -dx, dy, -dz, idrotm[2007], "ONLY"); +// gMC->Gspos("B047", 11, "B076", dx, dy, dz, idrotm[2013], "ONLY"); +// gMC->Gspos("B047", 12, "B076", dx, dy, -dz, idrotm[2014], "ONLY"); gMC->Gspos("B047", 13, "B076", -dx, -dy, dz, idrotm[2008], "ONLY"); gMC->Gspos("B047", 14, "B076", -dx, -dy, -dz, idrotm[2010], "ONLY"); @@ -461,8 +463,8 @@ void AliFRAMEv2::CreateGeometry() gMC->Gspos("B045", 15, "B076", dx, -dy, dz2, idrotm[2025], "ONLY"); gMC->Gspos("B045", 16, "B076", dx, -dy, -dz2, idrotm[2033], "ONLY"); - gMC->Gspos("BM49", 5, "B076", dx, dy, 0., idrotm[2026], "ONLY"); - gMC->Gspos("BM49", 6, "B076", -dx, dy, 0., idrotm[2023], "ONLY"); +// gMC->Gspos("BM49", 5, "B076", dx, dy, 0., idrotm[2026], "ONLY"); +// gMC->Gspos("BM49", 6, "B076", -dx, dy, 0., idrotm[2023], "ONLY"); gMC->Gspos("BM49", 7, "B076", dx, -dy, 0., idrotm[2025], "ONLY"); gMC->Gspos("BM49", 8, "B076", -dx, -dy, 0., idrotm[2024], "ONLY"); @@ -485,8 +487,9 @@ void AliFRAMEv2::CreateGeometry() { gMC->Gsvolu(module[jmod], "TRD1", kAir, ptrd1, 4); } - - Int_t mod[18] = {1, 1, 1, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 1, 1}; +// Position of Holes for PHOS (P) and RICH (R) starting at 6h +// P P P - - R R R - - - - - - - - P P + Int_t mod[18] = {1, 1, 1, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}; Float_t r = 341.8; @@ -857,7 +860,7 @@ void AliFRAMEv2::CreateGeometry() // Mother volumes for TRD and TOF // if (!fHoles) { - + printf("\n FRAME Version without Holes !"); ptrd1[0] = 49.8065; ptrd1[1] = 62.8535; ptrd1[2] = 375.5; @@ -882,6 +885,7 @@ void AliFRAMEv2::CreateGeometry() gMC->Gspos("BTO2", 1, "B074", 0., 0., 42.69, 0, "ONLY"); gMC->Gspos("BTO3", 1, "B075", 0., 0., 42.69, 0, "ONLY"); } else { + printf("\n FRAME Version with Holes !"); ptrd1[0] = 49.8065; ptrd1[1] = 62.8535; ptrd1[2] = 375.5; @@ -902,31 +906,88 @@ void AliFRAMEv2::CreateGeometry() ptrd1[2] = 79.75; gMC->Gsvolu("BTO3", "TRD1", kAir, ptrd1, 4); - gMC->Gspos("BTR1", 1, "B071", 0., 0., -10.8, 0, "ONLY"); - - gMC->Gspos("BTR2", 1, "B074", 0., -218.75, -10.8, idrotm[152], "ONLY"); - gMC->Gspos("BTR2", 2, "B074", 0., 218.75, -10.8, 0, "ONLY"); - - gMC->Gspos("BTR3", 1, "B075", 0., -295.75, -10.8, idrotm[152], "ONLY"); - gMC->Gspos("BTR3", 2, "B075", 0., 295.75, -10.8, 0, "ONLY"); + gMC->Gspos("BTR1", 1, "B071", 0., 0.00, -10.8, 0, "ONLY"); + gMC->Gspos("BTR2", 1, "B074", 0., -218.75, -10.8, idrotm[2070], "ONLY"); + gMC->Gspos("BTR2", 2, "B074", 0., 218.75, -10.8, 0, "ONLY"); + gMC->Gspos("BTR3", 1, "B075", 0., -295.75, -10.8, idrotm[2070], "ONLY"); + gMC->Gspos("BTR3", 2, "B075", 0., 295.75, -10.8, 0, "ONLY"); + + gMC->Gspos("BTO1", 1, "B071", 0., 0.00, 42.69, 0, "ONLY"); + gMC->Gspos("BTO2", 1, "B074", 0., -218.75, 42.69, idrotm[2070], "ONLY"); + gMC->Gspos("BTO2", 2, "B074", 0., 218.75, 42.69, 0, "ONLY"); + gMC->Gspos("BTO3", 1, "B075", 0., -295.75, 42.69, idrotm[2070], "ONLY"); + gMC->Gspos("BTO3", 2, "B075", 0., 295.75, 42.69, 0, "ONLY"); + } + +// +// Geometry of Rails starts here +// +// +// +// Rails for space-frame +// + Float_t rbox[3]; - gMC->Gspos("BTO1", 1, "B071", 0., 0., -42.7, 0, "ONLY"); - - gMC->Gspos("BTO2", 1, "B074", 0., -218.75, -42.7, idrotm[152], "ONLY"); - gMC->Gspos("BTO2", 2, "B074", 0., 218.75, -42.7, 0, "ONLY"); + rbox[0] = 25.00; + rbox[1] = 27.50; + rbox[2] = 600.00; + gMC->Gsvolu("BRS1", "BOX", kAir, rbox, 3); + + rbox[0] = 25.00; + rbox[1] = 3.75; + gMC->Gsvolu("BRS2", "BOX", kSteel, rbox, 3); + + rbox[0] = 3.00; + rbox[1] = 20.00; + gMC->Gsvolu("BRS3", "BOX", kSteel, rbox, 3); + + gMC->Gspos("BRS2", 1, "BRS1", 0., -27.5+3.75, 0., 0, "ONLY"); + gMC->Gspos("BRS2", 2, "BRS1", 0., 27.5-3.75, 0., 0, "ONLY"); + gMC->Gspos("BRS3", 1, "BRS1", 0., 0., 0., 0, "ONLY"); + gMC->Gspos("BRS1", 1, "ALIC", -430.-3., -180., 0., 0, "ONLY"); + gMC->Gspos("BRS1", 2, "ALIC", 430.+3., -180., 0., 0, "ONLY"); + + rbox[0] = 3.0; + rbox[1] = 145./2.; + rbox[2] = 25.0; + gMC->Gsvolu("BRS4", "BOX", kSteel, rbox, 3); + + gMC->Gspos("BRS4", 1, "ALIC", 430.+3., -180.+55./2.+rbox[1], 224., 0, "ONLY"); + gMC->Gspos("BRS4", 2, "ALIC", 430.+3., -180.+55./2.+rbox[1], -224., 0, "ONLY"); + gMC->Gspos("BRS4", 3, "ALIC", -430.-3., -180.+55./2.+rbox[1], 224., 0, "ONLY"); + gMC->Gspos("BRS4", 4, "ALIC", -430.-3., -180.+55./2.+rbox[1], -224., 0, "ONLY"); - gMC->Gspos("BTO3", 1, "B075", 0., -295.75, -42.7, idrotm[152], "ONLY"); - gMC->Gspos("BTO3", 2, "B075", 0., 295.75, -42.7, 0, "ONLY"); - - } +// +// Rails for EMCAL +// +/* + rbox[0] = 27.50; + rbox[1] = 32.50; + gMC->Gsvolu("BRE1", "BOX", kAir, rbox, 3); + + rbox[0] = 27.50; + rbox[1] = 2.50; + gMC->Gsvolu("BRE2", "BOX", kSteel, rbox, 3); + + rbox[0] = 0.50; + rbox[1] = 27.50; + gMC->Gsvolu("BRE3", "BOX", kSteel, rbox, 3); + + gMC->Gspos("BRE2", 1, "BRE1", 0., -32.5+2.50, 0., 0, "ONLY"); + gMC->Gspos("BRE2", 2, "BRE1", 0., 32.5-2.50, 0., 0, "ONLY"); + gMC->Gspos("BRE3", 1, "BRE1", -20., 0., 0., 0, "ONLY"); + gMC->Gspos("BRE3", 2, "BRE1", 20., 0., 0., 0, "ONLY"); + gMC->Gspos("BRE1", 1, "ALIC", -496., -190., 0., 0, "ONLY"); + gMC->Gspos("BRE1", 2, "ALIC", 496., -190., 0., 0, "ONLY"); +*/ } //___________________________________________ void AliFRAMEv2::CreateMaterials() { - + // Creates the materials Float_t epsil, stemax, tmaxfd, deemax, stmin; epsil = 1.e-4; // Tracking precision, @@ -964,7 +1025,13 @@ void AliFRAMEv2::Init() } } - +Int_t AliFRAMEv2::IsVersion() const +{ + // Returns the version of the FRAME (1 if no holes, 0 otherwise) + Int_t version = 0; + if (fHoles == 0) version = 1; + return version; +}