1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 // $MpId: AliMpIntPair.h,v 1.6 2006/05/24 13:58:07 ivana Exp $
8 /// \class AliMpIntPair
9 /// \brief A pair of integers.
11 /// The pair created by the default constructor is in invalide state,
12 /// setting one of values changes the state to valid.
14 /// \author David Guez, Ivana Hrivnacova; IPN Orsay
16 #ifndef ALI_MP_INT_PAIR_H
17 #define ALI_MP_INT_PAIR_H
23 class AliMpIntPair : public TObject
26 AliMpIntPair(Int_t ix,Int_t iy);
27 AliMpIntPair(Int_t ix,Int_t iy, Bool_t validity);
28 AliMpIntPair(const AliMpIntPair& right);
30 virtual ~AliMpIntPair();
33 Bool_t operator < (const AliMpIntPair& pos2) const;
34 Bool_t operator == (const AliMpIntPair& pos2) const;
35 Bool_t operator != (const AliMpIntPair& pos2) const;
36 AliMpIntPair& operator = (const AliMpIntPair& src) ;
37 void operator += (const AliMpIntPair& op);
38 void operator -= (const AliMpIntPair& op);
43 /// Return invalid pair
44 static AliMpIntPair Invalid() {return AliMpIntPair();}
49 /// Return first value
50 Int_t GetFirst() const {return fFirst;}
51 /// Return second value
52 Int_t GetSecond() const {return fSecond;}
54 Bool_t IsValid() const {return fValidity;}
60 void SetFirst(Int_t ix) {fFirst=ix; fValidity=true; }
62 void SetSecond(Int_t iy) {fSecond=iy; fValidity=true;}
63 /// Set both first and second value
64 void Set(Int_t ix, Int_t iy) { fFirst=ix; fSecond=iy; fValidity=true; }
67 // TObject functions used for sorting in Root collections
69 /// Return true as Compare() function is implemented
70 virtual Bool_t IsSortable() const {return kTRUE;}
71 virtual Int_t Compare(const TObject* obj) const;
75 Int_t fFirst; ///< the first value
76 Int_t fSecond; ///< the second value
77 Bool_t fValidity; ///< validity
79 ClassDef(AliMpIntPair,1) // utility class for the motif type
82 AliMpIntPair operator + (const AliMpIntPair& op1,const AliMpIntPair& op2);
83 AliMpIntPair operator - (const AliMpIntPair& op1,const AliMpIntPair& op2);
84 AliMpIntPair operator * (const AliMpIntPair& op1,const AliMpIntPair& op2);
85 ostream& operator << (ostream &stream,const AliMpIntPair& op);
87 #endif //ALI_MP_INT_PAIR_H