![]() |
AliRoot Core
edcc906 (edcc906)
|
Class for misalignment of geometry transformations. More...
#include <AliMUONGeometryMisAligner.h>
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 () |
AliMUONGeometryTransformer * | MisAlign (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... | |
AliMUONGeometryMisAligner & | operator= (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... | |
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.
Definition at line 23 of file AliMUONGeometryMisAligner.h.
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().
|
virtual |
Destructor
Definition at line 157 of file AliMUONGeometryMisAligner.cxx.
|
protected |
Not implemented.
|
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().
|
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().
|
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().
|
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().
|
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().
|
inline |
Set angular displacement.
Definition at line 48 of file AliMUONGeometryMisAligner.h.
|
inline |
Set cartesian displacement parameters different along x, y.
Definition at line 40 of file AliMUONGeometryMisAligner.h.
|
inline |
Set cartesian displacement parameters, the same along x, y.
Definition at line 44 of file AliMUONGeometryMisAligner.h.
|
inline |
Set angular displacement (Kept for backward compatibility)
Definition at line 56 of file AliMUONGeometryMisAligner.h.
|
inline |
Set cartesian displacement (Kept for backward compatibility)
Definition at line 52 of file AliMUONGeometryMisAligner.h.
|
inline |
Set module (half chambers) cartesian displacement parameters.
Definition at line 76 of file AliMUONGeometryMisAligner.h.
|
inline |
Set module (half chambers) cartesian displacement parameters.
Definition at line 72 of file AliMUONGeometryMisAligner.h.
|
inline |
Set option for gaussian distribution.
Definition at line 64 of file AliMUONGeometryMisAligner.h.
|
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().
|
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().
|
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().
|
private |
use gaussian distribution for misaligmnets
Definition at line 97 of file AliMUONGeometryMisAligner.h.
Referenced by MisAlignDetElem(), MisAlignModule(), SetUseGaus(), and SetUseUni().
|
private |
use uniform distribution for misaligmnets
Definition at line 96 of file AliMUONGeometryMisAligner.h.
Referenced by MisAlignDetElem(), MisAlignModule(), SetUseGaus(), and SetUseUni().
|
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().
|
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().