/*
$Log$
+Revision 1.4 2000/11/01 14:53:21 cblume
+Merge with TRD-develop
+
+Revision 1.1.4.4 2000/10/15 23:40:01 cblume
+Remove AliTRDconst
+
+Revision 1.1.4.3 2000/10/06 16:49:46 cblume
+Made Getters const
+
+Revision 1.1.4.2 2000/10/04 16:34:58 cblume
+Replace include files by forward declarations
+
+Revision 1.1.4.1 2000/09/22 14:43:41 cblume
+Allow the pad/timebin-dimensions to be changed after initialization
+
+Revision 1.3 2000/10/02 21:28:19 fca
+Removal of useless dependecies via forward declarations
+
+Revision 1.2 2000/06/08 18:32:58 cblume
+Make code compliant to coding conventions
+
+Revision 1.1 2000/02/28 19:01:42 cblume
+Add new TRD classes
+
*/
///////////////////////////////////////////////////////////////////////////////
// //
///////////////////////////////////////////////////////////////////////////////
+#include "AliMC.h"
+
#include "AliTRDgeometryHole.h"
ClassImp(AliTRDgeometryHole)
//_____________________________________________________________________________
AliTRDgeometryHole::~AliTRDgeometryHole()
{
+ //
+ // AliTRDgeometryHole destructor
+ //
}
Int_t iplan;
// The length of the inner chambers
- for (iplan = 0; iplan < kNplan; iplan++)
+ for (iplan = 0; iplan < fgkNplan; iplan++)
fClengthI[iplan] = 110.0;
// The length of the middle chambers
//
// The pad row (z-direction)
- for (iplan = 0; iplan < kNplan; iplan++) {
-
- for (Int_t isect = 0; isect < kNsect; isect++) {
- Float_t clengthI = fClengthI[iplan];
- Float_t clengthM = fClengthM1[iplan];
- Float_t clengthO = fClengthO1[iplan];
- switch (isect) {
- case 12:
- case 13:
- case 14:
- case 15:
- case 16:
- clengthM = fClengthM2[iplan];
- clengthO = fClengthO2[iplan];
- break;
- case 4:
- case 5:
- case 6:
- clengthO = fClengthO3[iplan];
- break;
- };
- fRowMax[iplan][0][isect] = 1 + TMath::Nint((clengthO - 2. * kCcthick)
- / fRowPadSize - 0.5);
- fRowMax[iplan][1][isect] = 1 + TMath::Nint((clengthM - 2. * kCcthick)
- / fRowPadSize - 0.5);
- fRowMax[iplan][2][isect] = 1 + TMath::Nint((clengthI - 2. * kCcthick)
- / fRowPadSize - 0.5);
- fRowMax[iplan][3][isect] = 1 + TMath::Nint((clengthM - 2. * kCcthick)
- / fRowPadSize - 0.5);
- fRowMax[iplan][4][isect] = 1 + TMath::Nint((clengthO - 2. * kCcthick)
- / fRowPadSize - 0.5);
- fRow0[iplan][0][isect] = -clengthI/2. - clengthM - clengthO + kCcthick;
- fRow0[iplan][1][isect] = -clengthI/2. - clengthM + kCcthick;
- fRow0[iplan][2][isect] = -clengthI/2. + kCcthick;
- fRow0[iplan][3][isect] = clengthI/2. + kCcthick;
- fRow0[iplan][4][isect] = clengthI/2. + clengthM + kCcthick;
+ SetNRowPad();
+
+}
+
+//_____________________________________________________________________________
+void AliTRDgeometryHole::SetNRowPad(Int_t p, Int_t c, Int_t npad)
+{
+ //
+ // Redefines the number of pads in raw direction for
+ // a given plane and chamber number
+ //
+
+ Float_t clengthI = fClengthI[p];
+ Float_t clengthM = fClengthM1[p];
+ Float_t clengthO = fClengthO1[p];
+
+ for (Int_t iSect = 0; iSect < fgkNsect; iSect++) {
+
+ fRowMax[p][c][iSect] = npad;
+ if (c == 2) {
+ fRowPadSize[p][c][iSect] = (clengthI - 2. * fgkCcthick)
+ / fRowMax[p][c][iSect];
+ }
+ if ((c == 1) || (c == 3)) {
+ fRowPadSize[p][c][iSect] = (clengthM - 2. * fgkCcthick)
+ / fRowMax[p][c][iSect];
+ }
+ if ((c == 0) || (c == 4)) {
+ fRowPadSize[p][c][iSect] = (clengthO - 2. * fgkCcthick)
+ / fRowMax[p][c][iSect];
}
}
}
+//_____________________________________________________________________________
+void AliTRDgeometryHole::SetNRowPad()
+{
+ //
+ // Defines the pad size in row direction
+ //
+
+ for (Int_t iPlan = 0; iPlan < fgkNplan; iPlan++) {
+
+ Float_t clengthI = fClengthI[iPlan];
+ Float_t clengthM = fClengthM1[iPlan];
+ Float_t clengthO = fClengthO1[iPlan];
+
+ for (Int_t iSect = 0; iSect < fgkNsect; iSect++) {
+
+ fRow0[iPlan][0][iSect] = -clengthI/2. - clengthM - clengthO + fgkCcthick;
+ fRow0[iPlan][1][iSect] = -clengthI/2. - clengthM + fgkCcthick;
+ fRow0[iPlan][2][iSect] = -clengthI/2. + fgkCcthick;
+ fRow0[iPlan][3][iSect] = clengthI/2. + fgkCcthick;
+ fRow0[iPlan][4][iSect] = clengthI/2. + clengthM + fgkCcthick;
+
+ for (Int_t iCham = 0; iCham < fgkNcham; iCham++) {
+
+ if (iCham == 2) {
+ fRowMax[iPlan][iCham][iSect] = 18;
+ fRowPadSize[iPlan][iCham][iSect] = (clengthI - 2. * fgkCcthick)
+ / fRowMax[iPlan][iCham][iSect];
+ }
+ if ((iCham == 1) || (iCham == 3)) {
+ fRowMax[iPlan][iCham][iSect] = 24;
+ fRowPadSize[iPlan][iCham][iSect] = (clengthM - 2. * fgkCcthick)
+ / fRowMax[iPlan][iCham][iSect];
+ }
+ if ((iCham == 0) || (iCham == 4)) {
+ if (iPlan < 4) {
+ fRowMax[iPlan][iCham][iSect] = 24;
+ }
+ if (iPlan == 4) {
+ fRowMax[iPlan][iCham][iSect] = 22;
+ }
+ if (iPlan == 5) {
+ fRowMax[iPlan][iCham][iSect] = 20;
+ }
+ fRowPadSize[iPlan][iCham][iSect] = (clengthO - 2. * fgkCcthick)
+ / fRowMax[iPlan][iCham][iSect];
+ }
+
+ }
+ }
+ }
+
+}
+
//_____________________________________________________________________________
void AliTRDgeometryHole::CreateGeometry(Int_t *idtmed)
{
Int_t iplan;
- const Int_t npar_trd = 4;
- const Int_t npar_cha = 3;
+ const Int_t kNparTrd = 4;
+ const Int_t kNparCha = 3;
+ const Int_t kNplan = fgkNplan;
- Float_t par_trd[npar_trd];
- Float_t par_cha[npar_cha];
+ Float_t parTrd[kNparTrd];
+ Float_t parCha[kNparCha];
Float_t xpos, ypos, zpos;
AliTRDgeometry::CreateGeometry(idtmed);
// The TRD mother volume for one sector (Air) (dimensions identical to BTR1)
- par_trd[0] = kSwidth1/2.;
- par_trd[1] = kSwidth2/2.;
- par_trd[2] = kSlenTR1/2.;
- par_trd[3] = kSheight/2.;
- gMC->Gsvolu("TRD1","TRD1",idtmed[1302-1],par_trd,npar_trd);
+ parTrd[0] = fgkSwidth1/2.;
+ parTrd[1] = fgkSwidth2/2.;
+ parTrd[2] = fgkSlenTR1/2.;
+ parTrd[3] = fgkSheight/2.;
+ gMC->Gsvolu("TRD1","TRD1",idtmed[1302-1],parTrd,kNparTrd);
// The TRD mother volume for one sector (Air) (dimensions identical to BTR2)
- par_trd[0] = kSwidth1/2.;
- par_trd[1] = kSwidth2/2.;
- par_trd[2] = kSlenTR2/2.;
- par_trd[3] = kSheight/2.;
- gMC->Gsvolu("TRD2","TRD1",idtmed[1302-1],par_trd,npar_trd);
+ parTrd[0] = fgkSwidth1/2.;
+ parTrd[1] = fgkSwidth2/2.;
+ parTrd[2] = fgkSlenTR2/2.;
+ parTrd[3] = fgkSheight/2.;
+ gMC->Gsvolu("TRD2","TRD1",idtmed[1302-1],parTrd,kNparTrd);
// The TRD mother volume for one sector (Air) (dimensions identical to BTR3)
- par_trd[0] = kSwidth1/2.;
- par_trd[1] = kSwidth2/2.;
- par_trd[2] = kSlenTR3/2.;
- par_trd[3] = kSheight/2.;
- gMC->Gsvolu("TRD3","TRD1",idtmed[1302-1],par_trd,npar_trd);
+ parTrd[0] = fgkSwidth1/2.;
+ parTrd[1] = fgkSwidth2/2.;
+ parTrd[2] = fgkSlenTR3/2.;
+ parTrd[3] = fgkSheight/2.;
+ gMC->Gsvolu("TRD3","TRD1",idtmed[1302-1],parTrd,kNparTrd);
// Position the chambers in the TRD mother volume
for (iplan = 1; iplan <= kNplan; iplan++) {
// The inner chambers ---------------------------------------------------------------
// the aluminum frame
- par_cha[0] = fCwidth[iplan-1]/2.;
- par_cha[1] = fClengthI[iplan-1]/2.;
- par_cha[2] = kCaframe/2.;
+ parCha[0] = fCwidth[iplan-1]/2.;
+ parCha[1] = fClengthI[iplan-1]/2.;
+ parCha[2] = fgkCaframe/2.;
xpos = 0.;
ypos = 0.;
- zpos = kCheight - kCaframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UAFI",iplan ,"TRD1",xpos,ypos,zpos,0,"MANY",par_cha,npar_cha);
+ zpos = fgkCheight - fgkCaframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UAFI",iplan ,"TRD1",xpos,ypos,zpos,0,"MANY",parCha,kNparCha);
// the inner part of the aluminum frame
- par_cha[0] = fCwidth[iplan-1]/2. - kCathick;
- par_cha[1] = fClengthI[iplan-1]/2. - kCathick;
- par_cha[2] = kCaframe/2.;
+ parCha[0] = fCwidth[iplan-1]/2. - fgkCathick;
+ parCha[1] = fClengthI[iplan-1]/2. - fgkCathick;
+ parCha[2] = fgkCaframe/2.;
xpos = 0.;
ypos = 0.;
- zpos = kCheight - kCaframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UAII",iplan ,"TRD1",xpos,ypos,zpos,0,"ONLY",par_cha,npar_cha);
+ zpos = fgkCheight - fgkCaframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UAII",iplan ,"TRD1",xpos,ypos,zpos,0,"ONLY",parCha,kNparCha);
// the carbon frame
- par_cha[0] = fCwidth[iplan-1]/2.;
- par_cha[1] = fClengthI[iplan-1]/2.;
- par_cha[2] = kCcframe/2.;
+ parCha[0] = fCwidth[iplan-1]/2.;
+ parCha[1] = fClengthI[iplan-1]/2.;
+ parCha[2] = fgkCcframe/2.;
xpos = 0.;
ypos = 0.;
- zpos = kCcframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UCFI",iplan ,"TRD1",xpos,ypos,zpos,0,"MANY",par_cha,npar_cha);
+ zpos = fgkCcframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UCFI",iplan ,"TRD1",xpos,ypos,zpos,0,"MANY",parCha,kNparCha);
// the inner part of the carbon frame
- par_cha[0] = fCwidth[iplan-1]/2. - kCcthick;
- par_cha[1] = fClengthI[iplan-1]/2. - kCcthick;
- par_cha[2] = kCcframe/2.;
+ parCha[0] = fCwidth[iplan-1]/2. - fgkCcthick;
+ parCha[1] = fClengthI[iplan-1]/2. - fgkCcthick;
+ parCha[2] = fgkCcframe/2.;
xpos = 0.;
ypos = 0.;
- zpos = kCcframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UCII",iplan ,"TRD1",xpos,ypos,zpos,0,"ONLY",par_cha,npar_cha);
+ zpos = fgkCcframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UCII",iplan ,"TRD1",xpos,ypos,zpos,0,"ONLY",parCha,kNparCha);
// The middle chambers --------------------------------------------------------------
// the aluminum frame
- par_cha[0] = fCwidth[iplan-1]/2.;
- par_cha[1] = fClengthM1[iplan-1]/2.;
- par_cha[2] = kCaframe/2.;
+ parCha[0] = fCwidth[iplan-1]/2.;
+ parCha[1] = fClengthM1[iplan-1]/2.;
+ parCha[2] = fgkCaframe/2.;
xpos = 0.;
- ypos = fClengthI[iplan-1]/2. + fClengthM1[iplan-1]/2.;
- zpos = kCheight - kCaframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UAFM",iplan ,"TRD1",xpos, ypos,zpos,0,"MANY",par_cha,npar_cha);
- gMC->Gsposp("UAFM",iplan+ kNplan,"TRD1",xpos,-ypos,zpos,0,"MANY",par_cha,npar_cha);
- par_cha[0] = fCwidth[iplan-1]/2.;
- par_cha[1] = fClengthM2[iplan-1]/2.;
- par_cha[2] = kCaframe/2.;
+ ypos = fClengthI[iplan-1]/2.+ fClengthM1[iplan-1]/2.;
+ zpos = fgkCheight - fgkCaframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UAFM",iplan ,"TRD1",xpos, ypos,zpos,0,"MANY",parCha,kNparCha);
+ gMC->Gsposp("UAFM",iplan+ kNplan,"TRD1",xpos,-ypos,zpos,0,"MANY",parCha,kNparCha);
+ parCha[0] = fCwidth[iplan-1]/2.;
+ parCha[1] = fClengthM2[iplan-1]/2.;
+ parCha[2] = fgkCaframe/2.;
xpos = 0.;
- ypos = fClengthM2[iplan-1]/2. - kSlenTR2/2.;
- zpos = kCheight - kCaframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UAFM",iplan+2*kNplan,"TRD2",xpos, ypos,zpos,0,"MANY",par_cha,npar_cha);
+ ypos = fClengthM2[iplan-1]/2. - fgkSlenTR2/2.;
+ zpos = fgkCheight - fgkCaframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UAFM",iplan+2*kNplan,"TRD2",xpos, ypos,zpos,0,"MANY",parCha,kNparCha);
// the inner part of the aluminum frame
- par_cha[0] = fCwidth[iplan-1]/2. - kCathick;
- par_cha[1] = fClengthM1[iplan-1]/2. - kCathick;
- par_cha[2] = kCaframe/2.;
+ parCha[0] = fCwidth[iplan-1]/2. - fgkCathick;
+ parCha[1] = fClengthM1[iplan-1]/2. - fgkCathick;
+ parCha[2] = fgkCaframe/2.;
xpos = 0.;
- ypos = fClengthI[iplan-1]/2. + fClengthM1[iplan-1]/2.;
- zpos = kCheight - kCaframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UAIM",iplan ,"TRD1",xpos, ypos,zpos,0,"ONLY",par_cha,npar_cha);
- gMC->Gsposp("UAIM",iplan+ kNplan,"TRD1",xpos,-ypos,zpos,0,"ONLY",par_cha,npar_cha);
- par_cha[0] = fCwidth[iplan-1]/2. - kCathick;
- par_cha[1] = fClengthM2[iplan-1]/2. - kCathick;
- par_cha[2] = kCaframe/2.;
+ ypos = fClengthI[iplan-1]/2. + fClengthM1[iplan-1]/2.;
+ zpos = fgkCheight - fgkCaframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UAIM",iplan ,"TRD1",xpos, ypos,zpos,0,"ONLY",parCha,kNparCha);
+ gMC->Gsposp("UAIM",iplan+ kNplan,"TRD1",xpos,-ypos,zpos,0,"ONLY",parCha,kNparCha);
+ parCha[0] = fCwidth[iplan-1]/2. - fgkCathick;
+ parCha[1] = fClengthM2[iplan-1]/2. - fgkCathick;
+ parCha[2] = fgkCaframe/2.;
xpos = 0.;
- ypos = fClengthM2[iplan-1]/2. - kSlenTR2/2.;
- zpos = kCheight - kCaframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UAIM",iplan+2*kNplan,"TRD2",xpos, ypos,zpos,0,"ONLY",par_cha,npar_cha);
+ ypos = fClengthM2[iplan-1]/2. - fgkSlenTR2/2.;
+ zpos = fgkCheight - fgkCaframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UAIM",iplan+2*kNplan,"TRD2",xpos, ypos,zpos,0,"ONLY",parCha,kNparCha);
// the carbon frame
- par_cha[0] = fCwidth[iplan-1]/2.;
- par_cha[1] = fClengthM1[iplan-1]/2.;
- par_cha[2] = kCcframe/2.;
+ parCha[0] = fCwidth[iplan-1]/2.;
+ parCha[1] = fClengthM1[iplan-1]/2.;
+ parCha[2] = fgkCcframe/2.;
xpos = 0.;
ypos = fClengthI[iplan-1]/2. + fClengthM1[iplan-1]/2.;
- zpos = kCcframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UCFM",iplan ,"TRD1",xpos, ypos,zpos,0,"MANY",par_cha,npar_cha);
- gMC->Gsposp("UCFM",iplan+ kNplan,"TRD1",xpos,-ypos,zpos,0,"MANY",par_cha,npar_cha);
- par_cha[0] = fCwidth[iplan-1]/2.;
- par_cha[1] = fClengthM2[iplan-1]/2.;
- par_cha[2] = kCcframe/2.;
+ zpos = fgkCcframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UCFM",iplan ,"TRD1",xpos, ypos,zpos,0,"MANY",parCha,kNparCha);
+ gMC->Gsposp("UCFM",iplan+ kNplan,"TRD1",xpos,-ypos,zpos,0,"MANY",parCha,kNparCha);
+ parCha[0] = fCwidth[iplan-1]/2.;
+ parCha[1] = fClengthM2[iplan-1]/2.;
+ parCha[2] = fgkCcframe/2.;
xpos = 0.;
- ypos = fClengthM2[iplan-1]/2. - kSlenTR2/2.;
- zpos = kCcframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UCFM",iplan+2*kNplan,"TRD2",xpos, ypos,zpos,0,"MANY",par_cha,npar_cha);
+ ypos = fClengthM2[iplan-1]/2. - fgkSlenTR2/2.;
+ zpos = fgkCcframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UCFM",iplan+2*kNplan,"TRD2",xpos, ypos,zpos,0,"MANY",parCha,kNparCha);
// the inner part of the carbon frame
- par_cha[0] = fCwidth[iplan-1]/2. - kCcthick;
- par_cha[1] = fClengthM1[iplan-1]/2. - kCcthick;
- par_cha[2] = kCcframe/2.;
+ parCha[0] = fCwidth[iplan-1]/2. - fgkCcthick;
+ parCha[1] = fClengthM1[iplan-1]/2. - fgkCcthick;
+ parCha[2] = fgkCcframe/2.;
xpos = 0.;
ypos = fClengthI[iplan-1]/2. + fClengthM1[iplan-1]/2.;
- zpos = kCcframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UCIM",iplan ,"TRD1",xpos, ypos,zpos,0,"ONLY",par_cha,npar_cha);
- gMC->Gsposp("UCIM",iplan+ kNplan,"TRD1",xpos,-ypos,zpos,0,"ONLY",par_cha,npar_cha);
- par_cha[0] = fCwidth[iplan-1]/2. - kCcthick;
- par_cha[1] = fClengthM2[iplan-1]/2. - kCcthick;
- par_cha[2] = kCcframe/2.;
+ zpos = fgkCcframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UCIM",iplan ,"TRD1",xpos, ypos,zpos,0,"ONLY",parCha,kNparCha);
+ gMC->Gsposp("UCIM",iplan+ kNplan,"TRD1",xpos,-ypos,zpos,0,"ONLY",parCha,kNparCha);
+ parCha[0] = fCwidth[iplan-1]/2. - fgkCcthick;
+ parCha[1] = fClengthM2[iplan-1]/2. - fgkCcthick;
+ parCha[2] = fgkCcframe/2.;
xpos = 0.;
- ypos = fClengthM2[iplan-1]/2. - kSlenTR2/2.;
- zpos = kCcframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UCIM",iplan+2*kNplan,"TRD2",xpos, ypos,zpos,0,"ONLY",par_cha,npar_cha);
+ ypos = fClengthM2[iplan-1]/2. - fgkSlenTR2/2.;
+ zpos = fgkCcframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UCIM",iplan+2*kNplan,"TRD2",xpos, ypos,zpos,0,"ONLY",parCha,kNparCha);
// The outer chambers ---------------------------------------------------------------
// the aluminum frame
- par_cha[0] = fCwidth[iplan-1]/2.;
- par_cha[1] = fClengthO1[iplan-1]/2.;
- par_cha[2] = kCaframe/2.;
+ parCha[0] = fCwidth[iplan-1]/2.;
+ parCha[1] = fClengthO1[iplan-1]/2.;
+ parCha[2] = fgkCaframe/2.;
xpos = 0.;
ypos = fClengthI[iplan-1]/2. + fClengthM1[iplan-1] + fClengthO1[iplan-1]/2.;
- zpos = kCheight - kCaframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UAFO",iplan ,"TRD1",xpos, ypos,zpos,0,"MANY",par_cha,npar_cha);
- gMC->Gsposp("UAFO",iplan+ kNplan,"TRD1",xpos,-ypos,zpos,0,"MANY",par_cha,npar_cha);
- par_cha[0] = fCwidth[iplan-1]/2.;
- par_cha[1] = fClengthO2[iplan-1]/2.;
- par_cha[2] = kCaframe/2.;
+ zpos = fgkCheight - fgkCaframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UAFO",iplan ,"TRD1",xpos, ypos,zpos,0,"MANY",parCha,kNparCha);
+ gMC->Gsposp("UAFO",iplan+ kNplan,"TRD1",xpos,-ypos,zpos,0,"MANY",parCha,kNparCha);
+ parCha[0] = fCwidth[iplan-1]/2.;
+ parCha[1] = fClengthO2[iplan-1]/2.;
+ parCha[2] = fgkCaframe/2.;
xpos = 0.;
- ypos = fClengthM2[iplan-1] + fClengthO2[iplan-1]/2. - kSlenTR2/2.;
- zpos = kCheight - kCaframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UAFO",iplan+2*kNplan,"TRD2",xpos, ypos,zpos,0,"MANY",par_cha,npar_cha);
- par_cha[0] = fCwidth[iplan-1]/2.;
- par_cha[1] = fClengthO3[iplan-1]/2.;
- par_cha[2] = kCaframe/2.;
+ ypos = fClengthM2[iplan-1] + fClengthO2[iplan-1]/2. - fgkSlenTR2/2.;
+ zpos = fgkCheight - fgkCaframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UAFO",iplan+2*kNplan,"TRD2",xpos, ypos,zpos,0,"MANY",parCha,kNparCha);
+ parCha[0] = fCwidth[iplan-1]/2.;
+ parCha[1] = fClengthO3[iplan-1]/2.;
+ parCha[2] = fgkCaframe/2.;
xpos = 0.;
- ypos = fClengthO3[iplan-1]/2. - kSlenTR3/2.;
- zpos = kCheight - kCaframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UAFO",iplan+4*kNplan,"TRD3",xpos, ypos,zpos,0,"MANY",par_cha,npar_cha);
+ ypos = fClengthO3[iplan-1]/2. - fgkSlenTR3/2.;
+ zpos = fgkCheight - fgkCaframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UAFO",iplan+4*kNplan,"TRD3",xpos, ypos,zpos,0,"MANY",parCha,kNparCha);
// the inner part of the aluminum frame
- par_cha[0] = fCwidth[iplan-1]/2. - kCathick;
- par_cha[1] = fClengthO1[iplan-1]/2. - kCathick;
- par_cha[2] = kCaframe/2.;
+ parCha[0] = fCwidth[iplan-1]/2. - fgkCathick;
+ parCha[1] = fClengthO1[iplan-1]/2. - fgkCathick;
+ parCha[2] = fgkCaframe/2.;
xpos = 0.;
ypos = fClengthI[iplan-1]/2. + fClengthM1[iplan-1] + fClengthO1[iplan-1]/2.;
- zpos = kCheight - kCaframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UAIO",iplan ,"TRD1",xpos, ypos,zpos,0,"ONLY",par_cha,npar_cha);
- gMC->Gsposp("UAIO",iplan+ kNplan,"TRD1",xpos,-ypos,zpos,0,"ONLY",par_cha,npar_cha);
- par_cha[0] = fCwidth[iplan-1]/2. - kCathick;
- par_cha[1] = fClengthO2[iplan-1]/2. - kCathick;
- par_cha[2] = kCaframe/2.;
+ zpos = fgkCheight - fgkCaframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UAIO",iplan ,"TRD1",xpos, ypos,zpos,0,"ONLY",parCha,kNparCha);
+ gMC->Gsposp("UAIO",iplan+ kNplan,"TRD1",xpos,-ypos,zpos,0,"ONLY",parCha,kNparCha);
+ parCha[0] = fCwidth[iplan-1]/2. - fgkCathick;
+ parCha[1] = fClengthO2[iplan-1]/2. - fgkCathick;
+ parCha[2] = fgkCaframe/2.;
xpos = 0.;
- ypos = fClengthM2[iplan-1] + fClengthO2[iplan-1]/2. - kSlenTR2/2.;
- zpos = kCheight - kCaframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UAIO",iplan+2*kNplan,"TRD2",xpos, ypos,zpos,0,"ONLY",par_cha,npar_cha);
- par_cha[0] = fCwidth[iplan-1]/2. - kCathick;
- par_cha[1] = fClengthO3[iplan-1]/2. - kCathick;
- par_cha[2] = kCaframe/2.;
+ ypos = fClengthM2[iplan-1] + fClengthO2[iplan-1]/2. - fgkSlenTR2/2.;
+ zpos = fgkCheight - fgkCaframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UAIO",iplan+2*kNplan,"TRD2",xpos, ypos,zpos,0,"ONLY",parCha,kNparCha);
+ parCha[0] = fCwidth[iplan-1]/2. - fgkCathick;
+ parCha[1] = fClengthO3[iplan-1]/2. - fgkCathick;
+ parCha[2] = fgkCaframe/2.;
xpos = 0.;
- ypos = fClengthO3[iplan-1]/2. - kSlenTR3/2.;
- zpos = kCheight - kCaframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UAIO",iplan+4*kNplan,"TRD3",xpos, ypos,zpos,0,"ONLY",par_cha,npar_cha);
+ ypos = fClengthO3[iplan-1]/2. - fgkSlenTR3/2.;
+ zpos = fgkCheight - fgkCaframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UAIO",iplan+4*kNplan,"TRD3",xpos, ypos,zpos,0,"ONLY",parCha,kNparCha);
// the carbon frame
- par_cha[0] = fCwidth[iplan-1]/2.;
- par_cha[1] = fClengthO1[iplan-1]/2.;
- par_cha[2] = kCcframe/2.;
+ parCha[0] = fCwidth[iplan-1]/2.;
+ parCha[1] = fClengthO1[iplan-1]/2.;
+ parCha[2] = fgkCcframe/2.;
xpos = 0.;
ypos = fClengthI[iplan-1]/2. + fClengthM1[iplan-1] + fClengthO1[iplan-1]/2.;
- zpos = kCcframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UCFO",iplan, "TRD1",xpos, ypos,zpos,0,"MANY",par_cha,npar_cha);
- gMC->Gsposp("UCFO",iplan+ kNplan,"TRD1",xpos,-ypos,zpos,0,"MANY",par_cha,npar_cha);
- par_cha[0] = fCwidth[iplan-1]/2.;
- par_cha[1] = fClengthO2[iplan-1]/2.;
- par_cha[2] = kCcframe/2.;
+ zpos = fgkCcframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UCFO",iplan, "TRD1",xpos, ypos,zpos,0,"MANY",parCha,kNparCha);
+ gMC->Gsposp("UCFO",iplan+ kNplan,"TRD1",xpos,-ypos,zpos,0,"MANY",parCha,kNparCha);
+ parCha[0] = fCwidth[iplan-1]/2.;
+ parCha[1] = fClengthO2[iplan-1]/2.;
+ parCha[2] = fgkCcframe/2.;
xpos = 0.;
- ypos = fClengthM2[iplan-1] + fClengthO2[iplan-1]/2. - kSlenTR2/2.;
- zpos = kCcframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UCFO",iplan+2*kNplan,"TRD2",xpos, ypos,zpos,0,"MANY",par_cha,npar_cha);
- par_cha[0] = fCwidth[iplan-1]/2.;
- par_cha[1] = fClengthO3[iplan-1]/2.;
- par_cha[2] = kCcframe/2.;
+ ypos = fClengthM2[iplan-1] + fClengthO2[iplan-1]/2. - fgkSlenTR2/2.;
+ zpos = fgkCcframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UCFO",iplan+2*kNplan,"TRD2",xpos, ypos,zpos,0,"MANY",parCha,kNparCha);
+ parCha[0] = fCwidth[iplan-1]/2.;
+ parCha[1] = fClengthO3[iplan-1]/2.;
+ parCha[2] = fgkCcframe/2.;
xpos = 0.;
- ypos = fClengthO3[iplan-1]/2. - kSlenTR3/2.;
- zpos = kCcframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UCFO",iplan+4*kNplan,"TRD3",xpos, ypos,zpos,0,"MANY",par_cha,npar_cha);
+ ypos = fClengthO3[iplan-1]/2. - fgkSlenTR3/2.;
+ zpos = fgkCcframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UCFO",iplan+4*kNplan,"TRD3",xpos, ypos,zpos,0,"MANY",parCha,kNparCha);
// the inner part of the carbon frame
- par_cha[0] = fCwidth[iplan-1]/2. - kCcthick;
- par_cha[1] = fClengthO1[iplan-1]/2. - kCcthick;
- par_cha[2] = kCcframe/2.;
+ parCha[0] = fCwidth[iplan-1]/2. - fgkCcthick;
+ parCha[1] = fClengthO1[iplan-1]/2. - fgkCcthick;
+ parCha[2] = fgkCcframe/2.;
xpos = 0.;
ypos = fClengthI[iplan-1]/2. + fClengthM1[iplan-1] + fClengthO1[iplan-1]/2.;
- zpos = kCcframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UCIO",iplan ,"TRD1",xpos, ypos,zpos,0,"ONLY",par_cha,npar_cha);
- gMC->Gsposp("UCIO",iplan+ kNplan,"TRD1",xpos,-ypos,zpos,0,"ONLY",par_cha,npar_cha);
- par_cha[0] = fCwidth[iplan-1]/2. - kCcthick;
- par_cha[1] = fClengthO2[iplan-1]/2. - kCcthick;
- par_cha[2] = kCcframe/2.;
+ zpos = fgkCcframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UCIO",iplan ,"TRD1",xpos, ypos,zpos,0,"ONLY",parCha,kNparCha);
+ gMC->Gsposp("UCIO",iplan+ kNplan,"TRD1",xpos,-ypos,zpos,0,"ONLY",parCha,kNparCha);
+ parCha[0] = fCwidth[iplan-1]/2. - fgkCcthick;
+ parCha[1] = fClengthO2[iplan-1]/2. - fgkCcthick;
+ parCha[2] = fgkCcframe/2.;
xpos = 0.;
- ypos = fClengthM2[iplan-1] + fClengthO2[iplan-1]/2. - kSlenTR2/2.;
- zpos = kCcframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UCIO",iplan+2*kNplan,"TRD2",xpos, ypos,zpos,0,"ONLY",par_cha,npar_cha);
- par_cha[0] = fCwidth[iplan-1]/2. - kCcthick;
- par_cha[1] = fClengthO3[iplan-1]/2. - kCcthick;
- par_cha[2] = kCcframe/2.;
+ ypos = fClengthM2[iplan-1] + fClengthO2[iplan-1]/2. - fgkSlenTR2/2.;
+ zpos = fgkCcframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UCIO",iplan+2*kNplan,"TRD2",xpos, ypos,zpos,0,"ONLY",parCha,kNparCha);
+ parCha[0] = fCwidth[iplan-1]/2. - fgkCcthick;
+ parCha[1] = fClengthO3[iplan-1]/2. - fgkCcthick;
+ parCha[2] = fgkCcframe/2.;
xpos = 0.;
- ypos = fClengthO3[iplan-1]/2. - kSlenTR3/2.;
- zpos = kCcframe/2. - kSheight/2. + (iplan-1) * (kCheight + kCspace);
- gMC->Gsposp("UCIO",iplan+4*kNplan,"TRD3",xpos, ypos,zpos,0,"ONLY",par_cha,npar_cha);
+ ypos = fClengthO3[iplan-1]/2. - fgkSlenTR3/2.;
+ zpos = fgkCcframe/2. - fgkSheight/2. + (iplan-1) * (fgkCheight + fgkCspace);
+ gMC->Gsposp("UCIO",iplan+4*kNplan,"TRD3",xpos, ypos,zpos,0,"ONLY",parCha,kNparCha);
}