#include <TClonesArray.h>
#include <TMath.h>
#include <TMatrixDSym.h>
#include <TString.h>
#include "AliAlignObjMatrix.h"
#include "AliMUONSurveyUtil.h"
#include "AliMUONGeometryTransformer.h"
#include "AliMUONGeometryModuleTransformer.h"
#include "AliMUONGeometryDetElement.h"
#include "AliMUONGeometryBuilder.h"
#include "AliMpExMap.h"
#include "AliMpExMapIterator.h"
ClassImp(AliMUONSurveyUtil)
int AliMUONSurveyUtil::fgNDetElemCh[10] = {4,4,4,4,18,18,26,26,26,26};
AliMUONSurveyUtil* AliMUONSurveyUtil::fgInstance(0x0);
AliMUONSurveyUtil::~AliMUONSurveyUtil(){
printf("WHAT AM I DOING HERE????????????????\n");
fgInstance = 0x0;
}
AliMUONSurveyUtil* AliMUONSurveyUtil::Instance() {
if (!fgInstance)
fgInstance = new AliMUONSurveyUtil();
return fgInstance;
}
Bool_t AliMUONSurveyUtil::MatrixToAngles(const Double_t *rot, Double_t *angles)
{
if(TMath::Abs(rot[0])<1e-7 || TMath::Abs(rot[8])<1e-7) {
printf("Failed to extract roll-pitch-yall angles!");
return kFALSE;
}
angles[0]=TMath::ATan2(-rot[5],rot[8]);
angles[1]=TMath::ASin(rot[2]);
angles[2]=TMath::ATan2(-rot[1],rot[0]);
return kTRUE;
}
void AliMUONSurveyUtil::AnglesToMatrix(const Double_t *angles, Double_t *rot)
{
Double_t degrad = 1.;
Double_t sinpsi = TMath::Sin(degrad*angles[0]);
Double_t cospsi = TMath::Cos(degrad*angles[0]);
Double_t sinthe = TMath::Sin(degrad*angles[1]);
Double_t costhe = TMath::Cos(degrad*angles[1]);
Double_t sinphi = TMath::Sin(degrad*angles[2]);
Double_t cosphi = TMath::Cos(degrad*angles[2]);
rot[0] = costhe*cosphi;
rot[1] = -costhe*sinphi;
rot[2] = sinthe;
rot[3] = sinpsi*sinthe*cosphi + cospsi*sinphi;
rot[4] = -sinpsi*sinthe*sinphi + cospsi*cosphi;
rot[5] = -costhe*sinpsi;
rot[6] = -cospsi*sinthe*cosphi + sinpsi*sinphi;
rot[7] = cospsi*sinthe*sinphi + sinpsi*cosphi;
rot[8] = costhe*cospsi;
}
Double_t AliMUONSurveyUtil::XpCenter(const Double_t *x, const Double_t *par) const{
Double_t lCos2Tht = TMath::Cos(2*par[6]);
Double_t lSinTht = TMath::Sin(par[6]);
Double_t inSqrt = TMath::Abs((par[0] - par[3])*(par[0] - par[3])
-2*(x[0] -x[1])*(x[0] -x[1])
+(par[1] - par[4] + par[2] - par[5])*(par[1] - par[4] - par[2] + par[5])
+((par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4])
+(par[2] - par[5])*(par[2] - par[5]))*lCos2Tht
+4*(x[0] - x[1])*(par[2] - par[5])*lSinTht);
if (inSqrt<0) return inSqrt*1e10;
Double_t xD = ((2*(par[0]*par[0]*x[1]
-par[0]*par[3]*(x[0] + x[1])
+x[1]*par[1]*(par[1] - par[4])
+x[0]*(par[3]*par[3] - par[1]*par[4] + par[4]*par[4]))
-2*(par[3]*par[3]*par[2]
+par[0]*par[0]*par[5]
-par[0]*par[3]*(par[2] + par[5])
+(par[1] - par[4])*(-par[4]*par[2] +par[1]*par[5]))*lSinTht
+TMath::Sqrt(2)*(-par[3]*par[1] + par[0]*par[4])
*TMath::Sqrt(inSqrt))
/(2*((par[0] - par[3])*(par[0] - par[3]) + (par[1] - par[4])*(par[1] - par[4]))));
return xD;
}
Double_t AliMUONSurveyUtil::XnCenter(const Double_t *x, const Double_t *par) const{
Double_t lCos2Tht = TMath::Cos(2*par[6]);
Double_t lSinTht = TMath::Sin(par[6]);
Double_t inSqrt = TMath::Abs((par[0] - par[3])*(par[0] - par[3])
-2*(x[0] - x[1])*(x[0] - x[1])
+(par[1] - par[4] + par[2] - par[5])*(par[1] - par[4] - par[2] + par[5])
+((par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4])
+(par[2] - par[5])*(par[2] - par[5]))*lCos2Tht
+4*(x[0] - x[1])*(par[2] - par[5])*lSinTht);
if (inSqrt<0) return inSqrt*1e10;
Double_t xD = ((2*(par[0]*par[0]*x[1]
-par[0]*par[3]*(x[0] + x[1])
+x[1]*par[1]*(par[1] - par[4])
+x[0]*(par[3]*par[3] - par[1]*par[4] + par[4]*par[4]))
-2*(par[3]*par[3]*par[2] + par[0]*par[0]*par[5]
-par[0]*par[3]*(par[2] + par[5])
+(par[1] - par[4])*(-par[4]*par[2] + par[1]*par[5]))*lSinTht
+TMath::Sqrt(2)*(par[3]*par[1] - par[0]*par[4])
*TMath::Sqrt(inSqrt))
/(2*((par[0] - par[3])*(par[0] - par[3]) + (par[1] - par[4])*(par[1] - par[4]))));
return xD;
}
Double_t AliMUONSurveyUtil::PhiXpn(const Double_t *x, const Double_t *par) const{
Double_t inSqrt = TMath::Abs(((par[0] - par[3])*(par[0] - par[3])
-2*(x[0] - x[1])*(x[0] - x[1])
+(par[1] - par[4] + par[2] - par[5])*(par[1] - par[4] - par[2] + par[5])
+(+(par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4])
+(par[2] - par[5])*(par[2] - par[5]))*TMath::Cos(2*par[6])
+4*(x[0] - x[1])*(par[2] - par[5])*TMath::Sin(par[6])));
if (inSqrt<0) return inSqrt*1e10;
Double_t phix = ((+2*(par[0] - par[3])*(x[0] - x[1])
-2*(par[0] - par[3])*(par[2] - par[5])*TMath::Sin(par[6])
+TMath::Sqrt(2)*(par[1] - par[4])
*TMath::Sqrt(inSqrt))
/(2*(+(par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*TMath::Cos(par[6])));
phix = -TMath::ACos(phix);
return phix;
}
Double_t AliMUONSurveyUtil::PhiXpp(const Double_t *x, const Double_t *par) const{
Double_t inSqrt = TMath::Abs(+(par[0] - par[3])*(par[0] - par[3])
-2*(x[0] - x[1])*(x[0] - x[1])
+(par[1] - par[4] + par[2] - par[5])*(par[1] - par[4] - par[2] + par[5])
+(+(par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4])
+(par[2] - par[5])*(par[2] - par[5]))*TMath::Cos(2*par[6])
+4*(x[0] - x[1])*(par[2] - par[5])*TMath::Sin(par[6]));
if (inSqrt<0) return inSqrt*1e10;
Double_t phix = ((+2*(par[0] - par[3])*(x[0] - x[1])
-2*(par[0] - par[3])*(par[2] - par[5])*TMath::Sin(par[6])
+TMath::Sqrt(2)*(par[1] - par[4])
*TMath::Sqrt(inSqrt))
/(2*(+(par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*TMath::Cos(par[6])));
phix = TMath::ACos(phix);
return phix;
}
Double_t AliMUONSurveyUtil::PhiXnn(const Double_t *x, const Double_t *par) const{
Double_t inSqrt = TMath::Abs(+(par[0] - par[3])*(par[0] - par[3])
-2*(x[0] - x[1])*(x[0] - x[1])
+(par[1] - par[4] + par[2] - par[5])*(par[1] - par[4] - par[2] + par[5])
+(+(par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4])
+(par[2] - par[5])*(par[2] - par[5]))*TMath::Cos(2*par[6])
+ 4*(x[0] - x[1])*(par[2] - par[5])*TMath::Sin(par[6]));
if (inSqrt<0) return inSqrt*1e10;
Double_t phix = (+(+2*(par[0] - par[3])*(x[0] - x[1])
-2*(par[0] - par[3])*(par[2] - par[5])*TMath::Sin(par[6])
+TMath::Sqrt(2)*(-par[1] + par[4])
*TMath::Sqrt(inSqrt))
/(2*(+(par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*TMath::Cos(par[6])));
phix = -TMath::ACos(phix);
return phix;
}
Double_t AliMUONSurveyUtil::PhiXnp(const Double_t *x, const Double_t *par) const{
Double_t inSqrt = TMath::Abs(+(par[0] - par[3])*(par[0] - par[3])
-2*(x[0] - x[1])*(x[0] - x[1])
+(par[1] - par[4] + par[2] - par[5])*(par[1] - par[4] - par[2] + par[5])
+(+(par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4])
+(par[2] - par[5])*(par[2] - par[5]))*TMath::Cos(2*par[6])
+4*(x[0] - x[1])*(par[2] - par[5])*TMath::Sin(par[6]));
if (inSqrt<0) return inSqrt*1e10;
Double_t phix = (+(+2*(par[0] - par[3])*(x[0] - x[1])
-2*(par[0] - par[3])*(par[2] - par[5])*TMath::Sin(par[6])
+TMath::Sqrt(2)*(-par[1] + par[4])
*TMath::Sqrt(inSqrt))
/(2*(+(par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*TMath::Cos(par[6])));
phix = TMath::ACos(phix);
return phix;
}
Double_t AliMUONSurveyUtil::YpCenter(const Double_t *x, const Double_t *par) const{
Double_t lCosPsi = TMath::Cos(par[6]);
Double_t lSinPsi = TMath::Sin(par[6]);
Double_t lCosTht = TMath::Cos(par[7]);
Double_t lSinTht = TMath::Sin(par[7]);
Double_t yD = ((1./((par[0] - par[3])*(par[0] - par[3]) + (par[1] - par[4])*(par[1] - par[4])))
*(+par[3]*par[3]*x[0]
+par[0]*par[0]*x[1]
-par[0]*par[3]*(x[0] + x[1])
+(par[1] - par[4])*(-x[0]*par[4] + par[1]*x[1])
+(par[3]*par[3]*par[2]
+par[0]*par[0]*par[5]
-par[0]*par[3]*(par[2] + par[5])
+(par[1] - par[4])*(-par[4]*par[2] + par[1]*par[5]))*lCosTht*lSinPsi
+(-par[3]*par[1] + par[0]*par[4])
*TMath::Sqrt(-(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
*(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
+ ((par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*(lCosPsi*lCosPsi
+lSinPsi*lSinPsi*lSinTht*lSinTht))));
return yD;
}
Double_t AliMUONSurveyUtil::PhiYpn(const Double_t *x, const Double_t *par) const{
Double_t lCosPsi = TMath::Cos(par[6]);
Double_t lSinPsi = TMath::Sin(par[6]);
Double_t lCosTht = TMath::Cos(par[7]);
Double_t lSinTht = TMath::Sin(par[7]);
Double_t phiy = ((lCosPsi*((par[1] - par[4])*(x[0] - x[1])
+(par[1] - par[4])*(par[2] - par[5])*lCosTht*lSinPsi
+(-par[0] + par[3])
*TMath::Sqrt(-(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
*(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
+(+(par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*(lCosPsi*lCosPsi
+lSinPsi*lSinPsi*lSinTht*lSinTht)))
+lSinPsi*lSinTht*((par[0] - par[3])*(x[0] - x[1])
+(par[0] - par[3])*(par[2] - par[5])*lCosTht*lSinPsi
+(par[1] - par[4])
*TMath::Sqrt(-(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
*(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
+ ((par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*(lCosPsi*lCosPsi
+lSinPsi*lSinPsi*lSinTht*lSinTht))))
/((+(par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*(lCosPsi*lCosPsi
+lSinPsi*lSinPsi*lSinTht*lSinTht)));
phiy = -TMath::ACos(phiy);
return phiy;
}
Double_t AliMUONSurveyUtil::PhiYpp(const Double_t *x, const Double_t *par) const{
Double_t lCosPsi = TMath::Cos(par[6]);
Double_t lSinPsi = TMath::Sin(par[6]);
Double_t lCosTht = TMath::Cos(par[7]);
Double_t lSinTht = TMath::Sin(par[7]);
Double_t phiy = ((lCosPsi*((par[1] - par[4])*(x[0] - x[1])
+(par[1] - par[4])*(par[2] - par[5])*lCosTht*lSinPsi
+(-par[0] + par[3])
*TMath::Sqrt(-(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
*(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
+((par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*(lCosPsi*lCosPsi
+lSinPsi*lSinPsi*lSinTht*lSinTht)))
+lSinPsi*lSinTht*((par[0] - par[3])*(x[0] - x[1])
+(par[0] - par[3])*(par[2] - par[5])*lCosTht*lSinPsi
+(par[1] - par[4])*TMath::Sqrt(-(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
*(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
+((par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*(lCosPsi*lCosPsi
+lSinPsi*lSinPsi*lSinTht*lSinTht))))
/(((par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*(lCosPsi*lCosPsi
+lSinPsi*lSinPsi*lSinTht*lSinTht)));
phiy = TMath::ACos(phiy);
return phiy;
}
Double_t AliMUONSurveyUtil::YnCenter(const Double_t *x, const Double_t *par) const{
Double_t lCosPsi = TMath::Cos(par[6]);
Double_t lSinPsi = TMath::Sin(par[6]);
Double_t lCosTht = TMath::Cos(par[7]);
Double_t lSinTht = TMath::Sin(par[7]);
Double_t yD = ((1./(+(par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4])))
*(+par[3]*par[3]*x[0]
+par[0]*par[0]*x[1]
-par[0]*par[3]*(x[0] + x[1])
+(par[1] - par[4])*(-x[0]*par[4] + par[1]*x[1])
+(+par[3]*par[3]*par[2]
+par[0]*par[0]*par[5]
-par[0]*par[3]*(par[2] + par[5])
+(par[1] - par[4])*(-par[4]*par[2] + par[1]*par[5]))*lCosTht*lSinPsi
+(par[3]*par[1] - par[0]*par[4])
*TMath::Sqrt(-(+x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
*(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
+((par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*(+lCosPsi*lCosPsi
+lSinPsi*lSinPsi*lSinTht*lSinTht))));
return yD;
}
Double_t AliMUONSurveyUtil::PhiYnn(const Double_t *x, const Double_t *par) const{
Double_t lCosPsi = TMath::Cos(par[6]);
Double_t lSinPsi = TMath::Sin(par[6]);
Double_t lCosTht = TMath::Cos(par[7]);
Double_t lSinTht = TMath::Sin(par[7]);
Double_t phiy = ((lCosPsi*(+(par[1] - par[4])*(x[0] - x[1])
+(par[1] - par[4])*(par[2] - par[5])*lCosTht*lSinPsi
+(par[0] - par[3])
*TMath::Sqrt(-(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
*(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
+(+(par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*(+lCosPsi*lCosPsi
+lSinPsi*lSinPsi*lSinTht*lSinTht)))
+lSinPsi*lSinTht*(+(par[0] - par[3])*(x[0] - x[1])
+(par[0] - par[3])*(par[2] - par[5])*lCosTht*lSinPsi
+(-par[1] + par[4])
*TMath::Sqrt(-(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
*(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
+(+(par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*(+lCosPsi*lCosPsi
+lSinPsi*lSinPsi*lSinTht*lSinTht))))
/((+(par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*(+lCosPsi*lCosPsi
+lSinPsi*lSinPsi*lSinTht*lSinTht)));
phiy = -TMath::ACos(phiy);
return phiy;
}
Double_t AliMUONSurveyUtil::PhiYnp(const Double_t *x, const Double_t *par) const{
Double_t lCosPsi = TMath::Cos(par[6]);
Double_t lSinPsi = TMath::Sin(par[6]);
Double_t lCosTht = TMath::Cos(par[7]);
Double_t lSinTht = TMath::Sin(par[7]);
Double_t phiy = ((lCosPsi*(+(par[1] - par[4])*(x[0] - x[1])
+(par[1] - par[4])*(par[2] - par[5])*lCosTht*lSinPsi
+(par[0] - par[3])
*TMath::Sqrt(-(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
*(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
+((par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*(+lCosPsi*lCosPsi
+lSinPsi*lSinPsi*lSinTht*lSinTht)))
+lSinPsi*lSinTht*(+(par[0] - par[3])*(x[0] - x[1])
+(par[0] - par[3])*(par[2] - par[5])*lCosTht*lSinPsi
+(-par[1] + par[4])
*TMath::Sqrt(-(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
*(x[0] - x[1]
+(par[2] - par[5])*lCosTht*lSinPsi)
+((par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*(+lCosPsi*lCosPsi
+lSinPsi*lSinPsi*lSinTht*lSinTht))))
/((+(par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*(+lCosPsi*lCosPsi
+lSinPsi*lSinPsi*lSinTht*lSinTht)));
phiy = TMath::ACos(phiy);
return phiy;
}
Double_t AliMUONSurveyUtil::ZnCenter(const Double_t *x, const Double_t *par) const{
Double_t lCosPsi = TMath::Cos(par[6]);
Double_t lSinPsi = TMath::Sin(par[6]);
Double_t lCosTht = TMath::Cos(par[7]);
Double_t lSinTht = TMath::Sin(par[7]);
Double_t inSqrt = ((par[3]*par[1] - par[0]*par[4])*(par[3]*par[1] - par[0]*par[4])
*((-(x[0] - x[1])*(x[0] - x[1]))
+(((par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4])))*lSinPsi*lSinPsi
+lCosPsi*((-(par[2] - par[5]))
*lCosTht*(-2*x[0]+2*x[1]
+(par[2] - par[5])*lCosPsi*lCosTht)
+((par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*lCosPsi*lSinTht*lSinTht)));
if (inSqrt<0) return inSqrt*1e10;
Double_t zD = ((1./((par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4])))
*(-par[1]*par[4]*x[0]
+par[4]*par[4]*x[0]
+par[0]*par[0]*x[1]
+par[1]*par[1]*x[1]
-par[1]*par[4]*x[1]
-par[0]*par[3]*(x[0] + x[1])
+par[3]*par[3]*x[0]
+(+par[1]*par[4]*par[2]
-par[4]*par[4]*par[2]
-par[0]*par[0]*par[5]
-par[1]*par[1]*par[5]
+par[1]*par[4]*par[5]
+par[0]*par[3]*(par[2] + par[5])
-par[3]*par[3]*par[2])*lCosPsi*lCosTht
-TMath::Sqrt(inSqrt)));
return zD;
}
Double_t AliMUONSurveyUtil::ZpCenter(const Double_t *x, const Double_t *par) const{
Double_t lCosPsi = TMath::Cos(par[6]);
Double_t lSinPsi = TMath::Sin(par[6]);
Double_t lCosTht = TMath::Cos(par[7]);
Double_t lSinTht = TMath::Sin(par[7]);
Double_t inSqrt = ((par[3]*par[1] - par[0]*par[4])*(par[3]*par[1] - par[0]*par[4])
*((-(x[0] - x[1])*(x[0] - x[1]))
+(((par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4])))*lSinPsi*lSinPsi
+lCosPsi*((-(par[2] - par[5]))
*lCosTht*(-2*x[0]+2*x[1]
+(par[2] - par[5])*lCosPsi*lCosTht)
+((par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4]))*lCosPsi*lSinTht*lSinTht)));
if (inSqrt<0) return inSqrt*1e10;
Double_t zD = ((1./((par[0] - par[3])*(par[0] - par[3])
+(par[1] - par[4])*(par[1] - par[4])))
*(-par[1]*par[4]*x[0]
+par[4]*par[4]*x[0]
+par[0]*par[0]*x[1]
+par[1]*par[1]*x[1]
-par[1]*par[4]*x[1]
-par[0]*par[3]*(x[0] + x[1])
+par[3]*par[3]*x[0]
+(+par[1]*par[4]*par[2]
-par[4]*par[4]*par[2]
-par[0]*par[0]*par[5]
-par[1]*par[1]*par[5]
+par[1]*par[4]*par[5]
+par[0]*par[3]*(par[2] + par[5])
-par[3]*par[3]*par[2])*lCosPsi*lCosTht
+TMath::Sqrt(inSqrt)));
return zD;
}
AliMUONGeometryTransformer* AliMUONSurveyUtil::ReAlign(const AliMUONGeometryTransformer * transformer,
int rMod, int rNDetElems, int rDetElemPseudoIdToDetElem[], TGeoCombiTrans deltaDetElemTransf[], Bool_t verbose)
{
Int_t iDetElemId = 0;
Int_t iDetElemPseudoId = 0;
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;
if ((rMod<4 && iMt==rMod) || (rMod>=4 && (iMt==4+(rMod-4)*2||iMt==4+(rMod-4)*2+1))) {
newModuleTransform = new TGeoCombiTrans(moduleTransform*deltaDetElemTransf[rNDetElems]);
} else {
newModuleTransform = new TGeoCombiTrans(moduleTransform);
}
newModuleTransformer->SetTransformation(*newModuleTransform);
if ((rMod<4 && iMt==rMod) || (rMod>=4 && (iMt==4+(rMod-4)*2||iMt==4+(rMod-4)*2+1))) {
TGeoHMatrix deltaModuleTransform =
AliMUONGeometryBuilder::Multiply(*newModuleTransform,
kModuleTransformer->GetTransformation()->Inverse());
newGeometryTransformer
->AddMisAlignModule(kModuleTransformer->GetModuleId(), deltaModuleTransform);
}
AliMpExMap *detElements = kModuleTransformer->GetDetElementStore();
if (verbose)
printf("%i DEs in old GeometryStore %i\n",detElements->GetSize(), iMt);
TGeoCombiTrans *deltaLocalTransform;
TIter next(detElements->CreateIterator());
AliMUONGeometryDetElement *detElement;
while ((detElement = static_cast<AliMUONGeometryDetElement*>(next()))){
AliMUONGeometryDetElement *newDetElement =
new AliMUONGeometryDetElement(detElement->GetId(),
detElement->GetVolumePath());
TString lDetElemName(detElement->GetDEName());
lDetElemName.ReplaceAll("DE","");
iDetElemId = lDetElemName.Atoi();
iDetElemPseudoId = iDetElemId%100;
if ((rMod<4 && iMt==rMod) || (rMod>=4 && (iMt==4+(rMod-4)*2||iMt==4+(rMod-4)*2+1))) {
deltaLocalTransform = new TGeoCombiTrans(deltaDetElemTransf[rDetElemPseudoIdToDetElem[iDetElemPseudoId]]);
} else {
deltaLocalTransform = new TGeoCombiTrans(*gGeoIdentity);
}
TGeoCombiTrans localTransform
= TGeoCombiTrans(*detElement->GetLocalTransformation());
TGeoCombiTrans newLocalTransform
= TGeoCombiTrans(localTransform * (*deltaLocalTransform));
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)
printf("Added module transformer %i to the transformer\n", iMt);
newGeometryTransformer->AddModuleTransformer(newModuleTransformer);
}
return newGeometryTransformer;
}
void AliMUONSurveyUtil::SetAlignmentResolution(const TClonesArray* misAlignArray, Int_t chId, Double_t chResX, Double_t chResY, Double_t deResX, Double_t deResY){
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;
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.Contains(chName2)&&
volName.Last('/')<=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);
}
}
}
}
AliMUONSurveyUtil.cxx:100 AliMUONSurveyUtil.cxx:101 AliMUONSurveyUtil.cxx:102 AliMUONSurveyUtil.cxx:103 AliMUONSurveyUtil.cxx:104 AliMUONSurveyUtil.cxx:105 AliMUONSurveyUtil.cxx:106 AliMUONSurveyUtil.cxx:107 AliMUONSurveyUtil.cxx:108 AliMUONSurveyUtil.cxx:109 AliMUONSurveyUtil.cxx:110 AliMUONSurveyUtil.cxx:111 AliMUONSurveyUtil.cxx:112 AliMUONSurveyUtil.cxx:113 AliMUONSurveyUtil.cxx:114 AliMUONSurveyUtil.cxx:115 AliMUONSurveyUtil.cxx:116 AliMUONSurveyUtil.cxx:117 AliMUONSurveyUtil.cxx:118 AliMUONSurveyUtil.cxx:119 AliMUONSurveyUtil.cxx:120 AliMUONSurveyUtil.cxx:121 AliMUONSurveyUtil.cxx:122 AliMUONSurveyUtil.cxx:123 AliMUONSurveyUtil.cxx:124 AliMUONSurveyUtil.cxx:125 AliMUONSurveyUtil.cxx:126 AliMUONSurveyUtil.cxx:127 AliMUONSurveyUtil.cxx:128 AliMUONSurveyUtil.cxx:129 AliMUONSurveyUtil.cxx:130 AliMUONSurveyUtil.cxx:131 AliMUONSurveyUtil.cxx:132 AliMUONSurveyUtil.cxx:133 AliMUONSurveyUtil.cxx:134 AliMUONSurveyUtil.cxx:135 AliMUONSurveyUtil.cxx:136 AliMUONSurveyUtil.cxx:137 AliMUONSurveyUtil.cxx:138 AliMUONSurveyUtil.cxx:139 AliMUONSurveyUtil.cxx:140 AliMUONSurveyUtil.cxx:141 AliMUONSurveyUtil.cxx:142 AliMUONSurveyUtil.cxx:143 AliMUONSurveyUtil.cxx:144 AliMUONSurveyUtil.cxx:145 AliMUONSurveyUtil.cxx:146 AliMUONSurveyUtil.cxx:147 AliMUONSurveyUtil.cxx:148 AliMUONSurveyUtil.cxx:149 AliMUONSurveyUtil.cxx:150 AliMUONSurveyUtil.cxx:151 AliMUONSurveyUtil.cxx:152 AliMUONSurveyUtil.cxx:153 AliMUONSurveyUtil.cxx:154 AliMUONSurveyUtil.cxx:155 AliMUONSurveyUtil.cxx:156 AliMUONSurveyUtil.cxx:157 AliMUONSurveyUtil.cxx:158 AliMUONSurveyUtil.cxx:159 AliMUONSurveyUtil.cxx:160 AliMUONSurveyUtil.cxx:161 AliMUONSurveyUtil.cxx:162 AliMUONSurveyUtil.cxx:163 AliMUONSurveyUtil.cxx:164 AliMUONSurveyUtil.cxx:165 AliMUONSurveyUtil.cxx:166 AliMUONSurveyUtil.cxx:167 AliMUONSurveyUtil.cxx:168 AliMUONSurveyUtil.cxx:169 AliMUONSurveyUtil.cxx:170 AliMUONSurveyUtil.cxx:171 AliMUONSurveyUtil.cxx:172 AliMUONSurveyUtil.cxx:173 AliMUONSurveyUtil.cxx:174 AliMUONSurveyUtil.cxx:175 AliMUONSurveyUtil.cxx:176 AliMUONSurveyUtil.cxx:177 AliMUONSurveyUtil.cxx:178 AliMUONSurveyUtil.cxx:179 AliMUONSurveyUtil.cxx:180 AliMUONSurveyUtil.cxx:181 AliMUONSurveyUtil.cxx:182 AliMUONSurveyUtil.cxx:183 AliMUONSurveyUtil.cxx:184 AliMUONSurveyUtil.cxx:185 AliMUONSurveyUtil.cxx:186 AliMUONSurveyUtil.cxx:187 AliMUONSurveyUtil.cxx:188 AliMUONSurveyUtil.cxx:189 AliMUONSurveyUtil.cxx:190 AliMUONSurveyUtil.cxx:191 AliMUONSurveyUtil.cxx:192 AliMUONSurveyUtil.cxx:193 AliMUONSurveyUtil.cxx:194 AliMUONSurveyUtil.cxx:195 AliMUONSurveyUtil.cxx:196 AliMUONSurveyUtil.cxx:197 AliMUONSurveyUtil.cxx:198 AliMUONSurveyUtil.cxx:199 AliMUONSurveyUtil.cxx:200 AliMUONSurveyUtil.cxx:201 AliMUONSurveyUtil.cxx:202 AliMUONSurveyUtil.cxx:203 AliMUONSurveyUtil.cxx:204 AliMUONSurveyUtil.cxx:205 AliMUONSurveyUtil.cxx:206 AliMUONSurveyUtil.cxx:207 AliMUONSurveyUtil.cxx:208 AliMUONSurveyUtil.cxx:209 AliMUONSurveyUtil.cxx:210 AliMUONSurveyUtil.cxx:211 AliMUONSurveyUtil.cxx:212 AliMUONSurveyUtil.cxx:213 AliMUONSurveyUtil.cxx:214 AliMUONSurveyUtil.cxx:215 AliMUONSurveyUtil.cxx:216 AliMUONSurveyUtil.cxx:217 AliMUONSurveyUtil.cxx:218 AliMUONSurveyUtil.cxx:219 AliMUONSurveyUtil.cxx:220 AliMUONSurveyUtil.cxx:221 AliMUONSurveyUtil.cxx:222 AliMUONSurveyUtil.cxx:223 AliMUONSurveyUtil.cxx:224 AliMUONSurveyUtil.cxx:225 AliMUONSurveyUtil.cxx:226 AliMUONSurveyUtil.cxx:227 AliMUONSurveyUtil.cxx:228 AliMUONSurveyUtil.cxx:229 AliMUONSurveyUtil.cxx:230 AliMUONSurveyUtil.cxx:231 AliMUONSurveyUtil.cxx:232 AliMUONSurveyUtil.cxx:233 AliMUONSurveyUtil.cxx:234 AliMUONSurveyUtil.cxx:235 AliMUONSurveyUtil.cxx:236 AliMUONSurveyUtil.cxx:237 AliMUONSurveyUtil.cxx:238 AliMUONSurveyUtil.cxx:239 AliMUONSurveyUtil.cxx:240 AliMUONSurveyUtil.cxx:241 AliMUONSurveyUtil.cxx:242 AliMUONSurveyUtil.cxx:243 AliMUONSurveyUtil.cxx:244 AliMUONSurveyUtil.cxx:245 AliMUONSurveyUtil.cxx:246 AliMUONSurveyUtil.cxx:247 AliMUONSurveyUtil.cxx:248 AliMUONSurveyUtil.cxx:249 AliMUONSurveyUtil.cxx:250 AliMUONSurveyUtil.cxx:251 AliMUONSurveyUtil.cxx:252 AliMUONSurveyUtil.cxx:253 AliMUONSurveyUtil.cxx:254 AliMUONSurveyUtil.cxx:255 AliMUONSurveyUtil.cxx:256 AliMUONSurveyUtil.cxx:257 AliMUONSurveyUtil.cxx:258 AliMUONSurveyUtil.cxx:259 AliMUONSurveyUtil.cxx:260 AliMUONSurveyUtil.cxx:261 AliMUONSurveyUtil.cxx:262 AliMUONSurveyUtil.cxx:263 AliMUONSurveyUtil.cxx:264 AliMUONSurveyUtil.cxx:265 AliMUONSurveyUtil.cxx:266 AliMUONSurveyUtil.cxx:267 AliMUONSurveyUtil.cxx:268 AliMUONSurveyUtil.cxx:269 AliMUONSurveyUtil.cxx:270 AliMUONSurveyUtil.cxx:271 AliMUONSurveyUtil.cxx:272 AliMUONSurveyUtil.cxx:273 AliMUONSurveyUtil.cxx:274 AliMUONSurveyUtil.cxx:275 AliMUONSurveyUtil.cxx:276 AliMUONSurveyUtil.cxx:277 AliMUONSurveyUtil.cxx:278 AliMUONSurveyUtil.cxx:279 AliMUONSurveyUtil.cxx:280 AliMUONSurveyUtil.cxx:281 AliMUONSurveyUtil.cxx:282 AliMUONSurveyUtil.cxx:283 AliMUONSurveyUtil.cxx:284 AliMUONSurveyUtil.cxx:285 AliMUONSurveyUtil.cxx:286 AliMUONSurveyUtil.cxx:287 AliMUONSurveyUtil.cxx:288 AliMUONSurveyUtil.cxx:289 AliMUONSurveyUtil.cxx:290 AliMUONSurveyUtil.cxx:291 AliMUONSurveyUtil.cxx:292 AliMUONSurveyUtil.cxx:293 AliMUONSurveyUtil.cxx:294 AliMUONSurveyUtil.cxx:295 AliMUONSurveyUtil.cxx:296 AliMUONSurveyUtil.cxx:297 AliMUONSurveyUtil.cxx:298 AliMUONSurveyUtil.cxx:299 AliMUONSurveyUtil.cxx:300 AliMUONSurveyUtil.cxx:301 AliMUONSurveyUtil.cxx:302 AliMUONSurveyUtil.cxx:303 AliMUONSurveyUtil.cxx:304 AliMUONSurveyUtil.cxx:305 AliMUONSurveyUtil.cxx:306 AliMUONSurveyUtil.cxx:307 AliMUONSurveyUtil.cxx:308 AliMUONSurveyUtil.cxx:309 AliMUONSurveyUtil.cxx:310 AliMUONSurveyUtil.cxx:311 AliMUONSurveyUtil.cxx:312 AliMUONSurveyUtil.cxx:313 AliMUONSurveyUtil.cxx:314 AliMUONSurveyUtil.cxx:315 AliMUONSurveyUtil.cxx:316 AliMUONSurveyUtil.cxx:317 AliMUONSurveyUtil.cxx:318 AliMUONSurveyUtil.cxx:319 AliMUONSurveyUtil.cxx:320 AliMUONSurveyUtil.cxx:321 AliMUONSurveyUtil.cxx:322 AliMUONSurveyUtil.cxx:323 AliMUONSurveyUtil.cxx:324 AliMUONSurveyUtil.cxx:325 AliMUONSurveyUtil.cxx:326 AliMUONSurveyUtil.cxx:327 AliMUONSurveyUtil.cxx:328 AliMUONSurveyUtil.cxx:329 AliMUONSurveyUtil.cxx:330 AliMUONSurveyUtil.cxx:331 AliMUONSurveyUtil.cxx:332 AliMUONSurveyUtil.cxx:333 AliMUONSurveyUtil.cxx:334 AliMUONSurveyUtil.cxx:335 AliMUONSurveyUtil.cxx:336 AliMUONSurveyUtil.cxx:337 AliMUONSurveyUtil.cxx:338 AliMUONSurveyUtil.cxx:339 AliMUONSurveyUtil.cxx:340 AliMUONSurveyUtil.cxx:341 AliMUONSurveyUtil.cxx:342 AliMUONSurveyUtil.cxx:343 AliMUONSurveyUtil.cxx:344 AliMUONSurveyUtil.cxx:345 AliMUONSurveyUtil.cxx:346 AliMUONSurveyUtil.cxx:347 AliMUONSurveyUtil.cxx:348 AliMUONSurveyUtil.cxx:349 AliMUONSurveyUtil.cxx:350 AliMUONSurveyUtil.cxx:351 AliMUONSurveyUtil.cxx:352 AliMUONSurveyUtil.cxx:353 AliMUONSurveyUtil.cxx:354 AliMUONSurveyUtil.cxx:355 AliMUONSurveyUtil.cxx:356 AliMUONSurveyUtil.cxx:357 AliMUONSurveyUtil.cxx:358 AliMUONSurveyUtil.cxx:359 AliMUONSurveyUtil.cxx:360 AliMUONSurveyUtil.cxx:361 AliMUONSurveyUtil.cxx:362 AliMUONSurveyUtil.cxx:363 AliMUONSurveyUtil.cxx:364 AliMUONSurveyUtil.cxx:365 AliMUONSurveyUtil.cxx:366 AliMUONSurveyUtil.cxx:367 AliMUONSurveyUtil.cxx:368 AliMUONSurveyUtil.cxx:369 AliMUONSurveyUtil.cxx:370 AliMUONSurveyUtil.cxx:371 AliMUONSurveyUtil.cxx:372 AliMUONSurveyUtil.cxx:373 AliMUONSurveyUtil.cxx:374 AliMUONSurveyUtil.cxx:375 AliMUONSurveyUtil.cxx:376 AliMUONSurveyUtil.cxx:377 AliMUONSurveyUtil.cxx:378 AliMUONSurveyUtil.cxx:379 AliMUONSurveyUtil.cxx:380 AliMUONSurveyUtil.cxx:381 AliMUONSurveyUtil.cxx:382 AliMUONSurveyUtil.cxx:383 AliMUONSurveyUtil.cxx:384 AliMUONSurveyUtil.cxx:385 AliMUONSurveyUtil.cxx:386 AliMUONSurveyUtil.cxx:387 AliMUONSurveyUtil.cxx:388 AliMUONSurveyUtil.cxx:389 AliMUONSurveyUtil.cxx:390 AliMUONSurveyUtil.cxx:391 AliMUONSurveyUtil.cxx:392 AliMUONSurveyUtil.cxx:393 AliMUONSurveyUtil.cxx:394 AliMUONSurveyUtil.cxx:395 AliMUONSurveyUtil.cxx:396 AliMUONSurveyUtil.cxx:397 AliMUONSurveyUtil.cxx:398 AliMUONSurveyUtil.cxx:399 AliMUONSurveyUtil.cxx:400 AliMUONSurveyUtil.cxx:401 AliMUONSurveyUtil.cxx:402 AliMUONSurveyUtil.cxx:403 AliMUONSurveyUtil.cxx:404 AliMUONSurveyUtil.cxx:405 AliMUONSurveyUtil.cxx:406 AliMUONSurveyUtil.cxx:407 AliMUONSurveyUtil.cxx:408 AliMUONSurveyUtil.cxx:409 AliMUONSurveyUtil.cxx:410 AliMUONSurveyUtil.cxx:411 AliMUONSurveyUtil.cxx:412 AliMUONSurveyUtil.cxx:413 AliMUONSurveyUtil.cxx:414 AliMUONSurveyUtil.cxx:415 AliMUONSurveyUtil.cxx:416 AliMUONSurveyUtil.cxx:417 AliMUONSurveyUtil.cxx:418 AliMUONSurveyUtil.cxx:419 AliMUONSurveyUtil.cxx:420 AliMUONSurveyUtil.cxx:421 AliMUONSurveyUtil.cxx:422 AliMUONSurveyUtil.cxx:423 AliMUONSurveyUtil.cxx:424 AliMUONSurveyUtil.cxx:425 AliMUONSurveyUtil.cxx:426 AliMUONSurveyUtil.cxx:427 AliMUONSurveyUtil.cxx:428 AliMUONSurveyUtil.cxx:429 AliMUONSurveyUtil.cxx:430 AliMUONSurveyUtil.cxx:431 AliMUONSurveyUtil.cxx:432 AliMUONSurveyUtil.cxx:433 AliMUONSurveyUtil.cxx:434 AliMUONSurveyUtil.cxx:435 AliMUONSurveyUtil.cxx:436 AliMUONSurveyUtil.cxx:437 AliMUONSurveyUtil.cxx:438 AliMUONSurveyUtil.cxx:439 AliMUONSurveyUtil.cxx:440 AliMUONSurveyUtil.cxx:441 AliMUONSurveyUtil.cxx:442 AliMUONSurveyUtil.cxx:443 AliMUONSurveyUtil.cxx:444 AliMUONSurveyUtil.cxx:445 AliMUONSurveyUtil.cxx:446 AliMUONSurveyUtil.cxx:447 AliMUONSurveyUtil.cxx:448 AliMUONSurveyUtil.cxx:449 AliMUONSurveyUtil.cxx:450 AliMUONSurveyUtil.cxx:451 AliMUONSurveyUtil.cxx:452 AliMUONSurveyUtil.cxx:453 AliMUONSurveyUtil.cxx:454 AliMUONSurveyUtil.cxx:455 AliMUONSurveyUtil.cxx:456 AliMUONSurveyUtil.cxx:457 AliMUONSurveyUtil.cxx:458 AliMUONSurveyUtil.cxx:459 AliMUONSurveyUtil.cxx:460 AliMUONSurveyUtil.cxx:461 AliMUONSurveyUtil.cxx:462 AliMUONSurveyUtil.cxx:463 AliMUONSurveyUtil.cxx:464 AliMUONSurveyUtil.cxx:465 AliMUONSurveyUtil.cxx:466 AliMUONSurveyUtil.cxx:467 AliMUONSurveyUtil.cxx:468 AliMUONSurveyUtil.cxx:469 AliMUONSurveyUtil.cxx:470 AliMUONSurveyUtil.cxx:471 AliMUONSurveyUtil.cxx:472 AliMUONSurveyUtil.cxx:473 AliMUONSurveyUtil.cxx:474 AliMUONSurveyUtil.cxx:475 AliMUONSurveyUtil.cxx:476 AliMUONSurveyUtil.cxx:477 AliMUONSurveyUtil.cxx:478 AliMUONSurveyUtil.cxx:479 AliMUONSurveyUtil.cxx:480 AliMUONSurveyUtil.cxx:481 AliMUONSurveyUtil.cxx:482 AliMUONSurveyUtil.cxx:483 AliMUONSurveyUtil.cxx:484 AliMUONSurveyUtil.cxx:485 AliMUONSurveyUtil.cxx:486 AliMUONSurveyUtil.cxx:487 AliMUONSurveyUtil.cxx:488 AliMUONSurveyUtil.cxx:489 AliMUONSurveyUtil.cxx:490 AliMUONSurveyUtil.cxx:491 AliMUONSurveyUtil.cxx:492 AliMUONSurveyUtil.cxx:493 AliMUONSurveyUtil.cxx:494 AliMUONSurveyUtil.cxx:495 AliMUONSurveyUtil.cxx:496 AliMUONSurveyUtil.cxx:497 AliMUONSurveyUtil.cxx:498 AliMUONSurveyUtil.cxx:499 AliMUONSurveyUtil.cxx:500 AliMUONSurveyUtil.cxx:501 AliMUONSurveyUtil.cxx:502 AliMUONSurveyUtil.cxx:503 AliMUONSurveyUtil.cxx:504 AliMUONSurveyUtil.cxx:505 AliMUONSurveyUtil.cxx:506 AliMUONSurveyUtil.cxx:507 AliMUONSurveyUtil.cxx:508 AliMUONSurveyUtil.cxx:509 AliMUONSurveyUtil.cxx:510 AliMUONSurveyUtil.cxx:511 AliMUONSurveyUtil.cxx:512 AliMUONSurveyUtil.cxx:513 AliMUONSurveyUtil.cxx:514 AliMUONSurveyUtil.cxx:515 AliMUONSurveyUtil.cxx:516 AliMUONSurveyUtil.cxx:517 AliMUONSurveyUtil.cxx:518 AliMUONSurveyUtil.cxx:519 AliMUONSurveyUtil.cxx:520 AliMUONSurveyUtil.cxx:521 AliMUONSurveyUtil.cxx:522 AliMUONSurveyUtil.cxx:523 AliMUONSurveyUtil.cxx:524 AliMUONSurveyUtil.cxx:525 AliMUONSurveyUtil.cxx:526 AliMUONSurveyUtil.cxx:527 AliMUONSurveyUtil.cxx:528 AliMUONSurveyUtil.cxx:529 AliMUONSurveyUtil.cxx:530 AliMUONSurveyUtil.cxx:531 AliMUONSurveyUtil.cxx:532 AliMUONSurveyUtil.cxx:533 AliMUONSurveyUtil.cxx:534 AliMUONSurveyUtil.cxx:535 AliMUONSurveyUtil.cxx:536 AliMUONSurveyUtil.cxx:537 AliMUONSurveyUtil.cxx:538 AliMUONSurveyUtil.cxx:539 AliMUONSurveyUtil.cxx:540 AliMUONSurveyUtil.cxx:541 AliMUONSurveyUtil.cxx:542 AliMUONSurveyUtil.cxx:543 AliMUONSurveyUtil.cxx:544 AliMUONSurveyUtil.cxx:545 AliMUONSurveyUtil.cxx:546 AliMUONSurveyUtil.cxx:547 AliMUONSurveyUtil.cxx:548 AliMUONSurveyUtil.cxx:549 AliMUONSurveyUtil.cxx:550 AliMUONSurveyUtil.cxx:551 AliMUONSurveyUtil.cxx:552 AliMUONSurveyUtil.cxx:553 AliMUONSurveyUtil.cxx:554 AliMUONSurveyUtil.cxx:555 AliMUONSurveyUtil.cxx:556 AliMUONSurveyUtil.cxx:557 AliMUONSurveyUtil.cxx:558 AliMUONSurveyUtil.cxx:559 AliMUONSurveyUtil.cxx:560 AliMUONSurveyUtil.cxx:561 AliMUONSurveyUtil.cxx:562 AliMUONSurveyUtil.cxx:563 AliMUONSurveyUtil.cxx:564 AliMUONSurveyUtil.cxx:565 AliMUONSurveyUtil.cxx:566 AliMUONSurveyUtil.cxx:567 AliMUONSurveyUtil.cxx:568 AliMUONSurveyUtil.cxx:569 AliMUONSurveyUtil.cxx:570 AliMUONSurveyUtil.cxx:571 AliMUONSurveyUtil.cxx:572 AliMUONSurveyUtil.cxx:573 AliMUONSurveyUtil.cxx:574 AliMUONSurveyUtil.cxx:575 AliMUONSurveyUtil.cxx:576 AliMUONSurveyUtil.cxx:577 AliMUONSurveyUtil.cxx:578 AliMUONSurveyUtil.cxx:579 AliMUONSurveyUtil.cxx:580 AliMUONSurveyUtil.cxx:581 AliMUONSurveyUtil.cxx:582 AliMUONSurveyUtil.cxx:583 AliMUONSurveyUtil.cxx:584 AliMUONSurveyUtil.cxx:585 AliMUONSurveyUtil.cxx:586 AliMUONSurveyUtil.cxx:587 AliMUONSurveyUtil.cxx:588 AliMUONSurveyUtil.cxx:589 AliMUONSurveyUtil.cxx:590 AliMUONSurveyUtil.cxx:591 AliMUONSurveyUtil.cxx:592 AliMUONSurveyUtil.cxx:593 AliMUONSurveyUtil.cxx:594 AliMUONSurveyUtil.cxx:595 AliMUONSurveyUtil.cxx:596 AliMUONSurveyUtil.cxx:597 AliMUONSurveyUtil.cxx:598 AliMUONSurveyUtil.cxx:599 AliMUONSurveyUtil.cxx:600 AliMUONSurveyUtil.cxx:601 AliMUONSurveyUtil.cxx:602 AliMUONSurveyUtil.cxx:603 AliMUONSurveyUtil.cxx:604 AliMUONSurveyUtil.cxx:605 AliMUONSurveyUtil.cxx:606 AliMUONSurveyUtil.cxx:607 AliMUONSurveyUtil.cxx:608 AliMUONSurveyUtil.cxx:609 AliMUONSurveyUtil.cxx:610 AliMUONSurveyUtil.cxx:611 AliMUONSurveyUtil.cxx:612 AliMUONSurveyUtil.cxx:613 AliMUONSurveyUtil.cxx:614 AliMUONSurveyUtil.cxx:615 AliMUONSurveyUtil.cxx:616 AliMUONSurveyUtil.cxx:617 AliMUONSurveyUtil.cxx:618 AliMUONSurveyUtil.cxx:619 AliMUONSurveyUtil.cxx:620 AliMUONSurveyUtil.cxx:621 AliMUONSurveyUtil.cxx:622 AliMUONSurveyUtil.cxx:623 AliMUONSurveyUtil.cxx:624 AliMUONSurveyUtil.cxx:625 AliMUONSurveyUtil.cxx:626 AliMUONSurveyUtil.cxx:627 AliMUONSurveyUtil.cxx:628 AliMUONSurveyUtil.cxx:629 AliMUONSurveyUtil.cxx:630 AliMUONSurveyUtil.cxx:631 AliMUONSurveyUtil.cxx:632 AliMUONSurveyUtil.cxx:633 AliMUONSurveyUtil.cxx:634 AliMUONSurveyUtil.cxx:635 AliMUONSurveyUtil.cxx:636 AliMUONSurveyUtil.cxx:637 AliMUONSurveyUtil.cxx:638 AliMUONSurveyUtil.cxx:639 AliMUONSurveyUtil.cxx:640 AliMUONSurveyUtil.cxx:641 AliMUONSurveyUtil.cxx:642 AliMUONSurveyUtil.cxx:643 AliMUONSurveyUtil.cxx:644 AliMUONSurveyUtil.cxx:645 AliMUONSurveyUtil.cxx:646 AliMUONSurveyUtil.cxx:647 AliMUONSurveyUtil.cxx:648 AliMUONSurveyUtil.cxx:649 AliMUONSurveyUtil.cxx:650 AliMUONSurveyUtil.cxx:651 AliMUONSurveyUtil.cxx:652 AliMUONSurveyUtil.cxx:653 AliMUONSurveyUtil.cxx:654 AliMUONSurveyUtil.cxx:655 AliMUONSurveyUtil.cxx:656 AliMUONSurveyUtil.cxx:657 AliMUONSurveyUtil.cxx:658 AliMUONSurveyUtil.cxx:659 AliMUONSurveyUtil.cxx:660 AliMUONSurveyUtil.cxx:661 AliMUONSurveyUtil.cxx:662 AliMUONSurveyUtil.cxx:663 AliMUONSurveyUtil.cxx:664 AliMUONSurveyUtil.cxx:665 AliMUONSurveyUtil.cxx:666 AliMUONSurveyUtil.cxx:667 AliMUONSurveyUtil.cxx:668 AliMUONSurveyUtil.cxx:669 AliMUONSurveyUtil.cxx:670 AliMUONSurveyUtil.cxx:671 AliMUONSurveyUtil.cxx:672 AliMUONSurveyUtil.cxx:673 AliMUONSurveyUtil.cxx:674 AliMUONSurveyUtil.cxx:675 AliMUONSurveyUtil.cxx:676 AliMUONSurveyUtil.cxx:677 AliMUONSurveyUtil.cxx:678 AliMUONSurveyUtil.cxx:679 AliMUONSurveyUtil.cxx:680 AliMUONSurveyUtil.cxx:681 AliMUONSurveyUtil.cxx:682 AliMUONSurveyUtil.cxx:683 AliMUONSurveyUtil.cxx:684 AliMUONSurveyUtil.cxx:685 AliMUONSurveyUtil.cxx:686 AliMUONSurveyUtil.cxx:687 AliMUONSurveyUtil.cxx:688 AliMUONSurveyUtil.cxx:689 AliMUONSurveyUtil.cxx:690 AliMUONSurveyUtil.cxx:691 AliMUONSurveyUtil.cxx:692 AliMUONSurveyUtil.cxx:693 AliMUONSurveyUtil.cxx:694 AliMUONSurveyUtil.cxx:695 AliMUONSurveyUtil.cxx:696 AliMUONSurveyUtil.cxx:697 AliMUONSurveyUtil.cxx:698 AliMUONSurveyUtil.cxx:699 AliMUONSurveyUtil.cxx:700 AliMUONSurveyUtil.cxx:701 AliMUONSurveyUtil.cxx:702 AliMUONSurveyUtil.cxx:703 AliMUONSurveyUtil.cxx:704 AliMUONSurveyUtil.cxx:705 AliMUONSurveyUtil.cxx:706 AliMUONSurveyUtil.cxx:707 AliMUONSurveyUtil.cxx:708 AliMUONSurveyUtil.cxx:709 AliMUONSurveyUtil.cxx:710 AliMUONSurveyUtil.cxx:711