#include <stdexcept>
#include <iostream>
#include <TGeoMatrix.h>
#include <TObjArray.h>
#include <TString.h>
#include <TError.h>
#include <TMath.h>
#include "AliSurveyPoint.h"
#include "AliPHOSModuleMisalignment.h"
#include "AliPHOSGeometry.h"
ClassImp(AliPHOSModuleMisalignment)
namespace {
void Vector(const Double_t (&p1)[3], const Double_t (&p2)[3], Double_t (&v)[3])
{
for(UInt_t i = 0; i < 3; ++i)
v[i] = p2[i] - p1[i];
}
#if 0
void MultVector(Double_t (&v)[3], Double_t m)
{
v[0] *= m;
v[1] *= m;
v[2] *= m;
}
#endif
void FindVectors(const Double_t (&pts)[3][3], Double_t (&v)[3][3])
{
Vector(pts[0], pts[2], v[0]);
Vector(pts[0], pts[1], v[2]);
}
Double_t Length(const Double_t (&v)[3])
{
return TMath::Sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
}
#if 0
Double_t Distance(const Double_t (&p1)[3], const Double_t (&p2)[3])
{
return TMath::Sqrt((p2[0] - p1[0]) * (p2[0] - p1[0]) +
(p2[1] - p1[1]) * (p2[1] - p1[1]) +
(p2[2] - p1[2]) * (p2[2] - p1[2]));
}
#endif
void CrossProduct(const Double_t (&v1)[3], const Double_t (&v2)[3], Double_t (&v3)[3])
{
v3[0] = v1[1] * v2[2] - v2[1] * v1[2];
v3[1] = v1[2] * v2[0] - v2[2] * v1[0];
v3[2] = v1[0] * v2[1] - v2[0] * v1[1];
}
void Normalize(Double_t (&v)[3])
{
const Double_t len = Length(v);
if(len < 1E-10)
throw std::runtime_error("Zero len vector");
v[0] /= len;
v[1] /= len;
v[2] /= len;
}
void Normalize(Double_t (&v)[3][3])
{
for(UInt_t i = 0; i < 3; ++i)
Normalize(v[i]);
}
void FindRotation(const Double_t (&u)[3][3], const Double_t (&v)[3][3], Double_t (&r)[9])
{
r[0] = v[0][0] * u[0][0] + v[1][0] * u[1][0] + v[2][0] * u[2][0];
r[1] = v[0][0] * u[0][1] + v[1][0] * u[1][1] + v[2][0] * u[2][1];
r[2] = v[0][0] * u[0][2] + v[1][0] * u[1][2] + v[2][0] * u[2][2];
r[3] = v[0][1] * u[0][0] + v[1][1] * u[1][0] + v[2][1] * u[2][0];
r[4] = v[0][1] * u[0][1] + v[1][1] * u[1][1] + v[2][1] * u[2][1];
r[5] = v[0][1] * u[0][2] + v[1][1] * u[1][2] + v[2][1] * u[2][2];
r[6] = v[0][2] * u[0][0] + v[1][2] * u[1][0] + v[2][2] * u[2][0];
r[7] = v[0][2] * u[0][1] + v[1][2] * u[1][1] + v[2][2] * u[2][1];
r[8] = v[0][2] * u[0][2] + v[1][2] * u[1][2] + v[2][2] * u[2][2];
}
void Rotate(const Double_t (&r)[9], const Double_t (&u)[3], Double_t (&v)[3])
{
v[0] = r[0] * u[0] + r[1] * u[1] + r[2] * u[2];
v[1] = r[3] * u[0] + r[4] * u[1] + r[5] * u[2];
v[2] = r[6] * u[0] + r[7] * u[1] + r[8] * u[2];
}
void Rotate(const Double_t (&r)[9], const Double_t (&u)[3][3], Double_t (&v)[3][3])
{
for(UInt_t i = 0; i < 3; ++i)
Rotate(r, u[i], v[i]);
}
void PrintVector(const Double_t (&v)[3])
{
std::cout<<v[0]<<' '<<v[1]<<' '<<v[2]<<std::endl;
}
void PrintMatrix(const Double_t (&u)[3][3])
{
for(UInt_t i = 0; i < 3; ++i)
PrintVector(u[i]);
}
void Translate(const Double_t (&t)[3], const Double_t (&u)[3], Double_t (&v)[3])
{
for(UInt_t i = 0; i < 3; ++i)
v[i] = u[i] + t[i];
}
void Translate(const Double_t (&t)[3], const Double_t (&u)[3][3], Double_t (&v)[3][3])
{
for(UInt_t i = 0; i < 3; ++i)
Translate(t, u[i], v[i]);
}
}
AliPHOSModuleMisalignment::
AliPHOSModuleMisalignment(const AliPHOSGeometry & geom, Bool_t debug)
: fDebug(debug),
fAngles(),
fCenters(),
fModule(),
fU(),
fV()
{
for (UInt_t module = 0; module < kModules; ++module)
for (UInt_t axis = 0; axis < 3; ++axis)
for (UInt_t angle = 0; angle < 2; ++angle)
fAngles[module][axis][angle] = geom.GetModuleAngle(module, axis, angle);
for (UInt_t module = 0; module < kModules; ++module)
for (UInt_t axis = 0; axis < 3; ++axis)
fCenters[module][axis] = geom.GetModuleCenter(module, axis);
fModule[0][0] = -geom.GetNPhi() / 2. * geom.GetCellStep() + geom.GetCellStep() / 2.;
fModule[0][1] = -geom.GetNZ() / 2. * geom.GetCellStep() + geom.GetCellStep() / 2.;
fModule[0][2] = -22.61;
fModule[1][0] = fModule[0][0];
fModule[1][1] = -fModule[0][1] - geom.GetCellStep();
fModule[1][2] = -22.61;
fModule[2][0] = -fModule[0][0] - 7 * geom.GetCellStep();
fModule[2][1] = fModule[0][1];
fModule[2][2] = -22.61;
}
AliPHOSModuleMisalignment::~AliPHOSModuleMisalignment()
{
}
void AliPHOSModuleMisalignment::
DeltaTransformation(UInt_t module, const TObjArray * points,
const TString & name0, const TString & name1,
const TString & name2, TGeoHMatrix * delta)
{
const AliSurveyPoint * pt0 = static_cast<AliSurveyPoint *>(points->FindObject(name0));
const AliSurveyPoint * pt1 = static_cast<AliSurveyPoint *>(points->FindObject(name1));
const AliSurveyPoint * pt2 = static_cast<AliSurveyPoint *>(points->FindObject(name2));
if (!pt0 || !pt1 || !pt2) {
Warning("AliPHOSModuleData::DeltaTransformation",
"One of points not found in TObjArray");
return;
}
FindIdealModule(module);
FindRealModule(pt0, pt1, pt2);
FindDelta(delta);
}
void AliPHOSModuleMisalignment::FindIdealModule(UInt_t module)
{
TGeoHMatrix matrix;
const TGeoRotation r("",
fAngles[module][0][0], fAngles[module][0][1],
fAngles[module][1][0], fAngles[module][1][1],
fAngles[module][2][0], fAngles[module][2][1]);
matrix.SetRotation(r.GetRotationMatrix());
matrix.SetDx(fCenters[module][0]);
matrix.SetDy(fCenters[module][1]);
matrix.SetDz(fCenters[module][2]);
matrix.LocalToMaster(fModule[0], fU[0]);
matrix.LocalToMaster(fModule[1], fU[1]);
matrix.LocalToMaster(fModule[2], fU[2]);
}
void AliPHOSModuleMisalignment::FindRealModule(const AliSurveyPoint * pt0,
const AliSurveyPoint * pt1,
const AliSurveyPoint * pt2)
{
const Double_t scale = 0.1;
fV[0][0] = pt0->GetX() * scale;
fV[0][1] = pt0->GetY() * scale;
fV[0][2] = pt0->GetZ() * scale;
fV[1][0] = pt1->GetX() * scale;
fV[1][1] = pt1->GetY() * scale;
fV[1][2] = pt1->GetZ() * scale;
fV[2][0] = pt2->GetX() * scale;
fV[2][1] = pt2->GetY() * scale;
fV[2][2] = pt2->GetZ() * scale;
}
void AliPHOSModuleMisalignment::FindDelta(TGeoHMatrix * delta)const
{
Double_t u[3][3] = {};
FindVectors(fU, u);
CrossProduct(u[2], u[0], u[1]);
Double_t v[3][3] = {};
FindVectors(fV, v);
CrossProduct(v[2], v[0], v[1]);
try {
Normalize(u);
Normalize(v);
} catch (const std::exception & e) {
Error("AliPHOSModuleMisalignment::FindDelta",
"\tone of vectors from ideal or real\n\tpoints have zero size\n"
"\tzero misalignment will be created");
return;
}
Double_t r[9] = {};
FindRotation(u, v, r);
delta->SetRotation(r);
#if 1
Double_t idealRotated[3] = {};
Rotate(r, fU[0], idealRotated);
delta->SetDx(fV[0][0] - idealRotated[0]);
delta->SetDy(fV[0][1] - idealRotated[1]);
delta->SetDz(fV[0][2] - idealRotated[2]);
if (fDebug) {
const Double_t shifts[3] =
{fV[0][0] - idealRotated[0],
fV[0][1] - idealRotated[1],
fV[0][2] - idealRotated[2]};
Double_t test1[3][3] = {};
Rotate(r, fU, test1);
Double_t test2[3][3] = {};
Translate(shifts, test1, test2);
std::cout<<"ideal:\n";
PrintMatrix(fU);
std::cout<<"misaligned:\n";
PrintMatrix(test2);
std::cout<<"real:\n";
PrintMatrix(fV);
}
#endif
#if 0
Double_t idealRotated[3][3] = {};
Rotate(r, fU, idealRotated);
Double_t zShift[3] = {};
Vector(fV[0], fV[1], zShift);
Normalize(zShift);
Double_t xShift[3] = {};
Vector(fV[0], fV[2], xShift);
Normalize(xShift);
MultVector(zShift, 0.5 * (lenZreal - lenZideal));
MultVector(xShift, 0.5 * (lenXreal - lenXideal));
Double_t pt1[3] = {};
Translate(zShift, fV[0], pt1);
Double_t pt2[3] = {};
Translate(xShift, pt1, pt2);
Double_t shifts[] = {pt2[0] - idealRotated[0][0],
pt2[1] - idealRotated[0][1],
pt2[2] - idealRotated[0][2]};
delta->SetDx(shifts[0]);
delta->SetDy(shifts[1]);
delta->SetDz(shifts[2]);
if (fDebug) {
Double_t idealTr[3][3] = {};
Translate(shifts, idealRotated, idealTr);
std::cout<<"misaligned:\n";
PrintMatrix(idealTr);
std::cout<<"ideal1 "<<Distance(idealTr[0], idealTr[1])<<std::endl;
std::cout<<"ideal2 "<<Distance(idealTr[0], idealTr[2])<<std::endl;
std::cout<<"real:\n";
PrintMatrix(fV);
std::cout<<"real1 "<<Distance(fV[0], fV[1])<<std::endl;
std::cout<<"real2 "<<Distance(fV[0], fV[2])<<std::endl;
}
#endif
}
AliPHOSModuleMisalignment.cxx:1 AliPHOSModuleMisalignment.cxx:2 AliPHOSModuleMisalignment.cxx:3 AliPHOSModuleMisalignment.cxx:4 AliPHOSModuleMisalignment.cxx:5 AliPHOSModuleMisalignment.cxx:6 AliPHOSModuleMisalignment.cxx:7 AliPHOSModuleMisalignment.cxx:8 AliPHOSModuleMisalignment.cxx:9 AliPHOSModuleMisalignment.cxx:10 AliPHOSModuleMisalignment.cxx:11 AliPHOSModuleMisalignment.cxx:12 AliPHOSModuleMisalignment.cxx:13 AliPHOSModuleMisalignment.cxx:14 AliPHOSModuleMisalignment.cxx:15 AliPHOSModuleMisalignment.cxx:16 AliPHOSModuleMisalignment.cxx:17 AliPHOSModuleMisalignment.cxx:18 AliPHOSModuleMisalignment.cxx:19 AliPHOSModuleMisalignment.cxx:20 AliPHOSModuleMisalignment.cxx:21 AliPHOSModuleMisalignment.cxx:22 AliPHOSModuleMisalignment.cxx:23 AliPHOSModuleMisalignment.cxx:24 AliPHOSModuleMisalignment.cxx:25 AliPHOSModuleMisalignment.cxx:26 AliPHOSModuleMisalignment.cxx:27 AliPHOSModuleMisalignment.cxx:28 AliPHOSModuleMisalignment.cxx:29 AliPHOSModuleMisalignment.cxx:30 AliPHOSModuleMisalignment.cxx:31 AliPHOSModuleMisalignment.cxx:32 AliPHOSModuleMisalignment.cxx:33 AliPHOSModuleMisalignment.cxx:34 AliPHOSModuleMisalignment.cxx:35 AliPHOSModuleMisalignment.cxx:36 AliPHOSModuleMisalignment.cxx:37 AliPHOSModuleMisalignment.cxx:38 AliPHOSModuleMisalignment.cxx:39 AliPHOSModuleMisalignment.cxx:40 AliPHOSModuleMisalignment.cxx:41 AliPHOSModuleMisalignment.cxx:42 AliPHOSModuleMisalignment.cxx:43 AliPHOSModuleMisalignment.cxx:44 AliPHOSModuleMisalignment.cxx:45 AliPHOSModuleMisalignment.cxx:46 AliPHOSModuleMisalignment.cxx:47 AliPHOSModuleMisalignment.cxx:48 AliPHOSModuleMisalignment.cxx:49 AliPHOSModuleMisalignment.cxx:50 AliPHOSModuleMisalignment.cxx:51 AliPHOSModuleMisalignment.cxx:52 AliPHOSModuleMisalignment.cxx:53 AliPHOSModuleMisalignment.cxx:54 AliPHOSModuleMisalignment.cxx:55 AliPHOSModuleMisalignment.cxx:56 AliPHOSModuleMisalignment.cxx:57 AliPHOSModuleMisalignment.cxx:58 AliPHOSModuleMisalignment.cxx:59 AliPHOSModuleMisalignment.cxx:60 AliPHOSModuleMisalignment.cxx:61 AliPHOSModuleMisalignment.cxx:62 AliPHOSModuleMisalignment.cxx:63 AliPHOSModuleMisalignment.cxx:64 AliPHOSModuleMisalignment.cxx:65 AliPHOSModuleMisalignment.cxx:66 AliPHOSModuleMisalignment.cxx:67 AliPHOSModuleMisalignment.cxx:68 AliPHOSModuleMisalignment.cxx:69 AliPHOSModuleMisalignment.cxx:70 AliPHOSModuleMisalignment.cxx:71 AliPHOSModuleMisalignment.cxx:72 AliPHOSModuleMisalignment.cxx:73 AliPHOSModuleMisalignment.cxx:74 AliPHOSModuleMisalignment.cxx:75 AliPHOSModuleMisalignment.cxx:76 AliPHOSModuleMisalignment.cxx:77 AliPHOSModuleMisalignment.cxx:78 AliPHOSModuleMisalignment.cxx:79 AliPHOSModuleMisalignment.cxx:80 AliPHOSModuleMisalignment.cxx:81 AliPHOSModuleMisalignment.cxx:82 AliPHOSModuleMisalignment.cxx:83 AliPHOSModuleMisalignment.cxx:84 AliPHOSModuleMisalignment.cxx:85 AliPHOSModuleMisalignment.cxx:86 AliPHOSModuleMisalignment.cxx:87 AliPHOSModuleMisalignment.cxx:88 AliPHOSModuleMisalignment.cxx:89 AliPHOSModuleMisalignment.cxx:90 AliPHOSModuleMisalignment.cxx:91 AliPHOSModuleMisalignment.cxx:92 AliPHOSModuleMisalignment.cxx:93 AliPHOSModuleMisalignment.cxx:94 AliPHOSModuleMisalignment.cxx:95 AliPHOSModuleMisalignment.cxx:96 AliPHOSModuleMisalignment.cxx:97 AliPHOSModuleMisalignment.cxx:98 AliPHOSModuleMisalignment.cxx:99 AliPHOSModuleMisalignment.cxx:100 AliPHOSModuleMisalignment.cxx:101 AliPHOSModuleMisalignment.cxx:102 AliPHOSModuleMisalignment.cxx:103 AliPHOSModuleMisalignment.cxx:104 AliPHOSModuleMisalignment.cxx:105 AliPHOSModuleMisalignment.cxx:106 AliPHOSModuleMisalignment.cxx:107 AliPHOSModuleMisalignment.cxx:108 AliPHOSModuleMisalignment.cxx:109 AliPHOSModuleMisalignment.cxx:110 AliPHOSModuleMisalignment.cxx:111 AliPHOSModuleMisalignment.cxx:112 AliPHOSModuleMisalignment.cxx:113 AliPHOSModuleMisalignment.cxx:114 AliPHOSModuleMisalignment.cxx:115 AliPHOSModuleMisalignment.cxx:116 AliPHOSModuleMisalignment.cxx:117 AliPHOSModuleMisalignment.cxx:118 AliPHOSModuleMisalignment.cxx:119 AliPHOSModuleMisalignment.cxx:120 AliPHOSModuleMisalignment.cxx:121 AliPHOSModuleMisalignment.cxx:122 AliPHOSModuleMisalignment.cxx:123 AliPHOSModuleMisalignment.cxx:124 AliPHOSModuleMisalignment.cxx:125 AliPHOSModuleMisalignment.cxx:126 AliPHOSModuleMisalignment.cxx:127 AliPHOSModuleMisalignment.cxx:128 AliPHOSModuleMisalignment.cxx:129 AliPHOSModuleMisalignment.cxx:130 AliPHOSModuleMisalignment.cxx:131 AliPHOSModuleMisalignment.cxx:132 AliPHOSModuleMisalignment.cxx:133 AliPHOSModuleMisalignment.cxx:134 AliPHOSModuleMisalignment.cxx:135 AliPHOSModuleMisalignment.cxx:136 AliPHOSModuleMisalignment.cxx:137 AliPHOSModuleMisalignment.cxx:138 AliPHOSModuleMisalignment.cxx:139 AliPHOSModuleMisalignment.cxx:140 AliPHOSModuleMisalignment.cxx:141 AliPHOSModuleMisalignment.cxx:142 AliPHOSModuleMisalignment.cxx:143 AliPHOSModuleMisalignment.cxx:144 AliPHOSModuleMisalignment.cxx:145 AliPHOSModuleMisalignment.cxx:146 AliPHOSModuleMisalignment.cxx:147 AliPHOSModuleMisalignment.cxx:148 AliPHOSModuleMisalignment.cxx:149 AliPHOSModuleMisalignment.cxx:150 AliPHOSModuleMisalignment.cxx:151 AliPHOSModuleMisalignment.cxx:152 AliPHOSModuleMisalignment.cxx:153 AliPHOSModuleMisalignment.cxx:154 AliPHOSModuleMisalignment.cxx:155 AliPHOSModuleMisalignment.cxx:156 AliPHOSModuleMisalignment.cxx:157 AliPHOSModuleMisalignment.cxx:158 AliPHOSModuleMisalignment.cxx:159 AliPHOSModuleMisalignment.cxx:160 AliPHOSModuleMisalignment.cxx:161 AliPHOSModuleMisalignment.cxx:162 AliPHOSModuleMisalignment.cxx:163 AliPHOSModuleMisalignment.cxx:164 AliPHOSModuleMisalignment.cxx:165 AliPHOSModuleMisalignment.cxx:166 AliPHOSModuleMisalignment.cxx:167 AliPHOSModuleMisalignment.cxx:168 AliPHOSModuleMisalignment.cxx:169 AliPHOSModuleMisalignment.cxx:170 AliPHOSModuleMisalignment.cxx:171 AliPHOSModuleMisalignment.cxx:172 AliPHOSModuleMisalignment.cxx:173 AliPHOSModuleMisalignment.cxx:174 AliPHOSModuleMisalignment.cxx:175 AliPHOSModuleMisalignment.cxx:176 AliPHOSModuleMisalignment.cxx:177 AliPHOSModuleMisalignment.cxx:178 AliPHOSModuleMisalignment.cxx:179 AliPHOSModuleMisalignment.cxx:180 AliPHOSModuleMisalignment.cxx:181 AliPHOSModuleMisalignment.cxx:182 AliPHOSModuleMisalignment.cxx:183 AliPHOSModuleMisalignment.cxx:184 AliPHOSModuleMisalignment.cxx:185 AliPHOSModuleMisalignment.cxx:186 AliPHOSModuleMisalignment.cxx:187 AliPHOSModuleMisalignment.cxx:188 AliPHOSModuleMisalignment.cxx:189 AliPHOSModuleMisalignment.cxx:190 AliPHOSModuleMisalignment.cxx:191 AliPHOSModuleMisalignment.cxx:192 AliPHOSModuleMisalignment.cxx:193 AliPHOSModuleMisalignment.cxx:194 AliPHOSModuleMisalignment.cxx:195 AliPHOSModuleMisalignment.cxx:196 AliPHOSModuleMisalignment.cxx:197 AliPHOSModuleMisalignment.cxx:198 AliPHOSModuleMisalignment.cxx:199 AliPHOSModuleMisalignment.cxx:200 AliPHOSModuleMisalignment.cxx:201 AliPHOSModuleMisalignment.cxx:202 AliPHOSModuleMisalignment.cxx:203 AliPHOSModuleMisalignment.cxx:204 AliPHOSModuleMisalignment.cxx:205 AliPHOSModuleMisalignment.cxx:206 AliPHOSModuleMisalignment.cxx:207 AliPHOSModuleMisalignment.cxx:208 AliPHOSModuleMisalignment.cxx:209 AliPHOSModuleMisalignment.cxx:210 AliPHOSModuleMisalignment.cxx:211 AliPHOSModuleMisalignment.cxx:212 AliPHOSModuleMisalignment.cxx:213 AliPHOSModuleMisalignment.cxx:214 AliPHOSModuleMisalignment.cxx:215 AliPHOSModuleMisalignment.cxx:216 AliPHOSModuleMisalignment.cxx:217 AliPHOSModuleMisalignment.cxx:218 AliPHOSModuleMisalignment.cxx:219 AliPHOSModuleMisalignment.cxx:220 AliPHOSModuleMisalignment.cxx:221 AliPHOSModuleMisalignment.cxx:222 AliPHOSModuleMisalignment.cxx:223 AliPHOSModuleMisalignment.cxx:224 AliPHOSModuleMisalignment.cxx:225 AliPHOSModuleMisalignment.cxx:226 AliPHOSModuleMisalignment.cxx:227 AliPHOSModuleMisalignment.cxx:228 AliPHOSModuleMisalignment.cxx:229 AliPHOSModuleMisalignment.cxx:230 AliPHOSModuleMisalignment.cxx:231 AliPHOSModuleMisalignment.cxx:232 AliPHOSModuleMisalignment.cxx:233 AliPHOSModuleMisalignment.cxx:234 AliPHOSModuleMisalignment.cxx:235 AliPHOSModuleMisalignment.cxx:236 AliPHOSModuleMisalignment.cxx:237 AliPHOSModuleMisalignment.cxx:238 AliPHOSModuleMisalignment.cxx:239 AliPHOSModuleMisalignment.cxx:240 AliPHOSModuleMisalignment.cxx:241 AliPHOSModuleMisalignment.cxx:242 AliPHOSModuleMisalignment.cxx:243 AliPHOSModuleMisalignment.cxx:244 AliPHOSModuleMisalignment.cxx:245 AliPHOSModuleMisalignment.cxx:246 AliPHOSModuleMisalignment.cxx:247 AliPHOSModuleMisalignment.cxx:248 AliPHOSModuleMisalignment.cxx:249 AliPHOSModuleMisalignment.cxx:250 AliPHOSModuleMisalignment.cxx:251 AliPHOSModuleMisalignment.cxx:252 AliPHOSModuleMisalignment.cxx:253 AliPHOSModuleMisalignment.cxx:254 AliPHOSModuleMisalignment.cxx:255 AliPHOSModuleMisalignment.cxx:256 AliPHOSModuleMisalignment.cxx:257 AliPHOSModuleMisalignment.cxx:258 AliPHOSModuleMisalignment.cxx:259 AliPHOSModuleMisalignment.cxx:260 AliPHOSModuleMisalignment.cxx:261 AliPHOSModuleMisalignment.cxx:262 AliPHOSModuleMisalignment.cxx:263 AliPHOSModuleMisalignment.cxx:264 AliPHOSModuleMisalignment.cxx:265 AliPHOSModuleMisalignment.cxx:266 AliPHOSModuleMisalignment.cxx:267 AliPHOSModuleMisalignment.cxx:268 AliPHOSModuleMisalignment.cxx:269 AliPHOSModuleMisalignment.cxx:270 AliPHOSModuleMisalignment.cxx:271 AliPHOSModuleMisalignment.cxx:272 AliPHOSModuleMisalignment.cxx:273 AliPHOSModuleMisalignment.cxx:274 AliPHOSModuleMisalignment.cxx:275 AliPHOSModuleMisalignment.cxx:276 AliPHOSModuleMisalignment.cxx:277 AliPHOSModuleMisalignment.cxx:278 AliPHOSModuleMisalignment.cxx:279 AliPHOSModuleMisalignment.cxx:280 AliPHOSModuleMisalignment.cxx:281 AliPHOSModuleMisalignment.cxx:282 AliPHOSModuleMisalignment.cxx:283 AliPHOSModuleMisalignment.cxx:284 AliPHOSModuleMisalignment.cxx:285 AliPHOSModuleMisalignment.cxx:286 AliPHOSModuleMisalignment.cxx:287 AliPHOSModuleMisalignment.cxx:288 AliPHOSModuleMisalignment.cxx:289 AliPHOSModuleMisalignment.cxx:290 AliPHOSModuleMisalignment.cxx:291 AliPHOSModuleMisalignment.cxx:292 AliPHOSModuleMisalignment.cxx:293 AliPHOSModuleMisalignment.cxx:294 AliPHOSModuleMisalignment.cxx:295 AliPHOSModuleMisalignment.cxx:296 AliPHOSModuleMisalignment.cxx:297 AliPHOSModuleMisalignment.cxx:298 AliPHOSModuleMisalignment.cxx:299 AliPHOSModuleMisalignment.cxx:300 AliPHOSModuleMisalignment.cxx:301 AliPHOSModuleMisalignment.cxx:302 AliPHOSModuleMisalignment.cxx:303 AliPHOSModuleMisalignment.cxx:304 AliPHOSModuleMisalignment.cxx:305 AliPHOSModuleMisalignment.cxx:306 AliPHOSModuleMisalignment.cxx:307 AliPHOSModuleMisalignment.cxx:308 AliPHOSModuleMisalignment.cxx:309 AliPHOSModuleMisalignment.cxx:310 AliPHOSModuleMisalignment.cxx:311 AliPHOSModuleMisalignment.cxx:312 AliPHOSModuleMisalignment.cxx:313 AliPHOSModuleMisalignment.cxx:314 AliPHOSModuleMisalignment.cxx:315 AliPHOSModuleMisalignment.cxx:316 AliPHOSModuleMisalignment.cxx:317 AliPHOSModuleMisalignment.cxx:318 AliPHOSModuleMisalignment.cxx:319 AliPHOSModuleMisalignment.cxx:320 AliPHOSModuleMisalignment.cxx:321 AliPHOSModuleMisalignment.cxx:322 AliPHOSModuleMisalignment.cxx:323 AliPHOSModuleMisalignment.cxx:324 AliPHOSModuleMisalignment.cxx:325 AliPHOSModuleMisalignment.cxx:326 AliPHOSModuleMisalignment.cxx:327 AliPHOSModuleMisalignment.cxx:328 AliPHOSModuleMisalignment.cxx:329 AliPHOSModuleMisalignment.cxx:330 AliPHOSModuleMisalignment.cxx:331 AliPHOSModuleMisalignment.cxx:332 AliPHOSModuleMisalignment.cxx:333 AliPHOSModuleMisalignment.cxx:334 AliPHOSModuleMisalignment.cxx:335 AliPHOSModuleMisalignment.cxx:336 AliPHOSModuleMisalignment.cxx:337 AliPHOSModuleMisalignment.cxx:338 AliPHOSModuleMisalignment.cxx:339 AliPHOSModuleMisalignment.cxx:340 AliPHOSModuleMisalignment.cxx:341 AliPHOSModuleMisalignment.cxx:342 AliPHOSModuleMisalignment.cxx:343 AliPHOSModuleMisalignment.cxx:344 AliPHOSModuleMisalignment.cxx:345 AliPHOSModuleMisalignment.cxx:346 AliPHOSModuleMisalignment.cxx:347 AliPHOSModuleMisalignment.cxx:348 AliPHOSModuleMisalignment.cxx:349 AliPHOSModuleMisalignment.cxx:350 AliPHOSModuleMisalignment.cxx:351 AliPHOSModuleMisalignment.cxx:352 AliPHOSModuleMisalignment.cxx:353 AliPHOSModuleMisalignment.cxx:354 AliPHOSModuleMisalignment.cxx:355 AliPHOSModuleMisalignment.cxx:356 AliPHOSModuleMisalignment.cxx:357 AliPHOSModuleMisalignment.cxx:358 AliPHOSModuleMisalignment.cxx:359 AliPHOSModuleMisalignment.cxx:360 AliPHOSModuleMisalignment.cxx:361 AliPHOSModuleMisalignment.cxx:362 AliPHOSModuleMisalignment.cxx:363 AliPHOSModuleMisalignment.cxx:364 AliPHOSModuleMisalignment.cxx:365 AliPHOSModuleMisalignment.cxx:366 AliPHOSModuleMisalignment.cxx:367 AliPHOSModuleMisalignment.cxx:368 AliPHOSModuleMisalignment.cxx:369 AliPHOSModuleMisalignment.cxx:370 AliPHOSModuleMisalignment.cxx:371 AliPHOSModuleMisalignment.cxx:372 AliPHOSModuleMisalignment.cxx:373 AliPHOSModuleMisalignment.cxx:374 AliPHOSModuleMisalignment.cxx:375 AliPHOSModuleMisalignment.cxx:376 AliPHOSModuleMisalignment.cxx:377 AliPHOSModuleMisalignment.cxx:378 AliPHOSModuleMisalignment.cxx:379 AliPHOSModuleMisalignment.cxx:380 AliPHOSModuleMisalignment.cxx:381 AliPHOSModuleMisalignment.cxx:382 AliPHOSModuleMisalignment.cxx:383 AliPHOSModuleMisalignment.cxx:384 AliPHOSModuleMisalignment.cxx:385 AliPHOSModuleMisalignment.cxx:386 AliPHOSModuleMisalignment.cxx:387 AliPHOSModuleMisalignment.cxx:388 AliPHOSModuleMisalignment.cxx:389 AliPHOSModuleMisalignment.cxx:390 AliPHOSModuleMisalignment.cxx:391 AliPHOSModuleMisalignment.cxx:392 AliPHOSModuleMisalignment.cxx:393 AliPHOSModuleMisalignment.cxx:394 AliPHOSModuleMisalignment.cxx:395 AliPHOSModuleMisalignment.cxx:396 AliPHOSModuleMisalignment.cxx:397 AliPHOSModuleMisalignment.cxx:398 AliPHOSModuleMisalignment.cxx:399 AliPHOSModuleMisalignment.cxx:400 AliPHOSModuleMisalignment.cxx:401 AliPHOSModuleMisalignment.cxx:402 AliPHOSModuleMisalignment.cxx:403 AliPHOSModuleMisalignment.cxx:404