![]() |
AliRoot Core
3abf5b4 (3abf5b4)
|
A slat (building block of stations 3, 4 and 5) More...
#include <AliMpSlat.h>
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 |
AliMpPCB * | FindPCB (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... | |
AliMpPCB * | FindPCB (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... | |
AliMpPCB * | GetPCB (Int_t i) const |
Returns the i-th PCB of this slat. More... | |
AliMpMotifPosition * | FindMotifPosition (Double_t x, Double_t y) const |
Returns the MotifPosition containing location (x,y). More... | |
AliMpMotifPosition * | FindMotifPosition (Int_t manuid) const |
Returns the MotifPosition which id is manuid. More... | |
AliMpMotifPosition * | FindMotifPosition (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... | |
AliMpSlat & | operator= (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... | |
A slat (building block of stations 3, 4 and 5)
Definition at line 51 of file AliMpSlat.h.
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.
|
virtual |
Dtor.
Definition at line 100 of file AliMpSlat.cxx.
|
private |
Not implemented.
|
private |
Not implemented.
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().
Double_t AliMpSlat::DX | ( | ) | const |
Returns the x-half-size of the slat.
Definition at line 161 of file AliMpSlat.cxx.
Referenced by Add(), AliMpTrigger::AdoptLayer(), AliMpTriggerReader::BuildSlat(), AliMpSlatSegmentation::CreateIterator(), AliMpSlatPainter::GetDimensions(), AliMpSlatSegmentation::GetDimensionX(), AliMpSlatPainter::GetPosition(), and Print().
Double_t AliMpSlat::DY | ( | ) | const |
Returns the y-half-size of the slat.
Definition at line 171 of file AliMpSlat.cxx.
Referenced by Add(), AliMpTrigger::AdoptLayer(), AliMpTriggerReader::BuildSlat(), AliMpSlatSegmentation::CreateIterator(), AliMpSlatPainter::GetDimensions(), AliMpSlatSegmentation::GetDimensionY(), AliMpSlatPainter::GetPosition(), and Print().
AliMpMotifPosition * AliMpSlat::FindMotifPosition | ( | Double_t | x, |
Double_t | y | ||
) | const |
Returns the MotifPosition containing location (x,y).
Returns the motifPosition containing position (x,y)
Definition at line 210 of file AliMpSlat.cxx.
Referenced by AliMpSlatSegmentation::HasPadByIndices(), AliMpSlatSegmentation::HasPadByLocation(), AliMpSlatSegmentation::MotifPosition(), AliMpSlatSegmentation::PadByIndices(), AliMpSlatSegmentation::PadByLocation(), AliMpSlatSegmentation::PadByPosition(), and AliMpBusPatch::SetNofManusPerModule().
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).
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 |
Returns the name of this slat.
Definition at line 356 of file AliMpSlat.cxx.
Referenced by AliMpTrigger::AdoptLayer(), AliMpTriggerReader::BuildSlat(), GetName(), AliMpSlatSegmentation::PadByLocation(), AliMpSlatSegmentation::PadByPosition(), and Print().
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().
AliMpPCB * AliMpSlat::GetPCB | ( | Int_t | i | ) | const |
Returns the i-th PCB of this slat.
Returns the i-th PCB of this slat.
Definition at line 435 of file AliMpSlat.cxx.
Referenced by Add(), AliMUONPCBPainter::AliMUONPCBPainter(), AliMpSlatPainter::Draw(), FindPCB(), FindPCBIndex(), FindPCBIndexByMotifPositionID(), GetMaxPadIndexX(), AliMUONPainterHelper::GetPCB(), AliMUONTriggerCircuit::LoadXPos(), AliMUONTriggerCircuit::LoadYPos(), AliMpDEVisu::PopUpManuMotif(), AliMpSlatPadIterator::Prepare(), AliMpTriggerReader::ReadSlat(), AliMpBusPatch::SetNofManusPerModule(), and AliMUONRejectList::SetPCBProbability().
|
inline |
Return x position.
Definition at line 60 of file AliMpSlat.h.
Referenced by AliMUONPCBPainter::AliMUONPCBPainter(), AliMpSlatSegmentation::CreateIterator(), AliMpSlatSegmentation::GetPositionX(), AliMpSlatSegmentation::PadByIndices(), AliMpSlatSegmentation::PadByLocation(), AliMpSlatSegmentation::PadByPosition(), and Print().
|
inline |
Return y position.
Definition at line 62 of file AliMpSlat.h.
Referenced by AliMUONPCBPainter::AliMUONPCBPainter(), AliMpSlatSegmentation::CreateIterator(), AliMpSlatSegmentation::GetPositionY(), AliMpSlatSegmentation::PadByIndices(), AliMpSlatSegmentation::PadByLocation(), AliMpSlatSegmentation::PadByPosition(), and Print().
Int_t AliMpSlat::GetSize | ( | ) | const |
Returns the number of PCBs of this slat.
Returns the number of PCB in this slat.
Definition at line 446 of file AliMpSlat.cxx.
Referenced by Add(), AliMUONDEPainter::AliMUONDEPainter(), AliMpSlatPainter::Draw(), FindPCB(), FindPCBIndex(), FindPCBIndexByMotifPositionID(), GetMaxPadIndexX(), AliMpDCSNamer::NumberOfPCBs(), AliMpDEVisu::PopUpManuMotif(), AliMpSlatPadIterator::Prepare(), Print(), and AliMpTriggerReader::ReadSlat().
|
inline |
Return the number of pads in this slat.
Definition at line 134 of file AliMpSlat.h.
Referenced by AliMpSlatSegmentation::NofPads().
|
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().
|
private |
|
private |
|
private |
The name of this slat, e.g. 112233N.
Definition at line 144 of file AliMpSlat.h.
Referenced by GetID(), and ~AliMpSlat().
|
mutableprivate |
map of int to AliMpMotifPosition*
Definition at line 150 of file AliMpSlat.h.
Referenced by Add(), AliMpSlat(), FindMotifPosition(), GetAllMotifPositionsIDs(), GetNofElectronicCards(), and Print().
|
private |
Maximum number of pads in y direction.
Definition at line 149 of file AliMpSlat.h.
Referenced by Add(), and GetMaxNofPadsY().
|
private |
number of pads in this slat
Definition at line 154 of file AliMpSlat.h.
|
private |
Actual number of pads in x direction.
Definition at line 148 of file AliMpSlat.h.
Referenced by Add(), and GetNofPadsX().
|
private |
array of AliMpPCB*
Definition at line 151 of file AliMpSlat.h.
Referenced by Add(), AliMpSlat(), GetPCB(), GetSize(), Print(), and ~AliMpSlat().
|
private |
Whether it's bending or non-bending plane.
Definition at line 145 of file AliMpSlat.h.
Referenced by GetName(), and PlaneType().
|
private |
x Position of the slat center.
Definition at line 152 of file AliMpSlat.h.
Referenced by Add(), ForcePosition(), and GetPositionX().
|
private |
y Position of the slat center.
Definition at line 153 of file AliMpSlat.h.
Referenced by Add(), ForcePosition(), and GetPositionY().