ROOT logo
AliRoot » ITS » AliITSAlignMille2Module

class AliITSAlignMille2Module: public TNamed

Function Members (Methods)

public:
AliITSAlignMille2Module()
AliITSAlignMille2Module(UShort_t volid)
AliITSAlignMille2Module(const AliITSAlignMille2Module& rhs)
AliITSAlignMille2Module(Int_t index, UShort_t volid, const char* symname, const TGeoHMatrix* m, Int_t nsv = 0, const UShort_t* volidsv = NULL)
virtual~AliITSAlignMille2Module()
voidTObject::AbstractMethod(const char* method) const
voidAddChild(AliITSAlignMille2Module* cld)
voidAddSensitiveVolume(UShort_t volid)
virtual voidTObject::AppendPad(Option_t* option = "")
Bool_tAreSensorsProvided() const
Bool_tBelongsTo(AliITSAlignMille2Module* parent) const
virtual voidTObject::Browse(TBrowser* b)
voidCalcDerivCurLoc(Int_t sensVol, Int_t paridx, Double_t* derivative)
voidCalcDerivDPosDPar(Int_t sensVol, const Double_t* pl, Double_t* deriv)
voidCalcDerivGloLoc(Int_t idx, Double_t* deriv)
voidCalcDerivGloLoc(Int_t sensVol, Int_t paridx, Double_t* derivative)
voidCalcDerivLocGlo(Double_t* deriv)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
voidDelSensitiveVolume(Int_t at)
voidDelSensitiveVolumes()
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
voidEvaluateDOF()
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
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Bool_tGeomParamsGlobal() const
AliITSAlignMille2Module*GetChild(Int_t i) const
Int_tGetDetType() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
voidGetGeomParamsGlo(Double_t* pars)
voidGetGeomParamsLoc(Double_t* pars)
voidGetGlobalParams(Double_t* t, Double_t* r) const
voidGetGlobalParams(const Double_t* loct, const Double_t* locr, Double_t* t, Double_t* r)
virtual const char*TObject::GetIconName() const
Int_tGetIndex() const
static Int_tGetIndexFromVolumeID(UShort_t volid)
voidGetLocalMatrix(TGeoHMatrix& mat) const
voidGetLocalParams(const Double_t* loct, const Double_t* locr, Double_t* t, Double_t* r)
TGeoHMatrix*GetMatrix() const
virtual const char*TNamed::GetName() const
Int_tGetNChildren() const
UShort_tGetNParFree() const
UShort_tGetNParTot() const
Int_tGetNProcessedPoints() const
Int_tGetNSensitiveVolumes() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Double_tGetParConstraint(int par) const
AliITSAlignMille2Module*GetParent() const
Double_tGetParErr(int par) const
Int_tGetParOffset(Int_t par) const
Double_tGetParVal(int par) const
Float_t*GetParVals() const
AliAlignObjParams*GetSensitiveVolumeGlobalMisalignment(UShort_t voluid, const Double_t* deltalocal)
TGeoHMatrix*GetSensitiveVolumeMatrix(UShort_t voluid)
AliAlignObjParams*GetSensitiveVolumeMisalignment(UShort_t voluid, const AliAlignObjParams* a)
AliAlignObjParams*GetSensitiveVolumeMisalignment(UShort_t voluid, const Double_t* deltalocal)
TGeoHMatrix*GetSensitiveVolumeModifiedMatrix(UShort_t voluid, const Double_t* delta, Bool_t local = kTRUE)
TGeoHMatrix*GetSensitiveVolumeOrigGlobalMatrix(UShort_t voluid)
AliAlignObjParams*GetSensitiveVolumeTotalMisalignment(UShort_t voluid, const Double_t* deltalocal)
UShort_t*GetSensitiveVolumeVolumeID() const
voidGetSensVolGlobalParams(UShort_t volid, Double_t* t, Double_t* r)
voidGetSensVolGlobalParams(UShort_t volid, const Double_t* loct, const Double_t* locr, Double_t* t, Double_t* r)
Int_tGetSensVolIndex(Int_t at) const
voidGetSensVolLocalParams(UShort_t volid, Double_t* t, Double_t* r)
voidGetSensVolLocalParams(UShort_t volid, const Double_t* loct, const Double_t* locr, Double_t* t, Double_t* r)
Short_tGetSensVolVolumeID(Int_t at) const
Float_tGetSigmaFactor(Int_t i) const
Float_tGetSigmaXFactor() const
Float_tGetSigmaYFactor() const
Float_tGetSigmaZFactor() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
UShort_tGetVolumeID() const
static UShort_tGetVolumeIDFromIndex(Int_t index)
static UShort_tGetVolumeIDFromSymname(const Char_t* symname)
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
voidIncNProcessedPoints(Int_t step = 1)
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
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tIsAlignable() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tIsFreeDOF(Int_t dof) const
Bool_tIsIn(UShort_t volid) const
Bool_tIsNotInConf() const
Bool_tTObject::IsOnHeap() const
Bool_tIsParConstrained(Int_t par) const
Bool_tIsSDD() const
Bool_tIsSensor() const
static Bool_tIsSensor(UShort_t vid)
virtual Bool_tTNamed::IsSortable() const
Bool_tIsSPD() const
Bool_tIsSSD() const
Bool_tIsVDriftLRSame() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::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)
AliITSAlignMille2Module&operator=(const AliITSAlignMille2Module& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* opt = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
static Int_tSensVolMatrix(UShort_t volid, TGeoHMatrix* m)
static Int_tSensVolOrigGlobalMatrix(UShort_t volid, TGeoHMatrix* m)
Int_tSet(Int_t index, UShort_t volid, const char* symname, const TGeoHMatrix* m, Int_t nsv = 0, const UShort_t* volidsv = 0)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetDetType(Int_t tp)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetFreeDOF(Int_t dof, Double_t cstr)
voidSetGeomParamsGlobal(Bool_t v = kTRUE)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
voidSetNotInConf(Bool_t v = kTRUE)
voidSetNProcessedPoints(Int_t v)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetParConstraint(Int_t par, Double_t s = 1e6)
voidSetParent(AliITSAlignMille2Module* par)
voidSetParErr(Int_t par, Double_t e = 0)
voidSetParOffset(Int_t par, Int_t offs)
voidSetParVal(Int_t par, Double_t v = 0)
voidSetParVals(Double_t* vl, Int_t npar)
voidSetSensorsProvided(Bool_t v = kTRUE)
voidSetSigmaFactor(Int_t i, Float_t v)
voidSetSigmaXFactor(Float_t v)
voidSetSigmaYFactor(Float_t v)
voidSetSigmaZFactor(Float_t v)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetVDriftLRSame(Bool_t v = kTRUE)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
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
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:
voidAssignDetType()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

public:
enum { kSPD
kSDD
kSSD
kMaxParGeom
kMaxParTot
kSensDefBit
kGlobalGeomBit
kNotInConfBit
kVdSDDSameLRBit
kDOFTX
kDOFTY
kDOFTZ
kDOFPS
kDOFTH
kDOFPH
kDOFT0
kDOFDVL
kDOFDVR
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
TObjArrayfChildrenarray of optional children
Int_tfDetTypeDetector type
Int_tfIndexaliroot index
TGeoHMatrix*fMatrixideal TGeoHMatrix of the supermodule
UShort_tfNParFreenumber of free parameters
UShort_tfNParTottotal number of parameters
Int_tfNProcPointsnumber of processed points
Int_tfNSensVolnumber of sensor it refers to
TStringTNamed::fNameobject identifier
Float_t*fParCstrGaussian type constraint on parameter, 0 means fixed param
Float_t*fParErrserrors of the fitted params
TArraySfParOffsoffsets of free params in the fit results
Float_t*fParValsvalues of the fitted params
AliITSAlignMille2Module*fParentoptional parent pointer
TArrayIfSensVolIndexaliroot indices for sensors
TGeoHMatrix*fSensVolMatrixsensor's ideal matrices
TGeoHMatrix*fSensVolModifMatrixsensor's modified matrices
TArraySfSensVolVolumeIDaliroot indices for sensors volumes
Float_tfSigmaFactor[3]multiplicative factor for referred sensor X,Y,Z error
TStringTNamed::fTitleobject title
UShort_tfVolumeIDaliroot volune ID
static const Float_tfgkDummyConstraintdummy (lose) contraint on parameter

Class Charts

Inheritance Chart:
TNamed
AliITSAlignMille2Module

Function documentation

AliITSAlignMille2Module()
 void constructor
AliITSAlignMille2Module(Int_t index, UShort_t volid, const char* symname, const TGeoHMatrix* m, Int_t nsv = 0, const UShort_t* volidsv = NULL)
 void constructor
AliITSAlignMille2Module(UShort_t volid)
 simple constructor building a supermodule from a single sensitive volume
AliITSAlignMille2Module(const AliITSAlignMille2Module& rhs)
 Copy constructor
AliITSAlignMille2Module& operator=(const AliITSAlignMille2Module& rhs)
 operator =

~AliITSAlignMille2Module()
 Destructor
Int_t Set(Int_t index, UShort_t volid, const char* symname, const TGeoHMatrix* m, Int_t nsv = 0, const UShort_t* volidsv = 0)
 initialize a custom supermodule
 index, volid, symname and matrix must be given
 if (volidsv) add nsv sensitive volumes to the supermodules
 return 0 if success
void SetFreeDOF(Int_t dof, Double_t cstr)
Bool_t IsSensor(UShort_t vid)
 Does this volid correspond to sensor ?
Int_t GetIndexFromVolumeID(UShort_t volid)
 index from volume ID
void AddSensitiveVolume(UShort_t volid)
 add a sensitive volume to this supermodule
void DelSensitiveVolume(Int_t at)
 Suppress sensor at position "at"
 in fact we are swapping with the last valid one
Bool_t IsIn(UShort_t volid) const
 check if voluid is defined
Bool_t BelongsTo(AliITSAlignMille2Module* parent) const
 check if parent contains the sensors of this volume
TGeoHMatrix * GetSensitiveVolumeModifiedMatrix(UShort_t voluid, const Double_t* delta, Bool_t local = kTRUE)
 modify the original TGeoHMatrix of the sensitive module 'voluid' according
 with a delta transform. applied to the supermodule matrix
 return NULL if error
AliAlignObjParams * GetSensitiveVolumeMisalignment(UShort_t voluid, const Double_t* deltalocal)
 calculate misalignment of sens.vol. 'voluid' according with a displacement 'deltalocal'
 of the mother volume. The misalignment is returned as AliAlignObjParams object
AliAlignObjParams * GetSensitiveVolumeMisalignment(UShort_t voluid, const AliAlignObjParams* a)
 return the misalignment of the sens. vol. 'voluid' corresponding with
 a misalignment 'a' in the mother volume
 return NULL if error
AliAlignObjParams * GetSensitiveVolumeTotalMisalignment(UShort_t voluid, const Double_t* deltalocal)
 calculate misalignment of sens.vol. 'voluid' according with a displacement 'deltalocal'
 of the mother volume. The misalignment is returned as AliAlignObjParams object including
 the (evenctual) prealignment => no merging needed
AliAlignObjParams * GetSensitiveVolumeGlobalMisalignment(UShort_t voluid, const Double_t* deltalocal)
 calculate misalignment of sens.vol. 'voluid' according with a displacement 'deltalocal'
 of the mother volume. The misalignment is returned as AliAlignObjParams object
TGeoHMatrix * GetSensitiveVolumeMatrix(UShort_t voluid)
 return TGeoHMatrix of the sens.vol. 'voluid' in the current geometry
TGeoHMatrix * GetSensitiveVolumeOrigGlobalMatrix(UShort_t voluid)
 return original ideal position (from AliGeomManager::GetOrigGlobalMatrix())
Int_t SensVolMatrix(UShort_t volid, TGeoHMatrix* m)
 set matrix for sensitive modules (SPD corrected)
 return 0 if success
Int_t SensVolOrigGlobalMatrix(UShort_t volid, TGeoHMatrix* m)
 set original global matrix for sensitive modules (SPD corrected)
 return 0 if success
UShort_t GetVolumeIDFromSymname(const Char_t* symname)
 volume ID from symname
UShort_t GetVolumeIDFromIndex(Int_t index)
 volume ID from index
void Print(Option_t* opt = "") const
 print data

Bool_t IsAlignable() const
 it it alignable?
void GetLocalMatrix(TGeoHMatrix& mat) const
 return the local matrix for transformation to its parent
void AssignDetType()
 assign the detector type
void EvaluateDOF()
 count d.o.f.
void GetSensVolGlobalParams(UShort_t volid, Double_t* t, Double_t* r)
 return global parameters of the sensor volid
void GetSensVolLocalParams(UShort_t volid, Double_t* t, Double_t* r)
 return parameters of the sensor volid in the current module
void GetSensVolGlobalParams(UShort_t volid, const Double_t* loct, const Double_t* locr, Double_t* t, Double_t* r)
 return global parameters of the sensor volid modified by the localDelta params
void GetSensVolLocalParams(UShort_t volid, const Double_t* loct, const Double_t* locr, Double_t* t, Double_t* r)
 return parameters of the sensor volid (modified by the localDelta params) in the current volume
void SetParVals(Double_t* vl, Int_t npar)
 set parameters
void GetGeomParamsGlo(Double_t* pars)
 recompute parameters from local to global frame

 is there anything to do?
void GetGeomParamsLoc(Double_t* pars)
 recompute parameters from global to local frame

 is there anything to do?
void CalcDerivDPosDPar(Int_t sensVol, const Double_t* pl, Double_t* deriv)
 calculate jacobian of the global position vs Parameters (dPos/dParam)
 for the point in the sensor sensVol
void CalcDerivGloLoc(Int_t idx, Double_t* deriv)
 calculate derivative of global params vs local param idx:  deriv[j] = dParGlo[j]/dParLoc[idx]
void CalcDerivLocGlo(Double_t* deriv)
 calculate derivative of local params vs global params:  deriv[i][j] = dParLoc[i]/dParGlo[j]
void CalcDerivGloLoc(Int_t sensVol, Int_t paridx, Double_t* derivative)
 calculate numerically the derivatives of global params vs local param paridx for sensor sensVol: dPglob/dPloc_paridx

void CalcDerivCurLoc(Int_t sensVol, Int_t paridx, Double_t* derivative)
 calculate numerically the derivatives of sensor params in the current volume vs sensor local param paridx

void GetGlobalParams(Double_t* t, Double_t* r) const
 global parameters of the module
void GetGlobalParams(const Double_t* loct, const Double_t* locr, Double_t* t, Double_t* r)
 global parameters of the module after the modification by local loct,locr
void GetLocalParams(const Double_t* loct, const Double_t* locr, Double_t* t, Double_t* r)
 obtain local delta parameters from global delta params
Int_t GetIndex() const
 geometry methods
{return fIndex;}
UShort_t GetVolumeID() const
{return fVolumeID;}
Int_t GetNSensitiveVolumes() const
{return fNSensVol;}
Int_t GetSensVolIndex(Int_t at) const
{return fSensVolIndex[at];}
Short_t GetSensVolVolumeID(Int_t at) const
{return fSensVolVolumeID[at];}
TGeoHMatrix * GetMatrix() const
{return fMatrix;}
UShort_t * GetSensitiveVolumeVolumeID() const
{return (UShort_t*)fSensVolVolumeID.GetArray();}
Float_t GetSigmaFactor(Int_t i) const
{return fSigmaFactor[i];}
Float_t GetSigmaXFactor() const
{return fSigmaFactor[0];}
Float_t GetSigmaYFactor() const
{return fSigmaFactor[1];}
Float_t GetSigmaZFactor() const
{return fSigmaFactor[2];}
Int_t GetNProcessedPoints() const
{return fNProcPoints;}
Bool_t IsFreeDOF(Int_t dof) const
{return dof<fNParTot && fParCstr[dof]>0;}
Bool_t AreSensorsProvided() const
{return TestBit(kSensDefBit);}
Bool_t GeomParamsGlobal() const
Bool_t IsNotInConf() const
Bool_t IsVDriftLRSame() const
AliITSAlignMille2Module* GetParent() const
{return fParent;}
AliITSAlignMille2Module* GetChild(Int_t i) const
Int_t GetNChildren() const
{return fChildren.GetLast()+1;}
UShort_t GetNParTot() const
{return fNParTot;}
UShort_t GetNParFree() const
{return fNParFree;}
Float_t * GetParVals() const
{return fParVals;}
Double_t GetParVal(int par) const
{return par<fNParTot ? fParVals[par] : 0;}
Double_t GetParErr(int par) const
{return par<fNParTot ? fParErrs[par] : 0;}
Double_t GetParConstraint(int par) const
{return par<fNParTot ? fParCstr[par] : 0;}
Int_t GetParOffset(Int_t par) const
{return par<fNParTot ? fParOffs[par] : -1;}
Int_t GetDetType() const
{return fDetType;}
Bool_t IsParConstrained(Int_t par) const
{return fParCstr[par]>0 && fParCstr[par]<fgkDummyConstraint;}
Bool_t IsSPD() const
{return fDetType == kSPD;}
Bool_t IsSDD() const
{return fDetType == kSDD;}
Bool_t IsSSD() const
{return fDetType == kSSD;}
Bool_t IsSensor() const
{return IsSensor(fVolumeID);}
void SetDetType(Int_t tp)
{fDetType = tp;}
void SetParOffset(Int_t par, Int_t offs)
{fParOffs[par] = offs;}
void SetParVal(Int_t par, Double_t v = 0)
{fParVals[par] = v;}
void SetParErr(Int_t par, Double_t e = 0)
{fParErrs[par] = e;}
void SetParConstraint(Int_t par, Double_t s = 1e6)
{fParCstr[par] = s>0. ? s:0.0;}
void SetSigmaFactor(Int_t i, Float_t v)
{fSigmaFactor[i]=TMath::Max(0.001F,v);}
void SetSigmaXFactor(Float_t v)
void SetSigmaYFactor(Float_t v)
void SetSigmaZFactor(Float_t v)
void IncNProcessedPoints(Int_t step = 1)
{fNProcPoints += step;}
void SetNProcessedPoints(Int_t v)
void SetParent(AliITSAlignMille2Module* par)
{fParent = par;}
void AddChild(AliITSAlignMille2Module* cld)
{fChildren.Add(cld);}
void SetSensorsProvided(Bool_t v = kTRUE)
void SetGeomParamsGlobal(Bool_t v = kTRUE)
void SetNotInConf(Bool_t v = kTRUE)
void SetVDriftLRSame(Bool_t v = kTRUE)
void DelSensitiveVolumes()
{fNSensVol = 0;}