#include "TArrayI.h"
#include "TObjArray.h"
+///
+/// \class AliMpTrigger
+///
+/// A trigger 'slat' object.
+/// It is to be viewed as a superposition of
+/// virtual layers of AliMpSlat objects. The need for more than one layer
+/// arise from the fact that a given local board deals with strips
+/// located in different detelem. So a given strip (pad) can have several
+/// "locations".
+///
+/// \author Laurent Aphecetche
+
ClassImp(AliMpTrigger)
namespace
: TObject(), fId(""), fPlaneType(kNonBendingPlane),
fMaxNofPadsY(0), fDX(0), fDY(0)
{
+ // default ctor
}
//_____________________________________________________________________________
: TObject(), fId(slatType), fPlaneType(bendingOrNot),
fMaxNofPadsY(0), fDX(0), fDY(0)
{
+ // normal ctor
}
//_____________________________________________________________________________
AliMpTrigger::~AliMpTrigger()
{
+ // dtor
AliDebug(1,Form("this=%p before fSlats.Delete()",this));
fSlats.Delete();
AliDebug(1,Form("this=%p after fSlats.Delete()",this));
Bool_t
AliMpTrigger::AdoptLayer(AliMpSlat* slat)
{
+ // Adopt (i.e. we become owner of that pointer) a slat, as
+ // a layer of this trigger slat.
+
AliDebug(1,Form("%s is adopting %s :\n",
GetID(),slat->GetID()));
TVector2
AliMpTrigger::Dimensions() const
{
+ // Returns the dimensions (half-sizes) of that slat (cm)
return TVector2(DX(),DY());
}
Double_t
AliMpTrigger::DX() const
{
+ // Returns the half-size in X (cm)
return fDX;
}
Double_t
AliMpTrigger::DY() const
{
+ // Returns the half-size in Y (cm)
return fDY;
}
void
AliMpTrigger::GetAllLocalBoardNumbers(TArrayI& lbn) const
{
+ // Fills lbn with the local board numbers we're dealing with
Int_t n(0);
for ( Int_t i = 0; i < GetSize(); ++i )
{
const char*
AliMpTrigger::GetID() const
{
+ // returns the id of this slat
return fId.Data();
}
const char*
AliMpTrigger::GetName() const
{
+ // returns the name (=id+bending/non-bending) of this slat
TString name(GetID());
if ( fPlaneType == kBendingPlane )
{
AliMpSlat*
AliMpTrigger::GetLayer(int layer) const
{
+ // Returns a given layer
if ( IsLayerValid(layer) )
{
return (AliMpSlat*)fSlats.At(layer);
Int_t
AliMpTrigger::GetNofPadsX() const
{
+ // Returns the number of pad in x direction
if ( !GetSize() ) return -1;
if ( GetLayer(0) )
{
Int_t
AliMpTrigger::GetMaxNofPadsY() const
{
+ // Maximum number of pads in y direction
return fMaxNofPadsY;
}
Int_t
AliMpTrigger::GetSize() const
{
+ // Number of layers
return fSlats.GetEntriesFast();
}
Bool_t
AliMpTrigger::IsLayerValid(int layer) const
{
+ // Whether a given layer index is valid or not
if ( layer >= 0 && layer < GetSize() )
{
return kTRUE;
AliMpPlaneType
AliMpTrigger::PlaneType() const
{
+ // Bending or not
return fPlaneType;
}
TVector2
AliMpTrigger::Position() const
{
+ // Slat position (cm)
return TVector2(DX(),DY());
}
void
AliMpTrigger::Print(Option_t* opt) const
{
+ // Dump on screen
cout << "AliMpTrigger::" << GetID();
if ( GetSize() == 0 )
{