ROOT logo
AliRoot » ITS » AliITSAlignMille2

class AliITSAlignMille2: public TObject


  Interface to AliMillePede2 alignment class for the ALICE ITS detector

  ITS specific alignment class which interface to AliMillepede.
  For each track ProcessTrack calculates the local and global derivatives
  at each hit and fill the corresponding local equations. Provide methods for
  fixing or constraning detection elements for best results.

  author M. Lunardon (thanks to J. Castillo), ruben.shahoyan@cern.ch

Function Members (Methods)

public:
AliITSAlignMille2(const Char_t* configFilename = "AliITSAlignMille.conf", TList* userInfo = 0)
virtual~AliITSAlignMille2()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
voidApplyGaussianConstraint(const AliITSAlignMille2ConstrArray* cstr)
voidApplyPostConstraints()
voidApplyPreConstraints()
virtual voidTObject::Browse(TBrowser* b)
Int_tCalcDerivatives(Int_t paridx, Bool_t islpar)
Int_tCalcIntersectionPoint(const Double_t* lpar, const Double_t* gpar)
Int_tCheckCurrentTrack()
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
voidConstrainHelixFitCurv(Int_t q = 0, Double_t crv = -1, Double_t crverr = -1)
voidConstrainHelixFitPT(Int_t q = 0, Double_t pt = -1, Double_t err = -1)
voidConstrainLocal(const Char_t* name, Double_t* parcf, Int_t npar, Double_t val, Double_t err)
voidConstrainModuleSubUnitsMean(Int_t idm, Double_t val = 0, UInt_t pattern = 0xff)
voidConstrainModuleSubUnitsMedian(Int_t idm, Double_t val = 0, UInt_t pattern = 0xff)
voidConstrainOrphansMean(Double_t val = 0, UInt_t pattern = 0xff)
voidConstrainOrphansMedian(Double_t val = 0, UInt_t pattern = 0xff)
voidConvertParamsToGlobal() const
voidConvertParamsToLocal() const
virtual voidTObject::Copy(TObject& object) const
TClonesArray*CreateDeltas()
AliITSresponseSDD*CreateSDDResponse()
AliITSAlignMille2Module*CreateVertexModule()
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
voidFetchCluster(int ip)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Int_tFitTrack()
Bool_tFixedOrphans() const
voidFixParameter(Int_t param, Double_t value)
Double_tGetBField() const
AliCDBEntry*GetCDBEntry(const char* path)
Int_tGetCheckDiamondPoint() const
AliITSAlignMille2Constraint*GetConstraint(Int_t i) const
AliITSAlignMille2Constraint*GetConstraint(const char* name) const
AliAlignObjParams*GetConstrRefObject(const Char_t* symname) const
Float_t*GetCovIScale() const
Float_tGetCovIScale(Int_t ip) const
AliTrackPoint*GetCurrentCluster() const
Int_tGetCurrentLayer() const
AliITSAlignMille2Module*GetCurrentModule() const
TGeoHMatrix*GetCurrentModuleHMatrix() const
Int_tGetCurrentModuleIndex() const
Int_tGetCurrentModuleInternalIndex() const
Double_t*GetCurrentModuleTranslation() const
AliTrackPointArray*GetCurrentTrack() const
Int_tGetDataType() const
virtual Option_t*TObject::GetDrawOption() const
Double_tGetDriftSpeed(Int_t id) const
Double_tGetDriftSpeed0(Int_t id) const
Double_tGetDriftTime0(Int_t id) const
static Long_tTObject::GetDtorOnly()
Int_tGetExtraClustersMode() const
Bool_tGetFixCurvIfConstraned() const
const Char_t*GetGeometryPath()
Double_tGetGlobalDif(int par, int coor) const
Double_t*GetGlobalIntersectionPoint() const
Double_tGetHelixContraintCharge() const
Double_tGetHelixContraintPT() const
Double_tGetHelixContraintPTErr() const
virtual const char*TObject::GetIconName() const
AliITSCorrectSDDPoints*GetIniCorrMapSDD() const
static AliITSAlignMille2*GetInstance()
Double_tGetLocalDif(int par, int coor) const
Double_t*GetLocalInitParam() const
Double_t*GetLocalInitParEr() const
Double_t*GetLocalIntersectionPoint() const
Double_tGetMeasGlo(Int_t dim) const
Double_t*GetMeasLoc() const
Double_tGetMeasLoc(Int_t dim) const
AliITSAlignMille2Module*GetMilleModule(Int_t id) const
AliITSAlignMille2Module*GetMilleModuleBySymName(const Char_t* symname) const
AliITSAlignMille2Module*GetMilleModuleByVID(UShort_t voluid) const
AliITSAlignMille2Module*GetMilleModuleIfContained(const Char_t* symname) const
AliMillePede2*GetMillePede() const
Int_tGetMilleVersion() const
Int_tGetMinPointsPerSensor() const
Int_tGetModuleIndex(const Char_t* symname)
Int_tGetModuleIndex(UShort_t voluid)
UShort_tGetModuleVolumeID(const Char_t* symname)
UShort_tGetModuleVolumeID(Int_t index)
virtual const char*TObject::GetName() const
Int_tGetNConstraints() const
Int_tGetNModules() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
AliAlignObjParams*GetPrealignedObject(const Char_t* symname) const
TClonesArray*GetPreAlignmentDeltas() const
const Char_t*GetPreAlignmentPath()
Int_tGetPreAlignmentQualityFactor(Int_t index) const
AliITSCorrectSDDPoints*GetPreCorrMapSDD() const
Int_tGetRequestedModID(UShort_t voluid) const
AliTrackFitterRieman*GetRiemanFitter() const
Int_tGetRunID() const
AliITSresponseSDD*GetSDDInitResp() const
TObjArray*GetSDDInitVDrift() const
AliITSresponseSDD*GetSDDPrecalResp() const
TGeoHMatrix*GetSensorCurrMatrixSID(Int_t sid) const
TGeoHMatrix*GetSensorCurrMatrixVID(Int_t vid) const
TGeoHMatrix*GetSensorOrigMatrixSID(Int_t sid) const
TGeoHMatrix*GetSensorOrigMatrixVID(Int_t vid) const
Double_t*GetSigmaLoc() const
AliITSAlignMille2Module*GetSuperModule(Int_t id) const
Double_tGetTDriftSDD() const
Int_tGetTemporaryExcludedModule() const
virtual const char*TObject::GetTitle() const
Int_tGetTotBadLocEqPoints() const
AliITSTPArrayFit*GetTPAFitter() const
virtual UInt_tTObject::GetUniqueID() const
Bool_tGetUseGlobalDelta() const
Double_tGetVDriftSDD() const
Double_tGetWeightPt() const
Int_tGlobalFit()
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
Int_tInitModuleParams()
Bool_tInitRiemanFit()
voidInitTrackParams(int meth = 1)
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tIsConfigured() const
Bool_tIsConstraintWrtRef() const
Int_tIsContained(UShort_t voluid) const
Bool_tIsCovIScaleTouched() const
Int_tIsDefined(UShort_t voluid) const
Bool_tIsDiamondUsed() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
Bool_tIsFieldON() const
virtual Bool_tTObject::IsFolder() const
Bool_tIsLocalYError() const
Bool_tTObject::IsOnHeap() const
Bool_tIsParFamilyFree(const AliITSAlignMille2Module* mod, Int_t par, Int_t depth = 999) const
Bool_tIsParModConstrained(const AliITSAlignMille2Module* mod, Int_t par, Bool_t& meanmed, Bool_t& gaussian) const
Bool_tIsParModFamilyVaried(const AliITSAlignMille2Module* mod, Int_t par, Int_t depth = 999) const
Bool_tIsSDDVDCorrMult() const
virtual Bool_tTObject::IsSortable() const
Int_tIsSymContained(const Char_t* name) const
Int_tIsSymDefined(const Char_t* name) const
Bool_tIsTypeCollision() const
Bool_tIsTypeCosmics() const
Bool_tIsVertexSet() const
Bool_tIsVertexUsed() const
Int_tIsVIDContained(UShort_t voluid) const
Int_tIsVIDDefined(UShort_t voluid) const
static Bool_tIsZero(Double_t v, Double_t threshold = 1e-15)
Bool_tTObject::IsZombie() const
voidJacobianPosGloLoc(int locid, double* jacobian)
Int_tLoadPreSDDCalib()
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
AliTrackPointArray*PrepareTrack(const AliTrackPointArray* track)
virtual voidPrint(Option_t*) const
voidPrintCurrentModuleInfo() const
voidPrintGlobalParameters()
voidProcessSDDPointInfo(const AliTrackPoint* pnt, Int_t sID, Int_t pntID)
Int_tProcessTrack(const AliTrackPointArray* track, Double_t wgh = 1.0)
Bool_tPseudoParentsAllowed() const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidRemoveHelixFitConstraint()
voidRemoveVertexConstraint()
voidTObject::ResetBit(UInt_t f)
voidResetCovIScale()
static voidResetWordBit(UInt_t word, Int_t bitID)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidSetBField(Double_t b = 0)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetBug(Int_t bug)
voidSetCheckDiamondPoint(Int_t m = kDiamondCheckIfPrompt)
voidSetCovIScale(Int_t ip, Float_t v = -1.)
voidSetCovIScale(Float_t* v, Int_t np)
voidSetCurrentCluster(const AliTrackPoint& atp)
voidSetCurrentModule(Int_t id)
voidSetCurrentTrack(const AliTrackPointArray* atp)
voidSetDataType(Int_t tp = kCosmics)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetExtraClustersMode(Int_t mode)
voidSetFixCurvIfConstraned(Bool_t v = kTRUE)
voidSetLocalInitParams(const Double_t* par)
voidSetMilleVersion(Int_t m1)
voidSetMinNPtsPerTrack(Int_t pts = 3)
voidSetMinPointsPerSensor(Int_t n)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetRequiredPoint(Char_t* where, Int_t ndet, Int_t updw, Int_t nreqpts, Int_t runtype = -1)
voidSetRunID(int run)
voidSetSDDVDCorrMult(Bool_t v = kTRUE)
voidSetTemporaryExcludedModule(Int_t index)
voidSetTypeCollision()
voidSetTypeCosmics()
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetUseLocalYErrors(Bool_t v = kTRUE)
voidSetVertexConstraint(const AliESDVertex* vtx)
voidSetVertexSet(Bool_t v)
voidSetWeightPt(Double_t w = 1)
static voidSetWordBit(UInt_t word, Int_t bitID)
virtual voidShowMembers(TMemberInspector&)
AliTrackPointArray*SortTrack(const AliTrackPointArray* atp)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
static Bool_tTestWordBit(UInt_t word, Int_t bitID)
voidTieSDDVDriftsLR(AliITSAlignMille2Module* mod)
voidTouchCovIScale(Bool_t v = kTRUE)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
AliITSAlignMille2(const AliITSAlignMille2& rhs)
voidAddConstraint(Double_t* factor, Double_t value, Double_t sigma = 0)
Int_tAddLocalEquation(AliITSAlignMille2::Mille2Data& m)
Int_tAddLocalEquationTPA(AliITSAlignMille2::Mille2Data& m)
Int_tApplyToGeometry()
voidBuildHierarchy()
Int_tCacheMatricesCurr()
Int_tCacheMatricesOrig()
Int_tCheckConfigRecords(FILE* stream)
voidConstrainModuleSubUnits(Int_t idm, Double_t val = 0, UInt_t pattern = 0xff)
voidConstrainOrphans(Double_t val = 0, UInt_t pattern = 0xff)
voidConvertDeltas()
AliAlignObjParams*ConvFindDelta(const TClonesArray* arrDelta, const TString& algname) const
Bool_tConvIsJParentOfI(const TGeoHMatrix* matI, const TGeoHMatrix* matJ) const
voidConvSortHierarchically(TObjArray& matArr)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
TObjArray*GetConfigRecord(FILE* stream, TString& recTitle, TString& recOpt, Bool_t rew)
Int_tGetPathFromUserInfo(const TList* cdbList, const char* calib, TString& path, Int_t useBit)
voidInit()
voidInitGlobalParameters(Double_t* par)
Int_tLoadConfig(const Char_t* cfile = "AliITSAlignMille.conf")
Int_tLoadDeltas(TString& path, TClonesArray*& arr)
Int_tLoadDiamond(TString& path)
Int_tLoadGeometry(TString& path)
Int_tLoadSDDCorrMap(TString& path, AliITSCorrectSDDPoints*& map)
Int_tLoadSDDResponse(TString& path, AliITSresponseSDD*& resp)
Int_tLoadSDDVDrift(TString& path, TObjArray*& arr)
Int_tLoadSuperModuleFile(const Char_t* cfile = "ITSMilleSuperModules.root")
voidTObject::MakeZombie()
AliITSAlignMille2&operator=(const AliITSAlignMille2& rhs)
voidPostConstrainModuleSubUnits(Int_t type, Int_t idm, Double_t val, UInt_t pattern)
voidPostConstrainOrphans(Int_t type, Double_t val, UInt_t pattern)
Int_tProcessUserInfo(TList* userInfo = 0)
Int_tReloadInitCalib()
Int_tReloadInitCalib(TList* userInfo)
voidResetLocalEquation()
voidSetAllowPseudoParents(Bool_t v = kTRUE)
Int_tSetConstraintWrtRef(const char* reffname)
voidSetGeometryPath(const Char_t* filename = "geometry.root")
Bool_tSetGlobalDerivative(Int_t index, Double_t value)
voidSetInitTrackParamsMeth(Int_t meth = 1)
Bool_tSetLocalDerivative(Int_t index, Double_t value)
voidSetLocalEquations(const AliITSAlignMille2::Mille2Data* marr, Int_t neq)
voidSetUseGlobalDelta(Bool_t v = kTRUE)

Data Members

public:
enum { kX
kY
kZ
kCosmics
kCollision
kNDataType
kNLocal
kMaxPoints
kNParChGeom
kNParCh
kMaxITSSensID
kVtxSensID
kMaxITSSensVID
kVtxSensVID
kMinITSSupeModuleID
kSDDoffsID
kNSDDmod
kCovIScaleBit
kSameInitDeltasBit
kSameInitSDDRespBit
kSameInitSDDVDriftBit
kSameDiamondBit
kSameInitSDDCorrMapBit
kSameInitGeomBit
kDiamondIgnore
kDiamondCheckIfPrompt
kDiamondUse
kOCDBDefaultPath
kOCDBSpecificPath
kGeomFile
kSuperModileFile
kConstrRefFile
kPreDeltaFile
kPreCalSDDFile
kPreVDriftSDDFile
kPreCorrMapSDDFile
kInitCorrMapSDDFile
kInitCalSDDFile
kInitVDriftSDDFile
kInitDeltaFile
kInitGeomFile
kGlobalDeltas
kConstrLocal
kModVolID
kModIndex
kPseudoParents
kTrackFitMethod
kMinPntTrack
kNStDev
kResCutInit
kResCutOther
kLocalSigFactor
kStartFactor
kFinalFactor
kBField
kSparseMatrix
kRequirePoint
kConstrOrphans
kConstrSubunits
kApplyConstr
kExtraClustersMode
kTPAFitter
kUseLocalYErr
kMinPointsSens
kSDDVDCorrMult
kWeightPt
kUseDiamond
kCorrectDiamond
kUseVertex
kSameSDDT0
kNKeyWords
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Bool_tfAllowPseudoParentsFor simple constraints don't involve parents into the fit
Double_tfBFieldvalue of magnetic field
Bool_tfBOnmagentic field ON
Int_tfBug/ tag for temporary bug correction
TObjArrayfCacheMatrixCurrcach for prealigned geom matrices
TObjArrayfCacheMatrixOrigcach for original geom matrices
Int_tfCheckDiamondPointkDiamondIgnore: ignore in this event, kDiamondCheckIfPrompt: verify if track is prompt, kDiamondUse: use w/o verification
TArrayDfClusGloglobal coordinates of the clusters
TArrayDfClusLoclocal coordinates of the clusters
TArrayDfClusSigLoclocal cov matrix of the clusters
AliTrackPointfClustercurrent cluster
Int_tfConstrChargeoptional constraint on charge of Helix track (0 - no constraint)
Double_tfConstrPToptional PT constraint for helix (abs value)
Double_tfConstrPTErrerror on this constraint (0 - exact)
TClonesArray*fConstrRefarray of refererence deltas with respect to which the constraint are defined (survey?)
TStringfConstrRefPathfile with prealigned objects wrt which constraints are defined
TObjArrayfConstraintslist of constraints
TObjArrayfConvAlgMatOldarray to keep matrices of alignables for deltas conversion
Bool_tfConvertPreDeltaswhen the prealignment deltas come from UserInfo, convert them from UserInfo geometry to target one
Double_tfCorrDiamond[3]diamond correction
Float_tfCovIScale[20]optional scaling for inv.cov matrix (debiasing). MANAGED BY THE USER EXTERNALLY
AliITSAlignMille2Module*fCurrentModuleCurrent SuperModule index
Int_tfCurrentSensIDsensor index for current cluster
Bool_tfCurvFitWasConstrainedflag that the last fit had constrained curvature
Int_tfDataTypeis this cosmics or collision processing?
Double_tfDerivativeGlo[9][3]XYZ deriv. over global params
Double_tfDerivativeLoc[5][3]XYZ deriv. over local params
AliTrackPointfDiamondoptional constraint on the vertex
AliTrackPointfDiamondIconstraint on the vertex with inverted error matrix
Int_tfDiamondModIDid of the fake diamond module
TStringfDiamondPathfile with diamond constraint
Int_tfDiamondPointIDID of the diamond point in the track
Double_tfDriftSpeed[50]temporary array for corrected drift speed of SDD alitrackpoints
Double_tfDriftSpeed0[50]temporary array for original drift speed of SDD alitrackpoints
Double_tfDriftTime0[50]temporary array for drift time 0's used for SDD alitrackpoints
Double_tfExtClusterPar[9]array to store the parameters of the externally imposed cluster
Int_tfExtraClustersMode/ 1=remove random / 2=remove internal / 10=use only tracks with xcl
Double_tfFinalFacFinal factor for chi2 cut
Bool_tfFixCurvIfConstranedwhen fit curv. was constrained, don't pass it as a free param to MP2
TGeoManager*fGeoManagerpointer to Alice geomanager
TStringfGeometryPathGeometry file name
Double_t*fGlobalDerivativesArray of global derivatives
AliITSCorrectSDDPoints*fIniCorrMapSDDSDD initial correction map
TStringfIniDeltaPathwhere to take the deltas used to produce the points
TStringfIniGeomPathwhere to take the ideal geometry used to produce the points
AliITSresponseSDD*fIniRespSDDarray of SDD t0/vdrift calib params used to create the track points
TStringfIniSDDCorrMapPathinitial SDD corr.map file name
TStringfIniSDDRespPathwhere to take the initial SDD response used to produce the points
TStringfIniSDDVDriftPathinitial SDD vdrift file name
Int_tfIniTrackParamsMethmethod for track fit
TList*fIniUserInfoinitial user info (validity is not guaranteed after initialization)
TObjArray*fIniVDriftSDDarray of AliITSDriftSpeedArraySDD objects used for original reco
Bool_tfIsConfiguredflag for loaded config file
Bool_tfIsMilleInitFlag for initialization
Bool_tfIsSDDVDriftMultuse multiplicative correction for SDD vdrift
Double_tfLocalDerivatives[5]Array of local deriv.
Double_tfLocalInitParEr[5][5]Array with inital values for local parameters for current track
Double_tfLocalInitParam[5]Array with inital values for local parameters for current track
Double_t*fMeasGlocurrent point glob. coord (AliTrackPoint)
Double_t*fMeasLoccurrent point local coordinates (the original ones)
TObjArrayfMilleModule/ array of super modules to be aligned
Int_tfMilleVersion/ tag for backward compatibility
AliMillePede2*fMillepedeDetector independent alignment class
Int_tfMinNPtsPerTrackmin number of points per track to accept it
Int_tfMinPntPerSensmin number of points per module to vary it
Double_tfModuleInitParam[9]Array with inital values for current module parameters (init geometry)
Int_tfNGlobalNumber of global parameters
Int_tfNLocalNumber of local parameters
Int_tfNModulesnumber of defined modules from config file
Int_tfNReqDet[2][3]number of points required in Detector[n]
Int_tfNReqDetDown[2][3]number of points required in Detector[n] with Y<0
Int_tfNReqDetUp[2][3]number of points required in Detector[n] with Y>0
Int_tfNReqLay[2][6]number of points required in layer[n]
Int_tfNReqLayDown[2][6]number of points required in layer[n] with Y<0
Int_tfNReqLayUp[2][6]number of points required in layer[n] with Y>0
Int_tfNStdDevNumber of standard deviations for chi2 cut
Int_tfNSuperModules/ number of custom supermodules in SM file
Double_tfPintGlo[3]track/module intersection point in global coordinates
Double_tfPintLoc[3]track/module intersection point in local coordinates
Double_tfPintLoc0[3]track/module intersection point in local coordinates (before variation)
TArraySfPreAlignQFprealignment flags (not used?)
TStringfPreCalSDDRespPathprecalibration SDD response file name
AliITSCorrectSDDPoints*fPreCorrMapSDDSDD precalibration correction map
TStringfPreDeltaPathfile with prealigned objects
AliITSresponseSDD*fPreRespSDDarray of SDD t0/vdrift calib params
TStringfPreSDDCorrMapPathprecalibration SDD corr.map file name
TStringfPreSDDVDriftPathprecalibration SDD vdrift file name
TObjArray*fPreVDriftSDDarray of AliITSDriftSpeedArraySDD objects to be used as a starting point instead of fIniVDriftSDD
TClonesArray*fPrealignmentarray of prealignment global deltas
Bool_tfRequirePoints[2]required points in specific layers
Double_tfResCutCut on residual for other iterations
Double_tfResCutInitialCut on residual for first iteration
AliTrackFitterRieman*fRiemanriemann fitter for helices
Int_tfRunIDcurrent runID
AliITSsegmentationSDD*fSegmentationSDDextraction of SDD segmentation params
Double_tfSigmaFactor[3]multiplicative factor for cluster sigmaX,Y,Z
Double_t*fSigmaLocstdev current point
Double_tfStartFacInitial factor for chi2 cut
TObjArrayfSuperModule/ array of super modules defined in supermodule file
AliITSTPArrayFit*fTPAFitterTPArrayFitter
Int_tfTempExcludedModule/ single module temporary excluded from initial fit
Int_tfTotBadLocEqPointstotal number of reject points because of bad EqLoc
AliTrackPointArray*fTrackpointer to current track
TObjArrayfTrackBuffbuffer for tracks of min length
Double_tfTrackWeightweight given by the user to current track
Bool_tfUseDiamonduse diamond as a vertex constraint
Bool_tfUseGlobalDeltaintetpret deltas as global
Bool_tfUseLocalYErruse local Yerror due to the sensor thickness
Bool_tfUsePreAlignmentstart from prealigned setup
Bool_tfUseVertexuse vertex for constraint
UInt_tfUserProvidedsettings which user provided: not to update from the UserUnfo
Bool_tfVertexSetvertex is set for current track
Double_tfWeightPtweight track equations by pT in this power
static AliITSAlignMille2*fgInstanceglobal pointer on itself
static Int_tfgInstanceIDglobal counter of the instances
static const Char_t*fgkRecKeys[2147483647]keywords for config file records
static const Char_tfgkXYZ[2147483647]XYZ labels

Class Charts

Inheritance Chart:
TObject
AliITSAlignMille2

Function documentation

AliITSAlignMille2(const Char_t* configFilename = "AliITSAlignMille.conf", TList* userInfo = 0)





 main constructor that takes input from configuration file
~AliITSAlignMille2()
 Destructor
TObjArray* GetConfigRecord(FILE* stream, TString& recTitle, TString& recOpt, Bool_t rew)
 read new record from config file
Int_t CheckConfigRecords(FILE* stream)
 check the correctness of the record
Int_t LoadConfig(const Char_t* cfile = "AliITSAlignMille.conf")
 return 0 if success
        1 if error in module index or voluid

void BuildHierarchy()
 build the hieararhy of the modules to align

void SetCurrentModule(Int_t id)
 set the current supermodule
 new meaning
void SetRequiredPoint(Char_t* where, Int_t ndet, Int_t updw, Int_t nreqpts, Int_t runtype = -1)
 set minimum number of points in specific detector or layer
 where = LAYER or DETECTOR
 ndet = detector number: 1-6 for LAYER and 1-3 for DETECTOR (SPD=1, SDD=2, SSD=3)
 updw = 1 for Y>0, -1 for Y<0, 0 if not specified
 nreqpts = minimum number of points of that type
Int_t GetModuleIndex(const Char_t* symname)
 index from symname
Int_t GetModuleIndex(UShort_t voluid)
 index from volume ID
UShort_t GetModuleVolumeID(const Char_t* symname)
 volume ID from symname
 works for sensitive volumes only
UShort_t GetModuleVolumeID(Int_t index)
 volume ID from index
Int_t LoadGeometry(TString& path)
 initialize ideal geometry
Int_t SetConstraintWrtRef(const char* reffname)
 Load the global deltas from this file. The local gaussian constraints on some modules
 will be defined with respect to the deltas from this reference file, converted to local
 delta format. Note: conversion to local format requires reloading the geometry!

void Init()
 perform global initialization

void AddConstraint(Double_t* factor, Double_t value, Double_t sigma = 0)
 Constrain equation defined by par to value
void InitGlobalParameters(Double_t* par)
 Initialize global parameters with par array
void FixParameter(Int_t param, Double_t value)
 Parameter iPar is encourage to vary in [-value;value].
 If value == 0, parameter is fixed
void ResetLocalEquation()
 Reset the derivative vectors
Int_t ApplyToGeometry()
 apply prealignment to ideal geometry
Int_t GetPreAlignmentQualityFactor(Int_t index) const
 quality factors from prealignment
AliTrackPointArray * PrepareTrack(const AliTrackPointArray* track)
 create a new AliTrackPointArray keeping only defined modules
 move points according to a given prealignment, if any
 sort alitrackpoints w.r.t. global Y direction, if cosmics
AliTrackPointArray * SortTrack(const AliTrackPointArray* atp)
 sort alitrackpoints w.r.t. global Y direction
Int_t GetCurrentLayer() const
 get current layer id
Int_t InitModuleParams()
 initialize geometry parameters for a given detector
 for current cluster (fCluster)
 fGlobalInitParam[] is set as:
    [tx,ty,tz,psi,theta,phi]
    (old was [tx,ty,tz,theta,psi,phi] ROOT's angles...)
 *** At the moment: using Raffalele's angles definition ***

 return 0 if success
 If module is found but has no parameters to vary, return 1
void Print(Option_t* ) const
 print current status
AliITSAlignMille2Module * GetMilleModuleByVID(UShort_t voluid) const
 return pointer to a defined supermodule
 return NULL if error
AliITSAlignMille2Module * GetMilleModuleBySymName(const Char_t* symname) const
 return pointer to a defined supermodule
 return NULL if error
AliITSAlignMille2Module * GetMilleModuleIfContained(const Char_t* symname) const
 return pointer to a defined/contained supermodule
 return NULL otherwise
AliAlignObjParams* GetPrealignedObject(const Char_t* symname) const
 get delta from prealignment for given volume
AliAlignObjParams* GetConstrRefObject(const Char_t* symname) const
 get delta with respect to which the constraint is declared
Bool_t InitRiemanFit()
 Initialize Riemann Fitter for current track
 return kFALSE if error
void InitTrackParams(int meth = 1)
 initialize local parameters with different methods
 for current track (fTrack)
Int_t IsSymDefined(const Char_t* name) const
 checks if supermodule with this symname is defined and return the internal index
 return -1 if not.
Int_t IsSymContained(const Char_t* name) const
 checks if module with this symname is defined and return the internal index
 return -1 if not.
Int_t IsVIDDefined(UShort_t voluid) const
 checks if supermodule 'voluid' is defined and return the internal index
 return -1 if not.
Int_t IsVIDContained(UShort_t voluid) const
 checks if the sensitive module 'voluid' is contained inside a supermodule
 and return the internal index of the last identified supermodule
 return -1 if error
 IMPORTANT: always start from the end to start from the sensors
Int_t GetRequestedModID(UShort_t voluid) const
 checks if the sensitive module 'voluid' is contained inside a supermodule
 and return the internal index of the last identified supermodule
 return -1 if error
 IMPORTANT: always start from the end to start from the sensors
Int_t CheckCurrentTrack()
 checks if AliTrackPoints belongs to defined modules
 return number of good poins
 return 0 if not enough points
Int_t ProcessTrack(const AliTrackPointArray* track, Double_t wgh = 1.0)
 Process track; Loop over hits and set local equations
 here 'track' is a AliTrackPointArray
 return 0 if success;

Int_t FitTrack()
 Fit the track with selected constraints

Int_t CalcIntersectionPoint(const Double_t* lpar, const Double_t* gpar)
 calculate track intersection point in local coordinates
 according with a given set of parameters (local(4) and global(6))
 and fill fPintLoc/Glo
    local are:   pgx0, pgz0, ugx, ugz   OR   riemann fitters pars
    global are:  tx,ty,tz,psi,theta,phi (Raff's delta angles in deg.)
 return 0 if success
Int_t CalcDerivatives(Int_t paridx, Bool_t islpar)
 calculate numerically (ROOT's style) the derivatives for
 local X intersection  and local Z intersection
 parlist: local  (islpar=kTRUE)  pgx0, pgz0, ugx0, ugz0  OR riemann's params
          global (islpar=kFALSE) tx, ty, tz, psi, theta, phi (Raf's angles in deg)
 return 0 if success
Int_t AddLocalEquation(AliITSAlignMille2::Mille2Data& m)
 Define local equation for current cluster in X and Z coor.
 and store them to memory
 return -1 in case of failure to build some equation
         0 if no free global parameters were found but local eq is built
         1 if both local and global eqs are built

 store first intersection point
Int_t AddLocalEquationTPA(AliITSAlignMille2::Mille2Data& m)
 Define local equation for current cluster in X Y and Z coor.
 and store them to memory
 return -1 in case of failure to build some equation
         0 if no free global parameters were found but local eq is built
         1 if both local and global eqs are built

void SetLocalEquations(const AliITSAlignMille2::Mille2Data* marr, Int_t neq)
 Set local equations with data stored in m
 return 0 if success

Int_t GlobalFit()
 Call global fit; Global parameters are stored in parameters
void PrintGlobalParameters()
 Print global parameters
Int_t LoadSuperModuleFile(const Char_t* cfile = "ITSMilleSuperModules.root")
 load definitions of supermodules from a root file
 return 0 if success
void ConstrainModuleSubUnitsMean(Int_t idm, Double_t val = 0, UInt_t pattern = 0xff)
 require that sum of modifications for the childs of this module is = val, i.e.
 the internal corrections moves the module as a whole by fixed value (0 by default).
 pattern is the bit pattern for the parameters to constrain

void ConstrainModuleSubUnitsMedian(Int_t idm, Double_t val = 0, UInt_t pattern = 0xff)
 require that median of the modifications for the childs of this module is = val, i.e.
 the internal corrections moves the module as a whole by fixed value (0 by default)
 module the outliers.
 pattern is the bit pattern for the parameters to constrain
 The difference between the mean and the median will be transfered to the parent
void ConstrainOrphansMean(Double_t val = 0, UInt_t pattern = 0xff)
 require that median of the modifications for the supermodules which have no parents is = val, i.e.
 the corrections moves the whole setup by fixed value (0 by default) modulo the outliers.
 pattern is the bit pattern for the parameters to constrain

void ConstrainOrphansMedian(Double_t val = 0, UInt_t pattern = 0xff)
 require that median of the modifications for the supermodules which have no parents is = val, i.e.
 the corrections moves the whole setup by fixed value (0 by default) modulo the outliers.
 pattern is the bit pattern for the parameters to constrain

void ConstrainLocal(const Char_t* name, Double_t* parcf, Int_t npar, Double_t val, Double_t err)
 apply constraint on parameters in the local frame
void ApplyGaussianConstraint(const AliITSAlignMille2ConstrArray* cstr)
 apply the constraint on the local corrections of a list of modules
void ApplyPreConstraints()
 apply constriants which cannot be imposed after the fit
void ApplyPostConstraints()
 apply constraints which can be imposed after the fit
void ConstrainModuleSubUnits(Int_t idm, Double_t val = 0, UInt_t pattern = 0xff)
 require that sum of modifications for the childs of this module is = val, i.e.
 the internal corrections moves the module as a whole by fixed value (0 by default).
 pattern is the bit pattern for the parameters to constrain


void ConstrainOrphans(Double_t val = 0, UInt_t pattern = 0xff)
 require that median of the modifications for the supermodules which have no parents is = val, i.e.
 the corrections moves the whole setup by fixed value (0 by default) modulo the outliers.
 pattern is the bit pattern for the parameters to constrain

void PostConstrainModuleSubUnits(Int_t type, Int_t idm, Double_t val, UInt_t pattern)
 require that median or mean of the modifications for the childs of this module is = val, i.e.
 the internal corrections moves the module as a whole by fixed value (0 by default)
 module the outliers.
 pattern is the bit pattern for the parameters to constrain
 The difference between the mean and the median will be transfered to the parent

void PostConstrainOrphans(Int_t type, Double_t val, UInt_t pattern)
 require that median or mean of modifications for the supermodules which have no parents is = val, i.e.
 the corrections moves the whole setup by fixed value (0 by default).
 pattern is the bit pattern for the parameters to constrain

Bool_t IsParModConstrained(const AliITSAlignMille2Module* mod, Int_t par, Bool_t& meanmed, Bool_t& gaussian) const
 check if par of the module participates in some constraint, and set the flag for their types
Bool_t IsParModFamilyVaried(const AliITSAlignMille2Module* mod, Int_t par, Int_t depth = 999) const
 check if parameter par is varied for this module or its children up to the level depth
Bool_t IsParFamilyFree(const AliITSAlignMille2Module* mod, Int_t par, Int_t depth = 999) const
 check if parameter par is varied and is not subjected to gaussian constraint for the children up to the level depth
Double_t GetTDriftSDD() const
 obtain drift time corrected for t0
Double_t GetVDriftSDD() const
 obtain corrected drift speed
Bool_t FixedOrphans() const
 are there fixed modules with no parent (normally in such a case
 the constraints on the orphans should not be applied
void ConvertParamsToGlobal() const
 convert params in local frame to global one
void ConvertParamsToLocal() const
 convert params in global frame to local one
void SetBField(Double_t b = 0)
 set Bz value
Int_t ProcessUserInfo(TList* userInfo = 0)
 extract calibration information used for TrackPointArray creation from run info

Int_t GetPathFromUserInfo(const TList* cdbList, const char* calib, TString& path, Int_t useBit)
 extract the path for specific CDB path from user info. If it is the same as already loaded, set corresponing bit
Int_t LoadSDDResponse(TString& path, AliITSresponseSDD*& resp)
 load SDD response
Int_t LoadSDDVDrift(TString& path, TObjArray*& arr)
 load VDrift object
Int_t LoadSDDCorrMap(TString& path, AliITSCorrectSDDPoints*& map)
 Load SDD correction map

Int_t LoadPreSDDCalib()
 Load SDD correction map for prealignment from current CDB

Int_t LoadDiamond(TString& path)
 load vertex constraint
Int_t LoadDeltas(TString& path, TClonesArray*& arr)
 load ITS geom deltas
Int_t CacheMatricesCurr()
 build arrays for the fast access to sensor matrices from their sensor ID

Int_t CacheMatricesOrig()
 build arrays for the fast access to sensor original matrices (used for production)

void RemoveHelixFitConstraint()
 suppress constraint
void ConstrainHelixFitPT(Int_t q = 0, Double_t pt = -1, Double_t err = -1)
 constrain q and pT of the helical fit of the track (should be set before process.track)

void ConstrainHelixFitCurv(Int_t q = 0, Double_t crv = -1, Double_t crverr = -1)
 constrain charge and curvature of the helical fit of the track (should be set before process.track)

TClonesArray* CreateDeltas()
 Create \Deltas for every explicitly or implicitly (via non-alignable volumes) varied
 or prealigned module.
 If the module has inded J in the hierarchy of alignable volumes (0 - the top, most
 coarse level), then its Delta is expressed via MP2 \deltas (in global frame) and
 prealignment \DeltaP's as:
 \Delta_J = Y X Y^-1
 where X = \delta_J * \DeltaP_J
 Y = Prod_{K=0,J-1} \delta_K
 Note that \delta_L accounts not only for its own correction but also of all non-alignable
 modules in the hierarchy chain from L up to the closest alignable:
 while (parent && !parent->IsAlignable()) {
   \delta_L->MultiplyLeft( \delta_parent );
   parent = parent->GetParent();
 }

AliITSresponseSDD* CreateSDDResponse()
 create object with SDD repsonse (t0 and vdrift corrections) accounting for
 eventual precalibration

 if there was a precalibration provided, copy it to new arrray
Int_t ReloadInitCalib(TList* userInfo)
 Use provided UserInfo to
 load the initial calib parameters (geometry, SDD response...)
 Can be used if set of data was processed with different calibration

Int_t ReloadInitCalib()
 Load the initial calib parameters (geometry, SDD response...)
 Can be used if set of data was processed with different calibration

void JacobianPosGloLoc(int locid, double* jacobian)
 calculate the locid row of the jacobian for transformation of the local coordinate to global at current point
void TieSDDVDriftsLR(AliITSAlignMille2Module* mod)
 impose equality of Left/Right sides VDrift correction for SDD
void ProcessSDDPointInfo(const AliTrackPoint* pnt, Int_t sID, Int_t pntID)
 extract the drift information from SDD track point

AliITSAlignMille2Module* CreateVertexModule()
 creates dummy module for vertex constraint
AliCDBEntry* GetCDBEntry(const char* path)
 return object from the OCDB
void SetVertexConstraint(const AliESDVertex* vtx)
 set vertex for constraint
void ConvertDeltas()
 convert prealignment deltas from old geometry to new one
 NOTE: the target geometry must be loaded at time this method is called

 NOTE: This method can be ONLY used when as a prealignment deltas those used for the production
 of trackpoints (e.g. extracted from the UserInfo).
 The prealignment deltas provided by user via config file must be already converted to target geometry:
 this can be done externally using the macro ConvertDeltas.C

 delta_j_new = delta_j_old * Xj_old * Xj_new^-1
 where X = Prod{delta_i,i=j-1:0} M_j
 with j - the level of the alignable volume in the hierarchy, M - corresponding ideal matrix
 Note that delta_j * Xj is equal to final (misaligned) matrix of corresponding geometry, G_j.
 Since this method is used ONLY in the case where the prealignment deltas are equal to production deltas,
 we have already loaded G_j_old in the fConvAlgMatOld (filled in the CacheMatricesOrig)
 Hence, delta_j_new = G_j_old * Xj_new^-1

void ConvSortHierarchically(TObjArray& matArr)
 Used only for the deltas conversion from one geometry to another
 Sort the matrices according to hiearachy (coarse -> fine)

Bool_t ConvIsJParentOfI(const TGeoHMatrix* matI, const TGeoHMatrix* matJ) const
 Used only for the deltas conversion from one geometry to another
 True if matJ is higher in hierarchy than

AliAlignObjParams* ConvFindDelta(const TClonesArray* arrDelta, const TString& algname) const
 find the delta for given module
void SetCurrentCluster(const AliTrackPoint& atp)
TGeoHMatrix* GetSensorOrigMatrixSID(Int_t sid) const
TGeoHMatrix* GetSensorOrigMatrixVID(Int_t vid) const
TGeoHMatrix* GetSensorCurrMatrixSID(Int_t sid) const
TGeoHMatrix* GetSensorCurrMatrixVID(Int_t vid) const
AliITSAlignMille2(const Char_t* configFilename = "AliITSAlignMille.conf", TList* userInfo = 0)
AliMillePede2* GetMillePede() const
{return fMillepede;}
AliITSTPArrayFit* GetTPAFitter() const
 configuration methods

{return fTPAFitter;}
AliITSAlignMille2Module* GetMilleModule(Int_t id) const
AliITSAlignMille2Module* GetCurrentModule() const
{return fCurrentModule;}
AliITSAlignMille2Module* GetSuperModule(Int_t id) const
const Char_t* GetGeometryPath()
{return fGeometryPath.Data();}
const Char_t* GetPreAlignmentPath()
{return fPreDeltaPath.Data();}
TClonesArray* GetPreAlignmentDeltas() const
{return fPrealignment;}
AliITSresponseSDD* GetSDDPrecalResp() const
{return fPreRespSDD;}
AliITSresponseSDD* GetSDDInitResp() const
{return fIniRespSDD;}
TObjArray* GetSDDInitVDrift() const
{return fIniVDriftSDD;}
void PrintCurrentModuleInfo() const
Bool_t IsConfigured() const
{return fIsConfigured;}
Bool_t GetUseGlobalDelta() const
{return fUseGlobalDelta;}
Bool_t IsConstraintWrtRef() const
{return fConstrRef!=0;}
Bool_t IsLocalYError() const
 geometry stuffs
{return fUseLocalYErr;}
Int_t GetNModules() const
{return fNModules;}
Int_t GetCurrentModuleIndex() const
TGeoHMatrix * GetCurrentModuleHMatrix() const
Double_t * GetCurrentModuleTranslation() const
{return fCurrentModule ? fCurrentModule->GetMatrix()->GetTranslation():0;}
Int_t GetCurrentModuleInternalIndex() const
Int_t GetTotBadLocEqPoints() const
Int_t GetNConstraints() const
{return fConstraints.GetLast()+1;}
AliTrackFitterRieman * GetRiemanFitter() const
 fitting methods
{return fRieman;}
AliTrackPointArray * GetCurrentTrack() const
AliTrackPoint * GetCurrentCluster() const
{return (AliTrackPoint*)&fCluster;}
void SetCurrentTrack(const AliTrackPointArray* atp)
Bool_t GetFixCurvIfConstraned() const
void SetFixCurvIfConstraned(Bool_t v = kTRUE)
 methods for point unbiasing (via scaling its inverted cov.matrix)
Bool_t IsCovIScaleTouched() const
void TouchCovIScale(Bool_t v = kTRUE)
Float_t GetCovIScale(Int_t ip) const
{return ip<kMaxPoints ? fCovIScale[ip]:-1.;}
Float_t* GetCovIScale() const
{return (Float_t*)fCovIScale;}
void SetCovIScale(Int_t ip, Float_t v = -1.)
{if (ip<kMaxPoints) fCovIScale[ip] = v; TouchCovIScale();}
void SetCovIScale(Float_t* v, Int_t np)
{for (int i=TMath::Min(np,kMaxPoints);i--;) fCovIScale[i]=v[i]; TouchCovIScale();}
void ResetCovIScale()
{for (int i=kMaxPoints;i--;) fCovIScale[i]=-1; TouchCovIScale(kFALSE);}
Double_t* GetLocalIntersectionPoint() const
{return (Double_t*)fPintLoc;}
Double_t* GetGlobalIntersectionPoint() const
{return (Double_t*)fPintGlo;}
void SetTemporaryExcludedModule(Int_t index)
Int_t GetTemporaryExcludedModule() const
Double_t GetMeasGlo(Int_t dim) const
{return fMeasGlo[dim];}
Double_t GetMeasLoc(Int_t dim) const
{return fMeasLoc[dim];}
void SetTypeCosmics()
void SetTypeCollision()
void SetDataType(Int_t tp = kCosmics)
{fDataType = tp>=0&&tp< kNDataType ? tp:kCosmics;}
void SetUseLocalYErrors(Bool_t v = kTRUE)
void SetMinPointsPerSensor(Int_t n)
{fMinPntPerSens = n>0 ? n:0;}
Int_t GetMinPointsPerSensor() const
{return fMinPntPerSens;}
Bool_t IsVertexSet() const
{return fVertexSet;}
void RemoveVertexConstraint()
void SetVertexSet(Bool_t v)
{fVertexSet = v;}
Double_t GetHelixContraintCharge() const
{return fConstrCharge;}
Double_t GetHelixContraintPT() const
{return fConstrPT;}
Double_t GetHelixContraintPTErr() const
{return fConstrPTErr;}
Int_t GetDataType() const
{return fDataType;}
Bool_t PseudoParentsAllowed() const
void SetWeightPt(Double_t w = 1)
{fWeightPt = w;}
void SetSDDVDCorrMult(Bool_t v = kTRUE)
Double_t GetWeightPt() const
{return fWeightPt;}
Bool_t IsSDDVDCorrMult() const
Double_t GetDriftSpeed(Int_t id) const
{return fDriftSpeed[id];}
Double_t GetDriftSpeed0(Int_t id) const
{return fDriftSpeed0[id];}
Double_t GetDriftTime0(Int_t id) const
{return fDriftTime0[id];}
AliITSAlignMille2Constraint* GetConstraint(Int_t i) const
AliITSAlignMille2Constraint* GetConstraint(const char* name) const
 debug stuffs
void FetchCluster(int ip)
void SetLocalInitParams(const Double_t* par)
{for (int i=kNLocal;i--;) fLocalInitParam[i]=par[i];}
Bool_t IsTypeCosmics() const
{return fDataType==kCosmics;}
Bool_t IsTypeCollision() const
Double_t * GetMeasLoc() const
{return (Double_t*)fMeasLoc;}
Double_t * GetSigmaLoc() const
{return (Double_t*)fSigmaLoc;}
Double_t GetBField() const
{return fBField;}
Bool_t IsFieldON() const
{return fBOn;}
Bool_t IsDiamondUsed() const
{return fUseDiamond;}
Int_t GetCheckDiamondPoint() const
void SetCheckDiamondPoint(Int_t m = kDiamondCheckIfPrompt)
Bool_t IsVertexUsed() const
{return fUseVertex;}
Double_t * GetLocalInitParam() const
Double_t * GetLocalInitParEr() const
Double_t GetLocalDif(int par, int coor) const
{return fDerivativeLoc[par][coor];}
Double_t GetGlobalDif(int par, int coor) const
{return fDerivativeGlo[par][coor];}
void SetBug(Int_t bug)
{fBug=bug;}
AliITSAlignMille2* GetInstance()
{return fgInstance;}
Int_t GetExtraClustersMode() const
 pepo270809
void SetExtraClustersMode(Int_t mode)
 endpepo270809
Int_t GetMilleVersion() const
 pepo
 flag for AliITSAlignMille compatibility
{return fMilleVersion;}
void SetMilleVersion(Int_t m1)
 modified existing methods
Int_t IsDefined(UShort_t voluid) const
 old methods recovered
{return IsVIDDefined(voluid);}
Int_t IsContained(UShort_t voluid) const
 moved from private to public
{return IsVIDContained(voluid);}
void SetMinNPtsPerTrack(Int_t pts = 3)
Int_t GetRunID() const
{return fRunID;}
void SetRunID(int run)
{fRunID = run;}
AliITSCorrectSDDPoints * GetPreCorrMapSDD() const
{return fPreCorrMapSDD;}
AliITSCorrectSDDPoints * GetIniCorrMapSDD() const
{return fIniCorrMapSDD;}
Bool_t IsZero(Double_t v, Double_t threshold = 1e-15)
{ return TMath::Abs(v)<threshold; }
void SetWordBit(UInt_t word, Int_t bitID)
{ word |= (1<<bitID);}
void ResetWordBit(UInt_t word, Int_t bitID)
{ word &= ~(1<<bitID);}
Bool_t TestWordBit(UInt_t word, Int_t bitID)
{ return (Bool_t)(word&(1<<bitID));}
void SetGeometryPath(const Char_t* filename = "geometry.root")
{ fGeometryPath = filename; }
void SetInitTrackParamsMeth(Int_t meth = 1)
Bool_t SetLocalDerivative(Int_t index, Double_t value)
{return IsZero(fLocalDerivatives[index]=value);}
Bool_t SetGlobalDerivative(Int_t index, Double_t value)
 millepede methods

{return IsZero(fGlobalDerivatives[index]=value);}
void SetUseGlobalDelta(Bool_t v = kTRUE)
void SetAllowPseudoParents(Bool_t v = kTRUE)
AliITSAlignMille2& operator=(const AliITSAlignMille2& rhs)