AliRoot Core  3abf5b4 (3abf5b4)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliMpSlat Class Reference

A slat (building block of stations 3, 4 and 5) More...

#include <AliMpSlat.h>

Inheritance diagram for AliMpSlat:

Public Member Functions

 AliMpSlat (TRootIOCtor *ioCtor)
 
 AliMpSlat (const char *id, AliMp::PlaneType bendingOrNonBending)
 
virtual ~AliMpSlat ()
 
Double_t GetPositionX () const
 Return x position. More...
 
Double_t GetPositionY () const
 Return y position. More...
 
const char * GetName () const
 
const char * GetID () const
 
void Add (const AliMpPCB &pcbType, const TArrayI &manuList)
 
Double_t DX () const
 
Double_t DY () const
 
AliMpPCBFindPCB (Int_t ix) const
 Find the PCB containing the pad at location (ix,any iy). More...
 
Int_t FindPCBIndex (Int_t ix) const
 Find the index of the PCB containing the pad at location ix. More...
 
Int_t FindPCBIndexByMotifPositionID (Int_t manuId) const
 Find the index of the PCB containing a given manu. More...
 
AliMpPCBFindPCB (Double_t x, Double_t y) const
 Find the PCB containing location (x,y). More...
 
Int_t FindPCBIndex (Double_t x, Double_t y) const
 Find the index of the PCB containing the pad at location (x,y). More...
 
AliMpPCBGetPCB (Int_t i) const
 Returns the i-th PCB of this slat. More...
 
AliMpMotifPositionFindMotifPosition (Double_t x, Double_t y) const
 Returns the MotifPosition containing location (x,y). More...
 
AliMpMotifPositionFindMotifPosition (Int_t manuid) const
 Returns the MotifPosition which id is manuid. More...
 
AliMpMotifPositionFindMotifPosition (Int_t ix, Int_t iy) const
 Returns the MotifPosition containing the pad located at (ix,iy). More...
 
void GetAllMotifPositionsIDs (TArrayI &ecn) const
 Return the ids of the electronic cards (either manu or local board). More...
 
Int_t GetMaxNofPadsY () const
 
Int_t GetMaxPadIndexX () const
 
Int_t GetNofElectronicCards () const
 Return the number of electronic cards (either manu or local board). More...
 
Int_t GetNofPadsX () const
 Returns the number of pads in the x-direction contained in this slat. More...
 
Int_t GetSize () const
 Returns the number of PCBs of this slat. More...
 
void Print (Option_t *option="") const
 
void ForcePosition (Double_t x, Double_t y)
 
AliMp::PlaneType PlaneType () const
 Return the plane type. More...
 
Int_t NofPads () const
 Return the number of pads in this slat. More...
 

Private Member Functions

 AliMpSlat ()
 Not implemented. More...
 
 AliMpSlat (const AliMpSlat &rhs)
 Not implemented. More...
 
AliMpSlatoperator= (const AliMpSlat &rhs)
 Not implemented. More...
 

Private Attributes

TString fId
 The name of this slat, e.g. 112233N. More...
 
AliMp::PlaneType fPlaneType
 Whether it's bending or non-bending plane. More...
 
Double_t fDX
 Half-size in X (cm) More...
 
Double_t fDY
 Half-size in Y (cm) More...
 
Int_t fNofPadsX
 Actual number of pads in x direction. More...
 
Int_t fMaxNofPadsY
 Maximum number of pads in y direction. More...
 
AliMpExMap fManuMap
 map of int to AliMpMotifPosition* More...
 
TObjArray fPCBs
 array of AliMpPCB* More...
 
Double_t fPositionX
 x Position of the slat center. More...
 
Double_t fPositionY
 y Position of the slat center. More...
 
Int_t fNofPads
 number of pads in this slat More...
 

Detailed Description

A slat (building block of stations 3, 4 and 5)

Definition at line 51 of file AliMpSlat.h.

Constructor & Destructor Documentation

AliMpSlat::AliMpSlat ( TRootIOCtor *  ioCtor)

Empty ctor.

Definition at line 52 of file AliMpSlat.cxx.

AliMpSlat::AliMpSlat ( const char *  id,
AliMp::PlaneType  bendingOrNonBending 
)

Normal ctor

Definition at line 76 of file AliMpSlat.cxx.

AliMpSlat::~AliMpSlat ( )
virtual

Dtor.

Definition at line 100 of file AliMpSlat.cxx.

AliMpSlat::AliMpSlat ( )
private

Not implemented.

AliMpSlat::AliMpSlat ( const AliMpSlat rhs)
private

Not implemented.

Member Function Documentation

void AliMpSlat::Add ( const AliMpPCB pcbType,
const TArrayI &  manuList 
)

Adds a PCB to this slat. The manuList specifies the ids of the manu that compose the PCB. The manuList ordering is important, as the assumption is that it's ordered counter-clockwise, starting from the lower-left of the PCB.

Definition at line 112 of file AliMpSlat.cxx.

Referenced by AliMpTriggerReader::BuildSlat(), and AliMpSt345Reader::ReadSlat().

AliMpMotifPosition * AliMpSlat::FindMotifPosition ( Double_t  x,
Double_t  y 
) const
AliMpMotifPosition * AliMpSlat::FindMotifPosition ( Int_t  manuid) const

Returns the MotifPosition which id is manuid.

Returns the motifPosition referenced by it manuID

Definition at line 181 of file AliMpSlat.cxx.

AliMpMotifPosition * AliMpSlat::FindMotifPosition ( Int_t  ix,
Int_t  iy 
) const

Returns the MotifPosition containing the pad located at (ix,iy).

  • 1. Find the PCB containing ix (iy not needed for this)
  • 2. Forward the request to the PCB, using pcb local indices.

Definition at line 191 of file AliMpSlat.cxx.

AliMpPCB * AliMpSlat::FindPCB ( Int_t  ix) const

Find the PCB containing the pad at location (ix,any iy).

Returns the PCB containing x-integer-position ix

Definition at line 228 of file AliMpSlat.cxx.

Referenced by AliMpPCBPadIterator::CropArea(), and FindMotifPosition().

AliMpPCB * AliMpSlat::FindPCB ( Double_t  x,
Double_t  y 
) const

Find the PCB containing location (x,y).

Returns the PCB containing position (x,y)

Definition at line 264 of file AliMpSlat.cxx.

Int_t AliMpSlat::FindPCBIndex ( Int_t  ix) const

Find the index of the PCB containing the pad at location ix.

Returns the index of the PCB containing x-integer-position ix.

Definition at line 246 of file AliMpSlat.cxx.

Int_t AliMpSlat::FindPCBIndex ( Double_t  x,
Double_t  y 
) const

Find the index of the PCB containing the pad at location (x,y).

Returns the index of the PCB containing position (x,y)

Definition at line 289 of file AliMpSlat.cxx.

Int_t AliMpSlat::FindPCBIndexByMotifPositionID ( Int_t  manuId) const

Find the index of the PCB containing a given manu.

Find the index of the PCB containing a given manu

Definition at line 308 of file AliMpSlat.cxx.

Referenced by AliMpDCSNamer::ManuId2PCBIndex().

void AliMpSlat::ForcePosition ( Double_t  x,
Double_t  y 
)

This is normally only used by triggerSlats, as for ST345 slats, the position is DX(),DY() simply.

Force the position to be different from (DX(),DY()). Normally only used by triggerSlats (for layers). Beware that this method must be called once all PCB have been added, as the Add() method resets the position.

Definition at line 321 of file AliMpSlat.cxx.

void AliMpSlat::GetAllMotifPositionsIDs ( TArrayI &  ecn) const

Return the ids of the electronic cards (either manu or local board).

Return all the manuIds (=MotifPositionIDs) of this slat

Definition at line 335 of file AliMpSlat.cxx.

Referenced by AliMpSlatSegmentation::GetAllElectronicCardIDs(), and AliMpTrigger::GetAllLocalBoardNumbers().

const char * AliMpSlat::GetID ( ) const
Int_t AliMpSlat::GetMaxNofPadsY ( ) const

Returns the max. number of pads in the x-direction contained in this slat. This is a max only as for e.g. non-bending slats, the y-dimension depends on the x-position.

Returns the maximum number of pads to be found in this slat y-direction.

Definition at line 366 of file AliMpSlat.cxx.

Referenced by AliMpTrigger::AdoptLayer(), AliMpSlatSegmentation::MaxPadIndexY(), and Print().

Int_t AliMpSlat::GetMaxPadIndexX ( ) const

Returns the max index useable in x-direction. Note that this can be different from GetNofPadsX()-1 for rounded slats.

Returns the max ix that is valid for this slat.

Definition at line 376 of file AliMpSlat.cxx.

Referenced by AliMpSlatSegmentation::MaxPadIndexX().

const char * AliMpSlat::GetName ( ) const

Returns the name of this slat, which is composed of its ID with the plane type as a suffix.

Definition at line 391 of file AliMpSlat.cxx.

Referenced by AliMpPCBPadIterator::First(), AliMpSlatSegmentation::GetName(), and AliMpPCBPadIterator::Print().

Int_t AliMpSlat::GetNofElectronicCards ( ) const

Return the number of electronic cards (either manu or local board).

Returns the number of manus that compose the readout of this slat.

Definition at line 415 of file AliMpSlat.cxx.

Referenced by AliMpDEVisu::DrawSlat(), AliMpTrigger::GetAllLocalBoardNumbers(), GetAllMotifPositionsIDs(), and AliMpSlatSegmentation::GetNofElectronicCards().

Int_t AliMpSlat::GetNofPadsX ( ) const

Returns the number of pads in the x-direction contained in this slat.

Returns the number of pad in x-direction.

Definition at line 425 of file AliMpSlat.cxx.

Referenced by AliMpTrigger::GetNofPadsX(), and Print().

Int_t AliMpSlat::GetSize ( ) const
Int_t AliMpSlat::NofPads ( ) const
inline

Return the number of pads in this slat.

Definition at line 134 of file AliMpSlat.h.

Referenced by AliMpSlatSegmentation::NofPads().

AliMpSlat& AliMpSlat::operator= ( const AliMpSlat rhs)
private

Not implemented.

AliMp::PlaneType AliMpSlat::PlaneType ( ) const
inline

Return the plane type.

Definition at line 131 of file AliMpSlat.h.

Referenced by AliMpSlatSegmentation::PlaneType().

void AliMpSlat::Print ( Option_t *  option = "") const

Prints the slat characteristics.

Definition at line 456 of file AliMpSlat.cxx.

Referenced by AliMpSlatSegmentation::Print(), AliMpTrigger::Print(), and AliMpTriggerReader::ReadSlat().

Member Data Documentation

Double_t AliMpSlat::fDX
private

Half-size in X (cm)

Definition at line 146 of file AliMpSlat.h.

Referenced by Add(), and DX().

Double_t AliMpSlat::fDY
private

Half-size in Y (cm)

Definition at line 147 of file AliMpSlat.h.

Referenced by Add(), and DY().

TString AliMpSlat::fId
private

The name of this slat, e.g. 112233N.

Definition at line 144 of file AliMpSlat.h.

Referenced by GetID(), and ~AliMpSlat().

AliMpExMap AliMpSlat::fManuMap
mutableprivate

map of int to AliMpMotifPosition*

Definition at line 150 of file AliMpSlat.h.

Referenced by Add(), AliMpSlat(), FindMotifPosition(), GetAllMotifPositionsIDs(), GetNofElectronicCards(), and Print().

Int_t AliMpSlat::fMaxNofPadsY
private

Maximum number of pads in y direction.

Definition at line 149 of file AliMpSlat.h.

Referenced by Add(), and GetMaxNofPadsY().

Int_t AliMpSlat::fNofPads
private

number of pads in this slat

Definition at line 154 of file AliMpSlat.h.

Referenced by Add(), and NofPads().

Int_t AliMpSlat::fNofPadsX
private

Actual number of pads in x direction.

Definition at line 148 of file AliMpSlat.h.

Referenced by Add(), and GetNofPadsX().

TObjArray AliMpSlat::fPCBs
private

array of AliMpPCB*

Definition at line 151 of file AliMpSlat.h.

Referenced by Add(), AliMpSlat(), GetPCB(), GetSize(), Print(), and ~AliMpSlat().

AliMp::PlaneType AliMpSlat::fPlaneType
private

Whether it's bending or non-bending plane.

Definition at line 145 of file AliMpSlat.h.

Referenced by GetName(), and PlaneType().

Double_t AliMpSlat::fPositionX
private

x Position of the slat center.

Definition at line 152 of file AliMpSlat.h.

Referenced by Add(), ForcePosition(), and GetPositionX().

Double_t AliMpSlat::fPositionY
private

y Position of the slat center.

Definition at line 153 of file AliMpSlat.h.

Referenced by Add(), ForcePosition(), and GetPositionY().


The documentation for this class was generated from the following files: