ROOT logo
AliRoot » MUON » MAPPING » AliMpPCB

class AliMpPCB: public TObject

 \class AliMpPCB

 A PCB for station 3,4 or 5

 A PCB is a group of pads having the same size
 Pads are grouped in motifs, where 1 motif = 1 MANU

 The notion of PCB enveloppe is due to the fact that not all PCBs are
 "full" of pads, e.g. the rounded or short ones miss some pads,
 but the enveloppe is a virtual size that should be constant
 across the slats, and is 400x400 mm.
 It's a usefull notion to compute e.g. slat center in a uniform way,
 considering that a slat is N PCBs, of the same "virtual" size, that of
 the enveloppe.

 \author L. Aphecetche

Function Members (Methods)

public:
AliMpPCB()
AliMpPCB(const AliMpPCB& o)
AliMpPCB(const char* id, AliMpMotifSpecial* ms)
AliMpPCB(AliMpSlatMotifMap* motifMap, const char* id, Double_t padSizeX, Double_t padSizeY, Double_t enveloppeSizeX, Double_t enveloppeSizeY)
virtual~AliMpPCB()
voidTObject::AbstractMethod(const char* method) const
Double_tActiveDX() const
Double_tActiveDY() const
Double_tActiveXmax() const
Double_tActiveXmin() const
voidAdd(AliMpMotifType* motifType, Int_t ix, Int_t iy)
virtual voidTObject::AppendPad(Option_t* option = "")
AliMpAreaArea() const
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*Clone(const char* newname = "") const
AliMpPCB*Clone(const TArrayI& manuids, Int_t ixOffset, Double_t xOffset) const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidCopy(TObject& o) const
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
Double_tDX() const
Double_tDY() 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
AliMpMotifPosition*FindMotifPosition(Int_t ix, Int_t iy) const
AliMpMotifPosition*FindMotifPosition(Double_t x, Double_t y) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
const char*GetID() const
AliMpMotifPosition*GetMotifPosition(Int_t i) const
virtual const char*TObject::GetName() const
Int_tGetNofPadsX() const
Int_tGetNofPadsY() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Int_tGetSize() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
Bool_tHasMotifPositionID(Int_t manuId) 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 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
Int_tIxmax() const
Int_tIxmin() const
Int_tIymax() const
Int_tIymin() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
AliMpSlatMotifMap*MotifMap() const
Int_tNofPads() 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)
AliMpPCB&operator=(const AliMpPCB& o)
Double_tPadSizeX() const
Double_tPadSizeY() const
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
voidSave() const
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 voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
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
Double_tX() const
Double_tXmax() const
Double_tXmin() const
Double_tY() const
Double_tYmax() const
Double_tYmin() const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

private:
Double_tfActiveXmax/< max x of an actual pad in this PCB (cm)
Double_tfActiveXmin/< min x of an actual pad in this PCB (cm)
Double_tfEnveloppeSizeX/< max x-size of this PCB (cm)
Double_tfEnveloppeSizeY/< max y-size of this PCB (cm)
TStringfId/< PCB name
Int_tfIxmax/< max pad index in x
Int_tfIxmin/< min pad index in x
Int_tfIymax/< max pad index in y
Int_tfIymin/< min pad index in y
AliMpSlatMotifMap*fMotifMap/< to keep track of things to avoid duplications of motif and motiftypes, and get proper deletion
TObjArrayfMotifPositions/< array of motifs
Int_tfNofPads/< number of pads in this PCB
Double_tfPadSizeX/< x-size of this PCB's pads (cm)
Double_tfPadSizeY/< y-size of this PCB's pads (cm)
Double_tfXoffset/< x-offset = x of first pad of this PCB (cm)

Class Charts

Inheritance Chart:
TObject
AliMpPCB

Function documentation

AliMpPCB()
 Default ctor.

AliMpPCB(AliMpSlatMotifMap* motifMap, const char* id, Double_t padSizeX, Double_t padSizeY, Double_t enveloppeSizeX, Double_t enveloppeSizeY)
 Normal ctor. Must be fed with the PCB's name (id), the pad dimensions
 and the global dimension of the virtual enveloppe of the PCB
 (usually 400x400 mm)
AliMpPCB(const AliMpPCB& o)
 Copy constructor
AliMpPCB(const char* id, AliMpMotifSpecial* ms)
 Very special ctor to be used by trigger stations only (and for a very
 specific case).

 Note that in this very case, we only allow one (special) motif per PCB.
 This limitation might not be justified, except that it's all we need
 so far ;-)

operator=(const AliMpPCB& o)
 Assignment operator
~AliMpPCB()
 Dtor.

ActiveXmin() const
 Returns the mininum x for which there is a pad in this PCB.
 Different from Xmin only for PCB which are not full of pads.

ActiveXmax() const
 Returns the maximum x for which there is a pad in this PCB.
 Different from Xmax only for PCB which are not full of pads.

Add(AliMpMotifType* motifType, Int_t ix, Int_t iy)
 Add a motif to this PCB. (ix,iy) indicates one corner position of the motif
 where the sign of ix and iy is used to indicate which corner is the
 reference (then for values, abs(ix) and abs(iy) are used indeed) :

 (ix>0,iy>0) : bottom-left corner
 (ix<0,iy>0) : bottom-right corner
 (ix<0,iy<0) : top-right corner
 (ix>0,iy<0) : top-left corner.
Area() const
 Return the area of this PCB
Clone(const char* newname = "") const
 Return a full copy of this object.

Clone(const TArrayI& manuids, Int_t ixOffset, Double_t xOffset) const
 Get a full copy of *this, and then apply 2 changes to it :

 a) define the relationship motifType <-> manu id
 b) define the x-offset
 c) shift ix indices backwards to insure that e.g. the first
    pcb of a slat will start at ix=0 (only relevant for rounded pcbs).

Copy(TObject& o) const
 Copy *this into o
ActiveDX() const
 Half-length (in x-direction) occupied by pads

DX() const
 Half-length (in x-direction) of the PCB.
 This length is the one of the virtual enveloppe of the PCB and might
 be bigger than the length occupied by pads (e.g. for rounded or short
 PCBs).
 See also ActiveDX().

ActiveDY() const
 Half-length (in y-direction) occupied by pads

DY() const
 Half-length (in y-direction) of the PCB.
 This length is the one of the virtual enveloppe of the PCB and might
 be bigger than the length occupied by pads (e.g. for rounded or short
 PCBs).
 See also ActiveDY().

FindMotifPosition(Int_t ix, Int_t iy) const
 Returns the motifPosition located at the position referenced by
 integer indices (ix,iy).

FindMotifPosition(Double_t x, Double_t y) const
 Returns the motifPosition located at position (x,y)

GetID() const
 Returns the name of this PCB.

GetMotifPosition(Int_t i) const
 Get the i-th motifPosition stored in this PCB's internal array.

GetNofPadsX() const
 Returns the number of pads in x-direction.

GetNofPadsY() const
 Returns the number of pads in y-direction.

GetSize() const
 Returns the number of motifPositions stored in this PCB.

HasMotifPositionID(Int_t manuId) const
 Returns whether or not we have manuId
Ixmin() const
 Returns the index value of the leftmost pad.

Ixmax() const
 Returns the index value of the rightmost pad.

Iymin() const
 Returns the index value of the bottom pad.

Iymax() const
 Returns the index value of the top pad.

PadSizeX() const
 Returns the pad size in x-direction (in mm)

PadSizeY() const
 Returns the pad size in y-direction (in mm)

Print(Option_t* option = "") const
 Printout of this PCB.
 If option="M", the contained motifs are printed too.

Save() const
 Save this PCB in the file
X() const
 Returns the x-position of the PCB center.

Xmin() const
 Returns the leftmost x-position in this PCB.

Xmax() const
 Returns the rightmost x-position in this PCB.

Y() const
 Returns the y-position of the PCB center.

Ymin() const
 Returns the smallest y-position in this PCB.

Ymax() const
 Returns the largest y-position in this PCB.

Int_t NofPads() const
 Return the number of pads in this PCB
{ return fNofPads; }