ROOT logo
AliRoot » ITS » AliITSsegmentationSDD

class AliITSsegmentationSDD: public AliITSsegmentation

Segmentation class for drift detectors

microcables                                  microcables
\                                           /\



256
0 |----------------------|---------------------| 511
time-bins      |     time-bins
a                    |                   a
n                    |                   n
X <_|_o____________________|___________________o_|__
d                    |                   d
e     LEFT SIDE      |   RIGHT SIDE      e
s     CHANNEL 0      |   CHANNEL 1       s
Xlocal > 0     |   Xlocal < 0
255 |----------------------|---------------------| 256
|
|
V
Z

Function Members (Methods)

public:
AliITSsegmentationSDD(Option_t* opt = "")
AliITSsegmentationSDD(const AliITSsegmentationSDD& source)
virtual~AliITSsegmentationSDD()
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)
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) const
virtual Float_tDpz(Int_t) 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
virtual Float_tAliITSsegmentation::Dy() const
virtual Float_tAliITSsegmentation::Dz() 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 Float_tGetAnodeFromLocal(Float_t x, Float_t z) const
virtual Int_tGetChipFromChannel(Int_t ix, Int_t iz) const
virtual Int_tGetChipFromLocal(Float_t xloc, Float_t zloc) const
virtual Int_tGetChipsInLocalWindow(Int_t* array, Float_t zmin, Float_t zmax, Float_t xmin, Float_t xmax) const
virtual Option_t*TObject::GetDrawOption() const
virtual Float_tGetDriftSpeed() const
virtual Float_tGetDriftTimeFromTb(Int_t tb) const
virtual Float_tGetDriftTimeFromTb(Float_t xtb) const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual Int_tAliITSsegmentation::GetLayer() const
virtual Float_tGetLocalZFromAnode(Int_t nAnode) const
virtual Float_tGetLocalZFromAnode(Float_t zAnode) const
virtual Int_tGetMaximumChipIndex() const
virtual const char*TObject::GetName() const
static Int_tGetNAnodesPerHybrid()
virtual Int_tGetNPads() 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
virtual Int_tGetSideFromLocalX(Float_t xloc) 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
virtual voidIntegrationLimits(Float_t&, Float_t&, Float_t&, Float_t&)
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
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
virtual Int_tNpzHalf() 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)
AliITSsegmentationSDD&operator=(const AliITSsegmentationSDD& source)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* opt = "") 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)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
virtual voidSetDriftSpeed(Float_t ds)
static voidTObject::SetDtorOnly(void* obj)
virtual voidAliITSsegmentation::SetLayer(Int_t)
virtual voidSetNPads(Int_t p1, Int_t p2)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidSetPadSize(Float_t pitch, Float_t clock)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
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:
virtual voidCopy(TObject& obj) const
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

protected:
TF1*AliITSsegmentation::fCorrcorrection function
Float_tfDriftSpeedDrift speed
Float_tAliITSsegmentation::fDxSPD: Full width of the detector (x axis)- microns
Float_tAliITSsegmentation::fDySPD: Full thickness of the detector (y axis) -um
Float_tAliITSsegmentation::fDzSPD: Full length of the detector (z axis)- microns
Int_tfNanodesSummed # of anodes in the two det halves (z)
Int_tfNsamplesNumber of time samples in x
Float_tfPitchAnode pitch - microns
Bool_tfSetDriftSpeedflag for usage of drift speed
Float_tfTimeStepSampling time - ns
static const Float_tfgkClockDefaultDefault value for the clock freq.
static const Float_tfgkCm2Micronconversion from cm to micron
static const Float_tfgkDxDefaultDefault value for fDx
static const Float_tfgkDyDefaultDefault value for fDy
static const Float_tfgkDzDefaultDefault value for fDz
static const Int_tfgkHalfNanodesDefaultDefault value for fNanodes/2
static const Float_tfgkMicron2Cmconversion from micron to cm
static const Int_tfgkNanodesPerChipnumber of chips per hybrid
static const Int_tfgkNchipsPerHybridnumber of chips per hybrid
static const Int_tfgkNsamplesDefaultDefault value for fNsamples
static const Float_tfgkPitchDefaultDefault value for fPitch

Class Charts

Inheritance Chart:
TObject
AliITSsegmentation
AliITSsegmentationSDD

Function documentation

AliITSsegmentationSDD(Option_t* opt = "")
 Default constructor
void Copy(TObject& obj) const
 protected method. copy this to obj
AliITSsegmentationSDD& operator=(const AliITSsegmentationSDD& source)
 = operator
AliITSsegmentationSDD(const AliITSsegmentationSDD& source)
 copy constructor
void Init()
 Standard initilisation routine
Float_t GetAnodeFromLocal(Float_t x, Float_t z) const
 returns anode coordinate (as float) starting from local coordinates
Float_t GetLocalZFromAnode(Int_t nAnode) const
 returns local Z coordinate from anode number (integer)
Float_t GetLocalZFromAnode(Float_t zAnode) const
 returns local Z coordinate from anode number (float)
Int_t GetChipFromChannel(Int_t ix, Int_t iz) const
 returns chip number (in range 0-7) starting from channel number
Int_t GetChipFromLocal(Float_t xloc, Float_t zloc) const
 returns chip number (in range 0-7) starting from local coordinates
Int_t GetChipsInLocalWindow(Int_t* array, Float_t zmin, Float_t zmax, Float_t xmin, Float_t xmax) const
 returns the numbers of the chips that read channels in a given region
 of the module defined in local coordinates by zmin-zmax, xmin-max
void GetPadIxz(Float_t x, Float_t z, Int_t& ix, Int_t& iz) const
 Returns cell coordinates (time sample,anode)
 for given real local coordinates (x,z)
 expects x, z in cm
void GetPadCxz(Int_t ix, Int_t iz, Float_t& x, Float_t& z) const
 Transform from cell to real local coordinates
 returns x, z in cm
 the +0.5 means that an # and time bin # should start from 0 !!!
 the +0.5 means that an # and time bin # should start from 0 !!!
void GetPadTxz(Float_t& x, Float_t& z) const
 Get anode and time bucket as floats - numbering from 0
void Print(Option_t* opt = "") const
 Print SDD segmentation Parameters
void PrintDefaultParameters() const
 print SDD parameters defined as static const data members
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
 time bucket numbers ix and anode number 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 time coordinate. Has the range 0<=ix<fNsamples.
 Int_t    iz      detector z anode coordinate. Has the range 0<=iz<fNandoes.
   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 time bucket and anode coordiantes to Geant
 detector centerd local coordinates (cm).
 Input:
 Int_t    ix      detector x time coordinate. Has the range 0<=ix<fNsamples.
 Int_t    iz      detector z anode coordinate. Has the range 0<=iz<fNandoes.
 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 -Dx()
 or -0.5*Dz() is returned.
virtual ~AliITSsegmentationSDD()
{}
Float_t GetDriftSpeed() const
 Set Detector Segmentation Parameters

 get the drift speed used for this segmentation
{return fDriftSpeed;}
void SetDriftSpeed(Float_t ds)
 Set the drift speed needed for this segmentation
void SetPadSize(Float_t pitch, Float_t clock)
 Cell size dz*dx
{fPitch=pitch;fTimeStep=1000./clock;}
void SetNPads(Int_t p1, Int_t p2)
 Maximum number of cells along the two coordinates z,x (anodes,samples)
{fNanodes=2*p1;fNsamples=p2;}
Int_t GetNPads() const
 Returns the maximum number of cells (digits) posible
Int_t GetSideFromLocalX(Float_t xloc) const
Float_t GetDriftTimeFromTb(Int_t tb) const
return GetDriftTimeFromTb(xtb)
Int_t GetNumberOfChips() const
Int_t GetMaximumChipIndex() const
Float_t Dpx(Int_t ) const
 Get member data

 Cell size in x
{return fTimeStep;}
Float_t Dpz(Int_t ) const
 Cell size in z
{return fPitch;}
Int_t Npx() const
 Maximum number of samples in x
{return fNsamples;}
Int_t Npz() const
 Maximum number of anodes in z
{return fNanodes;}
Int_t NpzHalf() const
 Maximum number of anodes in z
{return fNanodes/2;}
void Neighbours(Int_t iX, Int_t iZ, Int_t* Nlist, Int_t* Xlist, Int_t* Zlist) const
 Get next neighbours
{}
Int_t GetNAnodesPerHybrid()