+//_____________________________________________________________________________
+Bool_t
+AliMUONVDigit::IsEqual(const TObject* object) const
+{
+ /// Whether we're equal to object.
+ /// WARNING : only based on our identifiers (de,manu,channel,cathode), not our
+ /// content (i.e. charge, status...)
+
+ const AliMUONVDigit* d = static_cast<const AliMUONVDigit*>(object);
+
+ return ( DetElemId() == d->DetElemId() &&
+ Cathode() == d->Cathode() &&
+ ManuId() == d->ManuId() &&
+ ManuChannel() == d->ManuChannel() );
+}
+
+//_____________________________________________________________________________
+Int_t
+AliMUONVDigit::Compare(const TObject* object) const
+{
+ /// Compare two digits, trying to get as complete an order as possible.
+ /// We sort by DE, then by charge, then by manu, etc...
+ ///
+ const AliMUONVDigit* d = static_cast<const AliMUONVDigit*>(object);
+
+ if ( DetElemId() > d->DetElemId() )
+ {
+ return 1;
+ }
+ else if ( DetElemId() < d->DetElemId() )
+ {
+ return -1;
+ }
+ else
+ {
+ if ( Charge() > d->Charge() )
+ {
+ return 1;
+ }
+ else if ( Charge() < d->Charge() )
+ {
+ return -1;
+ }
+ else
+ {
+ if ( ManuId() > d->ManuId() )
+ {
+ return 1;
+ }
+ else if ( ManuId() < d->ManuId() )
+ {
+ return -1;
+ }
+ else
+ {
+ if ( ManuChannel() > d->ManuChannel() )
+ {
+ return 1;
+ }
+ else if ( ManuChannel() < d->ManuChannel() )
+ {
+ return -1;
+ }
+ }
+ }
+ }
+ return 0;
+}
+