1 #ifndef ALIMUONCLUSTER_H
2 #define ALIMUONCLUSTER_H
19 # include "TVector2.h"
27 #ifndef ALI_MP_DIRECTION_H
30 #ifndef ALI_MP_ENCODE_PAIR_H
34 #ifndef ROOT_TObjArray
35 # include "TObjArray.h"
64 Float_t
Charge(Int_t cathode)
const;
72 virtual void Copy(TObject& obj)
const;
90 TVector2
MaxPadDimensions(Int_t cathode, Int_t statusMask, Bool_t matchMask)
const;
96 TVector2
MinPadDimensions(Int_t cathode, Int_t statusMask, Bool_t matchMask)
const;
105 Long_t
NofPads(Int_t cathode, Int_t statusMask, Bool_t matchMask)
const;
108 Long_t
NofPads(Int_t statusMask, Bool_t matchMask=
kTRUE)
const;
115 virtual Int_t
Compare(
const TObject* obj)
const;
119 virtual void Paint(Option_t* opt=
"");
126 virtual void Print(Option_t* opt=
"")
const;
140 void SetCharge(Float_t chargeCath0, Float_t chargeCath1)
154 void Clear(Option_t* opt=
"");
Bool_t HasPosition() const
Return false for pre-cluster.
Int_t MaxChargeCathode() const
Return the max charge on the chathod.
static Bool_t AreOverlapping(const AliMUONCluster &c1, const AliMUONCluster &c2)
TVector2 MaxPadDimensions(Int_t cathode, Int_t statusMask, Bool_t matchMask) const
Return the biggest pad dimensions for a given cathode.
Float_t RawCharge() const
By default, return the average of both cathode RawCharges.
Float_t fCharge[2]
cathode (re)computed charges
A group of adjacent pads.
virtual Int_t Compare(const TObject *obj) const
Float_t fChi2
chi2 of the RawCharge fit (if any)
TVector2 PositionError() const
Return errors on (x,y)
virtual void Print(Option_t *opt="") const
A rectangle area positioned in plane..
Bool_t IsSaturated() const
Whether we have one saturated pad on each cathode.
Float_t fRawCharge[2]
cathode RawCharges
void Clear(Option_t *opt="")
AliMUONCluster & operator=(const AliMUONCluster &rhs)
Int_t Multiplicity() const
Bool_t fHasPosition
false for pre-cluster (i.e. not yet computed)
void SetPosition(const TVector2 &pos, const TVector2 &errorOnPos)
Set (x,y) of that cluster and errors.
Bool_t IsMonoCathode() const
Bool_t Contains(const AliMUONPad &pad) const
TVector2 fPosition
(x,y) of that cluster (only valid if fHasPosition is kTRUE)
TVector2 fPositionError
errors on (x,y)
void SetCharge(Float_t chargeCath0, Float_t chargeCath1)
Set cathode (re)computed charges.
Bool_t fIsSaturated[2]
saturation status of cathodes
void RemovePad(AliMUONPad *pad)
Int_t fMultiplicity[2]
number of pads in each cathode
TVector2 Position() const
Return (x,y) of that cluster.
AliMUONPad * AddPad(const AliMUONPad &pad)
void SetChi2(Float_t chi2)
Set chi2 of the RawCharge fit.
Long_t NofPads(Int_t cathode, Int_t statusMask, Bool_t matchMask) const
Compute number of pads in X and Y direction for a given cathode.
Bool_t IsSortable() const
Return true as the function Compare is implemented.
AliMpArea Area() const
Area that contains all the pads (whatever the cathode)
virtual void Paint(Option_t *opt="")
Bool_t IsSaturated(Int_t cathode) const
Whether we have at least one saturated pad in a given cathode.
Float_t ChargeAsymmetry() const
Return the cathode's charges asymmetry.
virtual void Copy(TObject &obj) const
TVector2 MinPadDimensions(Int_t cathode, Int_t statusMask, Bool_t matchMask) const
Return the smallest pad dimensions for a given cathode.
Int_t MaxRawChargeCathode() const
Return the max raw charge on the chathod.
AliMUONPad * Pad(Int_t index) const
Float_t RawChargeAsymmetry() const
Return the cathode's raw charges asymmetry.
Combination of digit and mppad informations.
virtual ~AliMUONCluster()
Float_t Chi2() const
Return chi2 of the RawCharge fit (if any)
TObjArray fPads
AliMUONPad(s) composing this cluster.
void AddCluster(const AliMUONCluster &cluster)
Bool_t fHasCharge
false if SetCharge has not been called