#include "AliMUONGeometryMisAligner.h"
#include "AliMUONGeometryTransformer.h"
#include "AliMUONGeometryModuleTransformer.h"
#include "AliMUONGeometryDetElement.h"
#include "AliMUONGeometryBuilder.h"
#include "AliMpExMap.h"
#include "AliMpExMapIterator.h"
#include "AliAlignObjMatrix.h"
#include "AliMathBase.h"
#include "AliLog.h"
#include <TClonesArray.h>
#include <TGeoMatrix.h>
#include <TMatrixDSym.h>
#include <TMath.h>
#include <TRandom.h>
#include <Riostream.h>
ClassImp(AliMUONGeometryMisAligner)
AliMUONGeometryMisAligner::AliMUONGeometryMisAligner(Double_t cartXMisAligM, Double_t cartXMisAligW, Double_t cartYMisAligM, Double_t cartYMisAligW, Double_t angMisAligM, Double_t angMisAligW)
: TObject(),
fUseUni(kFALSE),
fUseGaus(kTRUE),
fXYAngMisAligFactor(0.0),
fZCartMisAligFactor(0.0)
{
for (Int_t i=0; i<6; i++){
for (Int_t j=0; j<2; j++){
fDetElemMisAlig[i][j] = 0.0;
fModuleMisAlig[i][j] = 0.0;
}
}
fDetElemMisAlig[0][0] = cartXMisAligM;
fDetElemMisAlig[0][1] = cartXMisAligW;
fDetElemMisAlig[1][0] = cartYMisAligM;
fDetElemMisAlig[1][1] = cartYMisAligW;
fDetElemMisAlig[5][0] = angMisAligM;
fDetElemMisAlig[5][1] = angMisAligW;
}
AliMUONGeometryMisAligner::AliMUONGeometryMisAligner(Double_t cartMisAligM, Double_t cartMisAligW, Double_t angMisAligM, Double_t angMisAligW)
: TObject(),
fUseUni(kFALSE),
fUseGaus(kTRUE),
fXYAngMisAligFactor(0.0),
fZCartMisAligFactor(0.0)
{
for (Int_t i=0; i<6; i++){
for (Int_t j=0; j<2; j++){
fDetElemMisAlig[i][j] = 0.0;
fModuleMisAlig[i][j] = 0.0;
}
}
fDetElemMisAlig[0][0] = cartMisAligM;
fDetElemMisAlig[0][1] = cartMisAligW;
fDetElemMisAlig[1][0] = cartMisAligM;
fDetElemMisAlig[1][1] = cartMisAligW;
fDetElemMisAlig[5][0] = angMisAligM;
fDetElemMisAlig[5][1] = angMisAligW;
}
AliMUONGeometryMisAligner::AliMUONGeometryMisAligner(Double_t cartMisAlig, Double_t angMisAlig)
: TObject(),
fUseUni(kTRUE),
fUseGaus(kFALSE),
fXYAngMisAligFactor(0.0),
fZCartMisAligFactor(0.0)
{
for (Int_t i=0; i<6; i++){
for (Int_t j=0; j<2; j++){
fDetElemMisAlig[i][j] = 0.0;
fModuleMisAlig[i][j] = 0.0;
}
}
fDetElemMisAlig[0][1] = cartMisAlig;
fDetElemMisAlig[1][1] = cartMisAlig;
fDetElemMisAlig[5][1] = angMisAlig;
}
AliMUONGeometryMisAligner::AliMUONGeometryMisAligner()
: TObject(),
fUseUni(kTRUE),
fUseGaus(kFALSE),
fXYAngMisAligFactor(0.0),
fZCartMisAligFactor(0.0)
{
for (Int_t i=0; i<6; i++){
for (Int_t j=0; j<2; j++){
fDetElemMisAlig[i][j] = 0.0;
fModuleMisAlig[i][j] = 0.0;
}
}
}
AliMUONGeometryMisAligner::~AliMUONGeometryMisAligner()
{
}
void
AliMUONGeometryMisAligner::SetXYAngMisAligFactor(Double_t factor)
{
if (TMath::Abs(factor) > 1.0 && factor > 0.){
fXYAngMisAligFactor = factor;
fDetElemMisAlig[3][0] = fDetElemMisAlig[5][0]*factor;
fDetElemMisAlig[3][1] = fDetElemMisAlig[5][1]*factor;
fDetElemMisAlig[4][0] = fDetElemMisAlig[5][0]*factor;
fDetElemMisAlig[4][1] = fDetElemMisAlig[5][1]*factor;
}
else
AliError(Form("Invalid XY angular misalign factor, %f", factor));
}
void AliMUONGeometryMisAligner::SetZCartMisAligFactor(Double_t factor)
{
if (TMath::Abs(factor)<1.0 && factor>0.) {
fZCartMisAligFactor = factor;
fDetElemMisAlig[2][0] = fDetElemMisAlig[0][0];
fDetElemMisAlig[2][1] = fDetElemMisAlig[0][1]*factor;
}
else
AliError(Form("Invalid Z cartesian misalign factor, %f", factor));
}
void AliMUONGeometryMisAligner::GetUniMisAlign(Double_t cartMisAlig[3], Double_t angMisAlig[3], const Double_t lParMisAlig[6][2]) const
{
cartMisAlig[0] = gRandom->Uniform(-lParMisAlig[0][1]+lParMisAlig[0][0], lParMisAlig[0][0]+lParMisAlig[0][1]);
cartMisAlig[1] = gRandom->Uniform(-lParMisAlig[1][1]+lParMisAlig[1][0], lParMisAlig[1][0]+lParMisAlig[1][1]);
cartMisAlig[2] = gRandom->Uniform(-lParMisAlig[2][1]+lParMisAlig[2][0], lParMisAlig[2][0]+lParMisAlig[2][1]);
angMisAlig[0] = gRandom->Uniform(-lParMisAlig[3][1]+lParMisAlig[3][0], lParMisAlig[3][0]+lParMisAlig[3][1]);
angMisAlig[1] = gRandom->Uniform(-lParMisAlig[4][1]+lParMisAlig[4][0], lParMisAlig[4][0]+lParMisAlig[4][1]);
angMisAlig[2] = gRandom->Uniform(-lParMisAlig[5][1]+lParMisAlig[5][0], lParMisAlig[5][0]+lParMisAlig[5][1]);
}
void AliMUONGeometryMisAligner::GetGausMisAlign(Double_t cartMisAlig[3], Double_t angMisAlig[3], const Double_t lParMisAlig[6][2]) const
{
cartMisAlig[0] = AliMathBase::TruncatedGaus(lParMisAlig[0][0], lParMisAlig[0][1], 3.*lParMisAlig[0][1]);
cartMisAlig[1] = AliMathBase::TruncatedGaus(lParMisAlig[1][0], lParMisAlig[1][1], 3.*lParMisAlig[1][1]);
cartMisAlig[2] = AliMathBase::TruncatedGaus(lParMisAlig[2][0], lParMisAlig[2][1], 3.*lParMisAlig[2][1]);
angMisAlig[0] = AliMathBase::TruncatedGaus(lParMisAlig[3][0], lParMisAlig[3][1], 3.*lParMisAlig[3][1]);
angMisAlig[1] = AliMathBase::TruncatedGaus(lParMisAlig[4][0], lParMisAlig[4][1], 3.*lParMisAlig[4][1]);
angMisAlig[2] = AliMathBase::TruncatedGaus(lParMisAlig[5][0], lParMisAlig[5][1], 3.*lParMisAlig[5][1]);
}
TGeoCombiTrans AliMUONGeometryMisAligner::MisAlignDetElem(const TGeoCombiTrans & transform) const
{
Double_t cartMisAlig[3] = {0,0,0};
Double_t angMisAlig[3] = {0,0,0};
if (fUseUni) {
GetUniMisAlign(cartMisAlig,angMisAlig,fDetElemMisAlig);
}
else {
if (!fUseGaus) {
AliWarning("Neither uniform nor gausian distribution is set! Will use gausian...");
}
GetGausMisAlign(cartMisAlig,angMisAlig,fDetElemMisAlig);
}
TGeoTranslation deltaTrans(cartMisAlig[0], cartMisAlig[1], cartMisAlig[2]);
TGeoRotation deltaRot;
deltaRot.RotateX(angMisAlig[0]);
deltaRot.RotateY(angMisAlig[1]);
deltaRot.RotateZ(angMisAlig[2]);
TGeoCombiTrans deltaTransf(deltaTrans,deltaRot);
TGeoHMatrix newTransfMat = transform * deltaTransf;
AliInfo(Form("Rotated DE by %f about Z axis.", angMisAlig[2]));
return TGeoCombiTrans(newTransfMat);
}
TGeoCombiTrans AliMUONGeometryMisAligner::MisAlignModule(const TGeoCombiTrans & transform) const
{
Double_t cartMisAlig[3] = {0,0,0};
Double_t angMisAlig[3] = {0,0,0};
if (fUseUni) {
GetUniMisAlign(cartMisAlig,angMisAlig,fModuleMisAlig);
}
else {
if (!fUseGaus) {
AliWarning("Neither uniform nor gausian distribution is set! Will use gausian...");
}
GetGausMisAlign(cartMisAlig,angMisAlig,fModuleMisAlig);
}
TGeoTranslation deltaTrans(cartMisAlig[0], cartMisAlig[1], cartMisAlig[2]);
TGeoRotation deltaRot;
deltaRot.RotateX(angMisAlig[0]);
deltaRot.RotateY(angMisAlig[1]);
deltaRot.RotateZ(angMisAlig[2]);
TGeoCombiTrans deltaTransf(deltaTrans,deltaRot);
TGeoHMatrix newTransfMat = transform * deltaTransf;
AliInfo(Form("Rotated Module by %f about Z axis.", angMisAlig[2]));
return TGeoCombiTrans(newTransfMat);
}
AliMUONGeometryTransformer *
AliMUONGeometryMisAligner::MisAlign(const AliMUONGeometryTransformer *
transformer, Bool_t verbose)
{
AliMUONGeometryTransformer *newGeometryTransformer =
new AliMUONGeometryTransformer();
for (Int_t iMt = 0; iMt < transformer->GetNofModuleTransformers(); iMt++)
{
const AliMUONGeometryModuleTransformer *kModuleTransformer =
transformer->GetModuleTransformer(iMt, true);
AliMUONGeometryModuleTransformer *newModuleTransformer =
new AliMUONGeometryModuleTransformer(iMt);
newGeometryTransformer->AddModuleTransformer(newModuleTransformer);
TGeoCombiTrans moduleTransform =
TGeoCombiTrans(*kModuleTransformer->GetTransformation());
TGeoCombiTrans newModuleTransform = MisAlignModule(moduleTransform);
newModuleTransformer->SetTransformation(newModuleTransform);
TGeoHMatrix deltaModuleTransform =
AliMUONGeometryBuilder::Multiply(
newModuleTransform,
kModuleTransformer->GetTransformation()->Inverse());
newGeometryTransformer
->AddMisAlignModule(kModuleTransformer->GetModuleId(), deltaModuleTransform);
AliMpExMap *detElements = kModuleTransformer->GetDetElementStore();
if (verbose)
AliInfo(Form("%i DEs in old GeometryStore %i",detElements->GetSize(), iMt));
TIter next(detElements->CreateIterator());
AliMUONGeometryDetElement *detElement;
while ( ( detElement = static_cast<AliMUONGeometryDetElement*>(next()) ) )
{
AliMUONGeometryDetElement *newDetElement =
new AliMUONGeometryDetElement(detElement->GetId(),
detElement->GetVolumePath());
TGeoCombiTrans localTransform
= TGeoCombiTrans(*detElement->GetLocalTransformation());
TGeoCombiTrans newLocalTransform = MisAlignDetElem(localTransform);
newDetElement->SetLocalTransformation(newLocalTransform);
TGeoHMatrix newGlobalTransform =
AliMUONGeometryBuilder::Multiply(newModuleTransform,
newLocalTransform);
newDetElement->SetGlobalTransformation(newGlobalTransform);
newModuleTransformer->GetDetElementStore()->Add(newDetElement->GetId(),
newDetElement);
TGeoHMatrix newOldGlobalTransform = newModuleTransform * localTransform;
TGeoHMatrix deltaGlobalTransform
= AliMUONGeometryBuilder::Multiply(
newGlobalTransform,
newOldGlobalTransform.Inverse());
newGeometryTransformer
->AddMisAlignDetElement(detElement->GetId(), deltaGlobalTransform);
}
if (verbose)
AliInfo(Form("Added module transformer %i to the transformer", iMt));
newGeometryTransformer->AddModuleTransformer(newModuleTransformer);
}
return newGeometryTransformer;
}
void AliMUONGeometryMisAligner::SetAlignmentResolution(const TClonesArray* misAlignArray, Int_t rChId, Double_t rChResX, Double_t rChResY, Double_t rDeResX, Double_t rDeResY){
Int_t chIdMin = (rChId<0)? 0 : rChId;
Int_t chIdMax = (rChId<0)? 9 : rChId;
Double_t chResX = (rChResX<0)? fModuleMisAlig[0][1] : rChResX;
Double_t chResY = (rChResY<0)? fModuleMisAlig[1][1] : rChResY;
Double_t deResX = (rDeResX<0)? fDetElemMisAlig[0][1] : rDeResX;
Double_t deResY = (rDeResY<0)? fDetElemMisAlig[1][1] : rDeResY;
TMatrixDSym mChCorrMatrix(6);
mChCorrMatrix[0][0]=chResX*chResX;
mChCorrMatrix[1][1]=chResY*chResY;
TMatrixDSym mDECorrMatrix(6);
mDECorrMatrix[0][0]=deResX*deResX;
mDECorrMatrix[1][1]=deResY*deResY;
AliAlignObjMatrix *alignMat = 0x0;
for(Int_t chId=chIdMin; chId<=chIdMax; chId++) {
TString chName1;
TString chName2;
if (chId<4){
chName1 = Form("GM%d",chId);
chName2 = Form("GM%d",chId);
} else {
chName1 = Form("GM%d",4+(chId-4)*2);
chName2 = Form("GM%d",4+(chId-4)*2+1);
}
for (int i=0; i<misAlignArray->GetEntries(); i++) {
alignMat = (AliAlignObjMatrix*)misAlignArray->At(i);
TString volName(alignMat->GetSymName());
if((volName.Contains(chName1)&&
((volName.Last('/')==volName.Index(chName1)+chName1.Length())||
(volName.Length()==volName.Index(chName1)+chName1.Length())))||
(volName.Contains(chName2)&&
((volName.Last('/')==volName.Index(chName2)+chName2.Length())||
(volName.Length()==volName.Index(chName2)+chName2.Length())))){
volName.Remove(0,volName.Last('/')+1);
if (volName.Contains("GM")) {
alignMat->SetCorrMatrix(mChCorrMatrix);
} else if (volName.Contains("DE")) {
alignMat->SetCorrMatrix(mDECorrMatrix);
}
}
}
}
}
AliMUONGeometryMisAligner.cxx:1 AliMUONGeometryMisAligner.cxx:2 AliMUONGeometryMisAligner.cxx:3 AliMUONGeometryMisAligner.cxx:4 AliMUONGeometryMisAligner.cxx:5 AliMUONGeometryMisAligner.cxx:6 AliMUONGeometryMisAligner.cxx:7 AliMUONGeometryMisAligner.cxx:8 AliMUONGeometryMisAligner.cxx:9 AliMUONGeometryMisAligner.cxx:10 AliMUONGeometryMisAligner.cxx:11 AliMUONGeometryMisAligner.cxx:12 AliMUONGeometryMisAligner.cxx:13 AliMUONGeometryMisAligner.cxx:14 AliMUONGeometryMisAligner.cxx:15 AliMUONGeometryMisAligner.cxx:16 AliMUONGeometryMisAligner.cxx:17 AliMUONGeometryMisAligner.cxx:18 AliMUONGeometryMisAligner.cxx:19 AliMUONGeometryMisAligner.cxx:20 AliMUONGeometryMisAligner.cxx:21 AliMUONGeometryMisAligner.cxx:22 AliMUONGeometryMisAligner.cxx:23 AliMUONGeometryMisAligner.cxx:24 AliMUONGeometryMisAligner.cxx:25 AliMUONGeometryMisAligner.cxx:26 AliMUONGeometryMisAligner.cxx:27 AliMUONGeometryMisAligner.cxx:28 AliMUONGeometryMisAligner.cxx:29 AliMUONGeometryMisAligner.cxx:30 AliMUONGeometryMisAligner.cxx:31 AliMUONGeometryMisAligner.cxx:32 AliMUONGeometryMisAligner.cxx:33 AliMUONGeometryMisAligner.cxx:34 AliMUONGeometryMisAligner.cxx:35 AliMUONGeometryMisAligner.cxx:36 AliMUONGeometryMisAligner.cxx:37 AliMUONGeometryMisAligner.cxx:38 AliMUONGeometryMisAligner.cxx:39 AliMUONGeometryMisAligner.cxx:40 AliMUONGeometryMisAligner.cxx:41 AliMUONGeometryMisAligner.cxx:42 AliMUONGeometryMisAligner.cxx:43 AliMUONGeometryMisAligner.cxx:44 AliMUONGeometryMisAligner.cxx:45 AliMUONGeometryMisAligner.cxx:46 AliMUONGeometryMisAligner.cxx:47 AliMUONGeometryMisAligner.cxx:48 AliMUONGeometryMisAligner.cxx:49 AliMUONGeometryMisAligner.cxx:50 AliMUONGeometryMisAligner.cxx:51 AliMUONGeometryMisAligner.cxx:52 AliMUONGeometryMisAligner.cxx:53 AliMUONGeometryMisAligner.cxx:54 AliMUONGeometryMisAligner.cxx:55 AliMUONGeometryMisAligner.cxx:56 AliMUONGeometryMisAligner.cxx:57 AliMUONGeometryMisAligner.cxx:58 AliMUONGeometryMisAligner.cxx:59 AliMUONGeometryMisAligner.cxx:60 AliMUONGeometryMisAligner.cxx:61 AliMUONGeometryMisAligner.cxx:62 AliMUONGeometryMisAligner.cxx:63 AliMUONGeometryMisAligner.cxx:64 AliMUONGeometryMisAligner.cxx:65 AliMUONGeometryMisAligner.cxx:66 AliMUONGeometryMisAligner.cxx:67 AliMUONGeometryMisAligner.cxx:68 AliMUONGeometryMisAligner.cxx:69 AliMUONGeometryMisAligner.cxx:70 AliMUONGeometryMisAligner.cxx:71 AliMUONGeometryMisAligner.cxx:72 AliMUONGeometryMisAligner.cxx:73 AliMUONGeometryMisAligner.cxx:74 AliMUONGeometryMisAligner.cxx:75 AliMUONGeometryMisAligner.cxx:76 AliMUONGeometryMisAligner.cxx:77 AliMUONGeometryMisAligner.cxx:78 AliMUONGeometryMisAligner.cxx:79 AliMUONGeometryMisAligner.cxx:80 AliMUONGeometryMisAligner.cxx:81 AliMUONGeometryMisAligner.cxx:82 AliMUONGeometryMisAligner.cxx:83 AliMUONGeometryMisAligner.cxx:84 AliMUONGeometryMisAligner.cxx:85 AliMUONGeometryMisAligner.cxx:86 AliMUONGeometryMisAligner.cxx:87 AliMUONGeometryMisAligner.cxx:88 AliMUONGeometryMisAligner.cxx:89 AliMUONGeometryMisAligner.cxx:90 AliMUONGeometryMisAligner.cxx:91 AliMUONGeometryMisAligner.cxx:92 AliMUONGeometryMisAligner.cxx:93 AliMUONGeometryMisAligner.cxx:94 AliMUONGeometryMisAligner.cxx:95 AliMUONGeometryMisAligner.cxx:96 AliMUONGeometryMisAligner.cxx:97 AliMUONGeometryMisAligner.cxx:98 AliMUONGeometryMisAligner.cxx:99 AliMUONGeometryMisAligner.cxx:100 AliMUONGeometryMisAligner.cxx:101 AliMUONGeometryMisAligner.cxx:102 AliMUONGeometryMisAligner.cxx:103 AliMUONGeometryMisAligner.cxx:104 AliMUONGeometryMisAligner.cxx:105 AliMUONGeometryMisAligner.cxx:106 AliMUONGeometryMisAligner.cxx:107 AliMUONGeometryMisAligner.cxx:108 AliMUONGeometryMisAligner.cxx:109 AliMUONGeometryMisAligner.cxx:110 AliMUONGeometryMisAligner.cxx:111 AliMUONGeometryMisAligner.cxx:112 AliMUONGeometryMisAligner.cxx:113 AliMUONGeometryMisAligner.cxx:114 AliMUONGeometryMisAligner.cxx:115 AliMUONGeometryMisAligner.cxx:116 AliMUONGeometryMisAligner.cxx:117 AliMUONGeometryMisAligner.cxx:118 AliMUONGeometryMisAligner.cxx:119 AliMUONGeometryMisAligner.cxx:120 AliMUONGeometryMisAligner.cxx:121 AliMUONGeometryMisAligner.cxx:122 AliMUONGeometryMisAligner.cxx:123 AliMUONGeometryMisAligner.cxx:124 AliMUONGeometryMisAligner.cxx:125 AliMUONGeometryMisAligner.cxx:126 AliMUONGeometryMisAligner.cxx:127 AliMUONGeometryMisAligner.cxx:128 AliMUONGeometryMisAligner.cxx:129 AliMUONGeometryMisAligner.cxx:130 AliMUONGeometryMisAligner.cxx:131 AliMUONGeometryMisAligner.cxx:132 AliMUONGeometryMisAligner.cxx:133 AliMUONGeometryMisAligner.cxx:134 AliMUONGeometryMisAligner.cxx:135 AliMUONGeometryMisAligner.cxx:136 AliMUONGeometryMisAligner.cxx:137 AliMUONGeometryMisAligner.cxx:138 AliMUONGeometryMisAligner.cxx:139 AliMUONGeometryMisAligner.cxx:140 AliMUONGeometryMisAligner.cxx:141 AliMUONGeometryMisAligner.cxx:142 AliMUONGeometryMisAligner.cxx:143 AliMUONGeometryMisAligner.cxx:144 AliMUONGeometryMisAligner.cxx:145 AliMUONGeometryMisAligner.cxx:146 AliMUONGeometryMisAligner.cxx:147 AliMUONGeometryMisAligner.cxx:148 AliMUONGeometryMisAligner.cxx:149 AliMUONGeometryMisAligner.cxx:150 AliMUONGeometryMisAligner.cxx:151 AliMUONGeometryMisAligner.cxx:152 AliMUONGeometryMisAligner.cxx:153 AliMUONGeometryMisAligner.cxx:154 AliMUONGeometryMisAligner.cxx:155 AliMUONGeometryMisAligner.cxx:156 AliMUONGeometryMisAligner.cxx:157 AliMUONGeometryMisAligner.cxx:158 AliMUONGeometryMisAligner.cxx:159 AliMUONGeometryMisAligner.cxx:160 AliMUONGeometryMisAligner.cxx:161 AliMUONGeometryMisAligner.cxx:162 AliMUONGeometryMisAligner.cxx:163 AliMUONGeometryMisAligner.cxx:164 AliMUONGeometryMisAligner.cxx:165 AliMUONGeometryMisAligner.cxx:166 AliMUONGeometryMisAligner.cxx:167 AliMUONGeometryMisAligner.cxx:168 AliMUONGeometryMisAligner.cxx:169 AliMUONGeometryMisAligner.cxx:170 AliMUONGeometryMisAligner.cxx:171 AliMUONGeometryMisAligner.cxx:172 AliMUONGeometryMisAligner.cxx:173 AliMUONGeometryMisAligner.cxx:174 AliMUONGeometryMisAligner.cxx:175 AliMUONGeometryMisAligner.cxx:176 AliMUONGeometryMisAligner.cxx:177 AliMUONGeometryMisAligner.cxx:178 AliMUONGeometryMisAligner.cxx:179 AliMUONGeometryMisAligner.cxx:180 AliMUONGeometryMisAligner.cxx:181 AliMUONGeometryMisAligner.cxx:182 AliMUONGeometryMisAligner.cxx:183 AliMUONGeometryMisAligner.cxx:184 AliMUONGeometryMisAligner.cxx:185 AliMUONGeometryMisAligner.cxx:186 AliMUONGeometryMisAligner.cxx:187 AliMUONGeometryMisAligner.cxx:188 AliMUONGeometryMisAligner.cxx:189 AliMUONGeometryMisAligner.cxx:190 AliMUONGeometryMisAligner.cxx:191 AliMUONGeometryMisAligner.cxx:192 AliMUONGeometryMisAligner.cxx:193 AliMUONGeometryMisAligner.cxx:194 AliMUONGeometryMisAligner.cxx:195 AliMUONGeometryMisAligner.cxx:196 AliMUONGeometryMisAligner.cxx:197 AliMUONGeometryMisAligner.cxx:198 AliMUONGeometryMisAligner.cxx:199 AliMUONGeometryMisAligner.cxx:200 AliMUONGeometryMisAligner.cxx:201 AliMUONGeometryMisAligner.cxx:202 AliMUONGeometryMisAligner.cxx:203 AliMUONGeometryMisAligner.cxx:204 AliMUONGeometryMisAligner.cxx:205 AliMUONGeometryMisAligner.cxx:206 AliMUONGeometryMisAligner.cxx:207 AliMUONGeometryMisAligner.cxx:208 AliMUONGeometryMisAligner.cxx:209 AliMUONGeometryMisAligner.cxx:210 AliMUONGeometryMisAligner.cxx:211 AliMUONGeometryMisAligner.cxx:212 AliMUONGeometryMisAligner.cxx:213 AliMUONGeometryMisAligner.cxx:214 AliMUONGeometryMisAligner.cxx:215 AliMUONGeometryMisAligner.cxx:216 AliMUONGeometryMisAligner.cxx:217 AliMUONGeometryMisAligner.cxx:218 AliMUONGeometryMisAligner.cxx:219 AliMUONGeometryMisAligner.cxx:220 AliMUONGeometryMisAligner.cxx:221 AliMUONGeometryMisAligner.cxx:222 AliMUONGeometryMisAligner.cxx:223 AliMUONGeometryMisAligner.cxx:224 AliMUONGeometryMisAligner.cxx:225 AliMUONGeometryMisAligner.cxx:226 AliMUONGeometryMisAligner.cxx:227 AliMUONGeometryMisAligner.cxx:228 AliMUONGeometryMisAligner.cxx:229 AliMUONGeometryMisAligner.cxx:230 AliMUONGeometryMisAligner.cxx:231 AliMUONGeometryMisAligner.cxx:232 AliMUONGeometryMisAligner.cxx:233 AliMUONGeometryMisAligner.cxx:234 AliMUONGeometryMisAligner.cxx:235 AliMUONGeometryMisAligner.cxx:236 AliMUONGeometryMisAligner.cxx:237 AliMUONGeometryMisAligner.cxx:238 AliMUONGeometryMisAligner.cxx:239 AliMUONGeometryMisAligner.cxx:240 AliMUONGeometryMisAligner.cxx:241 AliMUONGeometryMisAligner.cxx:242 AliMUONGeometryMisAligner.cxx:243 AliMUONGeometryMisAligner.cxx:244 AliMUONGeometryMisAligner.cxx:245 AliMUONGeometryMisAligner.cxx:246 AliMUONGeometryMisAligner.cxx:247 AliMUONGeometryMisAligner.cxx:248 AliMUONGeometryMisAligner.cxx:249 AliMUONGeometryMisAligner.cxx:250 AliMUONGeometryMisAligner.cxx:251 AliMUONGeometryMisAligner.cxx:252 AliMUONGeometryMisAligner.cxx:253 AliMUONGeometryMisAligner.cxx:254 AliMUONGeometryMisAligner.cxx:255 AliMUONGeometryMisAligner.cxx:256 AliMUONGeometryMisAligner.cxx:257 AliMUONGeometryMisAligner.cxx:258 AliMUONGeometryMisAligner.cxx:259 AliMUONGeometryMisAligner.cxx:260 AliMUONGeometryMisAligner.cxx:261 AliMUONGeometryMisAligner.cxx:262 AliMUONGeometryMisAligner.cxx:263 AliMUONGeometryMisAligner.cxx:264 AliMUONGeometryMisAligner.cxx:265 AliMUONGeometryMisAligner.cxx:266 AliMUONGeometryMisAligner.cxx:267 AliMUONGeometryMisAligner.cxx:268 AliMUONGeometryMisAligner.cxx:269 AliMUONGeometryMisAligner.cxx:270 AliMUONGeometryMisAligner.cxx:271 AliMUONGeometryMisAligner.cxx:272 AliMUONGeometryMisAligner.cxx:273 AliMUONGeometryMisAligner.cxx:274 AliMUONGeometryMisAligner.cxx:275 AliMUONGeometryMisAligner.cxx:276 AliMUONGeometryMisAligner.cxx:277 AliMUONGeometryMisAligner.cxx:278 AliMUONGeometryMisAligner.cxx:279 AliMUONGeometryMisAligner.cxx:280 AliMUONGeometryMisAligner.cxx:281 AliMUONGeometryMisAligner.cxx:282 AliMUONGeometryMisAligner.cxx:283 AliMUONGeometryMisAligner.cxx:284 AliMUONGeometryMisAligner.cxx:285 AliMUONGeometryMisAligner.cxx:286 AliMUONGeometryMisAligner.cxx:287 AliMUONGeometryMisAligner.cxx:288 AliMUONGeometryMisAligner.cxx:289 AliMUONGeometryMisAligner.cxx:290 AliMUONGeometryMisAligner.cxx:291 AliMUONGeometryMisAligner.cxx:292 AliMUONGeometryMisAligner.cxx:293 AliMUONGeometryMisAligner.cxx:294 AliMUONGeometryMisAligner.cxx:295 AliMUONGeometryMisAligner.cxx:296 AliMUONGeometryMisAligner.cxx:297 AliMUONGeometryMisAligner.cxx:298 AliMUONGeometryMisAligner.cxx:299 AliMUONGeometryMisAligner.cxx:300 AliMUONGeometryMisAligner.cxx:301 AliMUONGeometryMisAligner.cxx:302 AliMUONGeometryMisAligner.cxx:303 AliMUONGeometryMisAligner.cxx:304 AliMUONGeometryMisAligner.cxx:305 AliMUONGeometryMisAligner.cxx:306 AliMUONGeometryMisAligner.cxx:307 AliMUONGeometryMisAligner.cxx:308 AliMUONGeometryMisAligner.cxx:309 AliMUONGeometryMisAligner.cxx:310 AliMUONGeometryMisAligner.cxx:311 AliMUONGeometryMisAligner.cxx:312 AliMUONGeometryMisAligner.cxx:313 AliMUONGeometryMisAligner.cxx:314 AliMUONGeometryMisAligner.cxx:315 AliMUONGeometryMisAligner.cxx:316 AliMUONGeometryMisAligner.cxx:317 AliMUONGeometryMisAligner.cxx:318 AliMUONGeometryMisAligner.cxx:319 AliMUONGeometryMisAligner.cxx:320 AliMUONGeometryMisAligner.cxx:321 AliMUONGeometryMisAligner.cxx:322 AliMUONGeometryMisAligner.cxx:323 AliMUONGeometryMisAligner.cxx:324 AliMUONGeometryMisAligner.cxx:325 AliMUONGeometryMisAligner.cxx:326 AliMUONGeometryMisAligner.cxx:327 AliMUONGeometryMisAligner.cxx:328 AliMUONGeometryMisAligner.cxx:329 AliMUONGeometryMisAligner.cxx:330 AliMUONGeometryMisAligner.cxx:331 AliMUONGeometryMisAligner.cxx:332 AliMUONGeometryMisAligner.cxx:333 AliMUONGeometryMisAligner.cxx:334 AliMUONGeometryMisAligner.cxx:335 AliMUONGeometryMisAligner.cxx:336 AliMUONGeometryMisAligner.cxx:337 AliMUONGeometryMisAligner.cxx:338 AliMUONGeometryMisAligner.cxx:339 AliMUONGeometryMisAligner.cxx:340 AliMUONGeometryMisAligner.cxx:341 AliMUONGeometryMisAligner.cxx:342 AliMUONGeometryMisAligner.cxx:343 AliMUONGeometryMisAligner.cxx:344 AliMUONGeometryMisAligner.cxx:345 AliMUONGeometryMisAligner.cxx:346 AliMUONGeometryMisAligner.cxx:347 AliMUONGeometryMisAligner.cxx:348 AliMUONGeometryMisAligner.cxx:349 AliMUONGeometryMisAligner.cxx:350 AliMUONGeometryMisAligner.cxx:351 AliMUONGeometryMisAligner.cxx:352 AliMUONGeometryMisAligner.cxx:353 AliMUONGeometryMisAligner.cxx:354 AliMUONGeometryMisAligner.cxx:355 AliMUONGeometryMisAligner.cxx:356 AliMUONGeometryMisAligner.cxx:357 AliMUONGeometryMisAligner.cxx:358 AliMUONGeometryMisAligner.cxx:359 AliMUONGeometryMisAligner.cxx:360 AliMUONGeometryMisAligner.cxx:361 AliMUONGeometryMisAligner.cxx:362 AliMUONGeometryMisAligner.cxx:363 AliMUONGeometryMisAligner.cxx:364 AliMUONGeometryMisAligner.cxx:365 AliMUONGeometryMisAligner.cxx:366 AliMUONGeometryMisAligner.cxx:367 AliMUONGeometryMisAligner.cxx:368 AliMUONGeometryMisAligner.cxx:369 AliMUONGeometryMisAligner.cxx:370 AliMUONGeometryMisAligner.cxx:371 AliMUONGeometryMisAligner.cxx:372 AliMUONGeometryMisAligner.cxx:373 AliMUONGeometryMisAligner.cxx:374 AliMUONGeometryMisAligner.cxx:375 AliMUONGeometryMisAligner.cxx:376 AliMUONGeometryMisAligner.cxx:377 AliMUONGeometryMisAligner.cxx:378 AliMUONGeometryMisAligner.cxx:379 AliMUONGeometryMisAligner.cxx:380 AliMUONGeometryMisAligner.cxx:381 AliMUONGeometryMisAligner.cxx:382 AliMUONGeometryMisAligner.cxx:383 AliMUONGeometryMisAligner.cxx:384 AliMUONGeometryMisAligner.cxx:385 AliMUONGeometryMisAligner.cxx:386 AliMUONGeometryMisAligner.cxx:387 AliMUONGeometryMisAligner.cxx:388 AliMUONGeometryMisAligner.cxx:389 AliMUONGeometryMisAligner.cxx:390 AliMUONGeometryMisAligner.cxx:391 AliMUONGeometryMisAligner.cxx:392 AliMUONGeometryMisAligner.cxx:393 AliMUONGeometryMisAligner.cxx:394 AliMUONGeometryMisAligner.cxx:395 AliMUONGeometryMisAligner.cxx:396 AliMUONGeometryMisAligner.cxx:397 AliMUONGeometryMisAligner.cxx:398 AliMUONGeometryMisAligner.cxx:399 AliMUONGeometryMisAligner.cxx:400 AliMUONGeometryMisAligner.cxx:401 AliMUONGeometryMisAligner.cxx:402 AliMUONGeometryMisAligner.cxx:403 AliMUONGeometryMisAligner.cxx:404 AliMUONGeometryMisAligner.cxx:405 AliMUONGeometryMisAligner.cxx:406 AliMUONGeometryMisAligner.cxx:407 AliMUONGeometryMisAligner.cxx:408 AliMUONGeometryMisAligner.cxx:409 AliMUONGeometryMisAligner.cxx:410 AliMUONGeometryMisAligner.cxx:411 AliMUONGeometryMisAligner.cxx:412 AliMUONGeometryMisAligner.cxx:413 AliMUONGeometryMisAligner.cxx:414 AliMUONGeometryMisAligner.cxx:415 AliMUONGeometryMisAligner.cxx:416 AliMUONGeometryMisAligner.cxx:417 AliMUONGeometryMisAligner.cxx:418 AliMUONGeometryMisAligner.cxx:419 AliMUONGeometryMisAligner.cxx:420 AliMUONGeometryMisAligner.cxx:421 AliMUONGeometryMisAligner.cxx:422 AliMUONGeometryMisAligner.cxx:423 AliMUONGeometryMisAligner.cxx:424 AliMUONGeometryMisAligner.cxx:425 AliMUONGeometryMisAligner.cxx:426 AliMUONGeometryMisAligner.cxx:427 AliMUONGeometryMisAligner.cxx:428 AliMUONGeometryMisAligner.cxx:429 AliMUONGeometryMisAligner.cxx:430 AliMUONGeometryMisAligner.cxx:431 AliMUONGeometryMisAligner.cxx:432 AliMUONGeometryMisAligner.cxx:433 AliMUONGeometryMisAligner.cxx:434 AliMUONGeometryMisAligner.cxx:435 AliMUONGeometryMisAligner.cxx:436 AliMUONGeometryMisAligner.cxx:437 AliMUONGeometryMisAligner.cxx:438 AliMUONGeometryMisAligner.cxx:439 AliMUONGeometryMisAligner.cxx:440 AliMUONGeometryMisAligner.cxx:441 AliMUONGeometryMisAligner.cxx:442 AliMUONGeometryMisAligner.cxx:443 AliMUONGeometryMisAligner.cxx:444 AliMUONGeometryMisAligner.cxx:445 AliMUONGeometryMisAligner.cxx:446 AliMUONGeometryMisAligner.cxx:447 AliMUONGeometryMisAligner.cxx:448 AliMUONGeometryMisAligner.cxx:449 AliMUONGeometryMisAligner.cxx:450 AliMUONGeometryMisAligner.cxx:451 AliMUONGeometryMisAligner.cxx:452 AliMUONGeometryMisAligner.cxx:453 AliMUONGeometryMisAligner.cxx:454 AliMUONGeometryMisAligner.cxx:455 AliMUONGeometryMisAligner.cxx:456 AliMUONGeometryMisAligner.cxx:457 AliMUONGeometryMisAligner.cxx:458 AliMUONGeometryMisAligner.cxx:459 AliMUONGeometryMisAligner.cxx:460 AliMUONGeometryMisAligner.cxx:461 AliMUONGeometryMisAligner.cxx:462 AliMUONGeometryMisAligner.cxx:463 AliMUONGeometryMisAligner.cxx:464 AliMUONGeometryMisAligner.cxx:465 AliMUONGeometryMisAligner.cxx:466 AliMUONGeometryMisAligner.cxx:467 AliMUONGeometryMisAligner.cxx:468 AliMUONGeometryMisAligner.cxx:469 AliMUONGeometryMisAligner.cxx:470 AliMUONGeometryMisAligner.cxx:471 AliMUONGeometryMisAligner.cxx:472 AliMUONGeometryMisAligner.cxx:473 AliMUONGeometryMisAligner.cxx:474 AliMUONGeometryMisAligner.cxx:475 AliMUONGeometryMisAligner.cxx:476 AliMUONGeometryMisAligner.cxx:477 AliMUONGeometryMisAligner.cxx:478 AliMUONGeometryMisAligner.cxx:479 AliMUONGeometryMisAligner.cxx:480 AliMUONGeometryMisAligner.cxx:481