const char *fxcName = "fXcn00";
TF2 **fXc = new TF2*[2];
fxcName = "fXcn";
- fXc[0] = new TF2(fxcName,surveyUtil,&AliMUONSurveyUtil::xnCenter,fXMin,fXMax,fYMin,fYMax,7,"AliMUONSurveyUtil","xnCenter");
+ fXc[0] = new TF2(fxcName,surveyUtil,&AliMUONSurveyUtil::XnCenter,fXMin,fXMax,fYMin,fYMax,7,"AliMUONSurveyUtil","XnCenter");
fxcName = "fXcp";
- fXc[1] = new TF2(fxcName,surveyUtil,&AliMUONSurveyUtil::xpCenter,fXMin,fXMax,fYMin,fYMax,7,"AliMUONSurveyUtil","xpCenter");
+ fXc[1] = new TF2(fxcName,surveyUtil,&AliMUONSurveyUtil::XpCenter,fXMin,fXMax,fYMin,fYMax,7,"AliMUONSurveyUtil","XpCenter");
// Ycenter functions
const char *fycName = "fYcn00";
TF2 **fYc = new TF2*[2];
fycName = "fYcn";
- fYc[0] = new TF2(fycName,surveyUtil,&AliMUONSurveyUtil::ynCenter,fYMin,fYMax,fYMin,fYMax,8,"AliMUONSurveyUtil","ynCenter");
+ fYc[0] = new TF2(fycName,surveyUtil,&AliMUONSurveyUtil::YnCenter,fYMin,fYMax,fYMin,fYMax,8,"AliMUONSurveyUtil","YnCenter");
fycName = "fYcp";
- fYc[1] = new TF2(fycName,surveyUtil,&AliMUONSurveyUtil::ypCenter,fYMin,fYMax,fYMin,fYMax,8,"AliMUONSurveyUtil","ypCenter");
+ fYc[1] = new TF2(fycName,surveyUtil,&AliMUONSurveyUtil::YpCenter,fYMin,fYMax,fYMin,fYMax,8,"AliMUONSurveyUtil","YpCenter");
// Zcenter functions
const char *fzcName = "fZcn00";
TF2 **fZc = new TF2*[2];
fzcName = "fZcn";
- fZc[0] = new TF2(fzcName,surveyUtil,&AliMUONSurveyUtil::znCenter,fZMin,fZMax,fZMin,fZMax,8,"AliMUONSurveyUtil","znCenter");
+ fZc[0] = new TF2(fzcName,surveyUtil,&AliMUONSurveyUtil::ZnCenter,fZMin,fZMax,fZMin,fZMax,8,"AliMUONSurveyUtil","ZnCenter");
fzcName = "fZcp";
- fZc[1] = new TF2(fzcName,surveyUtil,&AliMUONSurveyUtil::zpCenter,fZMin,fZMax,fZMin,fZMax,8,"AliMUONSurveyUtil","zpCenter");
+ fZc[1] = new TF2(fzcName,surveyUtil,&AliMUONSurveyUtil::ZpCenter,fZMin,fZMax,fZMin,fZMax,8,"AliMUONSurveyUtil","ZpCenter");
// Phi rotation using xglobal coords functions
const char *fphixName = "fPhiXnn00";
fPhiX[iX] = new TF2*[2];
}
fphixName = "fPhiXnn";
- fPhiX[0][0] = new TF2(fphixName,surveyUtil,&AliMUONSurveyUtil::phixnn,fXMin,fXMax,fXMin,fXMax,7,"AliMUONSurveyUtil","phixnn");
+ fPhiX[0][0] = new TF2(fphixName,surveyUtil,&AliMUONSurveyUtil::PhiXnn,fXMin,fXMax,fXMin,fXMax,7,"AliMUONSurveyUtil","PhiXnn");
fphixName = "fPhiXnp";
- fPhiX[0][1] = new TF2(fphixName,surveyUtil,&AliMUONSurveyUtil::phixnp,fXMin,fXMax,fXMin,fXMax,7,"AliMUONSurveyUtil","phixnp");
+ fPhiX[0][1] = new TF2(fphixName,surveyUtil,&AliMUONSurveyUtil::PhiXnp,fXMin,fXMax,fXMin,fXMax,7,"AliMUONSurveyUtil","PhiXnp");
fphixName = "fPhiXpn";
- fPhiX[1][0] = new TF2(fphixName,surveyUtil,&AliMUONSurveyUtil::phixpn,fXMin,fXMax,fXMin,fXMax,7,"AliMUONSurveyUtil","phixpn");
+ fPhiX[1][0] = new TF2(fphixName,surveyUtil,&AliMUONSurveyUtil::PhiXpn,fXMin,fXMax,fXMin,fXMax,7,"AliMUONSurveyUtil","PhiXpn");
fphixName = "fPhiXpp";
- fPhiX[1][1] = new TF2(fphixName,surveyUtil,&AliMUONSurveyUtil::phixpp,fXMin,fXMax,fXMin,fXMax,7,"AliMUONSurveyUtil","phixpp");
+ fPhiX[1][1] = new TF2(fphixName,surveyUtil,&AliMUONSurveyUtil::PhiXpp,fXMin,fXMax,fXMin,fXMax,7,"AliMUONSurveyUtil","PhiXpp");
// Phi rotation using yglobal coords functions
const char *fphiyName = "fPhiYnn00";
fPhiY[iY] = new TF2*[2];
}
fphiyName = "fPhiYnn";
- fPhiY[0][0] = new TF2(fphiyName,surveyUtil,&AliMUONSurveyUtil::phiynn,fYMin,fYMax,fYMin,fYMax,8,"AliMUONSurveyUtil","phiynn");
+ fPhiY[0][0] = new TF2(fphiyName,surveyUtil,&AliMUONSurveyUtil::PhiYnn,fYMin,fYMax,fYMin,fYMax,8,"AliMUONSurveyUtil","PhiYnn");
fphiyName = "fPhiYnp";
- fPhiY[0][1] = new TF2(fphiyName,surveyUtil,&AliMUONSurveyUtil::phiynp,fYMin,fYMax,fYMin,fYMax,8,"AliMUONSurveyUtil","phiynp");
+ fPhiY[0][1] = new TF2(fphiyName,surveyUtil,&AliMUONSurveyUtil::PhiYnp,fYMin,fYMax,fYMin,fYMax,8,"AliMUONSurveyUtil","PhiYnp");
fphiyName = "fPhiYpn";
- fPhiY[1][0] = new TF2(fphiyName,surveyUtil,&AliMUONSurveyUtil::phiypn,fYMin,fYMax,fYMin,fYMax,8,"AliMUONSurveyUtil","phiypn");
+ fPhiY[1][0] = new TF2(fphiyName,surveyUtil,&AliMUONSurveyUtil::PhiYpn,fYMin,fYMax,fYMin,fYMax,8,"AliMUONSurveyUtil","PhiYpn");
fphiyName = "fPhiYpp";
- fPhiY[1][1] = new TF2(fphiyName,surveyUtil,&AliMUONSurveyUtil::phiypp,fYMin,fYMax,fYMin,fYMax,8,"AliMUONSurveyUtil","phiypp");
+ fPhiY[1][1] = new TF2(fphiyName,surveyUtil,&AliMUONSurveyUtil::PhiYpp,fYMin,fYMax,fYMin,fYMax,8,"AliMUONSurveyUtil","PhiYpp");
// Set Parameters of functions
/// \author Javier Castillo
//-----------------------------------------------------------------------------
-#include <fstream>
-
-#include <TGeoManager.h>
#include <TClonesArray.h>
#include <TMath.h>
#include <TMatrixDSym.h>
#include <TString.h>
-#include <Riostream.h>
#include "AliAlignObjMatrix.h"
-#include "AliGeomManager.h"
-#include "AliCDBManager.h"
-#include "AliCDBMetaData.h"
-#include "AliCDBId.h"
#include "AliMUONSurveyUtil.h"
#include "AliMUONGeometryTransformer.h"
-#include "AliMUONGeometryMisAligner.h"
#include "AliMUONGeometryModuleTransformer.h"
#include "AliMUONGeometryDetElement.h"
#include "AliMUONGeometryBuilder.h"
rot[8] = costhe*cospsi;
}
-Double_t AliMUONSurveyUtil::xpCenter(Double_t *x, Double_t *par){
+Double_t AliMUONSurveyUtil::XpCenter(const Double_t *x, const Double_t *par) const{
+ /// Returns center x position using x coord. of 2 button targets. + solution.
Double_t lCos2Tht = TMath::Cos(2*par[6]);
Double_t lSinTht = TMath::Sin(par[6]);
return xD;
}
-Double_t AliMUONSurveyUtil::xnCenter(Double_t *x, Double_t *par){
-
+Double_t AliMUONSurveyUtil::XnCenter(const Double_t *x, const Double_t *par) const{
+ /// Returns center x position using x coord. of 2 button targets. - solution.
Double_t lCos2Tht = TMath::Cos(2*par[6]);
Double_t lSinTht = TMath::Sin(par[6]);
return xD;
}
-Double_t AliMUONSurveyUtil::phixpn(Double_t *x, Double_t *par){
-
+Double_t AliMUONSurveyUtil::PhiXpn(const Double_t *x, const Double_t *par) const{
+ /// Returns phi rot. using x coord. of 2 button targets. +- solution.
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])
return phix;
}
-Double_t AliMUONSurveyUtil::phixpp(Double_t *x, Double_t *par){
-
+Double_t AliMUONSurveyUtil::PhiXpp(const Double_t *x, const Double_t *par) const{
+ /// Returns phi rot. using x coord. of 2 button targets. ++ solution.
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])
return phix;
}
-Double_t AliMUONSurveyUtil::phixnn(Double_t *x, Double_t *par){
-
+Double_t AliMUONSurveyUtil::PhiXnn(const Double_t *x, const Double_t *par) const{
+ /// Returns phi rot. using x coord. of 2 button targets. -- solution.
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])
return phix;
}
-Double_t AliMUONSurveyUtil::phixnp(Double_t *x, Double_t *par){
-
+Double_t AliMUONSurveyUtil::PhiXnp(const Double_t *x, const Double_t *par) const{
+ /// Returns phi rot. using x coord. of 2 button targets. +- solution.
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])
return phix;
}
-Double_t AliMUONSurveyUtil::ypCenter(Double_t *x, Double_t *par){
- // par : x1l, y1l, z1l, x2l, y2l, z2, lpsi, tht,
+Double_t AliMUONSurveyUtil::YpCenter(const Double_t *x, const Double_t *par) const{
+ /// Returns center y position using y coord. of 2 button targets. + solution.
+ // par : x1l, y1l, z1l, x2l, y2l, z2, lpsi, tht,
Double_t lCosPsi = TMath::Cos(par[6]);
Double_t lSinPsi = TMath::Sin(par[6]);
Double_t lCosTht = TMath::Cos(par[7]);
return yD;
}
-Double_t AliMUONSurveyUtil::phiypn(Double_t *x, Double_t *par){
+Double_t AliMUONSurveyUtil::PhiYpn(const Double_t *x, const Double_t *par) const{
+ /// Returns phi rot. using y coord. of 2 button targets. +- solution.
Double_t lCosPsi = TMath::Cos(par[6]);
Double_t lSinPsi = TMath::Sin(par[6]);
return phiy;
}
-Double_t AliMUONSurveyUtil::phiypp(Double_t *x, Double_t *par){
+Double_t AliMUONSurveyUtil::PhiYpp(const Double_t *x, const Double_t *par) const{
+ /// Returns phi rot. using y coord. of 2 button targets. ++ solution.
Double_t lCosPsi = TMath::Cos(par[6]);
Double_t lSinPsi = TMath::Sin(par[6]);
return phiy;
}
-Double_t AliMUONSurveyUtil::ynCenter(Double_t *x, Double_t *par){
-
+Double_t AliMUONSurveyUtil::YnCenter(const Double_t *x, const Double_t *par) const{
+ /// Returns center y position using y coord. of 2 button targets. - solution.
Double_t lCosPsi = TMath::Cos(par[6]);
Double_t lSinPsi = TMath::Sin(par[6]);
Double_t lCosTht = TMath::Cos(par[7]);
}
-Double_t AliMUONSurveyUtil::phiynn(Double_t *x, Double_t *par){
+Double_t AliMUONSurveyUtil::PhiYnn(const Double_t *x, const Double_t *par) const{
+ /// Returns phi rot. using y coord. of 2 button targets. -- solution.
Double_t lCosPsi = TMath::Cos(par[6]);
Double_t lSinPsi = TMath::Sin(par[6]);
}
-Double_t AliMUONSurveyUtil::phiynp(Double_t *x, Double_t *par){
+Double_t AliMUONSurveyUtil::PhiYnp(const Double_t *x, const Double_t *par) const{
+ /// Returns phi rot. using y coord. of 2 button targets. -+ solution.
Double_t lCosPsi = TMath::Cos(par[6]);
Double_t lSinPsi = TMath::Sin(par[6]);
return phiy;
}
-Double_t AliMUONSurveyUtil::znCenter(Double_t *x, Double_t *par){
- // par : x1l, y1l, z1l, x2l, y2l, z2l, psi, tht
+Double_t AliMUONSurveyUtil::ZnCenter(const Double_t *x, const Double_t *par) const{
+ /// Returns center z position using z coord. of 2 button targets. - solution.
+ // par : x1l, y1l, z1l, x2l, y2l, z2l, psi, tht
Double_t lCosPsi = TMath::Cos(par[6]);
Double_t lSinPsi = TMath::Sin(par[6]);
Double_t lCosTht = TMath::Cos(par[7]);
return zD;
}
-Double_t AliMUONSurveyUtil::zpCenter(Double_t *x, Double_t *par){
- // par : x1l, y1l, z1l, x2l, y2l, z2l, psi, tht
+Double_t AliMUONSurveyUtil::ZpCenter(const Double_t *x, const Double_t *par) const{
+ /// Returns center z position using z coord. of 2 button targets. + solution.
+ // par : x1l, y1l, z1l, x2l, y2l, z2l, psi, tht
Double_t lCosPsi = TMath::Cos(par[6]);
Double_t lSinPsi = TMath::Sin(par[6]);
Double_t lCosTht = TMath::Cos(par[7]);
}
void AliMUONSurveyUtil::SetAlignmentResolution(const TClonesArray* misAlignArray, Int_t chId, Double_t chResX, Double_t chResY, Double_t deResX, Double_t deResY){
+ /// Sets the alignment resolution to the AliAlignObjMatrix correlation matrix
TMatrixDSym mChCorrMatrix(6);
mChCorrMatrix[0][0]=chResX*chResX;
static Bool_t MatrixToAngles(const Double_t *rot, Double_t *angles);
static void AnglesToMatrix(const Double_t *angles, Double_t *rot);
- Double_t xpCenter(Double_t *x, Double_t *par);
- Double_t xnCenter(Double_t *x, Double_t *par);
- Double_t ypCenter(Double_t *x, Double_t *par);
- Double_t ynCenter(Double_t *x, Double_t *par);
- Double_t zpCenter(Double_t *x, Double_t *par);
- Double_t znCenter(Double_t *x, Double_t *par);
- Double_t phixpp(Double_t *x, Double_t *par);
- Double_t phixpn(Double_t *x, Double_t *par);
- Double_t phixnp(Double_t *x, Double_t *par);
- Double_t phixnn(Double_t *x, Double_t *par);
- Double_t phiypp(Double_t *x, Double_t *par);
- Double_t phiypn(Double_t *x, Double_t *par);
- Double_t phiynp(Double_t *x, Double_t *par);
- Double_t phiynn(Double_t *x, Double_t *par);
+ Double_t XpCenter(const Double_t *x, const Double_t *par) const;
+ Double_t XnCenter(const Double_t *x, const Double_t *par) const;
+ Double_t YpCenter(const Double_t *x, const Double_t *par) const;
+ Double_t YnCenter(const Double_t *x, const Double_t *par) const;
+ Double_t ZpCenter(const Double_t *x, const Double_t *par) const;
+ Double_t ZnCenter(const Double_t *x, const Double_t *par) const;
+ Double_t PhiXpp(const Double_t *x, const Double_t *par) const;
+ Double_t PhiXpn(const Double_t *x, const Double_t *par) const;
+ Double_t PhiXnp(const Double_t *x, const Double_t *par) const;
+ Double_t PhiXnn(const Double_t *x, const Double_t *par) const;
+ Double_t PhiYpp(const Double_t *x, const Double_t *par) const;
+ Double_t PhiYpn(const Double_t *x, const Double_t *par) const;
+ Double_t PhiYnp(const Double_t *x, const Double_t *par) const;
+ Double_t PhiYnn(const Double_t *x, const Double_t *par) const;
static AliMUONGeometryTransformer *ReAlign(const AliMUONGeometryTransformer * transformer,
int rMod, int rNDetElems, int rDetElemToDetElemId[], TGeoCombiTrans deltaDetElemTransf[], Bool_t verbose);
AliMUONSurveyUtil() : TObject() {}
private:
+ /// Not implemented
+ AliMUONSurveyUtil(const AliMUONSurveyUtil& right);
+ /// Not implemented
+ AliMUONSurveyUtil& operator = (const AliMUONSurveyUtil& right);
+
+
static int fgNDetElemCh[10];
static AliMUONSurveyUtil *fgInstance;