#include "AliMUONVGeometryBuilder.h"
#include "AliMUONGeometryModule.h"
#include "AliMUONGeometryDetElement.h"
#include "AliMUONGeometryEnvelopeStore.h"
#include "AliMUONGeometryEnvelope.h"
#include "AliMUONGeometryConstituent.h"
#include "AliMUONGeometryBuilder.h"
#include "AliMUONStringIntMap.h"
#include "AliMpDEManager.h"
#include "AliMpExMap.h"
#include "AliLog.h"
#include <Riostream.h>
#include <TObjArray.h>
#include <TSystem.h>
#include <TGeoMatrix.h>
#include <TVirtualMC.h>
ClassImp(AliMUONVGeometryBuilder)
AliMUONVGeometryBuilder::AliMUONVGeometryBuilder(
Int_t firstModuleId,
Int_t nofModules)
: TObject(),
fGeometryModules(0),
fReferenceFrame()
{
fGeometryModules = new TObjArray();
fGeometryModules->SetOwner(kFALSE);
for (Int_t i=0; i<nofModules; i++ )
fGeometryModules->Add(new AliMUONGeometryModule(firstModuleId++));
}
AliMUONVGeometryBuilder::AliMUONVGeometryBuilder()
: TObject(),
fGeometryModules(0),
fReferenceFrame()
{
}
AliMUONVGeometryBuilder::~AliMUONVGeometryBuilder()
{
if (fGeometryModules) {
fGeometryModules->Clear();
delete fGeometryModules;
}
}
TGeoHMatrix
AliMUONVGeometryBuilder::ConvertTransform(const TGeoHMatrix& transform) const
{
if ( fReferenceFrame.IsIdentity() )
return transform;
else {
return AliMUONGeometryBuilder::Multiply( fReferenceFrame,
transform,
fReferenceFrame.Inverse() );
}
}
TGeoHMatrix
AliMUONVGeometryBuilder::ConvertDETransform(const TGeoHMatrix& transform) const
{
if ( fReferenceFrame.IsIdentity() )
return transform;
else {
return AliMUONGeometryBuilder::Multiply( fReferenceFrame,
transform );
}
}
TString AliMUONVGeometryBuilder::ComposePath(const TString& volName,
Int_t copyNo) const
{
TString path = "/";
path += volName;
path += '_';
path += copyNo;
return path;
}
void AliMUONVGeometryBuilder::MapSV(const TString& path0,
const TString& volName, Int_t detElemId) const
{
Int_t moduleId = AliMpDEManager::GetGeomModuleId(detElemId);
AliMUONStringIntMap* svMap = GetSVMap(moduleId);
Int_t nofDaughters = TVirtualMC::GetMC()->NofVolDaughters(volName);
if (nofDaughters == 0) {
Ssiz_t npos1 = path0.Last('/')+1;
Ssiz_t npos2 = path0.Last('_');
TString volName0(path0(npos1, npos2-npos1));
AliMUONGeometryModule* geometry = GetGeometry(moduleId);
if ( geometry->IsSensitiveVolume(volName0) &&
! svMap->Get(path0) ) {
svMap->Add(path0, detElemId);
}
return;
}
for (Int_t i=0; i<nofDaughters; i++) {
Int_t copyNo = TVirtualMC::GetMC()->VolDaughterCopyNo(volName, i);
TString newName = TVirtualMC::GetMC()->VolDaughterName(volName, i);
TString path = path0;
path += ComposePath(newName, copyNo);
MapSV(path, newName, detElemId);
}
}
AliMUONGeometryModule*
AliMUONVGeometryBuilder::GetGeometry(Int_t moduleId) const
{
for (Int_t i=0; i<fGeometryModules->GetEntriesFast(); i++) {
AliMUONGeometryModule* geometry
= (AliMUONGeometryModule*)fGeometryModules->At(i);
if ( geometry->GetModuleId() == moduleId) return geometry;
}
return 0;
}
AliMUONGeometryEnvelopeStore*
AliMUONVGeometryBuilder::GetEnvelopes(Int_t moduleId) const
{
AliMUONGeometryModule* geometry = GetGeometry(moduleId);
if (!geometry) {
AliFatal(Form("Module geometry %d is not defined", moduleId));
return 0;
}
return geometry->GetEnvelopeStore();
}
AliMUONStringIntMap*
AliMUONVGeometryBuilder::GetSVMap(Int_t moduleId) const
{
AliMUONGeometryModule* geometry = GetGeometry(moduleId);
if (!geometry) {
AliFatal(Form("Geometry %d is not defined", moduleId));
return 0;
}
return geometry->GetSVMap();
}
Int_t
AliMUONVGeometryBuilder::GetModuleId(const TString& envName) const
{
for (Int_t i=0; i<fGeometryModules->GetEntriesFast(); i++) {
AliMUONGeometryModule* geometry
= (AliMUONGeometryModule*)fGeometryModules->At(i);
if ( geometry->GetEnvelopeStore()->FindEnvelope(envName) )
return geometry->GetModuleId();
}
return -1;
}
void AliMUONVGeometryBuilder::SetTranslation(Int_t moduleId,
const TGeoTranslation& translation)
{
AliMUONGeometryModule* geometry = GetGeometry(moduleId);
if (!geometry) {
AliFatal(Form("Geometry %d is not defined", moduleId));
return;
}
TGeoHMatrix newTransform = ConvertTransform(translation);
geometry->SetTransformation(newTransform);
}
void AliMUONVGeometryBuilder::SetTransformation(Int_t moduleId,
const TGeoTranslation& translation,
const TGeoRotation& rotation)
{
AliMUONGeometryModule* geometry = GetGeometry(moduleId);
if (!geometry) {
AliFatal(Form("Geometry %d is not defined", moduleId));
return;
}
TGeoCombiTrans transformation
= TGeoCombiTrans(translation, rotation);
TGeoHMatrix newTransform = ConvertTransform(transformation);
geometry->SetTransformation(newTransform);
}
void AliMUONVGeometryBuilder::SetVolume(Int_t moduleId,
const TString& volumeName,
Bool_t isVirtual)
{
TString path = GetGeometry(moduleId)->GetVolumePath();
if ( path == "" ) path = "/ALIC_1";
path += ComposePath(volumeName, 1);
GetGeometry(moduleId)->SetVolumePath(path);
GetGeometry(moduleId)->SetIsVirtual(isVirtual);
}
void AliMUONVGeometryBuilder::SetMotherVolume(Int_t moduleId,
const TString& volumeName)
{
TString motherVolumeName = ComposePath(volumeName, 1);
TString path = GetGeometry(moduleId)->GetVolumePath();
if ( path == "" ) path = "/ALIC_1";
path.Insert(7, motherVolumeName);
GetGeometry(moduleId)->SetVolumePath(path);
}
void AliMUONVGeometryBuilder::SetReferenceFrame(
const TGeoCombiTrans& referenceFrame)
{
fReferenceFrame = referenceFrame;
for (Int_t i=0; i<fGeometryModules->GetEntriesFast(); i++) {
AliMUONGeometryModule* geometry
= (AliMUONGeometryModule*)fGeometryModules->At(i);
AliMUONGeometryEnvelopeStore* envelopeStore
= geometry->GetEnvelopeStore();
envelopeStore->SetReferenceFrame(referenceFrame);
}
}
void AliMUONVGeometryBuilder::UpdateDetElements(Bool_t create) const
{
for (Int_t i=0; i<fGeometryModules->GetEntriesFast(); i++) {
AliMUONGeometryModule* geometry
= (AliMUONGeometryModule*)fGeometryModules->At(i);
const TObjArray* envelopes
= geometry->GetEnvelopeStore()->GetEnvelopes();
AliMpExMap* detElements
= geometry->GetTransformer()->GetDetElementStore();
for (Int_t j=0; j<envelopes->GetEntriesFast(); j++) {
AliMUONGeometryEnvelope* envelope
= (AliMUONGeometryEnvelope*)envelopes->At(j);
if ( envelope->GetUniqueID() == 0) continue;
Int_t detElemId = envelope->GetUniqueID();
TString volPath = geometry->GetVolumePath();
volPath += ComposePath(envelope->GetName(), envelope->GetCopyNo());
if ( create ) {
AliMUONGeometryDetElement* detElement
= new AliMUONGeometryDetElement(detElemId, volPath);
detElements->Add(detElemId, detElement);
const TGeoCombiTrans* transform = envelope->GetTransformation();
TGeoHMatrix localTransform = ConvertDETransform(*transform);
detElement->SetLocalTransformation(localTransform);
TGeoHMatrix globalTransform
= AliMUONGeometryBuilder::Multiply(
(*geometry->GetTransformer()->GetTransformation()),
localTransform );
;
detElement->SetGlobalTransformation(globalTransform);
}
else {
AliMUONGeometryDetElement* detElement
= (AliMUONGeometryDetElement*)detElements->GetValue(detElemId);
detElement->SetVolumePath(volPath);
}
}
}
}
void AliMUONVGeometryBuilder::RebuildSVMaps(Bool_t withEnvelopes) const
{
for (Int_t i=0; i<fGeometryModules->GetEntriesFast(); i++) {
AliMUONGeometryModule* geometry
= (AliMUONGeometryModule*)fGeometryModules->At(i);
geometry->GetSVMap()->Clear();
const TObjArray* envelopes
= geometry->GetEnvelopeStore()->GetEnvelopes();
for (Int_t j=0; j<envelopes->GetEntriesFast(); j++) {
AliMUONGeometryEnvelope* envelope
= (AliMUONGeometryEnvelope*)envelopes->At(j);
if ( envelope->GetUniqueID() == 0 ) continue;
AliMUONGeometryDetElement* detElement
= geometry->GetTransformer()->GetDetElement(envelope->GetUniqueID());
std::string path0 = detElement->GetVolumePath().Data();
if ( ! withEnvelopes && geometry->IsVirtual() ) {
std::string vName = geometry->GetTransformer()->GetVolumeName().Data();
std::string vPath = ComposePath(vName, 1).Data();
std::string::size_type vPathPos = path0.find(vPath);
if ( vPathPos != std::string::npos )
path0.erase(vPathPos, vPath.size());
}
if ( ! withEnvelopes && envelope->IsVirtual()) {
std::string eName = envelope->GetName();
std::string ePath = ComposePath(eName, envelope->GetCopyNo()).Data();
std::string::size_type ePathPos = path0.find(ePath);
if ( ePathPos != std::string::npos )
path0.erase(ePathPos, ePath.size());
}
if ( ! envelope->IsVirtual() )
MapSV(path0, envelope->GetName(), envelope->GetUniqueID());
else {
for (Int_t k=0; k<envelope->GetConstituents()->GetEntriesFast(); k++) {
AliMUONGeometryConstituent* constituent
= (AliMUONGeometryConstituent*)envelope->GetConstituents()->At(k);
TString path = path0;
path += ComposePath(constituent->GetName(), constituent->GetCopyNo());
MapSV(path, constituent->GetName(), envelope->GetUniqueID());
}
}
}
}
}
AliMUONVGeometryBuilder.cxx:1 AliMUONVGeometryBuilder.cxx:2 AliMUONVGeometryBuilder.cxx:3 AliMUONVGeometryBuilder.cxx:4 AliMUONVGeometryBuilder.cxx:5 AliMUONVGeometryBuilder.cxx:6 AliMUONVGeometryBuilder.cxx:7 AliMUONVGeometryBuilder.cxx:8 AliMUONVGeometryBuilder.cxx:9 AliMUONVGeometryBuilder.cxx:10 AliMUONVGeometryBuilder.cxx:11 AliMUONVGeometryBuilder.cxx:12 AliMUONVGeometryBuilder.cxx:13 AliMUONVGeometryBuilder.cxx:14 AliMUONVGeometryBuilder.cxx:15 AliMUONVGeometryBuilder.cxx:16 AliMUONVGeometryBuilder.cxx:17 AliMUONVGeometryBuilder.cxx:18 AliMUONVGeometryBuilder.cxx:19 AliMUONVGeometryBuilder.cxx:20 AliMUONVGeometryBuilder.cxx:21 AliMUONVGeometryBuilder.cxx:22 AliMUONVGeometryBuilder.cxx:23 AliMUONVGeometryBuilder.cxx:24 AliMUONVGeometryBuilder.cxx:25 AliMUONVGeometryBuilder.cxx:26 AliMUONVGeometryBuilder.cxx:27 AliMUONVGeometryBuilder.cxx:28 AliMUONVGeometryBuilder.cxx:29 AliMUONVGeometryBuilder.cxx:30 AliMUONVGeometryBuilder.cxx:31 AliMUONVGeometryBuilder.cxx:32 AliMUONVGeometryBuilder.cxx:33 AliMUONVGeometryBuilder.cxx:34 AliMUONVGeometryBuilder.cxx:35 AliMUONVGeometryBuilder.cxx:36 AliMUONVGeometryBuilder.cxx:37 AliMUONVGeometryBuilder.cxx:38 AliMUONVGeometryBuilder.cxx:39 AliMUONVGeometryBuilder.cxx:40 AliMUONVGeometryBuilder.cxx:41 AliMUONVGeometryBuilder.cxx:42 AliMUONVGeometryBuilder.cxx:43 AliMUONVGeometryBuilder.cxx:44 AliMUONVGeometryBuilder.cxx:45 AliMUONVGeometryBuilder.cxx:46 AliMUONVGeometryBuilder.cxx:47 AliMUONVGeometryBuilder.cxx:48 AliMUONVGeometryBuilder.cxx:49 AliMUONVGeometryBuilder.cxx:50 AliMUONVGeometryBuilder.cxx:51 AliMUONVGeometryBuilder.cxx:52 AliMUONVGeometryBuilder.cxx:53 AliMUONVGeometryBuilder.cxx:54 AliMUONVGeometryBuilder.cxx:55 AliMUONVGeometryBuilder.cxx:56 AliMUONVGeometryBuilder.cxx:57 AliMUONVGeometryBuilder.cxx:58 AliMUONVGeometryBuilder.cxx:59 AliMUONVGeometryBuilder.cxx:60 AliMUONVGeometryBuilder.cxx:61 AliMUONVGeometryBuilder.cxx:62 AliMUONVGeometryBuilder.cxx:63 AliMUONVGeometryBuilder.cxx:64 AliMUONVGeometryBuilder.cxx:65 AliMUONVGeometryBuilder.cxx:66 AliMUONVGeometryBuilder.cxx:67 AliMUONVGeometryBuilder.cxx:68 AliMUONVGeometryBuilder.cxx:69 AliMUONVGeometryBuilder.cxx:70 AliMUONVGeometryBuilder.cxx:71 AliMUONVGeometryBuilder.cxx:72 AliMUONVGeometryBuilder.cxx:73 AliMUONVGeometryBuilder.cxx:74 AliMUONVGeometryBuilder.cxx:75 AliMUONVGeometryBuilder.cxx:76 AliMUONVGeometryBuilder.cxx:77 AliMUONVGeometryBuilder.cxx:78 AliMUONVGeometryBuilder.cxx:79 AliMUONVGeometryBuilder.cxx:80 AliMUONVGeometryBuilder.cxx:81 AliMUONVGeometryBuilder.cxx:82 AliMUONVGeometryBuilder.cxx:83 AliMUONVGeometryBuilder.cxx:84 AliMUONVGeometryBuilder.cxx:85 AliMUONVGeometryBuilder.cxx:86 AliMUONVGeometryBuilder.cxx:87 AliMUONVGeometryBuilder.cxx:88 AliMUONVGeometryBuilder.cxx:89 AliMUONVGeometryBuilder.cxx:90 AliMUONVGeometryBuilder.cxx:91 AliMUONVGeometryBuilder.cxx:92 AliMUONVGeometryBuilder.cxx:93 AliMUONVGeometryBuilder.cxx:94 AliMUONVGeometryBuilder.cxx:95 AliMUONVGeometryBuilder.cxx:96 AliMUONVGeometryBuilder.cxx:97 AliMUONVGeometryBuilder.cxx:98 AliMUONVGeometryBuilder.cxx:99 AliMUONVGeometryBuilder.cxx:100 AliMUONVGeometryBuilder.cxx:101 AliMUONVGeometryBuilder.cxx:102 AliMUONVGeometryBuilder.cxx:103 AliMUONVGeometryBuilder.cxx:104 AliMUONVGeometryBuilder.cxx:105 AliMUONVGeometryBuilder.cxx:106 AliMUONVGeometryBuilder.cxx:107 AliMUONVGeometryBuilder.cxx:108 AliMUONVGeometryBuilder.cxx:109 AliMUONVGeometryBuilder.cxx:110 AliMUONVGeometryBuilder.cxx:111 AliMUONVGeometryBuilder.cxx:112 AliMUONVGeometryBuilder.cxx:113 AliMUONVGeometryBuilder.cxx:114 AliMUONVGeometryBuilder.cxx:115 AliMUONVGeometryBuilder.cxx:116 AliMUONVGeometryBuilder.cxx:117 AliMUONVGeometryBuilder.cxx:118 AliMUONVGeometryBuilder.cxx:119 AliMUONVGeometryBuilder.cxx:120 AliMUONVGeometryBuilder.cxx:121 AliMUONVGeometryBuilder.cxx:122 AliMUONVGeometryBuilder.cxx:123 AliMUONVGeometryBuilder.cxx:124 AliMUONVGeometryBuilder.cxx:125 AliMUONVGeometryBuilder.cxx:126 AliMUONVGeometryBuilder.cxx:127 AliMUONVGeometryBuilder.cxx:128 AliMUONVGeometryBuilder.cxx:129 AliMUONVGeometryBuilder.cxx:130 AliMUONVGeometryBuilder.cxx:131 AliMUONVGeometryBuilder.cxx:132 AliMUONVGeometryBuilder.cxx:133 AliMUONVGeometryBuilder.cxx:134 AliMUONVGeometryBuilder.cxx:135 AliMUONVGeometryBuilder.cxx:136 AliMUONVGeometryBuilder.cxx:137 AliMUONVGeometryBuilder.cxx:138 AliMUONVGeometryBuilder.cxx:139 AliMUONVGeometryBuilder.cxx:140 AliMUONVGeometryBuilder.cxx:141 AliMUONVGeometryBuilder.cxx:142 AliMUONVGeometryBuilder.cxx:143 AliMUONVGeometryBuilder.cxx:144 AliMUONVGeometryBuilder.cxx:145 AliMUONVGeometryBuilder.cxx:146 AliMUONVGeometryBuilder.cxx:147 AliMUONVGeometryBuilder.cxx:148 AliMUONVGeometryBuilder.cxx:149 AliMUONVGeometryBuilder.cxx:150 AliMUONVGeometryBuilder.cxx:151 AliMUONVGeometryBuilder.cxx:152 AliMUONVGeometryBuilder.cxx:153 AliMUONVGeometryBuilder.cxx:154 AliMUONVGeometryBuilder.cxx:155 AliMUONVGeometryBuilder.cxx:156 AliMUONVGeometryBuilder.cxx:157 AliMUONVGeometryBuilder.cxx:158 AliMUONVGeometryBuilder.cxx:159 AliMUONVGeometryBuilder.cxx:160 AliMUONVGeometryBuilder.cxx:161 AliMUONVGeometryBuilder.cxx:162 AliMUONVGeometryBuilder.cxx:163 AliMUONVGeometryBuilder.cxx:164 AliMUONVGeometryBuilder.cxx:165 AliMUONVGeometryBuilder.cxx:166 AliMUONVGeometryBuilder.cxx:167 AliMUONVGeometryBuilder.cxx:168 AliMUONVGeometryBuilder.cxx:169 AliMUONVGeometryBuilder.cxx:170 AliMUONVGeometryBuilder.cxx:171 AliMUONVGeometryBuilder.cxx:172 AliMUONVGeometryBuilder.cxx:173 AliMUONVGeometryBuilder.cxx:174 AliMUONVGeometryBuilder.cxx:175 AliMUONVGeometryBuilder.cxx:176 AliMUONVGeometryBuilder.cxx:177 AliMUONVGeometryBuilder.cxx:178 AliMUONVGeometryBuilder.cxx:179 AliMUONVGeometryBuilder.cxx:180 AliMUONVGeometryBuilder.cxx:181 AliMUONVGeometryBuilder.cxx:182 AliMUONVGeometryBuilder.cxx:183 AliMUONVGeometryBuilder.cxx:184 AliMUONVGeometryBuilder.cxx:185 AliMUONVGeometryBuilder.cxx:186 AliMUONVGeometryBuilder.cxx:187 AliMUONVGeometryBuilder.cxx:188 AliMUONVGeometryBuilder.cxx:189 AliMUONVGeometryBuilder.cxx:190 AliMUONVGeometryBuilder.cxx:191 AliMUONVGeometryBuilder.cxx:192 AliMUONVGeometryBuilder.cxx:193 AliMUONVGeometryBuilder.cxx:194 AliMUONVGeometryBuilder.cxx:195 AliMUONVGeometryBuilder.cxx:196 AliMUONVGeometryBuilder.cxx:197 AliMUONVGeometryBuilder.cxx:198 AliMUONVGeometryBuilder.cxx:199 AliMUONVGeometryBuilder.cxx:200 AliMUONVGeometryBuilder.cxx:201 AliMUONVGeometryBuilder.cxx:202 AliMUONVGeometryBuilder.cxx:203 AliMUONVGeometryBuilder.cxx:204 AliMUONVGeometryBuilder.cxx:205 AliMUONVGeometryBuilder.cxx:206 AliMUONVGeometryBuilder.cxx:207 AliMUONVGeometryBuilder.cxx:208 AliMUONVGeometryBuilder.cxx:209 AliMUONVGeometryBuilder.cxx:210 AliMUONVGeometryBuilder.cxx:211 AliMUONVGeometryBuilder.cxx:212 AliMUONVGeometryBuilder.cxx:213 AliMUONVGeometryBuilder.cxx:214 AliMUONVGeometryBuilder.cxx:215 AliMUONVGeometryBuilder.cxx:216 AliMUONVGeometryBuilder.cxx:217 AliMUONVGeometryBuilder.cxx:218 AliMUONVGeometryBuilder.cxx:219 AliMUONVGeometryBuilder.cxx:220 AliMUONVGeometryBuilder.cxx:221 AliMUONVGeometryBuilder.cxx:222 AliMUONVGeometryBuilder.cxx:223 AliMUONVGeometryBuilder.cxx:224 AliMUONVGeometryBuilder.cxx:225 AliMUONVGeometryBuilder.cxx:226 AliMUONVGeometryBuilder.cxx:227 AliMUONVGeometryBuilder.cxx:228 AliMUONVGeometryBuilder.cxx:229 AliMUONVGeometryBuilder.cxx:230 AliMUONVGeometryBuilder.cxx:231 AliMUONVGeometryBuilder.cxx:232 AliMUONVGeometryBuilder.cxx:233 AliMUONVGeometryBuilder.cxx:234 AliMUONVGeometryBuilder.cxx:235 AliMUONVGeometryBuilder.cxx:236 AliMUONVGeometryBuilder.cxx:237 AliMUONVGeometryBuilder.cxx:238 AliMUONVGeometryBuilder.cxx:239 AliMUONVGeometryBuilder.cxx:240 AliMUONVGeometryBuilder.cxx:241 AliMUONVGeometryBuilder.cxx:242 AliMUONVGeometryBuilder.cxx:243 AliMUONVGeometryBuilder.cxx:244 AliMUONVGeometryBuilder.cxx:245 AliMUONVGeometryBuilder.cxx:246 AliMUONVGeometryBuilder.cxx:247 AliMUONVGeometryBuilder.cxx:248 AliMUONVGeometryBuilder.cxx:249 AliMUONVGeometryBuilder.cxx:250 AliMUONVGeometryBuilder.cxx:251 AliMUONVGeometryBuilder.cxx:252 AliMUONVGeometryBuilder.cxx:253 AliMUONVGeometryBuilder.cxx:254 AliMUONVGeometryBuilder.cxx:255 AliMUONVGeometryBuilder.cxx:256 AliMUONVGeometryBuilder.cxx:257 AliMUONVGeometryBuilder.cxx:258 AliMUONVGeometryBuilder.cxx:259 AliMUONVGeometryBuilder.cxx:260 AliMUONVGeometryBuilder.cxx:261 AliMUONVGeometryBuilder.cxx:262 AliMUONVGeometryBuilder.cxx:263 AliMUONVGeometryBuilder.cxx:264 AliMUONVGeometryBuilder.cxx:265 AliMUONVGeometryBuilder.cxx:266 AliMUONVGeometryBuilder.cxx:267 AliMUONVGeometryBuilder.cxx:268 AliMUONVGeometryBuilder.cxx:269 AliMUONVGeometryBuilder.cxx:270 AliMUONVGeometryBuilder.cxx:271 AliMUONVGeometryBuilder.cxx:272 AliMUONVGeometryBuilder.cxx:273 AliMUONVGeometryBuilder.cxx:274 AliMUONVGeometryBuilder.cxx:275 AliMUONVGeometryBuilder.cxx:276 AliMUONVGeometryBuilder.cxx:277 AliMUONVGeometryBuilder.cxx:278 AliMUONVGeometryBuilder.cxx:279 AliMUONVGeometryBuilder.cxx:280 AliMUONVGeometryBuilder.cxx:281 AliMUONVGeometryBuilder.cxx:282 AliMUONVGeometryBuilder.cxx:283 AliMUONVGeometryBuilder.cxx:284 AliMUONVGeometryBuilder.cxx:285 AliMUONVGeometryBuilder.cxx:286 AliMUONVGeometryBuilder.cxx:287 AliMUONVGeometryBuilder.cxx:288 AliMUONVGeometryBuilder.cxx:289 AliMUONVGeometryBuilder.cxx:290 AliMUONVGeometryBuilder.cxx:291 AliMUONVGeometryBuilder.cxx:292 AliMUONVGeometryBuilder.cxx:293 AliMUONVGeometryBuilder.cxx:294 AliMUONVGeometryBuilder.cxx:295 AliMUONVGeometryBuilder.cxx:296 AliMUONVGeometryBuilder.cxx:297 AliMUONVGeometryBuilder.cxx:298 AliMUONVGeometryBuilder.cxx:299 AliMUONVGeometryBuilder.cxx:300 AliMUONVGeometryBuilder.cxx:301 AliMUONVGeometryBuilder.cxx:302 AliMUONVGeometryBuilder.cxx:303 AliMUONVGeometryBuilder.cxx:304 AliMUONVGeometryBuilder.cxx:305 AliMUONVGeometryBuilder.cxx:306 AliMUONVGeometryBuilder.cxx:307 AliMUONVGeometryBuilder.cxx:308 AliMUONVGeometryBuilder.cxx:309 AliMUONVGeometryBuilder.cxx:310 AliMUONVGeometryBuilder.cxx:311 AliMUONVGeometryBuilder.cxx:312 AliMUONVGeometryBuilder.cxx:313 AliMUONVGeometryBuilder.cxx:314 AliMUONVGeometryBuilder.cxx:315 AliMUONVGeometryBuilder.cxx:316 AliMUONVGeometryBuilder.cxx:317 AliMUONVGeometryBuilder.cxx:318 AliMUONVGeometryBuilder.cxx:319 AliMUONVGeometryBuilder.cxx:320 AliMUONVGeometryBuilder.cxx:321 AliMUONVGeometryBuilder.cxx:322 AliMUONVGeometryBuilder.cxx:323 AliMUONVGeometryBuilder.cxx:324 AliMUONVGeometryBuilder.cxx:325 AliMUONVGeometryBuilder.cxx:326 AliMUONVGeometryBuilder.cxx:327 AliMUONVGeometryBuilder.cxx:328 AliMUONVGeometryBuilder.cxx:329 AliMUONVGeometryBuilder.cxx:330 AliMUONVGeometryBuilder.cxx:331 AliMUONVGeometryBuilder.cxx:332 AliMUONVGeometryBuilder.cxx:333 AliMUONVGeometryBuilder.cxx:334 AliMUONVGeometryBuilder.cxx:335 AliMUONVGeometryBuilder.cxx:336 AliMUONVGeometryBuilder.cxx:337 AliMUONVGeometryBuilder.cxx:338 AliMUONVGeometryBuilder.cxx:339 AliMUONVGeometryBuilder.cxx:340 AliMUONVGeometryBuilder.cxx:341 AliMUONVGeometryBuilder.cxx:342 AliMUONVGeometryBuilder.cxx:343 AliMUONVGeometryBuilder.cxx:344 AliMUONVGeometryBuilder.cxx:345 AliMUONVGeometryBuilder.cxx:346 AliMUONVGeometryBuilder.cxx:347 AliMUONVGeometryBuilder.cxx:348 AliMUONVGeometryBuilder.cxx:349 AliMUONVGeometryBuilder.cxx:350 AliMUONVGeometryBuilder.cxx:351 AliMUONVGeometryBuilder.cxx:352 AliMUONVGeometryBuilder.cxx:353 AliMUONVGeometryBuilder.cxx:354 AliMUONVGeometryBuilder.cxx:355 AliMUONVGeometryBuilder.cxx:356 AliMUONVGeometryBuilder.cxx:357 AliMUONVGeometryBuilder.cxx:358 AliMUONVGeometryBuilder.cxx:359 AliMUONVGeometryBuilder.cxx:360 AliMUONVGeometryBuilder.cxx:361 AliMUONVGeometryBuilder.cxx:362 AliMUONVGeometryBuilder.cxx:363 AliMUONVGeometryBuilder.cxx:364 AliMUONVGeometryBuilder.cxx:365 AliMUONVGeometryBuilder.cxx:366 AliMUONVGeometryBuilder.cxx:367 AliMUONVGeometryBuilder.cxx:368 AliMUONVGeometryBuilder.cxx:369 AliMUONVGeometryBuilder.cxx:370 AliMUONVGeometryBuilder.cxx:371 AliMUONVGeometryBuilder.cxx:372 AliMUONVGeometryBuilder.cxx:373 AliMUONVGeometryBuilder.cxx:374 AliMUONVGeometryBuilder.cxx:375 AliMUONVGeometryBuilder.cxx:376 AliMUONVGeometryBuilder.cxx:377 AliMUONVGeometryBuilder.cxx:378 AliMUONVGeometryBuilder.cxx:379 AliMUONVGeometryBuilder.cxx:380 AliMUONVGeometryBuilder.cxx:381 AliMUONVGeometryBuilder.cxx:382 AliMUONVGeometryBuilder.cxx:383 AliMUONVGeometryBuilder.cxx:384 AliMUONVGeometryBuilder.cxx:385 AliMUONVGeometryBuilder.cxx:386 AliMUONVGeometryBuilder.cxx:387 AliMUONVGeometryBuilder.cxx:388 AliMUONVGeometryBuilder.cxx:389 AliMUONVGeometryBuilder.cxx:390 AliMUONVGeometryBuilder.cxx:391 AliMUONVGeometryBuilder.cxx:392 AliMUONVGeometryBuilder.cxx:393 AliMUONVGeometryBuilder.cxx:394 AliMUONVGeometryBuilder.cxx:395 AliMUONVGeometryBuilder.cxx:396 AliMUONVGeometryBuilder.cxx:397 AliMUONVGeometryBuilder.cxx:398 AliMUONVGeometryBuilder.cxx:399 AliMUONVGeometryBuilder.cxx:400 AliMUONVGeometryBuilder.cxx:401 AliMUONVGeometryBuilder.cxx:402 AliMUONVGeometryBuilder.cxx:403 AliMUONVGeometryBuilder.cxx:404 AliMUONVGeometryBuilder.cxx:405 AliMUONVGeometryBuilder.cxx:406 AliMUONVGeometryBuilder.cxx:407 AliMUONVGeometryBuilder.cxx:408 AliMUONVGeometryBuilder.cxx:409 AliMUONVGeometryBuilder.cxx:410 AliMUONVGeometryBuilder.cxx:411 AliMUONVGeometryBuilder.cxx:412 AliMUONVGeometryBuilder.cxx:413 AliMUONVGeometryBuilder.cxx:414 AliMUONVGeometryBuilder.cxx:415 AliMUONVGeometryBuilder.cxx:416 AliMUONVGeometryBuilder.cxx:417 AliMUONVGeometryBuilder.cxx:418 AliMUONVGeometryBuilder.cxx:419 AliMUONVGeometryBuilder.cxx:420 AliMUONVGeometryBuilder.cxx:421 AliMUONVGeometryBuilder.cxx:422 AliMUONVGeometryBuilder.cxx:423 AliMUONVGeometryBuilder.cxx:424 AliMUONVGeometryBuilder.cxx:425 AliMUONVGeometryBuilder.cxx:426 AliMUONVGeometryBuilder.cxx:427 AliMUONVGeometryBuilder.cxx:428 AliMUONVGeometryBuilder.cxx:429 AliMUONVGeometryBuilder.cxx:430 AliMUONVGeometryBuilder.cxx:431 AliMUONVGeometryBuilder.cxx:432 AliMUONVGeometryBuilder.cxx:433 AliMUONVGeometryBuilder.cxx:434 AliMUONVGeometryBuilder.cxx:435 AliMUONVGeometryBuilder.cxx:436 AliMUONVGeometryBuilder.cxx:437 AliMUONVGeometryBuilder.cxx:438 AliMUONVGeometryBuilder.cxx:439 AliMUONVGeometryBuilder.cxx:440 AliMUONVGeometryBuilder.cxx:441 AliMUONVGeometryBuilder.cxx:442 AliMUONVGeometryBuilder.cxx:443 AliMUONVGeometryBuilder.cxx:444 AliMUONVGeometryBuilder.cxx:445 AliMUONVGeometryBuilder.cxx:446 AliMUONVGeometryBuilder.cxx:447 AliMUONVGeometryBuilder.cxx:448 AliMUONVGeometryBuilder.cxx:449 AliMUONVGeometryBuilder.cxx:450 AliMUONVGeometryBuilder.cxx:451 AliMUONVGeometryBuilder.cxx:452 AliMUONVGeometryBuilder.cxx:453 AliMUONVGeometryBuilder.cxx:454 AliMUONVGeometryBuilder.cxx:455 AliMUONVGeometryBuilder.cxx:456 AliMUONVGeometryBuilder.cxx:457 AliMUONVGeometryBuilder.cxx:458 AliMUONVGeometryBuilder.cxx:459 AliMUONVGeometryBuilder.cxx:460 AliMUONVGeometryBuilder.cxx:461 AliMUONVGeometryBuilder.cxx:462 AliMUONVGeometryBuilder.cxx:463 AliMUONVGeometryBuilder.cxx:464 AliMUONVGeometryBuilder.cxx:465 AliMUONVGeometryBuilder.cxx:466 AliMUONVGeometryBuilder.cxx:467 AliMUONVGeometryBuilder.cxx:468 AliMUONVGeometryBuilder.cxx:469 AliMUONVGeometryBuilder.cxx:470 AliMUONVGeometryBuilder.cxx:471 AliMUONVGeometryBuilder.cxx:472 AliMUONVGeometryBuilder.cxx:473 AliMUONVGeometryBuilder.cxx:474 AliMUONVGeometryBuilder.cxx:475 AliMUONVGeometryBuilder.cxx:476 AliMUONVGeometryBuilder.cxx:477