]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONSurveyUtil.cxx
Updated READMEmapping
[u/mrichter/AliRoot.git] / MUON / AliMUONSurveyUtil.cxx
index e37ec4b06a10a35b4a235763ac65d58f50353189..81895cf737a7dc4e40a2e03ce831daa44d0543a8 100644 (file)
@@ -15,7 +15,7 @@
 
 //-----------------------------------------------------------------------------
 /// \class AliMUONSurveyUtil
-/// Utility class for the survey processing of the ALICE DiMuon spectrometer 
+/// Singleton utility class for the survey processing of the ALICE DiMuon spectrometer 
 /// 
 /// This class contains various functions to calculate misalignement parameters
 /// from survey data and designed positions of survey targets.
 /// \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"
@@ -61,6 +52,7 @@ AliMUONSurveyUtil::~AliMUONSurveyUtil(){
 }
 
 AliMUONSurveyUtil* AliMUONSurveyUtil::Instance() {
+  ///  Return its instance 
   if (!fgInstance) 
     fgInstance = new AliMUONSurveyUtil();
   
@@ -88,9 +80,9 @@ Bool_t AliMUONSurveyUtil::MatrixToAngles(const Double_t *rot, Double_t *angles)
 
 void AliMUONSurveyUtil::AnglesToMatrix(const Double_t *angles, Double_t *rot)
 {
-  // Calculates the rotation matrix using the 
-  // Euler angles in "x y z" notation
-  //
+  /// Calculates the rotation matrix using the 
+  /// Euler angles in "x y z" notation
+  ///
   //  Double_t degrad = TMath::DegToRad();
   Double_t degrad = 1.;
   Double_t sinpsi = TMath::Sin(degrad*angles[0]);
@@ -111,7 +103,8 @@ void AliMUONSurveyUtil::AnglesToMatrix(const Double_t *angles, Double_t *rot)
   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]);
 
@@ -140,8 +133,8 @@ Double_t AliMUONSurveyUtil::xpCenter(Double_t *x, Double_t *par){
   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]);
 
@@ -169,8 +162,8 @@ Double_t AliMUONSurveyUtil::xnCenter(Double_t *x, Double_t *par){
   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]) 
@@ -193,8 +186,8 @@ Double_t AliMUONSurveyUtil::phixpn(Double_t *x, Double_t *par){
   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]) 
@@ -217,8 +210,8 @@ Double_t AliMUONSurveyUtil::phixpp(Double_t *x, Double_t *par){
   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]) 
@@ -241,8 +234,8 @@ Double_t AliMUONSurveyUtil::phixnn(Double_t *x, Double_t *par){
   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]) 
@@ -265,9 +258,10 @@ Double_t AliMUONSurveyUtil::phixnp(Double_t *x, Double_t *par){
   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]);
@@ -294,7 +288,8 @@ Double_t AliMUONSurveyUtil::ypCenter(Double_t *x, Double_t *par){
   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]);
@@ -331,7 +326,8 @@ Double_t AliMUONSurveyUtil::phiypn(Double_t *x, Double_t *par){
   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]);
@@ -366,8 +362,8 @@ Double_t AliMUONSurveyUtil::phiypp(Double_t *x, Double_t *par){
   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]);
@@ -396,7 +392,8 @@ Double_t AliMUONSurveyUtil::ynCenter(Double_t *x, Double_t *par){
 }
  
 
-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]);
@@ -433,7 +430,8 @@ Double_t AliMUONSurveyUtil::phiynn(Double_t *x, Double_t *par){
 }
 
 
-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]);
@@ -469,9 +467,10 @@ Double_t AliMUONSurveyUtil::phiynp(Double_t *x, Double_t *par){
   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]);
@@ -510,9 +509,10 @@ Double_t AliMUONSurveyUtil::znCenter(Double_t *x, Double_t *par){
   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]);
@@ -666,6 +666,7 @@ AliMUONGeometryTransformer* AliMUONSurveyUtil::ReAlign(const AliMUONGeometryTran
 }
 
 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;
@@ -679,7 +680,7 @@ void AliMUONSurveyUtil::SetAlignmentResolution(const TClonesArray* misAlignArray
 
   AliAlignObjMatrix *alignMat = 0x0;
 
-  Int_t modId = (chId<4)? chId : 4+(chId-4)*2;   
+//  Int_t modId = (chId<4)? chId : 4+(chId-4)*2;   
   TString chName1;
   TString chName2;
   if (chId<4){