AliRoot Core  da88d91 (da88d91)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliMUONPad Class Reference

Combination of digit and mppad informations. More...

#include <AliMUONPad.h>

Inheritance diagram for AliMUONPad:

Public Member Functions

 AliMUONPad ()
 
 AliMUONPad (Double_t x, Double_t y, Double_t dx, Double_t dy, Double_t charge)
 
 AliMUONPad (const TVector2 &position, const TVector2 &dimensions, Double_t charge)
 
 AliMUONPad (Int_t detElemId, Int_t cathode, Int_t ix, Int_t iy, Double_t x, Double_t y, Double_t dx, Double_t dy, Double_t charge)
 
virtual ~AliMUONPad ()
 
void BackupCharge ()
 Backup charge Usefull if clustering somehow plays with the charge, this one is the "original" one. More...
 
Int_t Cathode () const
 Return cathode number. More...
 
Double_t Coord (Int_t ixy) const
 
Double_t Charge () const
 Return pad charge. More...
 
Double_t ChargeBackup () const
 Return backup charge. More...
 
Int_t DetElemId () const
 Return detection element id. More...
 
TVector2 Dimensions () const
 Return half dimensions in x and y (cm) More...
 
Double_t DX () const
 Return half dimensions in x (cm) More...
 
Double_t DY () const
 Return half dimensions in y (cm) More...
 
Bool_t IsReal () const
 Return info whether this is a real pad or a virtual one. More...
 
Bool_t IsSaturated () const
 Return info whether this pad is saturated or not. More...
 
Bool_t IsSortable () const
 Return true as the function Compare is implemented. More...
 
virtual Int_t Compare (const TObject *obj) const
 
Bool_t IsUsed () const
 Return true if is used. More...
 
Int_t Ix () const
 Return x-index. More...
 
Int_t Iy () const
 Return y-index. More...
 
virtual void Paint (Option_t *opt="")
 
TVector2 Position () const
 Return positions in x and y (cm) More...
 
void Print (Option_t *opt="") const
 
void Release ()
 Detach this pad from a cluster. More...
 
void RevertCharge ()
 Set charge to value in backup charge. More...
 
void SetCharge (Double_t charge)
 Set charge. More...
 
void SetChargeBackup (Double_t charge)
 Set charge backup. More...
 
void SetCoord (Int_t ixy, Double_t Coord)
 
void SetStatus (Int_t status)
 Set status word. More...
 
void SetClusterId (Int_t id)
 Set cluster id this pad belongs to -1 if not attached to a cluster. More...
 
void SetSaturated (Bool_t val)
 Set info whether this pad is saturated or not. More...
 
void SetSize (Int_t ixy, Double_t Size)
 
void SetReal (Bool_t val)
 Set info whether this is a real pad or a virtual one. More...
 
void Shift (Int_t ixy, Double_t shift)
 
Double_t Size (Int_t ixy) const
 
Int_t Status () const
 Return status word. More...
 
Double_t X () const
 Return position in x (cm) More...
 
Double_t Y () const
 Return position in y (cm) More...
 

Static Public Member Functions

static AliMpArea Overlap (const AliMUONPad &d1, const AliMUONPad &d2)
 
static Bool_t AreOverlapping (const AliMUONPad &d1, const AliMUONPad &d2, const TVector2 &precision, AliMpArea &overlapArea)
 
static Bool_t AreOverlapping (const AliMUONPad &d1, const AliMUONPad &d2, const TVector2 &precision)
 
static Bool_t AreNeighbours (const AliMUONPad &d1, const AliMUONPad &d2)
 

Private Member Functions

void Init (Int_t detElemId, Int_t cathode, Int_t ix, Int_t iy, const TVector2 &position, const TVector2 &dimensions, Double_t charge)
 

Private Attributes

Bool_t fIsSaturated
 whether this pad is saturated or not More...
 
Bool_t fIsReal
 whether this is a real pad or a virtual one More...
 
Int_t fClusterId
 cluster id this pad belongs to (-1 if not attached to a cluster) More...
 
Int_t fCathode
 cathode number More...
 
Int_t fDetElemId
 detection element id More...
 
Int_t fIx
 x-index More...
 
Int_t fIy
 y-index More...
 
Int_t fStatus
 status word More...
 
TVector2 fDimensions
 half dimensions in x and y (cm) More...
 
TVector2 fPosition
 positions in x and y (cm) More...
 
Double_t fCharge
 pad charge More...
 
Double_t fChargeBackup
 backup charge (usefull if clustering somehow plays with the charge, this one is the "original" one) More...
 

Detailed Description

Combination of digit and mppad informations.

Object gathering information about a hit pad.

Can be seen as a combination of a Digit (which brings the charge) and an MpPad (which brings location and position)

Also provided are some static functions to compute overlap and get neighboring information.

Author
Laurent Aphecetche

Definition at line 25 of file AliMUONPad.h.

Constructor & Destructor Documentation

AliMUONPad::AliMUONPad ( )

Default ctor

Definition at line 73 of file AliMUONPad.cxx.

AliMUONPad::AliMUONPad ( Double_t  x,
Double_t  y,
Double_t  dx,
Double_t  dy,
Double_t  charge 
)

Truncated constructor (w/o DE, cath, ix, iy)

Definition at line 118 of file AliMUONPad.cxx.

AliMUONPad::AliMUONPad ( const TVector2 &  position,
const TVector2 &  dimensions,
Double_t  charge 
)

Alternate ctor

Definition at line 139 of file AliMUONPad.cxx.

AliMUONPad::AliMUONPad ( Int_t  detElemId,
Int_t  cathode,
Int_t  ix,
Int_t  iy,
Double_t  x,
Double_t  y,
Double_t  dx,
Double_t  dy,
Double_t  charge 
)

Normal ctor, using full information

Definition at line 94 of file AliMUONPad.cxx.

AliMUONPad::~AliMUONPad ( )
virtual

Dtor

Definition at line 160 of file AliMUONPad.cxx.

Member Function Documentation

Bool_t AliMUONPad::AreNeighbours ( const AliMUONPad d1,
const AliMUONPad d2 
)
static

Whether 2 pads are neighbours or not

Definition at line 167 of file AliMUONPad.cxx.

Referenced by AliMUONPreClusterFinderV3::AddPad(), and AliMUONPreClusterFinder::AddPad().

Bool_t AliMUONPad::AreOverlapping ( const AliMUONPad d1,
const AliMUONPad d2,
const TVector2 &  precision,
AliMpArea overlapArea 
)
static

Checks the overlap between 2 pads, and returns the overlap area

See comments on the other AreOverlapping method, too : in this method, the overlapRegion does not depend on the precision parameter, which is only used to decide whether the pads are overlapping, while the actual overlap region is computed w/o reference to precision.

Definition at line 221 of file AliMUONPad.cxx.

Referenced by AreNeighbours(), AliMUONCluster::AreOverlapping(), AreOverlapping(), AliMUONClusterFinderPeakCOG::CheckOverlaps(), AliMUONClusterFinderPeakFit::CheckOverlaps(), AliMUONClusterFinderMLEM::CheckOverlaps(), AliMUONClusterFinderPeakCOG::CheckPreclusterTwoCathodes(), AliMUONClusterFinderPeakFit::CheckPreclusterTwoCathodes(), AliMUONClusterFinderMLEM::CheckPreclusterTwoCathodes(), AliMUONClusterFinderPeakCOG::Overlap(), AliMUONClusterFinderPeakFit::Overlap(), and AliMUONClusterFinderMLEM::Overlap().

Bool_t AliMUONPad::AreOverlapping ( const AliMUONPad d1,
const AliMUONPad d2,
const TVector2 &  precision 
)
static

Checks the overlap between 2 pads. The actual overlap is computed not on d1 and d2, but on d1 and d2 "re-scaled" using the precision vector (conceptually equivalent to d.Dimensions() += precision)

So, if the elements (x,y) of precision are :

  • positive, the overlap is "computed" from smaller d1 and d2 which is, modulo the precision, what you would think as a normal overlap calculation
  • negative, overlap is from "bigger" d1 and d2, which is usefull to "tweek" what we call an overlap, e.g. to consider 2 pads touching only by their corners to be overlapping.

Definition at line 185 of file AliMUONPad.cxx.

void AliMUONPad::BackupCharge ( )
inline

Backup charge Usefull if clustering somehow plays with the charge, this one is the "original" one.

Definition at line 40 of file AliMUONPad.h.

Double_t AliMUONPad::ChargeBackup ( ) const
inline

Return backup charge.

Definition at line 50 of file AliMUONPad.h.

Referenced by Print().

Int_t AliMUONPad::Compare ( const TObject *  obj) const
virtual

Compare 2 pads. Ordering is as complete as possible.

Definition at line 250 of file AliMUONPad.cxx.

Referenced by AliMUONCluster::Contains().

TVector2 AliMUONPad::Dimensions ( ) const
inline

Return half dimensions in x and y (cm)

Definition at line 56 of file AliMUONPad.h.

Referenced by AliMUONCluster::Area(), AliMUONClusterSplitterMLEM::ChargeIntegration(), AliMUONClusterFinderCOG::ComputePosition(), and Paint().

void AliMUONPad::Init ( Int_t  detElemId,
Int_t  cathode,
Int_t  ix,
Int_t  iy,
const TVector2 &  position,
const TVector2 &  dimensions,
Double_t  charge 
)
private

Called by all the ctors

Definition at line 373 of file AliMUONPad.cxx.

Referenced by AliMUONPad().

Bool_t AliMUONPad::IsSortable ( ) const
inline

Return true as the function Compare is implemented.

Definition at line 70 of file AliMUONPad.h.

AliMpArea AliMUONPad::Overlap ( const AliMUONPad d1,
const AliMUONPad d2 
)
static

Return the overlap region between two pads

Definition at line 398 of file AliMUONPad.cxx.

Referenced by AreOverlapping().

void AliMUONPad::Paint ( Option_t *  opt = "")
virtual

Paint pad on screen

Definition at line 409 of file AliMUONPad.cxx.

Referenced by AliMUONCluster::Paint().

void AliMUONPad::Release ( )
inline
void AliMUONPad::RevertCharge ( )
inline

Set charge to value in backup charge.

Definition at line 93 of file AliMUONPad.h.

Referenced by AliMUONClusterFinderMLEM::Mlem(), and AliMUONClusterFinderMLEM::WorkOnPreCluster().

void AliMUONPad::SetCharge ( Double_t  charge)
inline
void AliMUONPad::SetChargeBackup ( Double_t  charge)
inline

Set charge backup.

Definition at line 99 of file AliMUONPad.h.

Referenced by AliMUONClusterFinderMLEM::Mlem().

void AliMUONPad::SetClusterId ( Int_t  id)
inline

Set cluster id this pad belongs to -1 if not attached to a cluster.

Definition at line 108 of file AliMUONPad.h.

Referenced by AliMUONCluster::AddPad(), and AliMUONPreClusterFinderV3::UsePad().

void AliMUONPad::SetCoord ( Int_t  ixy,
Double_t  Coord 
)

Set the pad coordinate (ixy=0 means x, ixy=1 means y)

Definition at line 462 of file AliMUONPad.cxx.

Referenced by AliMUONClusterFinderMLEM::MainLoop(), and Shift().

void AliMUONPad::SetReal ( Bool_t  val)
inline

Set info whether this is a real pad or a virtual one.

Definition at line 116 of file AliMUONPad.h.

void AliMUONPad::SetSaturated ( Bool_t  val)
inline

Set info whether this pad is saturated or not.

Definition at line 111 of file AliMUONPad.h.

Referenced by AliMUONSimpleClusterServer::UseDigits().

void AliMUONPad::SetSize ( Int_t  ixy,
Double_t  Size 
)

Set the pad half size (ixy=0 means x half size, ixy=1 means y half size)

Definition at line 481 of file AliMUONPad.cxx.

Referenced by AliMUONClusterFinderMLEM::BuildPixArrayOneCathode(), AliMUONClusterFinderMLEM::FindCluster(), and AliMUONClusterFinderMLEM::MainLoop().

void AliMUONPad::Shift ( Int_t  ixy,
Double_t  shift 
)

Shift the position by "shift"

Definition at line 500 of file AliMUONPad.cxx.

Referenced by AliMUONClusterFinderMLEM::BuildPixArrayOneCathode(), and AliMUONClusterFinderMLEM::MainLoop().

Member Data Documentation

Int_t AliMUONPad::fCathode
private

cathode number

Definition at line 153 of file AliMUONPad.h.

Referenced by Cathode(), and Init().

Double_t AliMUONPad::fCharge
private

pad charge

Definition at line 160 of file AliMUONPad.h.

Referenced by BackupCharge(), Charge(), Init(), RevertCharge(), and SetCharge().

Double_t AliMUONPad::fChargeBackup
private

backup charge (usefull if clustering somehow plays with the charge, this one is the "original" one)

Definition at line 161 of file AliMUONPad.h.

Referenced by BackupCharge(), ChargeBackup(), Init(), RevertCharge(), and SetChargeBackup().

Int_t AliMUONPad::fClusterId
private

cluster id this pad belongs to (-1 if not attached to a cluster)

Definition at line 152 of file AliMUONPad.h.

Referenced by Init(), IsUsed(), Print(), Release(), and SetClusterId().

Int_t AliMUONPad::fDetElemId
private

detection element id

Definition at line 154 of file AliMUONPad.h.

Referenced by DetElemId(), and Init().

TVector2 AliMUONPad::fDimensions
private

half dimensions in x and y (cm)

Definition at line 158 of file AliMUONPad.h.

Referenced by Dimensions(), DX(), DY(), Init(), and SetSize().

Bool_t AliMUONPad::fIsReal
private

whether this is a real pad or a virtual one

Definition at line 151 of file AliMUONPad.h.

Referenced by Init(), IsReal(), and SetReal().

Bool_t AliMUONPad::fIsSaturated
private

whether this pad is saturated or not

Definition at line 150 of file AliMUONPad.h.

Referenced by Init(), IsSaturated(), and SetSaturated().

Int_t AliMUONPad::fIx
private

x-index

Definition at line 155 of file AliMUONPad.h.

Referenced by Init(), and Ix().

Int_t AliMUONPad::fIy
private

y-index

Definition at line 156 of file AliMUONPad.h.

Referenced by Init(), and Iy().

TVector2 AliMUONPad::fPosition
private

positions in x and y (cm)

Definition at line 159 of file AliMUONPad.h.

Referenced by Init(), Position(), SetCoord(), X(), and Y().

Int_t AliMUONPad::fStatus
private

status word

Definition at line 157 of file AliMUONPad.h.

Referenced by Init(), SetStatus(), and Status().


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