From a432117a4357fc80ddded0472e7d4edee0a08171 Mon Sep 17 00:00:00 2001 From: martinez Date: Wed, 15 Sep 2004 11:41:13 +0000 Subject: [PATCH] Pass detElemId to enevelopes (working week effort) --- MUON/AliMUONSlatGeometryBuilder.cxx | 198 +++++++++++++------------ MUON/AliMUONSt1GeometryBuilder.cxx | 12 +- MUON/AliMUONSt1GeometryBuilderV2.cxx | 32 ++-- MUON/AliMUONSt2GeometryBuilder.cxx | 9 +- MUON/AliMUONTriggerGeometryBuilder.cxx | 126 ++++++++-------- 5 files changed, 200 insertions(+), 177 deletions(-) diff --git a/MUON/AliMUONSlatGeometryBuilder.cxx b/MUON/AliMUONSlatGeometryBuilder.cxx index e3882cd837b..d91ed81c477 100644 --- a/MUON/AliMUONSlatGeometryBuilder.cxx +++ b/MUON/AliMUONSlatGeometryBuilder.cxx @@ -25,6 +25,7 @@ #include "AliMUON.h" #include "AliMUONChamber.h" #include "AliMUONChamberGeometry.h" +#include "AliMUONGeometryEnvelopeStore.h" #include "AliRun.h" ClassImp(AliMUONSlatGeometryBuilder) @@ -33,7 +34,8 @@ ClassImp(AliMUONSlatGeometryBuilder) //______________________________________________________________________________ AliMUONSlatGeometryBuilder::AliMUONSlatGeometryBuilder(AliMUON* muon) - : AliMUONVGeometryBuilder(&muon->Chamber(4), &muon->Chamber(5), + : AliMUONVGeometryBuilder("slat.dat", + &muon->Chamber(4), &muon->Chamber(5), &muon->Chamber(6), &muon->Chamber(7), &muon->Chamber(8), &muon->Chamber(9)), fMUON(muon) @@ -169,7 +171,7 @@ void AliMUONSlatGeometryBuilder::CreateGeometry() Float_t spar[3]; Int_t i, j; - Int_t detElementNumber; + Int_t detElemId; // the panel volume contains the rohacell @@ -301,53 +303,53 @@ void AliMUONSlatGeometryBuilder::CreateGeometry() // gMC->Gspos(volNam5, i*4+2,slats5Mother,-xSlat32, ySlat31, zoffs5+zSlat-2.*dzCh3, 0, "ONLY"); sprintf(idSlatCh5,"LA%d",kNslats3-1+i); - detElementNumber = 500 + i + kNslats3-1; gMC->Gsvolu(idSlatCh5,"BOX",kSlatMaterial,spar2,3); - GetChamber(4)->GetGeometry()->AddEnvelope(idSlatCh5, true, TGeoTranslation(xSlat32, ySlat31, zSlat+2.*dzCh3), + detElemId = 500 + i + kNslats3-1; + GetEnvelopes(4)->AddEnvelope(idSlatCh5, detElemId, true, TGeoTranslation(xSlat32, ySlat31, zSlat+2.*dzCh3), TGeoRotation("rot1",90,angle,90,90+angle,0,0) ); sprintf(idSlatCh5,"LA%d",3*kNslats3-2+i); - detElementNumber = 550 + i + kNslats3-1; gMC->Gsvolu(idSlatCh5,"BOX",kSlatMaterial,spar2,3); - GetChamber(4)->GetGeometry()->AddEnvelope(idSlatCh5, true, TGeoTranslation(-xSlat32, ySlat31, zSlat-2.*dzCh3), + detElemId = 550 + i + kNslats3-1; + GetEnvelopes(4)->AddEnvelope(idSlatCh5, detElemId, true, TGeoTranslation(-xSlat32, ySlat31, zSlat-2.*dzCh3), TGeoRotation("rot2",90,180+angle,90,90+angle,180,0) ); if (i > 0) { sprintf(idSlatCh5,"LA%d",kNslats3-1-i); - detElementNumber = 500 - i + kNslats3-1; gMC->Gsvolu(idSlatCh5,"BOX",kSlatMaterial,spar2,3); - GetChamber(4)->GetGeometry()->AddEnvelope(idSlatCh5, true, TGeoTranslation(xSlat32, ySlat32, zSlat+2.*dzCh3), + detElemId = 500 - i + kNslats3-1; + GetEnvelopes(4)->AddEnvelope(idSlatCh5, detElemId, true, TGeoTranslation(xSlat32, ySlat32, zSlat+2.*dzCh3), TGeoRotation("rot3",90,angle,90,270+angle,180,0) ); sprintf(idSlatCh5,"LA%d",3*kNslats3-2-i); - detElementNumber = 550 - i + kNslats3-1; gMC->Gsvolu(idSlatCh5,"BOX",kSlatMaterial,spar2,3); - GetChamber(4)->GetGeometry()->AddEnvelope(idSlatCh5, true, TGeoTranslation(-xSlat32, ySlat32, zSlat-2.*dzCh3), + detElemId = 550 - i + kNslats3-1; + GetEnvelopes(4)->AddEnvelope(idSlatCh5, detElemId, true, TGeoTranslation(-xSlat32, ySlat32, zSlat-2.*dzCh3), TGeoRotation("rot4",90,180+angle,90,270+angle,0,0) ); } sprintf(idSlatCh6,"LB%d",kNslats3-1+i); - detElementNumber = 600 + i + kNslats3-1; gMC->Gsvolu(idSlatCh6,"BOX",kSlatMaterial,spar2,3); - GetChamber(5)->GetGeometry()->AddEnvelope(idSlatCh6, true, TGeoTranslation(xSlat3, ySlat31, zSlat+2.*dzCh3), + detElemId = 600 + i + kNslats3-1; + GetEnvelopes(5)->AddEnvelope(idSlatCh6, detElemId, true, TGeoTranslation(xSlat3, ySlat31, zSlat+2.*dzCh3), TGeoRotation("rot5",90,angle,90,90+angle,0,0) ); sprintf(idSlatCh6,"LB%d",3*kNslats3-2+i); - detElementNumber = 650 + i + kNslats3-1; gMC->Gsvolu(idSlatCh6,"BOX",kSlatMaterial,spar2,3); - GetChamber(5)->GetGeometry()->AddEnvelope(idSlatCh6, true, TGeoTranslation(-xSlat3, ySlat31, zSlat-2.*dzCh3), + detElemId = 650 + i + kNslats3-1; + GetEnvelopes(5)->AddEnvelope(idSlatCh6, detElemId, true, TGeoTranslation(-xSlat3, ySlat31, zSlat-2.*dzCh3), TGeoRotation("rot6",90,180+angle,90,90+angle,180,0) ); if (i > 0) { sprintf(idSlatCh6,"LB%d",kNslats3-1-i); - detElementNumber = 600 - i + kNslats3-1; gMC->Gsvolu(idSlatCh6,"BOX",kSlatMaterial,spar2,3); - GetChamber(5)->GetGeometry()->AddEnvelope(idSlatCh6, true, TGeoTranslation(xSlat3, ySlat32, zSlat+2.*dzCh3), + detElemId = 600 - i + kNslats3-1; + GetEnvelopes(5)->AddEnvelope(idSlatCh6, detElemId, true, TGeoTranslation(xSlat3, ySlat32, zSlat+2.*dzCh3), TGeoRotation("rot7",90,angle,90,270+angle,180,0) ); sprintf(idSlatCh6,"LB%d",3*kNslats3-2-i); - detElementNumber = 650 - i + kNslats3-1; gMC->Gsvolu(idSlatCh6,"BOX",kSlatMaterial,spar2,3); - GetChamber(5)->GetGeometry()->AddEnvelope(idSlatCh6, true, TGeoTranslation(-xSlat3, ySlat32, zSlat-2.*dzCh3), + detElemId = 650 - i + kNslats3-1; + GetEnvelopes(5)->AddEnvelope(idSlatCh6, detElemId, true, TGeoTranslation(-xSlat3, ySlat32, zSlat-2.*dzCh3), TGeoRotation("rot8",90,180+angle,90,270+angle,0,0) ); } } @@ -415,13 +417,13 @@ void AliMUONSlatGeometryBuilder::CreateGeometry() // position the vertical frames if (i!=1 && i!=0) { - GetChamber(4)->GetGeometry()->AddEnvelopeConstituent("S05V", idSlatCh5, + GetEnvelopes(4)->AddEnvelopeConstituent("S05V", idSlatCh5, (2*i-1)*10+quadrant,TGeoTranslation(xvFrame2,0.,0.)); - GetChamber(4)->GetGeometry()->AddEnvelopeConstituent("S05V", idSlatCh5, + GetEnvelopes(4)->AddEnvelopeConstituent("S05V", idSlatCh5, (2*i)*10+quadrant,TGeoTranslation(-xvFrame2,0.,0.)); - GetChamber(5)->GetGeometry()->AddEnvelopeConstituent("S06V", idSlatCh6, + GetEnvelopes(5)->AddEnvelopeConstituent("S06V", idSlatCh6, (2*i-1)*10+quadrant,TGeoTranslation(xvFrame,0.,0.)); - GetChamber(5)->GetGeometry()->AddEnvelopeConstituent("S06V", idSlatCh6, + GetEnvelopes(5)->AddEnvelopeConstituent("S06V", idSlatCh6, (2*i)*10+quadrant,TGeoTranslation(-xvFrame,0.,0.)); } @@ -435,23 +437,23 @@ void AliMUONSlatGeometryBuilder::CreateGeometry() Float_t zPanel = spar[2] - panelpar[2]; if ( (i == 0 || i == 1 || i == 2) && j == kNPCB3[i]-1) { // 1 pcb is shortened by 5cm - GetChamber(4)->GetGeometry()->AddEnvelopeConstituent("SB5C", idSlatCh5, 2*index-1,TGeoTranslation(xx,0.,zPanel)); - GetChamber(4)->GetGeometry()->AddEnvelopeConstituent("SB5C", idSlatCh5, 2*index,TGeoTranslation(xx,0.,-zPanel)); - GetChamber(4)->GetGeometry()->AddEnvelopeConstituent("SB5I", idSlatCh5, index,TGeoTranslation(xx,0.,0.)); + GetEnvelopes(4)->AddEnvelopeConstituent("SB5C", idSlatCh5, 2*index-1,TGeoTranslation(xx,0.,zPanel)); + GetEnvelopes(4)->AddEnvelopeConstituent("SB5C", idSlatCh5, 2*index,TGeoTranslation(xx,0.,-zPanel)); + GetEnvelopes(4)->AddEnvelopeConstituent("SB5I", idSlatCh5, index,TGeoTranslation(xx,0.,0.)); } else if ( (i == 0 || i == 1 || i == 2) && j < kNPCB3[i]-1) { - GetChamber(4)->GetGeometry()->AddEnvelopeConstituent("S05C", idSlatCh5, 2*index-1,TGeoTranslation(xx2,0.,zPanel)); - GetChamber(4)->GetGeometry()->AddEnvelopeConstituent("S05C", idSlatCh5, 2*index,TGeoTranslation(xx2,0.,-zPanel)); - GetChamber(4)->GetGeometry()->AddEnvelopeConstituent("S05I", idSlatCh5, index,TGeoTranslation(xx2,0.,0.)); + GetEnvelopes(4)->AddEnvelopeConstituent("S05C", idSlatCh5, 2*index-1,TGeoTranslation(xx2,0.,zPanel)); + GetEnvelopes(4)->AddEnvelopeConstituent("S05C", idSlatCh5, 2*index,TGeoTranslation(xx2,0.,-zPanel)); + GetEnvelopes(4)->AddEnvelopeConstituent("S05I", idSlatCh5, index,TGeoTranslation(xx2,0.,0.)); } else { - GetChamber(4)->GetGeometry()->AddEnvelopeConstituent("S05C", idSlatCh5, 2*index-1,TGeoTranslation(xx,0.,zPanel)); - GetChamber(4)->GetGeometry()->AddEnvelopeConstituent("S05C", idSlatCh5, 2*index,TGeoTranslation(xx,0.,-zPanel)); - GetChamber(4)->GetGeometry()->AddEnvelopeConstituent("S05I", idSlatCh5, index,TGeoTranslation(xx,0.,0.)); + GetEnvelopes(4)->AddEnvelopeConstituent("S05C", idSlatCh5, 2*index-1,TGeoTranslation(xx,0.,zPanel)); + GetEnvelopes(4)->AddEnvelopeConstituent("S05C", idSlatCh5, 2*index,TGeoTranslation(xx,0.,-zPanel)); + GetEnvelopes(4)->AddEnvelopeConstituent("S05I", idSlatCh5, index,TGeoTranslation(xx,0.,0.)); } - GetChamber(5)->GetGeometry()->AddEnvelopeConstituent("S06C", idSlatCh6, 2*index-1,TGeoTranslation(xx,0.,zPanel)); - GetChamber(5)->GetGeometry()->AddEnvelopeConstituent("S06C", idSlatCh6, 2*index,TGeoTranslation(xx,0.,-zPanel)); - GetChamber(5)->GetGeometry()->AddEnvelopeConstituent("S06I", idSlatCh6, index,TGeoTranslation(xx,0.,0.)); + GetEnvelopes(5)->AddEnvelopeConstituent("S06C", idSlatCh6, 2*index-1,TGeoTranslation(xx,0.,zPanel)); + GetEnvelopes(5)->AddEnvelopeConstituent("S06C", idSlatCh6, 2*index,TGeoTranslation(xx,0.,-zPanel)); + GetEnvelopes(5)->AddEnvelopeConstituent("S06I", idSlatCh6, index,TGeoTranslation(xx,0.,0.)); } } @@ -525,10 +527,10 @@ void AliMUONSlatGeometryBuilder::CreateGeometry() sprintf(idSlatCh5,"LA%d",ConvertSlatNum(1,quadrant,kNslats3-1)); sprintf(idSlatCh6,"LB%d",ConvertSlatNum(1,quadrant,kNslats3-1)); - GetChamber(4)->GetGeometry()->AddEnvelopeConstituentParam("S05G", idSlatCh5, quadrant*100+imax+4*idiv+1, + GetEnvelopes(4)->AddEnvelopeConstituentParam("S05G", idSlatCh5, quadrant*100+imax+4*idiv+1, TGeoTranslation(xvol-(kPcbLength * (kNPCB3[1]-1)/2. + 35./2.),yvol-kPcbLength+kYoverlap,0.),3,divpar); - GetChamber(5)->GetGeometry()->AddEnvelopeConstituentParam("S06G", idSlatCh6, quadrant*100+imax+4*idiv+1, + GetEnvelopes(5)->AddEnvelopeConstituentParam("S06G", idSlatCh6, quadrant*100+imax+4*idiv+1, TGeoTranslation(xvol-kPcbLength * kNPCB3[1]/2.,yvol-kPcbLength+kYoverlap,0.),3,divpar); } } @@ -558,15 +560,15 @@ void AliMUONSlatGeometryBuilder::CreateGeometry() sprintf(idSlatCh5,"LA%d",13); sprintf(idSlatCh6,"LB%d",13); } - GetChamber(4)->GetGeometry()->AddEnvelopeConstituentParam("S05G", idSlatCh5,500+side*100+imax+4*idiv+1, + GetEnvelopes(4)->AddEnvelopeConstituentParam("S05G", idSlatCh5,500+side*100+imax+4*idiv+1, TGeoTranslation(xvol-(kPcbLength * (kNPCB3[0]-1)/2. + 35./2.),yvol+kYoverlap,0.),3,divpar); - GetChamber(5)->GetGeometry()->AddEnvelopeConstituentParam("S06G", idSlatCh6,500+side*100+imax+4*idiv+1, + GetEnvelopes(5)->AddEnvelopeConstituentParam("S06G", idSlatCh6,500+side*100+imax+4*idiv+1, TGeoTranslation(xvol-kPcbLength * kNPCB3[0]/2.,yvol+kYoverlap,0.),3,divpar); } ydiv += dydiv; // Going from bottom to top } - cout << "Geometry for Station 3...... done" << endl; + // cout << "Geometry for Station 3...... done" << endl; } if (fStations[3]) { @@ -611,52 +613,53 @@ void AliMUONSlatGeometryBuilder::CreateGeometry() Float_t zSlat = (i%2 ==0)? spar[2] : -spar[2]; sprintf(idSlatCh7,"LC%d",kNslats4-1+i); - detElementNumber = 700 + i + kNslats4-1; gMC->Gsvolu(idSlatCh7,"BOX",kSlatMaterial,spar,3); - GetChamber(6)->GetGeometry()->AddEnvelope(idSlatCh7, true, TGeoTranslation(xSlat4, ySlat4, zSlat+2.*dzCh4), + detElemId = 700 + i + kNslats4-1; + GetEnvelopes(6)->AddEnvelope(idSlatCh7, detElemId, true, TGeoTranslation(xSlat4, ySlat4, zSlat+2.*dzCh4), TGeoRotation("rot1",90,angle,90,90+angle,0,0) ); sprintf(idSlatCh7,"LC%d",3*kNslats4-2+i); - detElementNumber = 750 + i + kNslats4-1; gMC->Gsvolu(idSlatCh7,"BOX",kSlatMaterial,spar,3); - GetChamber(6)->GetGeometry()->AddEnvelope(idSlatCh7, true, TGeoTranslation(-xSlat4, ySlat4, zSlat-2.*dzCh4), + detElemId = 750 + i + kNslats4-1; + GetEnvelopes(6)->AddEnvelope(idSlatCh7, detElemId, true, TGeoTranslation(-xSlat4, ySlat4, zSlat-2.*dzCh4), TGeoRotation("rot2",90,180+angle,90,90+angle,180,0) ); if (i > 0) { sprintf(idSlatCh7,"LC%d",kNslats4-1-i); - detElementNumber = 700 - i + kNslats4-1; gMC->Gsvolu(idSlatCh7,"BOX",kSlatMaterial,spar,3); - GetChamber(6)->GetGeometry()->AddEnvelope(idSlatCh7, true, TGeoTranslation(xSlat4, -ySlat4, zSlat+2.*dzCh4), + detElemId = 700 - i + kNslats4-1; + GetEnvelopes(6)->AddEnvelope(idSlatCh7, detElemId, true, TGeoTranslation(xSlat4, -ySlat4, zSlat+2.*dzCh4), TGeoRotation("rot3",90,angle,90,270+angle,180,0) ); sprintf(idSlatCh7,"LC%d",3*kNslats4-2-i); - detElementNumber = 750 - i + kNslats4-1; + detElemId = 750 - i + kNslats4-1; gMC->Gsvolu(idSlatCh7,"BOX",kSlatMaterial,spar,3); - GetChamber(6)->GetGeometry()->AddEnvelope(idSlatCh7, true, + GetEnvelopes(6)->AddEnvelope(idSlatCh7, detElemId, true, TGeoTranslation(-xSlat4, -ySlat4, zSlat-2.*dzCh4), TGeoRotation("rot4",90,180+angle,90,270+angle,0,0) ); } sprintf(idSlatCh8,"LD%d",kNslats4-1+i); - detElementNumber = 800 + i + kNslats4-1; gMC->Gsvolu(idSlatCh8,"BOX",kSlatMaterial,spar,3); - GetChamber(7)->GetGeometry()->AddEnvelope(idSlatCh8, true, TGeoTranslation(xSlat4, ySlat4, zSlat+2.*dzCh4), + detElemId = 800 + i + kNslats4-1; + GetEnvelopes(7)->AddEnvelope(idSlatCh8, detElemId, true, TGeoTranslation(xSlat4, ySlat4, zSlat+2.*dzCh4), TGeoRotation("rot5",90,angle,90,90+angle,0,0) ); + sprintf(idSlatCh8,"LD%d",3*kNslats4-2+i); - detElementNumber = 850 + i + kNslats4-1; + detElemId = 850 + i + kNslats4-1; gMC->Gsvolu(idSlatCh8,"BOX",kSlatMaterial,spar,3); - GetChamber(7)->GetGeometry()->AddEnvelope(idSlatCh8, true, TGeoTranslation(-xSlat4, ySlat4, zSlat-2.*dzCh4), + GetEnvelopes(7)->AddEnvelope(idSlatCh8, detElemId, true, TGeoTranslation(-xSlat4, ySlat4, zSlat-2.*dzCh4), TGeoRotation("rot6",90,180+angle,90,90+angle,180,0) ); if (i > 0) { sprintf(idSlatCh8,"LD%d",kNslats4-1-i); - detElementNumber = 800 - i + kNslats4-1; + detElemId = 800 - i + kNslats4-1; gMC->Gsvolu(idSlatCh8,"BOX",kSlatMaterial,spar,3); - GetChamber(7)->GetGeometry()->AddEnvelope(idSlatCh8, true, TGeoTranslation(xSlat4, -ySlat4, zSlat+2.*dzCh4), + GetEnvelopes(7)->AddEnvelope(idSlatCh8, detElemId, true, TGeoTranslation(xSlat4, -ySlat4, zSlat+2.*dzCh4), TGeoRotation("rot7",90,angle,90,270+angle,180,0) ); sprintf(idSlatCh8,"LD%d",3*kNslats4-2-i); - detElementNumber = 850 - i + kNslats4-1; + detElemId = 850 - i + kNslats4-1; gMC->Gsvolu(idSlatCh8,"BOX",kSlatMaterial,spar,3); - GetChamber(7)->GetGeometry()->AddEnvelope(idSlatCh8, true, TGeoTranslation(-xSlat4, -ySlat4, zSlat-2.*dzCh4), + GetEnvelopes(7)->AddEnvelope(idSlatCh8, detElemId, true, TGeoTranslation(-xSlat4, -ySlat4, zSlat-2.*dzCh4), TGeoRotation("rot8",90,180+angle,90,270+angle,0,0) ); } } @@ -714,10 +717,10 @@ void AliMUONSlatGeometryBuilder::CreateGeometry() // position the vertical frames if (i != 1 && i != 0) { - GetChamber(6)->GetGeometry()->AddEnvelopeConstituent("S07V", idSlatCh7, (2*i-1)*10+quadrant,TGeoTranslation(xvFrame,0.,0.)); - GetChamber(6)->GetGeometry()->AddEnvelopeConstituent("S07V", idSlatCh7, (2*i)*10+quadrant,TGeoTranslation(-xvFrame,0.,0.)); - GetChamber(7)->GetGeometry()->AddEnvelopeConstituent("S08V", idSlatCh8, (2*i-1)*10+quadrant,TGeoTranslation(xvFrame,0.,0.)); - GetChamber(7)->GetGeometry()->AddEnvelopeConstituent("S08V", idSlatCh8, (2*i)*10+quadrant,TGeoTranslation(-xvFrame,0.,0.)); + GetEnvelopes(6)->AddEnvelopeConstituent("S07V", idSlatCh7, (2*i-1)*10+quadrant,TGeoTranslation(xvFrame,0.,0.)); + GetEnvelopes(6)->AddEnvelopeConstituent("S07V", idSlatCh7, (2*i)*10+quadrant,TGeoTranslation(-xvFrame,0.,0.)); + GetEnvelopes(7)->AddEnvelopeConstituent("S08V", idSlatCh8, (2*i-1)*10+quadrant,TGeoTranslation(xvFrame,0.,0.)); + GetEnvelopes(7)->AddEnvelopeConstituent("S08V", idSlatCh8, (2*i)*10+quadrant,TGeoTranslation(-xvFrame,0.,0.)); } // position the panels and the insulating material for (j = 0; j < kNPCB4[i]; j++){ @@ -726,12 +729,12 @@ void AliMUONSlatGeometryBuilder::CreateGeometry() Float_t xx = kSensLength * (-kNPCB4[i]/2.+j+.5); Float_t zPanel = spar[2] - panelpar[2]; - GetChamber(6)->GetGeometry()->AddEnvelopeConstituent("S07C", idSlatCh7, 2*index-1,TGeoTranslation(xx,0.,zPanel)); - GetChamber(6)->GetGeometry()->AddEnvelopeConstituent("S07C", idSlatCh7, 2*index,TGeoTranslation(xx,0.,-zPanel)); - GetChamber(6)->GetGeometry()->AddEnvelopeConstituent("S07I", idSlatCh7, index,TGeoTranslation(xx,0.,0.)); - GetChamber(7)->GetGeometry()->AddEnvelopeConstituent("S08C", idSlatCh8, 2*index-1,TGeoTranslation(xx,0.,zPanel)); - GetChamber(7)->GetGeometry()->AddEnvelopeConstituent("S08C", idSlatCh8, 2*index,TGeoTranslation(xx,0.,-zPanel)); - GetChamber(7)->GetGeometry()->AddEnvelopeConstituent("S08I", idSlatCh8, index,TGeoTranslation(xx,0.,0.)); + GetEnvelopes(6)->AddEnvelopeConstituent("S07C", idSlatCh7, 2*index-1,TGeoTranslation(xx,0.,zPanel)); + GetEnvelopes(6)->AddEnvelopeConstituent("S07C", idSlatCh7, 2*index,TGeoTranslation(xx,0.,-zPanel)); + GetEnvelopes(6)->AddEnvelopeConstituent("S07I", idSlatCh7, index,TGeoTranslation(xx,0.,0.)); + GetEnvelopes(7)->AddEnvelopeConstituent("S08C", idSlatCh8, 2*index-1,TGeoTranslation(xx,0.,zPanel)); + GetEnvelopes(7)->AddEnvelopeConstituent("S08C", idSlatCh8, 2*index,TGeoTranslation(xx,0.,-zPanel)); + GetEnvelopes(7)->AddEnvelopeConstituent("S08I", idSlatCh8, index,TGeoTranslation(xx,0.,0.)); } } } @@ -794,14 +797,14 @@ void AliMUONSlatGeometryBuilder::CreateGeometry() sprintf(idSlatCh7,"LC%d",ConvertSlatNum(1,quadrant,kNslats4-1)); sprintf(idSlatCh8,"LD%d",ConvertSlatNum(1,quadrant,kNslats4-1)); - GetChamber(6)->GetGeometry()->AddEnvelopeConstituentParam("S07G",idSlatCh7, quadrant*100+imax+4*idiv+1, + GetEnvelopes(6)->AddEnvelopeConstituentParam("S07G",idSlatCh7, quadrant*100+imax+4*idiv+1, TGeoTranslation(xvol-kPcbLength * kNPCB4[1]/2.,yvol-kPcbLength+kYoverlap,0.),3,divpar); - GetChamber(7)->GetGeometry()->AddEnvelopeConstituentParam("S08G", idSlatCh8, quadrant*100+imax+4*idiv+1, + GetEnvelopes(7)->AddEnvelopeConstituentParam("S08G", idSlatCh8, quadrant*100+imax+4*idiv+1, TGeoTranslation(xvol-kPcbLength * kNPCB4[1]/2.,yvol-kPcbLength+kYoverlap,0.),3,divpar); } } - cout << "Geometry for Station 4...... done" << endl; + // cout << "Geometry for Station 4...... done" << endl; } @@ -847,53 +850,53 @@ void AliMUONSlatGeometryBuilder::CreateGeometry() Float_t zSlat = (i%2 ==0)? -spar[2] : spar[2]; sprintf(idSlatCh9,"LE%d",kNslats5-1+i); - detElementNumber = 900 + i + kNslats5-1; + detElemId = 900 + i + kNslats5-1; gMC->Gsvolu(idSlatCh9,"BOX",kSlatMaterial,spar,3); - GetChamber(8)->GetGeometry()->AddEnvelope(idSlatCh9, true, TGeoTranslation(xSlat5, ySlat5, zSlat+2.*dzCh5), + GetEnvelopes(8)->AddEnvelope(idSlatCh9, detElemId, true, TGeoTranslation(xSlat5, ySlat5, zSlat+2.*dzCh5), TGeoRotation("rot1",90,angle,90,90+angle,0,0) ); sprintf(idSlatCh9,"LE%d",3*kNslats5-2+i); - detElementNumber = 950 + i + kNslats5-1; + detElemId = 950 + i + kNslats5-1; gMC->Gsvolu(idSlatCh9,"BOX",kSlatMaterial,spar,3); - GetChamber(8)->GetGeometry()->AddEnvelope(idSlatCh9, true, TGeoTranslation(-xSlat5, ySlat5, zSlat-2.*dzCh5), + GetEnvelopes(8)->AddEnvelope(idSlatCh9, detElemId, true, TGeoTranslation(-xSlat5, ySlat5, zSlat-2.*dzCh5), TGeoRotation("rot2",90,180+angle,90,90+angle,180,0) ); if (i > 0) { sprintf(idSlatCh9,"LE%d",kNslats5-1-i); - detElementNumber = 900 - i + kNslats5-1; + detElemId = 900 - i + kNslats5-1; gMC->Gsvolu(idSlatCh9,"BOX",kSlatMaterial,spar,3); - GetChamber(8)->GetGeometry()->AddEnvelope(idSlatCh9, true, TGeoTranslation(xSlat5, -ySlat5, zSlat+2.*dzCh5), + GetEnvelopes(8)->AddEnvelope(idSlatCh9, detElemId, true, TGeoTranslation(xSlat5, -ySlat5, zSlat+2.*dzCh5), TGeoRotation("rot3",90,angle,90,270+angle,180,0) ); sprintf(idSlatCh9,"LE%d",3*kNslats5-2-i); - detElementNumber = 950 - i + kNslats5-1; + detElemId = 950 - i + kNslats5-1; gMC->Gsvolu(idSlatCh9,"BOX",kSlatMaterial,spar,3); - GetChamber(8)->GetGeometry()->AddEnvelope(idSlatCh9, true, TGeoTranslation(-xSlat5, -ySlat5, zSlat-2.*dzCh5), + GetEnvelopes(8)->AddEnvelope(idSlatCh9, detElemId, true, TGeoTranslation(-xSlat5, -ySlat5, zSlat-2.*dzCh5), TGeoRotation("rot4",90,180+angle,90,270+angle,0,0) ); } sprintf(idSlatCh10,"LF%d",kNslats5-1+i); - detElementNumber = 1000 + i + kNslats5-1; + detElemId = 1000 + i + kNslats5-1; gMC->Gsvolu(idSlatCh10,"BOX",kSlatMaterial,spar,3); - GetChamber(9)->GetGeometry()->AddEnvelope(idSlatCh10, true, TGeoTranslation(xSlat5, ySlat5, zSlat+2.*dzCh5), + GetEnvelopes(9)->AddEnvelope(idSlatCh10, detElemId, true, TGeoTranslation(xSlat5, ySlat5, zSlat+2.*dzCh5), TGeoRotation("rot5",90,angle,90,90+angle,0,0) ); sprintf(idSlatCh10,"LF%d",3*kNslats5-2+i); - detElementNumber = 1050 + i + kNslats5-1; + detElemId = 1050 + i + kNslats5-1; gMC->Gsvolu(idSlatCh10,"BOX",kSlatMaterial,spar,3); - GetChamber(9)->GetGeometry()->AddEnvelope(idSlatCh10, true, TGeoTranslation(-xSlat5, ySlat5, zSlat-2.*dzCh5), + GetEnvelopes(9)->AddEnvelope(idSlatCh10, detElemId, true, TGeoTranslation(-xSlat5, ySlat5, zSlat-2.*dzCh5), TGeoRotation("rot6",90,180+angle,90,90+angle,180,0) ); if (i > 0) { sprintf(idSlatCh10,"LF%d",kNslats5-1-i); - detElementNumber = 1000 - i + kNslats5-1; + detElemId = 1000 - i + kNslats5-1; gMC->Gsvolu(idSlatCh10,"BOX",kSlatMaterial,spar,3); - GetChamber(9)->GetGeometry()->AddEnvelope(idSlatCh10, true, TGeoTranslation(xSlat5, -ySlat5, zSlat+2.*dzCh5), + GetEnvelopes(9)->AddEnvelope(idSlatCh10, detElemId, true, TGeoTranslation(xSlat5, -ySlat5, zSlat+2.*dzCh5), TGeoRotation("rot7",90,angle,90,270+angle,180,0) ); sprintf(idSlatCh10,"LF%d",3*kNslats5-2-i); - detElementNumber = 1050 - i + kNslats5-1; + detElemId = 1050 - i + kNslats5-1; gMC->Gsvolu(idSlatCh10,"BOX",kSlatMaterial,spar,3); - GetChamber(9)->GetGeometry()->AddEnvelope(idSlatCh10, true, TGeoTranslation(-xSlat5, -ySlat5, zSlat-2.*dzCh5), + GetEnvelopes(9)->AddEnvelope(idSlatCh10, detElemId, true, TGeoTranslation(-xSlat5, -ySlat5, zSlat-2.*dzCh5), TGeoRotation("rot8",90,180+angle,90,270+angle,0,0) ); } } @@ -950,10 +953,10 @@ void AliMUONSlatGeometryBuilder::CreateGeometry() // position the vertical frames if (i!=1 && i!=0) { - GetChamber(8)->GetGeometry()->AddEnvelopeConstituent("S09V", idSlatCh9, (2*i-1)*10+quadrant,TGeoTranslation(xvFrame,0.,0.)); - GetChamber(8)->GetGeometry()->AddEnvelopeConstituent("S09V", idSlatCh9, (2*i)*10+quadrant,TGeoTranslation(-xvFrame,0.,0.)); - GetChamber(9)->GetGeometry()->AddEnvelopeConstituent("S10V", idSlatCh10, (2*i-1)*10+quadrant,TGeoTranslation(xvFrame,0.,0.)); - GetChamber(9)->GetGeometry()->AddEnvelopeConstituent("S10V", idSlatCh10, (2*i)*10+quadrant,TGeoTranslation(-xvFrame,0.,0.)); + GetEnvelopes(8)->AddEnvelopeConstituent("S09V", idSlatCh9, (2*i-1)*10+quadrant,TGeoTranslation(xvFrame,0.,0.)); + GetEnvelopes(8)->AddEnvelopeConstituent("S09V", idSlatCh9, (2*i)*10+quadrant,TGeoTranslation(-xvFrame,0.,0.)); + GetEnvelopes(9)->AddEnvelopeConstituent("S10V", idSlatCh10, (2*i-1)*10+quadrant,TGeoTranslation(xvFrame,0.,0.)); + GetEnvelopes(9)->AddEnvelopeConstituent("S10V", idSlatCh10, (2*i)*10+quadrant,TGeoTranslation(-xvFrame,0.,0.)); } // position the panels and the insulating material @@ -963,12 +966,12 @@ void AliMUONSlatGeometryBuilder::CreateGeometry() Float_t xx = kSensLength * (-kNPCB5[i]/2.+j+.5); Float_t zPanel = spar[2] - panelpar[2]; - GetChamber(8)->GetGeometry()->AddEnvelopeConstituent("S09C", idSlatCh9, 2*index-1,TGeoTranslation(xx,0.,zPanel)); - GetChamber(8)->GetGeometry()->AddEnvelopeConstituent("S09C", idSlatCh9, 2*index,TGeoTranslation(xx,0.,-zPanel)); - GetChamber(8)->GetGeometry()->AddEnvelopeConstituent("S09I", idSlatCh9, index,TGeoTranslation(xx,0.,0.)); - GetChamber(9)->GetGeometry()->AddEnvelopeConstituent("S10C", idSlatCh10, 2*index-1,TGeoTranslation(xx,0.,zPanel)); - GetChamber(9)->GetGeometry()->AddEnvelopeConstituent("S10C", idSlatCh10, 2*index,TGeoTranslation(xx,0.,-zPanel)); - GetChamber(9)->GetGeometry()->AddEnvelopeConstituent("S10I", idSlatCh10, index,TGeoTranslation(xx,0.,0.)); + GetEnvelopes(8)->AddEnvelopeConstituent("S09C", idSlatCh9, 2*index-1,TGeoTranslation(xx,0.,zPanel)); + GetEnvelopes(8)->AddEnvelopeConstituent("S09C", idSlatCh9, 2*index,TGeoTranslation(xx,0.,-zPanel)); + GetEnvelopes(8)->AddEnvelopeConstituent("S09I", idSlatCh9, index,TGeoTranslation(xx,0.,0.)); + GetEnvelopes(9)->AddEnvelopeConstituent("S10C", idSlatCh10, 2*index-1,TGeoTranslation(xx,0.,zPanel)); + GetEnvelopes(9)->AddEnvelopeConstituent("S10C", idSlatCh10, 2*index,TGeoTranslation(xx,0.,-zPanel)); + GetEnvelopes(9)->AddEnvelopeConstituent("S10I", idSlatCh10, index,TGeoTranslation(xx,0.,0.)); } } } @@ -1032,14 +1035,13 @@ void AliMUONSlatGeometryBuilder::CreateGeometry() sprintf(idSlatCh9,"LE%d",ConvertSlatNum(1,quadrant,kNslats5-1)); sprintf(idSlatCh10,"LF%d",ConvertSlatNum(1,quadrant,kNslats5-1)); - GetChamber(8)->GetGeometry()->AddEnvelopeConstituentParam("S09G", idSlatCh9, quadrant*100+imax+4*idiv+1, + GetEnvelopes(8)->AddEnvelopeConstituentParam("S09G", idSlatCh9, quadrant*100+imax+4*idiv+1, TGeoTranslation(xvol-kPcbLength * kNPCB5[1]/2.,yvol-kPcbLength+kYoverlap,0.),3,divpar); - - GetChamber(9)->GetGeometry()->AddEnvelopeConstituentParam("S10G", idSlatCh10, quadrant*100+imax+4*idiv+1, + GetEnvelopes(9)->AddEnvelopeConstituentParam("S10G", idSlatCh10, quadrant*100+imax+4*idiv+1, TGeoTranslation(xvol-kPcbLength * kNPCB5[1]/2.,yvol-kPcbLength+kYoverlap,0.),3,divpar); } } - cout << "Geometry for Station 5...... done" << endl; + // cout << "Geometry for Station 5...... done" << endl; } } diff --git a/MUON/AliMUONSt1GeometryBuilder.cxx b/MUON/AliMUONSt1GeometryBuilder.cxx index 66916fc01cc..c8ad0fa4d54 100644 --- a/MUON/AliMUONSt1GeometryBuilder.cxx +++ b/MUON/AliMUONSt1GeometryBuilder.cxx @@ -14,12 +14,14 @@ #include "AliMUON.h" #include "AliMUONChamber.h" #include "AliMUONChamberGeometry.h" +#include "AliMUONGeometryEnvelopeStore.h" ClassImp(AliMUONSt1GeometryBuilder) //______________________________________________________________________________ AliMUONSt1GeometryBuilder::AliMUONSt1GeometryBuilder(AliMUON* muon) - : AliMUONVGeometryBuilder(&muon->Chamber(0), &muon->Chamber(1)), + : AliMUONVGeometryBuilder("st1.dat", + &muon->Chamber(0), &muon->Chamber(1)), fMUON(muon) { // Standard constructor @@ -141,9 +143,11 @@ void AliMUONSt1GeometryBuilder::CreateGeometry() // CHANGED //gMC->Gspos("S01M", 1, "ALIC", 0., 0., zpos1 , 0, "ONLY"); - //gMC->Gspos("S02M", 1, "ALIC", 0., 0., zpos2 , 0, "ONLY"); - GetChamber(0)->GetGeometry()->AddEnvelope("S01M", false); - GetChamber(1)->GetGeometry()->AddEnvelope("S02M", false); + //gMC->Gspos("S02M", 1, "ALIC", 0., 0., zpos2 , 0, "ONLY"); + + GetEnvelopes(0)->AddEnvelope("S01M", 100, false); + GetEnvelopes(1)->AddEnvelope("S02M", 200, false); + // // Aluminium frames // // Outer frames diff --git a/MUON/AliMUONSt1GeometryBuilderV2.cxx b/MUON/AliMUONSt1GeometryBuilderV2.cxx index e3baf1c8f3c..c177550389b 100644 --- a/MUON/AliMUONSt1GeometryBuilderV2.cxx +++ b/MUON/AliMUONSt1GeometryBuilderV2.cxx @@ -52,6 +52,7 @@ #include "AliMUON.h" #include "AliMUONChamber.h" #include "AliMUONChamberGeometry.h" +#include "AliMUONGeometryEnvelopeStore.h" #include "AliRun.h" #include "AliMagF.h" @@ -110,7 +111,8 @@ const char* AliMUONSt1GeometryBuilderV2::fgkQuadrantFLayerName="SQF"; //______________________________________________________________________________ AliMUONSt1GeometryBuilderV2::AliMUONSt1GeometryBuilderV2(AliMUON* muon) - : AliMUONVGeometryBuilder(&muon->Chamber(0), &muon->Chamber(1)), + : AliMUONVGeometryBuilder("st1V2.dat", + &muon->Chamber(0), &muon->Chamber(1)), fMUON(muon) { // set path to mapping data files @@ -2467,6 +2469,12 @@ void AliMUONSt1GeometryBuilderV2::CreateGeometry() scale[2] = TVector3(-1, -1, 1); // quadrant III scale[3] = TVector3( 1, -1, -1); // quadrant IV + Int_t detElemId[4]; + detElemId[0] = 0; // quadrant I + detElemId[1] = 51; // quadrant II + detElemId[2] = 50; // quadrant III + detElemId[3] = 1; // quadrant IV + // Shift in Z of the middle layer Double_t deltaZ = 6.5/2.; @@ -2491,26 +2499,28 @@ void AliMUONSt1GeometryBuilderV2::CreateGeometry() for (Int_t i=0; i<4; i++) { // Middle layer - GReal_t posx = pos0.X() * scale[i].X(); - GReal_t posy = pos0.Y() * scale[i].Y(); - //GReal_t posz = pos0.Z() * scale[i].Z() + AliMUONConstants::DefaultChamberZ(ich-1); + GReal_t posx, posy, posz; + posx = pos0.X() * scale[i].X(); + posy = pos0.Y() * scale[i].Y(); + //posz = pos0.Z() * scale[i].Z() + AliMUONConstants::DefaultChamberZ(ich-1); //gMC->Gspos(QuadrantMLayerName(ich), i+1, "ALIC", posx, posy, posz, rotm[i], "ONLY"); - GReal_t posz = pos0.Z() * scale[i].Z(); - GetChamber(ich-1)->GetGeometry() - ->AddEnvelope(QuadrantMLayerName(ich), i+1, TGeoTranslation(posx, posy, posz), rotm[i]); + posz = pos0.Z() * scale[i].Z(); + GetEnvelopes(ich-1) + ->AddEnvelope(QuadrantMLayerName(ich), detElemId[i] + ich*100, i+1, + TGeoTranslation(posx, posy, posz), rotm[i]); // Near/far layers Real_t posx2 = posx + shiftXY * scale[i].X(); Real_t posy2 = posy + shiftXY * scale[i].Y(); Real_t posz2 = posz - scale[i].Z()*shiftZ; //gMC->Gspos(QuadrantNLayerName(ich), i+1, "ALIC", posx2, posy2, posz2, rotm[i],"ONLY"); - GetChamber(ich-1)->GetGeometry() - ->AddEnvelope(QuadrantNLayerName(ich), i+1, TGeoTranslation(posx2, posy2, posz2), rotm[i]); + GetEnvelopes(ich-1) + ->AddEnvelope(QuadrantNLayerName(ich), 0, i+1, TGeoTranslation(posx2, posy2, posz2), rotm[i]); posz2 = posz + scale[i].Z()*shiftZ; //gMC->Gspos(QuadrantFLayerName(ich), i+1, "ALIC", posx2, posy2, posz2, rotm[i],"ONLY"); - GetChamber(ich-1)->GetGeometry() - ->AddEnvelope(QuadrantFLayerName(ich), i+1, TGeoTranslation(posx2, posy2, posz2), rotm[i]); + GetEnvelopes(ich-1) + ->AddEnvelope(QuadrantFLayerName(ich), 0, i+1, TGeoTranslation(posx2, posy2, posz2), rotm[i]); } } } diff --git a/MUON/AliMUONSt2GeometryBuilder.cxx b/MUON/AliMUONSt2GeometryBuilder.cxx index 75631c08dbb..8de152d3b51 100644 --- a/MUON/AliMUONSt2GeometryBuilder.cxx +++ b/MUON/AliMUONSt2GeometryBuilder.cxx @@ -29,12 +29,14 @@ #include "AliMUON.h" #include "AliMUONChamber.h" #include "AliMUONChamberGeometry.h" +#include "AliMUONGeometryEnvelopeStore.h" ClassImp(AliMUONSt2GeometryBuilder) //______________________________________________________________________________ AliMUONSt2GeometryBuilder::AliMUONSt2GeometryBuilder(AliMUON* muon) - : AliMUONVGeometryBuilder(&muon->Chamber(2), &muon->Chamber(3)), + : AliMUONVGeometryBuilder("st2.dat", + &muon->Chamber(2), &muon->Chamber(3)), fMUON(muon) { // Standard constructor @@ -147,8 +149,9 @@ void AliMUONSt2GeometryBuilder::CreateGeometry() // CHANGED //gMC->Gspos("S03M", 1, "ALIC", 0., 0., zpos1 , 0, "ONLY"); //gMC->Gspos("S04M", 1, "ALIC", 0., 0., zpos2 , 0, "ONLY"); - GetChamber(2)->GetGeometry()->AddEnvelope("S03M", false); - GetChamber(3)->GetGeometry()->AddEnvelope("S04M", false); + + GetEnvelopes(2)->AddEnvelope("S03M", 300, false); + GetEnvelopes(3)->AddEnvelope("S04M", 400, false); gMC->Gsbool("S03M", "L3DO"); gMC->Gsbool("S03M", "L3O1"); diff --git a/MUON/AliMUONTriggerGeometryBuilder.cxx b/MUON/AliMUONTriggerGeometryBuilder.cxx index d5fd8a58ebc..3eaa2bf98b3 100644 --- a/MUON/AliMUONTriggerGeometryBuilder.cxx +++ b/MUON/AliMUONTriggerGeometryBuilder.cxx @@ -28,12 +28,15 @@ #include "AliMUON.h" #include "AliMUONChamber.h" #include "AliMUONChamberGeometry.h" +#include "AliMUONGeometryEnvelopeStore.h" ClassImp(AliMUONTriggerGeometryBuilder) //______________________________________________________________________________ AliMUONTriggerGeometryBuilder::AliMUONTriggerGeometryBuilder(AliMUON* muon) - : AliMUONVGeometryBuilder(&muon->Chamber(10), &muon->Chamber(11),&muon->Chamber(12),&muon->Chamber(13)), + : AliMUONVGeometryBuilder("trigger.dat", + &muon->Chamber(10), &muon->Chamber(11), + &muon->Chamber(12),&muon->Chamber(13)), fMUON(muon) { // Standard constructor @@ -101,7 +104,7 @@ void AliMUONTriggerGeometryBuilder::CreateGeometry() Int_t *idtmed = fMUON->GetIdtmed()->GetArray()-1099; Int_t idAir= idtmed[1100]; // medium 1 Int_t idAlu1=idtmed[1103]; // medium 4 - Int_t detElementNumber=0; // Detection Element Number + Int_t detElemId=0; // Detection Element Number Float_t tpar[3]; Double_t dpar[3]; @@ -152,7 +155,8 @@ void AliMUONTriggerGeometryBuilder::CreateGeometry() gMC->Gsvolu(volFlange,"TUBE",idAlu1,tpar,3); // Al // changed by ivana //gMC->Gspos(volFlange,1,"ALIC",0.,0.,zpos,0,"MANY"); - iChamber->GetGeometry()->AddEnvelope(volFlange, false, "MANY"); + iChamber->GetGeometry()->GetEnvelopeStore() + ->AddEnvelope(volFlange, 0, false, "MANY"); // scaling factor Float_t zRatio = zpos / zpos1; @@ -207,13 +211,13 @@ void AliMUONTriggerGeometryBuilder::CreateGeometry() dpar[0] = ((kXMAX-kXMED)/2.)*zRatio; dpar[1] = kYMIN * zRatio; - detElementNumber = (10+icount+1)*100+4; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[4], true, TGeoTranslation(xEnv,yEnvM,kZm)); - detElementNumber = (10+icount+1)*100+50+4; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[13], true, TGeoTranslation(-xEnv,yEnvP,kZp)); + detElemId = (10+icount+1)*100+4; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[4], detElemId, true, TGeoTranslation(xEnv,yEnvM,kZm)); + detElemId = (10+icount+1)*100+50+4; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[13], detElemId, true, TGeoTranslation(-xEnv,yEnvP,kZp)); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[4],iVolNum++,3, dpar); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[13],iVolNum++,3, dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[4],iVolNum++,3, dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[13],iVolNum++,3, dpar); // chamber type B (plus envelope chambers B & C) xEnv = (kDXZERO+kXMAX/2.)*zRatio; @@ -226,19 +230,19 @@ void AliMUONTriggerGeometryBuilder::CreateGeometry() xpos = kXMIN/2. * zRatio; ypos = (kYMIN - kYMIN/4.) * zRatio; - detElementNumber = (10+icount+1)*100+3; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[3], true, TGeoTranslation( xEnv,-yEnvP,kZp)); - detElementNumber = (10+icount+1)*100+5; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[5], true, TGeoTranslation( xEnv, yEnvP,kZp)); - detElementNumber = (10+icount+1)*100+50+3; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[12], true, TGeoTranslation(-xEnv,-yEnvM,kZm)); - detElementNumber = (10+icount+1)*100+50+5; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[14], true, TGeoTranslation(-xEnv, yEnvM,kZm)); + detElemId = (10+icount+1)*100+3; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[3], detElemId, true, TGeoTranslation( xEnv,-yEnvP,kZp)); + detElemId = (10+icount+1)*100+5; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[5], detElemId, true, TGeoTranslation( xEnv, yEnvP,kZp)); + detElemId = (10+icount+1)*100+50+3; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[12], detElemId, true, TGeoTranslation(-xEnv,-yEnvM,kZm)); + detElemId = (10+icount+1)*100+50+5; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[14], detElemId, true, TGeoTranslation(-xEnv, yEnvM,kZm)); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[3],iVolNum++,TGeoTranslation(xpos, ypos,0.),3,dpar); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[5],iVolNum++,TGeoTranslation(xpos,-ypos,0.),3,dpar); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[12],iVolNum++,TGeoTranslation(-xpos, ypos,0.),3,dpar); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[14],iVolNum++,TGeoTranslation(-xpos,-ypos,0.),3,dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[3],iVolNum++,TGeoTranslation(xpos, ypos,0.),3,dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[5],iVolNum++,TGeoTranslation(xpos,-ypos,0.),3,dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[12],iVolNum++,TGeoTranslation(-xpos, ypos,0.),3,dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[14],iVolNum++,TGeoTranslation(-xpos,-ypos,0.),3,dpar); // chamber type C (note: same Z than type B) dpar[0] = (kXMAX/2)*zRatio; @@ -246,10 +250,10 @@ void AliMUONTriggerGeometryBuilder::CreateGeometry() xpos = 0.; ypos = ((kYMAX - kYMIN)/2.) * zRatio; - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[3],iVolNum++,TGeoTranslation(xpos,-ypos,0.),3,dpar); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[5],iVolNum++,TGeoTranslation(xpos, ypos,0.),3,dpar); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[12],iVolNum++,TGeoTranslation(-xpos,-ypos,0.),3,dpar); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[14],iVolNum++,TGeoTranslation(-xpos, ypos,0.),3,dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[3],iVolNum++,TGeoTranslation(xpos,-ypos,0.),3,dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[5],iVolNum++,TGeoTranslation(xpos, ypos,0.),3,dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[12],iVolNum++,TGeoTranslation(-xpos,-ypos,0.),3,dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[14],iVolNum++,TGeoTranslation(-xpos, ypos,0.),3,dpar); // chamber type D, E and F (same size) // D @@ -260,19 +264,19 @@ void AliMUONTriggerGeometryBuilder::CreateGeometry() dpar[0] = (kXMAX/2.)*zRatio; dpar[1] = kYMIN*zRatio; - detElementNumber = (10+icount+1)*100+2; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[2], true, TGeoTranslation(xEnv,-yEnvM,kZm)); - detElementNumber = (10+icount+1)*100+6; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[6], true, TGeoTranslation(xEnv, yEnvM,kZm)); - detElementNumber = (10+icount+1)*100+50+2; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[11], true, TGeoTranslation(-xEnv,-yEnvP,kZp)); - detElementNumber = (10+icount+1)*100+50+6; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[15], true, TGeoTranslation(-xEnv, yEnvP,kZp)); + detElemId = (10+icount+1)*100+2; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[2], detElemId, true, TGeoTranslation(xEnv,-yEnvM,kZm)); + detElemId = (10+icount+1)*100+6; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[6], detElemId, true, TGeoTranslation(xEnv, yEnvM,kZm)); + detElemId = (10+icount+1)*100+50+2; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[11], detElemId, true, TGeoTranslation(-xEnv,-yEnvP,kZp)); + detElemId = (10+icount+1)*100+50+6; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[15], detElemId, true, TGeoTranslation(-xEnv, yEnvP,kZp)); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[2],iVolNum++,3, dpar); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[6],iVolNum++,3, dpar); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[11],iVolNum++,3, dpar); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[15],iVolNum++,3, dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[2],iVolNum++,3, dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[6],iVolNum++,3, dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[11],iVolNum++,3, dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[15],iVolNum++,3, dpar); // E yEnvPsave = yEnvP; @@ -280,19 +284,19 @@ void AliMUONTriggerGeometryBuilder::CreateGeometry() yEnvP = (yEnvMsave + kYMIN * zRatio ) * zpm + kYMIN * zRatio; yEnvM = (yEnvPsave + kYMIN * zRatio ) * zmp + kYMIN * zRatio; - detElementNumber = (10+icount+1)*100+1; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[1], true, TGeoTranslation(xEnv,-yEnvP,kZp)); - detElementNumber = (10+icount+1)*100+7; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[7], true, TGeoTranslation(xEnv, yEnvP,kZp)); - detElementNumber = (10+icount+1)*100+50+1; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[10], true, TGeoTranslation(-xEnv,-yEnvM,kZm)); - detElementNumber = (10+icount+1)*100+50+7; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[16], true, TGeoTranslation(-xEnv, yEnvM,kZm)); + detElemId = (10+icount+1)*100+1; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[1], detElemId, true, TGeoTranslation(xEnv,-yEnvP,kZp)); + detElemId = (10+icount+1)*100+7; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[7], detElemId, true, TGeoTranslation(xEnv, yEnvP,kZp)); + detElemId = (10+icount+1)*100+50+1; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[10], detElemId, true, TGeoTranslation(-xEnv,-yEnvM,kZm)); + detElemId = (10+icount+1)*100+50+7; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[16], detElemId, true, TGeoTranslation(-xEnv, yEnvM,kZm)); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[1],iVolNum++,3,dpar); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[7],iVolNum++,3,dpar); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[10],iVolNum++,3,dpar); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[16],iVolNum++,3,dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[1],iVolNum++,3,dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[7],iVolNum++,3,dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[10],iVolNum++,3,dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[16],iVolNum++,3,dpar); // F @@ -301,19 +305,19 @@ void AliMUONTriggerGeometryBuilder::CreateGeometry() yEnvP = (yEnvMsave + kYMIN * zRatio ) * zpm + kYMIN * zRatio; yEnvM = (yEnvPsave + kYMIN * zRatio ) * zmp + kYMIN * zRatio; - detElementNumber = (10+icount+1)*100; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[0], true, TGeoTranslation(xEnv,-yEnvM,kZm)); - detElementNumber = (10+icount+1)*100+8; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[8], true, TGeoTranslation(xEnv, yEnvM,kZm)); - detElementNumber = (10+icount+1)*100+50; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[9], true, TGeoTranslation(-xEnv,-yEnvP,kZp)); - detElementNumber = (10+icount+1)*100+50+8; - GetChamber(10+icount)->GetGeometry()->AddEnvelope(volEnv[17], true, TGeoTranslation(-xEnv, yEnvP,kZp)); + detElemId = (10+icount+1)*100; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[0], detElemId, true, TGeoTranslation(xEnv,-yEnvM,kZm)); + detElemId = (10+icount+1)*100+8; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[8], detElemId, true, TGeoTranslation(xEnv, yEnvM,kZm)); + detElemId = (10+icount+1)*100+50; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[9], detElemId, true, TGeoTranslation(-xEnv,-yEnvP,kZp)); + detElemId = (10+icount+1)*100+50+8; + GetEnvelopes(10+icount)->AddEnvelope(volEnv[17], detElemId, true, TGeoTranslation(-xEnv, yEnvP,kZp)); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[0],iVolNum++,3,dpar); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[8],iVolNum++,3,dpar); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[9],iVolNum++,3,dpar); - GetChamber(10+icount)->GetGeometry()->AddEnvelopeConstituentParam(volAlu,volEnv[17],iVolNum++,3,dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[0],iVolNum++,3,dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[8],iVolNum++,3,dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[9],iVolNum++,3,dpar); + GetEnvelopes(10+icount)->AddEnvelopeConstituentParam(volAlu,volEnv[17],iVolNum++,3,dpar); } // end loop on detection planes } // end loop on stations -- 2.43.0