+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * *
+ * Author: The ALICE Off-line Project. *
+ * Contributors are mentioned in the code where appropriate. *
+ * *
+ * Permission to use, copy, modify and distribute this software and its *
+ * documentation strictly for non-commercial purposes is hereby granted *
+ * without fee, provided that the above copyright notice appears in all *
+ * copies and that both the copyright notice and this permission notice *
+ * appear in the supporting documentation. The authors make no claims *
+ * about the suitability of this software for any purpose. It is *
+ * provided "as is" without express or implied warranty. *
+ **************************************************************************/
+
+/*
+$Log$
+Revision 1.5 1999/09/29 09:24:30 fca
+Introduction of the Copyright and cvs Log
+
+*/
+
///////////////////////////////////////////////////////////////////////////////
// //
// Beam pipe class //
// //
//Begin_Html
/*
-<img src="gif/AliPIPEClass.gif">
+<img src="picts/AliPIPEClass.gif">
*/
//End_Html
// //
#include "AliPIPEv3.h"
#include "AliRun.h"
-#include "AliMC.h"
ClassImp(AliPIPEv3)
//
//Begin_Html
/*
- <img src="gif/AliPIPE.gif">
+ <img src="picts/AliPIPE.gif">
*/
//End_Html
//Begin_Html
/*
- <img src="gif/AliPIPETree.gif">
+ <img src="picts/AliPIPETree.gif">
*/
//End_Html
- AliMC* pMC = AliMC::GetMC();
-
Float_t tpar[3], dzmo, zpos;
Float_t bepar[3], alpar[3],sspar[3],flange[3],vacpar[3];
Float_t bellow[3];
Float_t thick;
- Int_t *idtmed = gAlice->Idtmed();
+ Int_t *idtmed = fIdtmed->GetArray()-1999;
// the mother of all beam pipes
tpar[0] = 0.;
tpar[1] = 10.;
tpar[2] = 1400. / 2;
dzmo = tpar[2];
- pMC->Gsvolu("QQMO", "TUBE", idtmed[2015], tpar, 3);
+ gMC->Gsvolu("QQMO", "TUBE", idtmed[2015], tpar, 3);
// All beam pipe details as per the provisonal drawings given by Lars
// Leistam on 31.5.99
vacpar[1]=2.9;
vacpar[2]=bepar[2];
//
- pMC->Gsvolu("QQBE", "TUBE", idtmed[2004], bepar, 3);
- pMC->Gsvolu("VAC1", "TUBE", idtmed[2015], vacpar, 3);
- pMC->Gspos("VAC1", 1, "QQBE", 0., 0., 0., 0, "ONLY");
- pMC->Gspos("QQBE", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
+ gMC->Gsvolu("QQBE", "TUBE", idtmed[2004], bepar, 3);
+ gMC->Gsvolu("VAC1", "TUBE", idtmed[2015], vacpar, 3);
+ gMC->Gspos("VAC1", 1, "QQBE", 0., 0., 0., 0, "ONLY");
+ gMC->Gspos("QQBE", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
// now beam pipes only in negative z-part for use in PMD.
vacpar[1]=2.9;
vacpar[2]=flange[2];
//
- pMC->Gsvolu("QFL1", "TUBE", idtmed[2018], flange, 3);
- pMC->Gsvolu("VAC2", "TUBE", idtmed[2015], vacpar, 3);
- pMC->Gspos("VAC2", 1, "QFL1", 0., 0., 0., 0, "ONLY");
- pMC->Gspos("QFL1", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
+ gMC->Gsvolu("QFL1", "TUBE", idtmed[2018], flange, 3);
+ gMC->Gsvolu("VAC2", "TUBE", idtmed[2015], vacpar, 3);
+ gMC->Gspos("VAC2", 1, "QFL1", 0., 0., 0., 0, "ONLY");
+ gMC->Gspos("QFL1", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
// Aluminium alloy beam pipe, 1mm thick, 230 cm long
alpar[0]=0.0;
vacpar[0]=0.0;
vacpar[1]=2.9;
vacpar[2]=alpar[2];
- pMC->Gsvolu("QQAL", "TUBE", idtmed[2003], alpar, 3);
- pMC->Gsvolu("VAC3", "TUBE", idtmed[2015], vacpar, 3);
- pMC->Gspos("VAC3", 1, "QQAL", 0., 0., 0., 0, "ONLY");
- pMC->Gspos("QQAL", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
+ gMC->Gsvolu("QQAL", "TUBE", idtmed[2003], alpar, 3);
+ gMC->Gsvolu("VAC3", "TUBE", idtmed[2015], vacpar, 3);
+ gMC->Gspos("VAC3", 1, "QQAL", 0., 0., 0., 0, "ONLY");
+ gMC->Gspos("QQAL", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
// SS tube 2.0 cm long, 0.8 mm thick, 5.96 cm OD
vacpar[0]=0.0;
vacpar[1]=2.9;
vacpar[2]=sspar[2];
- pMC->Gsvolu("QSS1", "TUBE", idtmed[2018], sspar, 3);
- pMC->Gsvolu("VAC4", "TUBE", idtmed[2015], vacpar, 3);
- pMC->Gspos("VAC4", 1, "QSS1", 0., 0., 0., 0, "ONLY");
- pMC->Gspos("QSS1", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
+ gMC->Gsvolu("QSS1", "TUBE", idtmed[2018], sspar, 3);
+ gMC->Gsvolu("VAC4", "TUBE", idtmed[2015], vacpar, 3);
+ gMC->Gspos("VAC4", 1, "QSS1", 0., 0., 0., 0, "ONLY");
+ gMC->Gspos("QSS1", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
// SS Flange 3 cm thick 7.4 cm OD, 5.8 cm ID
vacpar[0]=0.0;
vacpar[1]=2.9;
vacpar[2]=flange[2];
- pMC->Gsvolu("QFL2", "TUBE", idtmed[2018], flange, 3);
- pMC->Gsvolu("VAC5", "TUBE", idtmed[2015], vacpar, 3);
- pMC->Gspos("VAC5", 1, "QFL2", 0., 0., 0., 0, "ONLY");
- pMC->Gspos("QFL2", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
+ gMC->Gsvolu("QFL2", "TUBE", idtmed[2018], flange, 3);
+ gMC->Gsvolu("VAC5", "TUBE", idtmed[2015], vacpar, 3);
+ gMC->Gspos("VAC5", 1, "QFL2", 0., 0., 0., 0, "ONLY");
+ gMC->Gspos("QFL2", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
// SS tube 4.0 cm long, 0.8 mm thick, 5.96 cm OD
vacpar[0]=0.0;
vacpar[1]=2.9;
vacpar[2]=sspar[2];
- pMC->Gsvolu("QSS2", "TUBE", idtmed[2018], sspar, 3);
- pMC->Gsvolu("VAC6", "TUBE", idtmed[2015], vacpar, 3);
- pMC->Gspos("VAC6", 1, "QSS2", 0., 0., 0., 0, "ONLY");
- pMC->Gspos("QSS2", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
+ gMC->Gsvolu("QSS2", "TUBE", idtmed[2018], sspar, 3);
+ gMC->Gsvolu("VAC6", "TUBE", idtmed[2015], vacpar, 3);
+ gMC->Gspos("VAC6", 1, "QSS2", 0., 0., 0., 0, "ONLY");
+ gMC->Gspos("QSS2", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
// *************
//
bellow[2]=zundul;
zpos = zpos - sspar[2] - bellow[2];
- pMC->Gspos("BELO", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
+ gMC->Gspos("BELO", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
// SS tube 20.0 cm long, 0.8 mm thick, 5.96 cm OD
vacpar[0]=0.0;
vacpar[1]=2.9;
vacpar[2]=sspar[2];
- pMC->Gsvolu("QSS3", "TUBE", idtmed[2018], sspar, 3);
- pMC->Gsvolu("VAC7", "TUBE", idtmed[2015], vacpar, 3);
- pMC->Gspos("VAC7", 1, "QSS3", 0., 0., 0., 0, "ONLY");
- pMC->Gspos("QSS3", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
+ gMC->Gsvolu("QSS3", "TUBE", idtmed[2018], sspar, 3);
+ gMC->Gsvolu("VAC7", "TUBE", idtmed[2015], vacpar, 3);
+ gMC->Gspos("VAC7", 1, "QSS3", 0., 0., 0., 0, "ONLY");
+ gMC->Gspos("QSS3", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
// *************
// SS Bellow 8.4 cm long, 6.5 cm ID, 7.5 cm OD
// **************
//
zpos = zpos - sspar[2] - bellow[2];
- pMC->Gspos("BELO", 2, "QQMO", 0., 0., zpos, 0, "ONLY");
+ gMC->Gspos("BELO", 2, "QQMO", 0., 0., zpos, 0, "ONLY");
// SS tube 4.7 cm long, 0.8 mm thick,
vacpar[0]=0.0;
vacpar[1]=2.9;
vacpar[2]=sspar[2];
- pMC->Gsvolu("QSS4", "TUBE", idtmed[2018], sspar, 3);
- pMC->Gsvolu("VAC8", "TUBE", idtmed[2015], vacpar, 3);
- pMC->Gspos("VAC8", 1, "QSS4", 0., 0., 0., 0, "ONLY");
- pMC->Gspos("QSS4", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
+ gMC->Gsvolu("QSS4", "TUBE", idtmed[2018], sspar, 3);
+ gMC->Gsvolu("VAC8", "TUBE", idtmed[2015], vacpar, 3);
+ gMC->Gspos("VAC8", 1, "QSS4", 0., 0., 0., 0, "ONLY");
+ gMC->Gspos("QSS4", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
// SS Flange 2.2 cm thick, ID=5.8 cm, OD=9.8 cm
vacpar[0]=0.0;
vacpar[1]=2.9;
vacpar[2]=flange[2];
- pMC->Gsvolu("QFL3", "TUBE", idtmed[2018], flange, 3);
- pMC->Gsvolu("VAC9", "TUBE", idtmed[2015], vacpar, 3);
- pMC->Gspos("VAC9", 1, "QFL3", 0., 0., 0., 0, "ONLY");
- pMC->Gspos("QFL3", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
+ gMC->Gsvolu("QFL3", "TUBE", idtmed[2018], flange, 3);
+ gMC->Gsvolu("VAC9", "TUBE", idtmed[2015], vacpar, 3);
+ gMC->Gspos("VAC9", 1, "QFL3", 0., 0., 0., 0, "ONLY");
+ gMC->Gspos("QFL3", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
//Total of 3150 mm from vertex on the negative side upto this point.
vacpar[0]=0.0;
vacpar[1]=2.9;
vacpar[2]=sspar[2];
- pMC->Gsvolu("QSS5", "TUBE", idtmed[2018], sspar, 3);
- pMC->Gsvolu("VA10", "TUBE", idtmed[2015], vacpar, 3);
- pMC->Gspos("VA10", 1, "QSS5", 0., 0., 0., 0, "ONLY");
- pMC->Gspos("QSS5", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
+ gMC->Gsvolu("QSS5", "TUBE", idtmed[2018], sspar, 3);
+ gMC->Gsvolu("VA10", "TUBE", idtmed[2015], vacpar, 3);
+ gMC->Gspos("VA10", 1, "QSS5", 0., 0., 0., 0, "ONLY");
+ gMC->Gspos("QSS5", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
//
// last item, undulated SS beam pipe, pitch=0.25, length= 342.0 cm
Undulation("UNDL",pitch,thick,zundul,rundul,cn48);
//
zpos = zpos - sspar[2] - zundul;
- pMC->Gspos("UNDL", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
+ gMC->Gspos("UNDL", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
//
- pMC->Gspos("QQMO", 1, "ALIC", 0., 0., 0.1, 0, "ONLY");
+ gMC->Gspos("QQMO", 1, "ALIC", 0., 0., 0.1, 0, "ONLY");
// total of 6770 mm length upto this point, end of undulated beam
// pipe section.
vacpar[0]=0.0;
vacpar[1]=2.9;
vacpar[2]=flange[2];
- pMC->Gsvolu("QFL4", "TUBE", idtmed[2018], flange, 3);
- pMC->Gsvolu("VC11", "TUBE", idtmed[2015], vacpar, 3);
- pMC->Gspos("VC11", 1, "QFL4", 0., 0., 0., 0, "ONLY");
- pMC->Gspos("QFL4", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
+ gMC->Gsvolu("QFL4", "TUBE", idtmed[2018], flange, 3);
+ gMC->Gsvolu("VC11", "TUBE", idtmed[2015], vacpar, 3);
+ gMC->Gspos("VC11", 1, "QFL4", 0., 0., 0., 0, "ONLY");
+ gMC->Gspos("QFL4", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
}
// Draw a shaded view of the Beam Pipe
//
- AliMC* pMC = AliMC::GetMC();
-
// Set everything unseen
- pMC->Gsatt("*", "seen", -1);
+ gMC->Gsatt("*", "seen", -1);
//
// Set ALIC mother transparent
- pMC->Gsatt("ALIC","SEEN",0);
+ gMC->Gsatt("ALIC","SEEN",0);
//
// Set the volumes visible
- pMC->Gsatt("QQMO","seen",1);
- pMC->Gsatt("QQBE","seen",1);
- pMC->Gsatt("QFL1","seen",1);
- pMC->Gsatt("QQAL","seen",1);
- pMC->Gsatt("QSS1","seen",1);
- pMC->Gsatt("QFL2","seen",1);
- pMC->Gsatt("QSS2","seen",1);
- pMC->Gsatt("QSS3","seen",1);
- pMC->Gsatt("QSS4","seen",1);
- pMC->Gsatt("QFL3","seen",1);
- pMC->Gsatt("QSS5","seen",1);
- pMC->Gsatt("BELO","seen",1);
- pMC->Gsatt("UNDL","seen",1);
+ gMC->Gsatt("QQMO","seen",1);
+ gMC->Gsatt("QQBE","seen",1);
+ gMC->Gsatt("QFL1","seen",1);
+ gMC->Gsatt("QQAL","seen",1);
+ gMC->Gsatt("QSS1","seen",1);
+ gMC->Gsatt("QFL2","seen",1);
+ gMC->Gsatt("QSS2","seen",1);
+ gMC->Gsatt("QSS3","seen",1);
+ gMC->Gsatt("QSS4","seen",1);
+ gMC->Gsatt("QFL3","seen",1);
+ gMC->Gsatt("QSS5","seen",1);
+ gMC->Gsatt("BELO","seen",1);
+ gMC->Gsatt("UNDL","seen",1);
//
- pMC->Gdopt("hide", "on");
- pMC->Gdopt("shad", "on");
- pMC->Gsatt("*", "fill", 7);
- pMC->SetClipBox(".");
- pMC->SetClipBox("*", 0, 3000, -3000, 3000, -6000, 6000);
- pMC->DefaultRange();
- pMC->Gdraw("alic", 40, 30, 0, 3, 5, .04, .04);
- pMC->Gdhead(1111, "Beam Pipe");
- pMC->Gdman(16, 6, "MAN");
- pMC->Gdopt("hide","off");
+ gMC->Gdopt("hide", "on");
+ gMC->Gdopt("shad", "on");
+ gMC->Gsatt("*", "fill", 7);
+ gMC->SetClipBox(".");
+ gMC->SetClipBox("*", 0, 3000, -3000, 3000, -6000, 6000);
+ gMC->DefaultRange();
+ gMC->Gdraw("alic", 40, 30, 0, 3, 5, .04, .04);
+ gMC->Gdhead(1111, "Beam Pipe");
+ gMC->Gdman(16, 6, "MAN");
+ gMC->Gdopt("hide","off");
}
//_____________________________________________________________________________
// Air
- AliMedium(2015, "AIR_L3_US", 15, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(15, "AIR_L3_US", 15, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
// Beryllium
- AliMedium(2005, "BE_L3_US", 5, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(5, "BE_L3_US", 5, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
// Aluminium
- AliMedium(2004, "AL_L3_US", 4, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(4, "AL_L3_US", 4, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
// Vacuum
- AliMedium(2016, "VA_L3_US", 16, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(16, "VA_L3_US", 16, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
// Steel
- AliMedium(2019, "ST_L3_US", 19, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(19, "ST_L3_US", 19, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
}
//
void AliPIPEv3::Undulation(char *undul, Float_t pitch, Float_t thick,
const Float_t const1 = .293;
const Float_t const2 = .707;
- AliMC* pMC = AliMC::GetMC();
-
// Local variables
Int_t j, nwave;
Float_t dcone1[5], dcone2[5], dcone3[5], dcone4[5], dcone5[5],
dcone6[5], dcone7[5], dcone8[5];
Float_t xc, yc, zc, dundul[3];
- Int_t *idtmed = gAlice->Idtmed();
+ Int_t *idtmed = fIdtmed->GetArray()-1999;
// Function Body
dcone8[3] = dcone5[1];
dcone8[4] = dcone5[2];
- pMC->Gsvolu(cone[0], "CONE", idtmed[2015], dcone1, 5);
- pMC->Gsvolu(cone[1], "CONE", idtmed[2015], dcone2, 5);
- pMC->Gsvolu(cone[2], "CONE", idtmed[2015], dcone3, 5);
- pMC->Gsvolu(cone[3], "CONE", idtmed[2015], dcone4, 5);
- pMC->Gsvolu(cone[4], "CONE", idtmed[2015], dcone5, 5);
- pMC->Gsvolu(cone[5], "CONE", idtmed[2015], dcone6, 5);
- pMC->Gsvolu(cone[6], "CONE", idtmed[2015], dcone7, 5);
- pMC->Gsvolu(cone[7], "CONE", idtmed[2015], dcone8, 5);
- pMC->Gsatt(cone[0], "SEEN", 0);
- pMC->Gsatt(cone[1], "SEEN", 0);
- pMC->Gsatt(cone[2], "SEEN", 0);
- pMC->Gsatt(cone[3], "SEEN", 0);
- pMC->Gsatt(cone[4], "SEEN", 0);
- pMC->Gsatt(cone[5], "SEEN", 0);
- pMC->Gsatt(cone[6], "SEEN", 0);
- pMC->Gsatt(cone[7], "SEEN", 0);
+ gMC->Gsvolu(cone[0], "CONE", idtmed[2018], dcone1, 5);
+ gMC->Gsvolu(cone[1], "CONE", idtmed[2018], dcone2, 5);
+ gMC->Gsvolu(cone[2], "CONE", idtmed[2018], dcone3, 5);
+ gMC->Gsvolu(cone[3], "CONE", idtmed[2018], dcone4, 5);
+ gMC->Gsvolu(cone[4], "CONE", idtmed[2018], dcone5, 5);
+ gMC->Gsvolu(cone[5], "CONE", idtmed[2018], dcone6, 5);
+ gMC->Gsvolu(cone[6], "CONE", idtmed[2018], dcone7, 5);
+ gMC->Gsvolu(cone[7], "CONE", idtmed[2018], dcone8, 5);
+ gMC->Gsatt(cone[0], "SEEN", 0);
+ gMC->Gsatt(cone[1], "SEEN", 0);
+ gMC->Gsatt(cone[2], "SEEN", 0);
+ gMC->Gsatt(cone[3], "SEEN", 0);
+ gMC->Gsatt(cone[4], "SEEN", 0);
+ gMC->Gsatt(cone[5], "SEEN", 0);
+ gMC->Gsatt(cone[6], "SEEN", 0);
+ gMC->Gsatt(cone[7], "SEEN", 0);
// DEFINE AN IMAGINARY TUBE VOLUME FOR UNDULATED CHAMBER, FILL WITH VACUUM
dundul[1] = rundul + pitch + thick * 2;
//
dundul[0] = 1e-4;
- pMC->Gsvolu(undul, "TUBE", idtmed[2015], dundul, 3);
+ gMC->Gsvolu(undul, "TUBE", idtmed[2015], dundul, 3);
xc = 0;
yc = 0;
zc = -dundul[2] + dcone1[0];
for (j = 1; j <= nwave; ++j) {
- pMC->Gspos(cone[0], j, undul, xc, yc, zc, 0, "ONLY");
+ gMC->Gspos(cone[0], j, undul, xc, yc, zc, 0, "ONLY");
zc = zc + dcone1[0] + dcone2[0];
- pMC->Gspos(cone[1], j, undul, xc, yc, zc, 0, "ONLY");
+ gMC->Gspos(cone[1], j, undul, xc, yc, zc, 0, "ONLY");
zc = zc + dcone2[0] + dcone3[0];
- pMC->Gspos(cone[2], j, undul, xc, yc, zc, 0, "ONLY");
+ gMC->Gspos(cone[2], j, undul, xc, yc, zc, 0, "ONLY");
zc = zc + dcone3[0] + dcone4[0];
- pMC->Gspos(cone[3], j, undul, xc, yc, zc, 0, "ONLY");
+ gMC->Gspos(cone[3], j, undul, xc, yc, zc, 0, "ONLY");
zc = zc + dcone4[0] + dcone5[0];
- pMC->Gspos(cone[4], j, undul, xc, yc, zc, 0, "ONLY");
+ gMC->Gspos(cone[4], j, undul, xc, yc, zc, 0, "ONLY");
zc = zc + dcone5[0] + dcone6[0];
- pMC->Gspos(cone[5], j, undul, xc, yc, zc, 0, "ONLY");
+ gMC->Gspos(cone[5], j, undul, xc, yc, zc, 0, "ONLY");
zc = zc + dcone6[0] + dcone7[0];
- pMC->Gspos(cone[6], j, undul, xc, yc, zc, 0, "ONLY");
+ gMC->Gspos(cone[6], j, undul, xc, yc, zc, 0, "ONLY");
zc = zc + dcone7[0] + dcone8[0];
- pMC->Gspos(cone[7], j, undul, xc, yc, zc, 0, "ONLY");
+ gMC->Gspos(cone[7], j, undul, xc, yc, zc, 0, "ONLY");
zc = zc + dcone8[0] + dcone1[0];
}
}