AliRoot Core  edcc906 (edcc906)
AliMUONGeometryMisAligner Class Reference

Class for misalignment of geometry transformations. More...

#include <AliMUONGeometryMisAligner.h>

Inheritance diagram for AliMUONGeometryMisAligner:

Public Member Functions

 AliMUONGeometryMisAligner (Double_t cartXMisAligM, Double_t cartXMisAligW, Double_t cartYMisAligM, Double_t cartYMisAligW, Double_t angMisAligM, Double_t angMisAligW)
 
 AliMUONGeometryMisAligner (Double_t cartMisAligM, Double_t cartMisAligW, Double_t angMisAligM, Double_t angMisAligW)
 
 AliMUONGeometryMisAligner (Double_t cartMisAligW, Double_t angMisAligW)
 
 AliMUONGeometryMisAligner ()
 
virtual ~AliMUONGeometryMisAligner ()
 
AliMUONGeometryTransformerMisAlign (const AliMUONGeometryTransformer *transformer, Bool_t verbose=kFALSE)
 
void SetCartMisAlig (Double_t xmean, Double_t xwidth, Double_t ymean, Double_t ywidth, Double_t zmean=0., Double_t zwidth=0.)
 Set cartesian displacement parameters different along x, y. More...
 
void SetCartMisAlig (Double_t mean, Double_t width)
 Set cartesian displacement parameters, the same along x, y. More...
 
void SetAngMisAlig (Double_t zmean, Double_t zwidth, Double_t xmean=0., Double_t xwidth=0., Double_t ymean=0., Double_t ywidth=0.)
 Set angular displacement. More...
 
void SetMaxCartMisAlig (Double_t width)
 Set cartesian displacement (Kept for backward compatibility) More...
 
void SetMaxAngMisAlig (Double_t width)
 Set angular displacement (Kept for backward compatibility) More...
 
void SetXYAngMisAligFactor (Double_t factor)
 
void SetZCartMisAligFactor (Double_t factor)
 
void SetUseGaus (Bool_t usegaus)
 Set option for gaussian distribution. More...
 
void SetUseUni (Bool_t useuni)
 Set option for uniform distribution. More...
 
void SetModuleCartMisAlig (Double_t xmean, Double_t xwidth, Double_t ymean, Double_t ywidth, Double_t zmean, Double_t zwidth)
 Set module (half chambers) cartesian displacement parameters. More...
 
void SetModuleAngMisAlig (Double_t xmean, Double_t xwidth, Double_t ymean, Double_t ywidth, Double_t zmean, Double_t zwidth)
 Set module (half chambers) cartesian displacement parameters. More...
 
void SetAlignmentResolution (const TClonesArray *misAlignArray, Int_t chId=-1, Double_t chResX=-1., Double_t chResY=-1., Double_t deResX=-1., Double_t deResY=-1.)
 Set alignment resolution to misalign objects to be stored in CDB. More...
 

Protected Member Functions

 AliMUONGeometryMisAligner (const AliMUONGeometryMisAligner &right)
 Not implemented. More...
 
AliMUONGeometryMisAligneroperator= (const AliMUONGeometryMisAligner &right)
 Not implemented. More...
 

Private Member Functions

TGeoCombiTrans MisAlignDetElem (const TGeoCombiTrans &transform) const
 
TGeoCombiTrans MisAlignModule (const TGeoCombiTrans &transform) const
 
void GetUniMisAlign (Double_t cartMisAlig[3], Double_t angMisAlig[3], const Double_t lParMisAlig[6][2]) const
 
void GetGausMisAlign (Double_t cartMisAlig[3], Double_t angMisAlig[3], const Double_t lParMisAlig[6][2]) const
 

Private Attributes

Bool_t fUseUni
 use uniform distribution for misaligmnets More...
 
Bool_t fUseGaus
 use gaussian distribution for misaligmnets More...
 
Double_t fDetElemMisAlig [6][2]
 Mean and width of the displacements of the detection elements along x,y,z (translations) and about x,y,z (rotations) More...
 
Double_t fModuleMisAlig [6][2]
 Mean and width of the displacements of the modules along x,y,z (translations) and about x,y,z (rotations) More...
 
Double_t fXYAngMisAligFactor
 factor (<1) to apply to angular misalignment range since range of motion is restricted out of the xy plane More...
 
Double_t fZCartMisAligFactor
 factor (<1) to apply to cartetian misalignment range since range of motion is restricted in z direction More...
 

Detailed Description

Class for misalignment of geometry transformations.

This performs the misalignment on an existing muon arm geometry based on the standard definition of the detector elements in $ALICE_ROOT/MUON/data

–> User has to specify the magnitude of the alignments, in the Cartesian co-ordiantes (which are used to apply translation misalignments) and in the spherical co-ordinates (which are used to apply angular displacements)

–> If the constructor is used with no arguments, user has to set misalignment ranges by hand using the methods : SetApplyMisAlig, SetMaxCartMisAlig, SetMaxAngMisAlig, SetXYAngMisAligFactor (last method takes account of the fact that the misalingment is greatest in the XY plane, since the detection elements are fixed to a support structure in this plane. Misalignments in the XZ and YZ plane will be very small compared to those in the XY plane, which are small already - of the order of microns)

Note : If the detection elements are allowed to be misaligned in all directions, this has consequences for the alignment algorithm (AliMUONAlignment), which needs to know the number of free parameters. Eric only allowed 3 : x,y,theta_xy, but in principle z and the other two angles are alignable as well.

Author
Bruce Becker, Javier Castillo

Definition at line 23 of file AliMUONGeometryMisAligner.h.

Constructor & Destructor Documentation

AliMUONGeometryMisAligner::AliMUONGeometryMisAligner ( Double_t  cartXMisAligM,
Double_t  cartXMisAligW,
Double_t  cartYMisAligM,
Double_t  cartYMisAligW,
Double_t  angMisAligM,
Double_t  angMisAligW 
)

Standard constructor

Definition at line 71 of file AliMUONGeometryMisAligner.cxx.

AliMUONGeometryMisAligner::AliMUONGeometryMisAligner ( Double_t  cartMisAligM,
Double_t  cartMisAligW,
Double_t  angMisAligM,
Double_t  angMisAligW 
)

Standard constructor

Definition at line 95 of file AliMUONGeometryMisAligner.cxx.

AliMUONGeometryMisAligner::AliMUONGeometryMisAligner ( Double_t  cartMisAligW,
Double_t  angMisAligW 
)

Standard constructor

Definition at line 119 of file AliMUONGeometryMisAligner.cxx.

AliMUONGeometryMisAligner::AliMUONGeometryMisAligner ( )

Default constructor

Definition at line 140 of file AliMUONGeometryMisAligner.cxx.

Referenced by SetModuleAngMisAlig().

AliMUONGeometryMisAligner::~AliMUONGeometryMisAligner ( )
virtual

Destructor

Definition at line 157 of file AliMUONGeometryMisAligner.cxx.

AliMUONGeometryMisAligner::AliMUONGeometryMisAligner ( const AliMUONGeometryMisAligner right)
protected

Not implemented.

Member Function Documentation

void AliMUONGeometryMisAligner::GetGausMisAlign ( Double_t  cartMisAlig[3],
Double_t  angMisAlig[3],
const Double_t  lParMisAlig[6][2] 
) const
private

Misalign using gaussian distribution

misalign the centre of the local transformation rotation axes : fAngMisAlig[1,2,3] = [x,y,z] Assume that misalignment about the x and y axes (misalignment of z plane) is much smaller, since the entire detection plane has to be moved (the detection elements are on a support structure), while rotation of the x-y plane is more free.

Definition at line 216 of file AliMUONGeometryMisAligner.cxx.

Referenced by MisAlignDetElem(), MisAlignModule(), and SetModuleAngMisAlig().

void AliMUONGeometryMisAligner::GetUniMisAlign ( Double_t  cartMisAlig[3],
Double_t  angMisAlig[3],
const Double_t  lParMisAlig[6][2] 
) const
private

Misalign using uniform distribution

misalign the centre of the local transformation rotation axes : fAngMisAlig[1,2,3] = [x,y,z] Assume that misalignment about the x and y axes (misalignment of z plane) is much smaller, since the entire detection plane has to be moved (the detection elements are on a support structure), while rotation of the x-y plane is more free.

Definition at line 194 of file AliMUONGeometryMisAligner.cxx.

Referenced by MisAlignDetElem(), MisAlignModule(), and SetModuleAngMisAlig().

AliMUONGeometryTransformer * AliMUONGeometryMisAligner::MisAlign ( const AliMUONGeometryTransformer transformer,
Bool_t  verbose = kFALSE 
)

Takes the internal geometry module transformers, copies them to new geometry module transformers. Calculates module misalignment parameters and applies these to the new module transformer. Calculates the module misalignment delta transformation in the Alice Alignment Framework newTransf = delta * oldTransf. Add a module misalignment to the new geometry transformer. Gets the Detection Elements from the module transformer. Calculates misalignment parameters and applies these to the local transformation of the Detection Element. Obtains the new global transformation by multiplying the new module transformer transformation with the new local transformation. Applies the new global transform to a new detection element. Adds the new detection element to a new module transformer. Calculates the d.e. misalignment delta transformation in the Alice Alignment Framework (newGlobalTransf = delta * oldGlobalTransf). Add a d.e. misalignment to the new geometry transformer. Adds the new module transformer to a new geometry transformer. Returns the new geometry transformer.

make a new detection element

Definition at line 317 of file AliMUONGeometryMisAligner.cxx.

Referenced by MakeMUONFullMisAlignment(), MakeMUONResMisAlignment(), and MUONCheckMisAligner().

TGeoCombiTrans AliMUONGeometryMisAligner::MisAlignDetElem ( const TGeoCombiTrans &  transform) const
private

Misalign given transformation and return the misaligned transformation. Use misalignment parameters for detection elements. Note that applied misalignments are small deltas with respect to the detection element own ideal local reference frame. Thus deltaTransf represents the transformation to go from the misaligned d.e. local coordinates to the ideal d.e. local coordinates. Also note that this -is not- what is in the ALICE alignment framework known as local nor global (see AliMUONGeometryMisAligner::MisAlign)

Definition at line 238 of file AliMUONGeometryMisAligner.cxx.

Referenced by MisAlign(), and SetModuleAngMisAlig().

TGeoCombiTrans AliMUONGeometryMisAligner::MisAlignModule ( const TGeoCombiTrans &  transform) const
private

Misalign given transformation and return the misaligned transformation. Use misalignment parameters for modules. Note that applied misalignments are small deltas with respect to the module own ideal local reference frame. Thus deltaTransf represents the transformation to go from the misaligned module local coordinates to the ideal module local coordinates. Also note that this -is not- what is in the ALICE alignment framework known as local nor global (see AliMUONGeometryMisAligner::MisAlign)

Definition at line 277 of file AliMUONGeometryMisAligner.cxx.

Referenced by MisAlign(), and SetModuleAngMisAlig().

AliMUONGeometryMisAligner& AliMUONGeometryMisAligner::operator= ( const AliMUONGeometryMisAligner right)
protected

Not implemented.

Referenced by SetModuleAngMisAlig().

void AliMUONGeometryMisAligner::SetAlignmentResolution ( const TClonesArray *  misAlignArray,
Int_t  chId = -1,
Double_t  chResX = -1.,
Double_t  chResY = -1.,
Double_t  deResX = -1.,
Double_t  deResY = -1. 
)

Set alignment resolution to misalign objects to be stored in CDB.

Definition at line 426 of file AliMUONGeometryMisAligner.cxx.

Referenced by MakeMUONFullMisAlignment(), MakeMUONResMisAlignment(), MUONCheckMisAligner(), and SetModuleAngMisAlig().

void AliMUONGeometryMisAligner::SetAngMisAlig ( Double_t  zmean,
Double_t  zwidth,
Double_t  xmean = 0.,
Double_t  xwidth = 0.,
Double_t  ymean = 0.,
Double_t  ywidth = 0. 
)
inline

Set angular displacement.

Definition at line 48 of file AliMUONGeometryMisAligner.h.

void AliMUONGeometryMisAligner::SetCartMisAlig ( Double_t  xmean,
Double_t  xwidth,
Double_t  ymean,
Double_t  ywidth,
Double_t  zmean = 0.,
Double_t  zwidth = 0. 
)
inline

Set cartesian displacement parameters different along x, y.

Definition at line 40 of file AliMUONGeometryMisAligner.h.

void AliMUONGeometryMisAligner::SetCartMisAlig ( Double_t  mean,
Double_t  width 
)
inline

Set cartesian displacement parameters, the same along x, y.

Definition at line 44 of file AliMUONGeometryMisAligner.h.

void AliMUONGeometryMisAligner::SetMaxAngMisAlig ( Double_t  width)
inline

Set angular displacement (Kept for backward compatibility)

Definition at line 56 of file AliMUONGeometryMisAligner.h.

void AliMUONGeometryMisAligner::SetMaxCartMisAlig ( Double_t  width)
inline

Set cartesian displacement (Kept for backward compatibility)

Definition at line 52 of file AliMUONGeometryMisAligner.h.

void AliMUONGeometryMisAligner::SetModuleAngMisAlig ( Double_t  xmean,
Double_t  xwidth,
Double_t  ymean,
Double_t  ywidth,
Double_t  zmean,
Double_t  zwidth 
)
inline

Set module (half chambers) cartesian displacement parameters.

Definition at line 76 of file AliMUONGeometryMisAligner.h.

void AliMUONGeometryMisAligner::SetModuleCartMisAlig ( Double_t  xmean,
Double_t  xwidth,
Double_t  ymean,
Double_t  ywidth,
Double_t  zmean,
Double_t  zwidth 
)
inline

Set module (half chambers) cartesian displacement parameters.

Definition at line 72 of file AliMUONGeometryMisAligner.h.

void AliMUONGeometryMisAligner::SetUseGaus ( Bool_t  usegaus)
inline

Set option for gaussian distribution.

Definition at line 64 of file AliMUONGeometryMisAligner.h.

void AliMUONGeometryMisAligner::SetUseUni ( Bool_t  useuni)
inline

Set option for uniform distribution.

Definition at line 68 of file AliMUONGeometryMisAligner.h.

void AliMUONGeometryMisAligner::SetXYAngMisAligFactor ( Double_t  factor)

Set XY angular misalign factor

Definition at line 165 of file AliMUONGeometryMisAligner.cxx.

Referenced by SetMaxAngMisAlig().

void AliMUONGeometryMisAligner::SetZCartMisAligFactor ( Double_t  factor)

Set XY angular misalign factor

Definition at line 181 of file AliMUONGeometryMisAligner.cxx.

Referenced by SetMaxAngMisAlig().

Member Data Documentation

Double_t AliMUONGeometryMisAligner::fDetElemMisAlig[6][2]
private

Mean and width of the displacements of the detection elements along x,y,z (translations) and about x,y,z (rotations)

Definition at line 98 of file AliMUONGeometryMisAligner.h.

Referenced by AliMUONGeometryMisAligner(), MisAlignDetElem(), SetAlignmentResolution(), SetAngMisAlig(), SetCartMisAlig(), SetMaxAngMisAlig(), SetMaxCartMisAlig(), SetXYAngMisAligFactor(), and SetZCartMisAligFactor().

Double_t AliMUONGeometryMisAligner::fModuleMisAlig[6][2]
private

Mean and width of the displacements of the modules along x,y,z (translations) and about x,y,z (rotations)

Definition at line 99 of file AliMUONGeometryMisAligner.h.

Referenced by AliMUONGeometryMisAligner(), MisAlignModule(), SetAlignmentResolution(), SetModuleAngMisAlig(), and SetModuleCartMisAlig().

Bool_t AliMUONGeometryMisAligner::fUseGaus
private

use gaussian distribution for misaligmnets

Definition at line 97 of file AliMUONGeometryMisAligner.h.

Referenced by MisAlignDetElem(), MisAlignModule(), SetUseGaus(), and SetUseUni().

Bool_t AliMUONGeometryMisAligner::fUseUni
private

use uniform distribution for misaligmnets

Definition at line 96 of file AliMUONGeometryMisAligner.h.

Referenced by MisAlignDetElem(), MisAlignModule(), SetUseGaus(), and SetUseUni().

Double_t AliMUONGeometryMisAligner::fXYAngMisAligFactor
private

factor (<1) to apply to angular misalignment range since range of motion is restricted out of the xy plane

Definition at line 101 of file AliMUONGeometryMisAligner.h.

Referenced by SetXYAngMisAligFactor().

Double_t AliMUONGeometryMisAligner::fZCartMisAligFactor
private

factor (<1) to apply to cartetian misalignment range since range of motion is restricted in z direction

Definition at line 102 of file AliMUONGeometryMisAligner.h.

Referenced by SetZCartMisAligFactor().


The documentation for this class was generated from the following files: