ROOT logo
AliRoot » ITS » UPGRADE » AliITSUSegmentationPix

class AliITSUSegmentationPix: public AliITSsegmentation

Segmentation class for pixels
Questions to solve: are guardrings needed and do they belong to the sensor or to the chip in TGeo
At the moment assume that the local coord syst. is located at bottom left corner
of the ACTIVE matrix. If the guardring to be accounted in the local coords, in
the Z and X conversions one needs to first subtract the  fGuardLft and fGuardBot
from the local Z,X coordinates


Function Members (Methods)

public:
AliITSUSegmentationPix(const AliITSUSegmentationPix& source)
AliITSUSegmentationPix(UInt_t id = 0, int nchips = 0, int ncol = 0, int nrow = 0, float pitchX = 0, float pitchZ = 0, float thickness = 0, float pitchLftC = -1, float pitchRgtC = -1, float edgL = 0, float edgR = 0, float edgT = 0, float edgB = 0)
virtual~AliITSUSegmentationPix()
voidTObject::AbstractMethod(const char* method) const
virtual voidAliITSsegmentation::Angles(Float_t&, Float_t&) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
virtual voidCellBoundries(Int_t ix, Int_t iz, Double_t& xl, Double_t& xu, Double_t& zl, Double_t& zu) const
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
virtual TF1*AliITSsegmentation::CorrFunc()
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual voidDetToLocal(Int_t ix, Int_t iz, Float_t& x, Float_t& z) const
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual Float_tDpx(Int_t ix = 0) const
virtual Float_tDpz(Int_t iz) const
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual Float_tAliITSsegmentation::Dx() const
Float_tDxActive() const
virtual Float_tAliITSsegmentation::Dy() const
virtual Float_tAliITSsegmentation::Dz() const
Float_tDzActive() const
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
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Int_tGetChipFromChannel(Int_t, Int_t iz) const
virtual Int_tGetChipFromLocal(Float_t, Float_t zloc) const
virtual Int_tGetChipsInLocalWindow(Int_t* array, Float_t zmin, Float_t zmax, Float_t, Float_t) const
virtual Int_tGetChipTypeID() const
voidGetDiodShift(Int_t row, Int_t col, Float_t& dx, Float_t& dz) const
voidGetDiodShift(Int_t row, Int_t col, Double_t& dx, Double_t& dz) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Float_tGetGuardBot() const
Float_tGetGuardLft() const
Float_tGetGuardRgt() const
Float_tGetGuardTop() const
virtual const char*TObject::GetIconName() const
virtual Int_tAliITSsegmentation::GetLayer() const
virtual Int_tGetMaximumChipIndex() const
virtual const char*TObject::GetName() const
Int_tGetNCol() const
virtual Int_tGetNPads() const
Int_tGetNRow() const
virtual Int_tGetNumberOfChips() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual voidGetPadCxz(Int_t ix, Int_t iz, Float_t& x, Float_t& z) const
virtual voidGetPadIxz(Float_t x, Float_t z, Int_t& ix, Int_t& iz) const
virtual voidGetPadTxz(Float_t& x, Float_t& z) const
Float_tGetShiftXLoc() const
Float_tGetShiftZLoc() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
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
virtual voidInit()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
static voidLoadSegmentations(TObjArray* dest, const char* inpf)
static AliITSUSegmentationPix*LoadWithID(UInt_t id, const char* inpf)
virtual Bool_tLocalToDet(Float_t x, Float_t z, Int_t& ix, Int_t& iz) const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual voidNeighbours(Int_t iX, Int_t iZ, Int_t* Nlist, Int_t* Xlist, Int_t* Zlist) const
virtual Bool_tTObject::Notify()
virtual Int_tNpx() const
virtual Int_tNpz() const
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)
AliITSUSegmentationPix&operator=(const AliITSUSegmentationPix& source)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* option = "") const
virtual voidPrintDefaultParameters() 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 = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidAliITSsegmentation::SetCorrFunc(TF1* fc)
virtual voidAliITSsegmentation::SetDetSize(Float_t p1, Float_t p2, Float_t p3)
voidSetDiodShiftMatrix(Int_t nrow, Int_t ncol, const Float_t* shiftX, const Float_t* shiftZ)
voidSetDiodShiftMatrix(Int_t nrow, Int_t ncol, const Double_t* shiftX, const Double_t* shiftZ)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidAliITSsegmentation::SetLayer(Int_t)
virtual voidSetNPads(Int_t, Int_t)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidAliITSsegmentation::SetPadSize(Float_t, Float_t)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
Bool_tStore(const char* outf)
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:
Float_tCol2Z(Int_t col) const
virtual voidAliITSsegmentation::Copy(TObject& obj) const
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
Float_tZ2Col(Float_t z) const

Data Members

protected:
Float_tfChipDZaux: chip size along Z
TF1*AliITSsegmentation::fCorrcorrection function
Float_t*fDiodShidtMatX[fDiodShiftMatDim] diod shift in X (along column), in fraction of X pitch
Float_t*fDiodShidtMatZ[fDiodShiftMatDim] diod shift in Z (along row), in fraction of Z pitch
Int_tfDiodShiftMatDimdimension of diod shift matrix
Int_tfDiodShiftMatNColperiodicity of diod shift in columns
Int_tfDiodShiftMatNRowperiodicity of diod shift in rows
Float_tAliITSsegmentation::fDxSPD: Full width of the detector (x axis)- microns
Float_tfDxActivesize of active area in X
Float_tAliITSsegmentation::fDySPD: Full thickness of the detector (y axis) -um
Float_tAliITSsegmentation::fDzSPD: Full length of the detector (z axis)- microns
Float_tfDzActivesize of active area in Z
Float_tfGuardBotbottom guard edge
Float_tfGuardLftleft guard edge
Float_tfGuardRgtright guard edge
Float_tfGuardTopupper guard edge
Int_tfNChipsnumber of chips per chip
Int_tfNColnumber of columns (total)
Int_tfNColPerChipnumber of columns per chip
Int_tfNRownumber of rows
Float_tfPitchXdefault pitch in X
Float_tfPitchZdefault pitch in Z
Float_tfPitchZLftColZ pitch of left column of each chip
Float_tfPitchZRgtColZ pitch of right column of each chip
Float_tfShiftXLocshift in local X of sensitive area wrt geometry center
Float_tfShiftZLocshift in local Z of sensitive area wrt geometry center
static const char*fgkSegmListNamepattern for segmentations list name

Class Charts

Inheritance Chart:
TObject
AliITSsegmentation
AliITSUSegmentationPix

Function documentation

AliITSUSegmentationPix(UInt_t id = 0, int nchips = 0, int ncol = 0, int nrow = 0, float pitchX = 0, float pitchZ = 0, float thickness = 0, float pitchLftC = -1, float pitchRgtC = -1, float edgL = 0, float edgR = 0, float edgT = 0, float edgB = 0)
 Default constructor, sizes in cm
~AliITSUSegmentationPix()
 d-tor
void GetPadIxz(Float_t x, Float_t z, Int_t& ix, Int_t& iz) const
  Returns pixel coordinates (ix,iz) for given coordinates (x,z counted from corner of col/row 0:0)
  expects x, z in cm.
void GetPadTxz(Float_t& x, Float_t& z) const
  local transformation of real local coordinates (x,z)
  expects x, z in cm (wrt corner of col/row 0:0
void GetPadCxz(Int_t ix, Int_t iz, Float_t& x, Float_t& z) const
 Transform from pixel to real local coordinates
 returns x, z in cm. wrt corner of col/row 0:0
Float_t Z2Col(Float_t z) const
 get column number (from 0) from local Z (wrt bottom left corner of the active matrix)
Float_t Col2Z(Int_t col) const
 convert column number (from 0) to Z coordinate wrt bottom left corner of the active matrix
AliITSUSegmentationPix& operator=(const AliITSUSegmentationPix& source)
 = operator
AliITSUSegmentationPix(const AliITSUSegmentationPix& source)
 copy constructor
Float_t Dpx(Int_t ix = 0) const
returs x pixel pitch for a give pixel
Float_t Dpz(Int_t iz) const
 returns z pixel pitch for a given pixel (cols starts from 0)
void Neighbours(Int_t iX, Int_t iZ, Int_t* Nlist, Int_t* Xlist, Int_t* Zlist) const
 returns the neighbouring pixels for use in Cluster Finders and the like.

Bool_t LocalToDet(Float_t x, Float_t z, Int_t& ix, Int_t& iz) const
 Transformation from Geant detector centered local coordinates (cm) to
 Pixel cell numbers ix and iz.
 Input:
    Float_t   x        detector local coordinate x in cm with respect to
                       the center of the sensitive volume.
    Float_t   z        detector local coordinate z in cm with respect to
                       the center of the sensitive volulme.
 Output:
    Int_t    ix        detector x cell coordinate. Has the range
                       0<=ix<fNRow.
    Int_t    iz        detector z cell coordinate. Has the range
                       0<=iz<fNCol.
 Return:
   kTRUE if point x,z is inside sensitive volume, kFALSE otherwise.
   A value of -1 for ix or iz indecates that this point is outside of the
   detector segmentation as defined.
void DetToLocal(Int_t ix, Int_t iz, Float_t& x, Float_t& z) const
 Transformation from Detector cell coordiantes to Geant detector centered
 local coordinates (cm).
 Input:
 Int_t    ix        detector x cell coordinate. Has the range 0<=ix<fNRow.
 Int_t    iz        detector z cell coordinate. Has the range 0<=iz<fNCol.
 Output:
 Float_t   x        detector local coordinate x in cm with respect to the
                    center of the sensitive volume.
 Float_t   z        detector local coordinate z in cm with respect to the
                    center of the sensitive volulme.
 If ix and or iz is outside of the segmentation range a value of -0.5*Dx()
 or -0.5*Dz() is returned.

void CellBoundries(Int_t ix, Int_t iz, Double_t& xl, Double_t& xu, Double_t& zl, Double_t& zu) const
 Transformation from Detector cell coordiantes to Geant detector centerd
 local coordinates (cm).
 Input:
 Int_t    ix        detector x cell coordinate. Has the range 0<=ix<fNRow.
 Int_t    iz        detector z cell coordinate. Has the range 0<=iz<fNCol.
 Output:
 Double_t   xl       detector local coordinate cell lower bounds x in cm
                    with respect to the center of the sensitive volume.
 Double_t   xu       detector local coordinate cell upper bounds x in cm
                    with respect to the center of the sensitive volume.
 Double_t   zl       detector local coordinate lower bounds z in cm with
                    respect to the center of the sensitive volulme.
 Double_t   zu       detector local coordinate upper bounds z in cm with
                    respect to the center of the sensitive volulme.
 If ix and or iz is outside of the segmentation range a value of -0.5*DxActive()
 and -0.5*DxActive() or -0.5*DzActive() and -0.5*DzActive() are returned.
Int_t GetChipFromChannel(Int_t , Int_t iz) const
 returns chip number (in range 0-4) starting from channel number
Int_t GetChipFromLocal(Float_t , Float_t zloc) const
 returns chip number (in range 0-4) starting from local Geant coordinates
Int_t GetChipsInLocalWindow(Int_t* array, Float_t zmin, Float_t zmax, Float_t , Float_t ) const
 returns the number of chips containing a road defined by given local Geant coordinate limits

void Init()
 init settings
Bool_t Store(const char* outf)
 store in the special list under given ID
AliITSUSegmentationPix* LoadWithID(UInt_t id, const char* inpf)
 store in the special list under given ID
void LoadSegmentations(TObjArray* dest, const char* inpf)
 store in the special list under given ID
void SetDiodShiftMatrix(Int_t nrow, Int_t ncol, const Float_t* shiftX, const Float_t* shiftZ)
 set matrix of periodic shifts of diod center. provided arrays must be in the format shift[nrow][ncol]
void SetDiodShiftMatrix(Int_t nrow, Int_t ncol, const Double_t* shiftX, const Double_t* shiftZ)
 set matrix of periodic shifts of diod center. provided arrays must be in the format shift[nrow][ncol]
void Print(Option_t* option = "") const
 print itself
void GetDiodShift(Int_t row, Int_t col, Float_t& dx, Float_t& dz) const
 obtain optional diod shift
void SetNPads(Int_t , Int_t )
{MayNotUse("SetPadSize");}
Int_t GetNPads() const
{return fNCol*fNRow;}
Int_t GetNumberOfChips() const
{return fNChips;}
Int_t GetMaximumChipIndex() const
{return fNChips-1;}
Float_t DxActive() const
{return fDxActive;}
Float_t DzActive() const
{return fDzActive;}
Float_t GetShiftXLoc() const
{return fShiftXLoc;}
Float_t GetShiftZLoc() const
{return fShiftZLoc;}
Float_t GetGuardLft() const
{return fGuardLft;}
Float_t GetGuardRgt() const
{return fGuardRgt;}
Float_t GetGuardTop() const
{return fGuardTop;}
Float_t GetGuardBot() const
{return fGuardBot;}
Int_t GetNRow() const
{return fNRow;}
Int_t GetNCol() const
{return fNCol;}
Int_t Npx() const
{return GetNRow();}
Int_t Npz() const
{return GetNCol();}
void PrintDefaultParameters() const
{AliWarning("No def. parameters defined as const static data members");}
Int_t GetChipTypeID() const
{return GetUniqueID();}
void GetDiodShift(Int_t row, Int_t col, Float_t& dx, Float_t& dz) const