![]() |
AliRoot Core
v5-06-30 (35d6c57)
|
Class for alignment of muon spectrometer. More...
#include <AliMUONAlignment.h>
Public Types | |
enum | { fgNSt = 5, fgNCh = 10, fgNTrkMod = 16, fgNDetElem = 156, fNLocal = 4, fgNParCh = 4, fNGlobal = fgNParCh*fgNDetElem } |
enum | ParameterMask { ParX = 1<<0, ParY = 1<<1, ParZ = 1<<2, ParTZ = 1<<3, ParAllTranslations = ParX|ParY|ParZ, ParAllRotations = ParTZ, ParAll = ParAllTranslations|ParAllRotations } |
global parameter bit set, used for masks More... | |
enum | SidesMask { SideTop = 1<<0, SideLeft = 1<<1, SideBottom = 1<<2, SideRight = 1<<3, SideTopLeft = SideTop|SideLeft, SideTopRight = SideTop|SideRight, SideBottomLeft = SideBottom|SideLeft, SideBottomRight = SideBottom|SideRight, AllSides = SideTop|SideBottom|SideLeft|SideRight } |
detector sides bit set, used for selecting sides in constrains More... | |
Public Member Functions | |
AliMUONAlignment () | |
virtual | ~AliMUONAlignment () |
void | Init (void) |
AliMillePedeRecord * | ProcessTrack (AliMUONTrack *track, Bool_t doAlignment, Double_t weight=1) |
void | ProcessTrack (AliMillePedeRecord *) |
void | InitGlobalParameters (Double_t *par) |
initialize global parameters to a give set of values More... | |
void | GlobalFit (Double_t *parameters, Double_t *errors, Double_t *pulls) |
perform global fit More... | |
void | PrintGlobalParameters (void) const |
print global parameters More... | |
Double_t | GetParError (Int_t iPar) const |
get error on a given parameter More... | |
AliMUONGeometryTransformer * | ReAlign (const AliMUONGeometryTransformer *transformer, const double *misAlignments, Bool_t verbose) |
void | SetAlignmentResolution (const TClonesArray *misAlignArray, Int_t chId, Double_t chResX, Double_t chResY, Double_t deResX, Double_t deResY) |
void | SetRunNumber (Int_t id) |
run number More... | |
void | SetBFieldOn (Bool_t value) |
Set flag for Magnetic field On/Off. More... | |
void | SetAllowedVariation (Int_t iPar, Double_t value) |
void | SetSigmaXY (Double_t sigmaX, Double_t sigmaY) |
void | SetGeometryTransformer (AliMUONGeometryTransformer *transformer) |
Set geometry transformer. More... | |
void | FixAll (UInt_t parameterMask=ParAll) |
void | FixChamber (Int_t iCh, UInt_t parameterMask=ParAll) |
void | FixDetElem (Int_t iDetElemId, UInt_t parameterMask=ParAll) |
void | FixHalfSpectrometer (const Bool_t *bChOnOff, UInt_t sidesMask=AllSides, UInt_t parameterMask=ParAll) |
void | FixParameter (Int_t iPar) |
void | FixParameter (Int_t iDetElem, Int_t iPar) |
void | ReleaseChamber (Int_t iCh, UInt_t parameterMask=ParAll) |
void | ReleaseDetElem (Int_t iDetElemId, UInt_t parameterMask=ParAll) |
void | ReleaseParameter (Int_t iPar) |
void | ReleaseParameter (Int_t iDetElem, Int_t iPar) |
void | GroupChamber (Int_t iCh, UInt_t parameterMask=ParAll) |
void | GroupDetElems (Int_t detElemMin, Int_t detElemMax, UInt_t parameterMask=ParAll) |
void | GroupDetElems (Int_t *detElemList, Int_t nDetElem, UInt_t parameterMask=ParAll) |
void | SetChamberNonLinear (Int_t iCh, UInt_t parameterMask) |
void | SetDetElemNonLinear (Int_t iSt, UInt_t parameterMask) |
void | SetParameterNonLinear (Int_t iPar) |
void | SetParameterNonLinear (Int_t iDetElem, Int_t iPar) |
void | AddConstraints (const Bool_t *bChOnOff, UInt_t parameterMask) |
void | AddConstraints (const Bool_t *bChOnOff, const Bool_t *lVarXYT, UInt_t sidesMask=AllSides) |
Static Public Attributes | |
static const Int_t | fgNDetElemCh [fgNCh] = { 4, 4, 4, 4, 18, 18, 26, 26, 26, 26 } |
Number of detection elements per chamber. More... | |
static const Int_t | fgSNDetElemCh [fgNCh+1] = { 0, 4, 8, 12, 16, 34, 52, 78, 104, 130, 156 } |
Sum of detection elements up to this chamber. More... | |
Private Types | |
enum | { kFixedParId = -1, kFreeParId = kFixedParId-1, kGroupBaseId = -10 } |
degrees of freedom More... | |
Private Member Functions | |
AliMUONAlignment (const AliMUONAlignment &right) | |
Not implemented. More... | |
AliMUONAlignment & | operator= (const AliMUONAlignment &right) |
Not implemented. More... | |
void | SetLocalDerivative (Int_t index, Double_t value) |
Set array of local derivatives. More... | |
void | SetGlobalDerivative (Int_t index, Double_t value) |
Set array of global derivatives. More... | |
void | FillDetElemData (AliMUONVCluster *) |
void | FillRecPointData (AliMUONVCluster *) |
void | FillTrackParamData (AliMUONTrackParam *) |
void | LocalEquationX (void) |
void | LocalEquationY (void) |
TGeoCombiTrans | DeltaTransform (const double *detElemMisAlignment) const |
utilities | |
void | AddConstraint (Double_t *parameters, Double_t value) |
Int_t | GetChamberId (Int_t iDetElemNumber) const |
Bool_t | DetElemIsValid (Int_t iDetElemId) const |
Int_t | GetDetElemNumber (Int_t iDetElemId) const |
TString | GetParameterMaskString (UInt_t parameterMask) const |
TString | GetSidesMaskString (UInt_t sidesMask) const |
Private Attributes | |
Bool_t | fInitialized |
true when initialized More... | |
Int_t | fRunNumber |
current run id More... | |
Bool_t | fBFieldOn |
Flag for Magnetic filed On/Off. More... | |
Double_t | fAllowVar [fgNParCh] |
"Encouraged" variation for degrees of freedom More... | |
Double_t | fStartFac |
Initial value for chi2 cut. More... | |
Double_t | fResCutInitial |
Cut on residual for first iteration. More... | |
Double_t | fResCut |
Cut on residual for other iterations. More... | |
AliMillePede2 * | fMillepede |
Detector independent alignment class. More... | |
AliMUONVCluster * | fCluster |
running AliMUONVCluster More... | |
Int_t | fNStdDev |
Number of standard deviations for chi2 cut. More... | |
Double_t | fClustPos [3] |
Cluster (global) position. More... | |
Double_t | fTrackSlope0 [2] |
Track slope at reference point. More... | |
Double_t | fTrackSlope [2] |
Track slope at current point. More... | |
Double_t | fTrackPos0 [3] |
Track intersection at reference point. More... | |
Double_t | fTrackPos [3] |
Track intersection at current point. More... | |
Double_t | fMeas [2] |
Current measurement (depend on B field On/Off) More... | |
Double_t | fSigma [2] |
Estimated resolution on measurement. More... | |
Int_t | fGlobalParameterStatus [fNGlobal] |
Double_t | fGlobalDerivatives [fNGlobal] |
Array of global derivatives. More... | |
Double_t | fLocalDerivatives [fNLocal] |
Array of local derivatives. More... | |
Int_t | fDetElemNumber |
current detection element number More... | |
AliMillePedeRecord | fTrackRecord |
running Track record More... | |
AliMUONGeometryTransformer * | fTransform |
Geometry transformation. More... | |
TGeoCombiTrans | fGeoCombiTransInverse |
Class for alignment of muon spectrometer.
Alignment class for the ALICE DiMuon spectrometer
MUON specific alignment class which interface to AliMillepede. For each track ProcessTrack calculates the local and global derivatives at each cluster and fill the corresponding local equations. Provide methods for fixing or constraining detection elements for best results.
Definition at line 27 of file AliMUONAlignment.h.
anonymous enum |
Definition at line 39 of file AliMUONAlignment.h.
|
private |
degrees of freedom
Enumerator | |
---|---|
kFixedParId | |
kFreeParId | |
kGroupBaseId |
Definition at line 303 of file AliMUONAlignment.h.
global parameter bit set, used for masks
Enumerator | |
---|---|
ParX | |
ParY | |
ParZ | |
ParTZ | |
ParAllTranslations | |
ParAllRotations | |
ParAll |
Definition at line 71 of file AliMUONAlignment.h.
detector sides bit set, used for selecting sides in constrains
Enumerator | |
---|---|
SideTop | |
SideLeft | |
SideBottom | |
SideRight | |
SideTopLeft | |
SideTopRight | |
SideBottomLeft | |
SideBottomRight | |
AllSides |
Definition at line 85 of file AliMUONAlignment.h.
AliMUONAlignment::AliMUONAlignment | ( | ) |
constructor
Definition at line 88 of file AliMUONAlignment.cxx.
|
virtual |
destructor
Definition at line 132 of file AliMUONAlignment.cxx.
|
private |
Not implemented.
|
private |
Constrain equation defined by par to value
Definition at line 1261 of file AliMUONAlignment.cxx.
Referenced by AddConstraints().
void AliMUONAlignment::AddConstraints | ( | const Bool_t * | bChOnOff, |
UInt_t | parameterMask | ||
) |
Add constraint equations for selected chambers and degrees of freedom
Definition at line 575 of file AliMUONAlignment.cxx.
void AliMUONAlignment::AddConstraints | ( | const Bool_t * | bChOnOff, |
const Bool_t * | lVarXYT, | ||
UInt_t | sidesMask = AllSides |
||
) |
Add constraint equations for selected chambers, degrees of freedom and detector half
Definition at line 608 of file AliMUONAlignment.cxx.
|
private |
Get Delta Transformation, based on alignment parameters
Definition at line 1244 of file AliMUONAlignment.cxx.
Referenced by ReAlign().
|
private |
return true if given detector element is valid (and belongs to muon tracker)
Definition at line 1271 of file AliMUONAlignment.cxx.
Referenced by ReAlign().
|
private |
Get information of current detection element
Definition at line 1100 of file AliMUONAlignment.cxx.
Referenced by ProcessTrack().
|
private |
Get information of current cluster
Definition at line 1120 of file AliMUONAlignment.cxx.
Referenced by ProcessTrack().
|
private |
Get information of current track at current cluster
Definition at line 1131 of file AliMUONAlignment.cxx.
Referenced by ProcessTrack().
void AliMUONAlignment::FixAll | ( | UInt_t | parameterMask = ParAll | ) |
fix parameters matching mask, for all chambers
Definition at line 313 of file AliMUONAlignment.cxx.
void AliMUONAlignment::FixChamber | ( | Int_t | iCh, |
UInt_t | parameterMask = ParAll |
||
) |
fix parameters matching mask, for all detector elements in a given chamber, counting from 1
Definition at line 330 of file AliMUONAlignment.cxx.
Referenced by AliMUONAlignmentTask::LocalInit().
void AliMUONAlignment::FixDetElem | ( | Int_t | iDetElemId, |
UInt_t | parameterMask = ParAll |
||
) |
fix parameters matching mask, for a given detector element, counting from 0
Definition at line 355 of file AliMUONAlignment.cxx.
Referenced by FixHalfSpectrometer().
void AliMUONAlignment::FixHalfSpectrometer | ( | const Bool_t * | bChOnOff, |
UInt_t | sidesMask = AllSides , |
||
UInt_t | parameterMask = ParAll |
||
) |
Fix parameters matching mask for all detectors in selected chambers and selected sides of the spectrometer
Definition at line 367 of file AliMUONAlignment.cxx.
void AliMUONAlignment::FixParameter | ( | Int_t | iPar | ) |
fix a given parameter, counting from 0
Definition at line 417 of file AliMUONAlignment.cxx.
Referenced by FixAll(), FixChamber(), FixDetElem(), and FixParameter().
|
inline |
Definition at line 136 of file AliMUONAlignment.h.
|
private |
get chamber (counting from 1) matching a given detector element id
Definition at line 1297 of file AliMUONAlignment.cxx.
Referenced by AddConstraints(), and FixHalfSpectrometer().
|
private |
get det element number from ID
Definition at line 1280 of file AliMUONAlignment.cxx.
Referenced by FillDetElemData(), FixDetElem(), GroupDetElems(), ReAlign(), ReleaseDetElem(), and SetDetElemNonLinear().
|
private |
Definition at line 1308 of file AliMUONAlignment.cxx.
Referenced by FixAll(), FixChamber(), GroupDetElems(), Init(), and ReleaseChamber().
Double_t AliMUONAlignment::GetParError | ( | Int_t | iPar | ) | const |
get error on a given parameter
Definition at line 876 of file AliMUONAlignment.cxx.
|
private |
Definition at line 1319 of file AliMUONAlignment.cxx.
void AliMUONAlignment::GlobalFit | ( | Double_t * | parameters, |
Double_t * | errors, | ||
Double_t * | pulls | ||
) |
perform global fit
Call global fit; Global parameters are stored in parameters
Definition at line 853 of file AliMUONAlignment.cxx.
Referenced by AliMUONAlignmentTask::FinishTaskOutput().
void AliMUONAlignment::GroupChamber | ( | Int_t | iCh, |
UInt_t | parameterMask = ParAll |
||
) |
group parameters matching mask for all detector elements in a given chamber, counting from 1
Definition at line 479 of file AliMUONAlignment.cxx.
void AliMUONAlignment::GroupDetElems | ( | Int_t | detElemMin, |
Int_t | detElemMax, | ||
UInt_t | parameterMask = ParAll |
||
) |
group parameters matching mask for all detector elements between min and max
Definition at line 492 of file AliMUONAlignment.cxx.
Referenced by GroupChamber().
void AliMUONAlignment::GroupDetElems | ( | Int_t * | detElemList, |
Int_t | nDetElem, | ||
UInt_t | parameterMask = ParAll |
||
) |
group parameters matching mask for all detector elements in list
Definition at line 512 of file AliMUONAlignment.cxx.
void AliMUONAlignment::Init | ( | void | ) |
initialize
initialize millipede must be called after necessary detectors have been fixed, but before constrains are added and before global parameters initial value are set
Definition at line 138 of file AliMUONAlignment.cxx.
Referenced by AliMUONAlignmentTask::LocalInit().
void AliMUONAlignment::InitGlobalParameters | ( | Double_t * | par | ) |
initialize global parameters to a give set of values
Initialize global parameters with par array
Definition at line 814 of file AliMUONAlignment.cxx.
Referenced by AliMUONAlignmentTask::LocalInit().
|
private |
local equation along X
Definition at line 1144 of file AliMUONAlignment.cxx.
Referenced by ProcessTrack().
|
private |
local equation along Y
Definition at line 1198 of file AliMUONAlignment.cxx.
Referenced by ProcessTrack().
|
private |
Not implemented.
void AliMUONAlignment::PrintGlobalParameters | ( | void | ) | const |
print global parameters
Definition at line 872 of file AliMUONAlignment.cxx.
AliMillePedeRecord * AliMUONAlignment::ProcessTrack | ( | AliMUONTrack * | track, |
Bool_t | doAlignment, | ||
Double_t | weight = 1 |
||
) |
process track for alignment minimization
returns the alignment records for this track. They can be stored in some output for later reprocessing.
Definition at line 207 of file AliMUONAlignment.cxx.
Referenced by AliMUONAlignmentTask::UserExec().
void AliMUONAlignment::ProcessTrack | ( | AliMillePedeRecord * | trackRecord | ) |
process track record
Definition at line 294 of file AliMUONAlignment.cxx.
AliMUONGeometryTransformer * AliMUONAlignment::ReAlign | ( | const AliMUONGeometryTransformer * | transformer, |
const double * | misAlignments, | ||
Bool_t | verbose | ||
) |
Returns a new AliMUONGeometryTransformer with the found misalignments applied.
Definition at line 880 of file AliMUONAlignment.cxx.
Referenced by AliMUONAlignmentTask::FinishTaskOutput().
void AliMUONAlignment::ReleaseChamber | ( | Int_t | iCh, |
UInt_t | parameterMask = ParAll |
||
) |
release parameters matching mask, for all detector elements in a given chamber, counting from 1
Definition at line 430 of file AliMUONAlignment.cxx.
void AliMUONAlignment::ReleaseDetElem | ( | Int_t | iDetElemId, |
UInt_t | parameterMask = ParAll |
||
) |
release parameters matching mask, for a given detector element, counting from 0
Definition at line 455 of file AliMUONAlignment.cxx.
void AliMUONAlignment::ReleaseParameter | ( | Int_t | iPar | ) |
release a given parameter, counting from 0
Definition at line 467 of file AliMUONAlignment.cxx.
Referenced by ReleaseChamber(), ReleaseDetElem(), and ReleaseParameter().
|
inline |
Definition at line 150 of file AliMUONAlignment.h.
void AliMUONAlignment::SetAlignmentResolution | ( | const TClonesArray * | misAlignArray, |
Int_t | chId, | ||
Double_t | chResX, | ||
Double_t | chResY, | ||
Double_t | deResX, | ||
Double_t | deResY | ||
) |
Set alignment resolution to misalign objects to be stored in CDB if rChId is > 0 set parameters for this chamber only, counting from 1
Definition at line 1037 of file AliMUONAlignment.cxx.
Referenced by AliMUONAlignmentTask::FinishTaskOutput().
void AliMUONAlignment::SetAllowedVariation | ( | Int_t | iPar, |
Double_t | value | ||
) |
"Encouraged" variation for degrees of freedom
Definition at line 824 of file AliMUONAlignment.cxx.
|
inline |
Set flag for Magnetic field On/Off.
Definition at line 110 of file AliMUONAlignment.h.
Referenced by AliMUONAlignmentTask::LocalInit(), and AliMUONAlignmentTask::NotifyRun().
void AliMUONAlignment::SetChamberNonLinear | ( | Int_t | iCh, |
UInt_t | parameterMask | ||
) |
Set parameters matching mask as non linear, for all detector elements in a given chamber, counting from 1
Definition at line 534 of file AliMUONAlignment.cxx.
void AliMUONAlignment::SetDetElemNonLinear | ( | Int_t | iSt, |
UInt_t | parameterMask | ||
) |
Set parameters matching mask as non linear, for a given detector element, counting from 0
Definition at line 552 of file AliMUONAlignment.cxx.
|
inline |
Set geometry transformer.
Definition at line 118 of file AliMUONAlignment.h.
Referenced by AliMUONAlignmentTask::NotifyRun().
|
inlineprivate |
Set array of global derivatives.
Definition at line 218 of file AliMUONAlignment.h.
Referenced by LocalEquationX(), and LocalEquationY().
|
inlineprivate |
Set array of local derivatives.
Definition at line 214 of file AliMUONAlignment.h.
Referenced by LocalEquationX(), and LocalEquationY().
void AliMUONAlignment::SetParameterNonLinear | ( | Int_t | iPar | ) |
Set nonlinear flag for parameter iPar
Definition at line 564 of file AliMUONAlignment.cxx.
Referenced by SetChamberNonLinear(), SetDetElemNonLinear(), and SetParameterNonLinear().
|
inline |
Definition at line 175 of file AliMUONAlignment.h.
|
inline |
run number
Definition at line 106 of file AliMUONAlignment.h.
Referenced by AliMUONAlignmentTask::NotifyRun().
void AliMUONAlignment::SetSigmaXY | ( | Double_t | sigmaX, |
Double_t | sigmaY | ||
) |
Set expected measurement resolution
Definition at line 839 of file AliMUONAlignment.cxx.
Referenced by AliMUONAlignmentTask::LocalInit().
|
private |
"Encouraged" variation for degrees of freedom
Definition at line 260 of file AliMUONAlignment.h.
Referenced by AliMUONAlignment(), Init(), and SetAllowedVariation().
|
private |
Flag for Magnetic filed On/Off.
Definition at line 257 of file AliMUONAlignment.h.
Referenced by LocalEquationX(), LocalEquationY(), ProcessTrack(), and SetBFieldOn().
|
private |
running AliMUONVCluster
Definition at line 276 of file AliMUONAlignment.h.
|
private |
Cluster (global) position.
Definition at line 282 of file AliMUONAlignment.h.
Referenced by FillRecPointData(), and ProcessTrack().
|
private |
current detection element number
Definition at line 321 of file AliMUONAlignment.h.
Referenced by FillDetElemData(), LocalEquationX(), and LocalEquationY().
|
private |
Definition at line 328 of file AliMUONAlignment.h.
Referenced by FillDetElemData(), LocalEquationX(), LocalEquationY(), and ProcessTrack().
|
private |
Array of global derivatives.
Definition at line 315 of file AliMUONAlignment.h.
Referenced by AliMUONAlignment(), LocalEquationX(), LocalEquationY(), and SetGlobalDerivative().
|
private |
Array of effective degrees of freedom it is used to fix detectors, parameters, etc.
Definition at line 312 of file AliMUONAlignment.h.
Referenced by AliMUONAlignment(), FixParameter(), GroupDetElems(), Init(), and ReleaseParameter().
|
static |
Number of detection elements per chamber.
Definition at line 65 of file AliMUONAlignment.h.
Referenced by DetElemIsValid(), AliMUONAlignmentTask::FinishTaskOutput(), GetDetElemNumber(), and GroupChamber().
|
static |
Sum of detection elements up to this chamber.
Definition at line 68 of file AliMUONAlignment.h.
Referenced by AddConstraints(), FixChamber(), FixHalfSpectrometer(), GetChamberId(), GetDetElemNumber(), ReleaseChamber(), and SetChamberNonLinear().
|
private |
true when initialized
Definition at line 251 of file AliMUONAlignment.h.
Referenced by AddConstraint(), FixParameter(), GroupDetElems(), Init(), InitGlobalParameters(), ReleaseParameter(), SetAllowedVariation(), and SetParameterNonLinear().
|
private |
Array of local derivatives.
Definition at line 318 of file AliMUONAlignment.h.
Referenced by AliMUONAlignment(), LocalEquationX(), LocalEquationY(), and SetLocalDerivative().
|
private |
Current measurement (depend on B field On/Off)
Definition at line 297 of file AliMUONAlignment.h.
Referenced by LocalEquationX(), LocalEquationY(), and ProcessTrack().
|
private |
Detector independent alignment class.
Definition at line 273 of file AliMUONAlignment.h.
Referenced by AddConstraint(), AliMUONAlignment(), GetParError(), GlobalFit(), Init(), InitGlobalParameters(), LocalEquationX(), LocalEquationY(), PrintGlobalParameters(), ProcessTrack(), and SetParameterNonLinear().
|
private |
Number of standard deviations for chi2 cut.
Definition at line 279 of file AliMUONAlignment.h.
Referenced by Init().
|
private |
Cut on residual for other iterations.
Definition at line 270 of file AliMUONAlignment.h.
Referenced by Init().
|
private |
Cut on residual for first iteration.
Definition at line 267 of file AliMUONAlignment.h.
Referenced by Init().
|
private |
current run id
Definition at line 254 of file AliMUONAlignment.h.
Referenced by ProcessTrack(), and SetRunNumber().
|
private |
Estimated resolution on measurement.
Definition at line 300 of file AliMUONAlignment.h.
Referenced by AliMUONAlignment(), LocalEquationX(), LocalEquationY(), and SetSigmaXY().
|
private |
Initial value for chi2 cut.
if > 1 Iterations in AliMillepede are turned on
Definition at line 264 of file AliMUONAlignment.h.
Referenced by Init().
|
private |
Track intersection at current point.
Definition at line 294 of file AliMUONAlignment.h.
Referenced by FillTrackParamData(), LocalEquationX(), LocalEquationY(), and ProcessTrack().
|
private |
Track intersection at reference point.
Definition at line 291 of file AliMUONAlignment.h.
Referenced by LocalEquationX(), LocalEquationY(), and ProcessTrack().
|
private |
running Track record
Definition at line 324 of file AliMUONAlignment.h.
Referenced by ProcessTrack().
|
private |
Track slope at current point.
Definition at line 288 of file AliMUONAlignment.h.
Referenced by FillTrackParamData(), LocalEquationX(), LocalEquationY(), and ProcessTrack().
|
private |
Track slope at reference point.
Definition at line 285 of file AliMUONAlignment.h.
Referenced by LocalEquationX(), LocalEquationY(), and ProcessTrack().
|
private |
Geometry transformation.
Definition at line 327 of file AliMUONAlignment.h.
Referenced by AddConstraints(), FillDetElemData(), and SetGeometryTransformer().