Line data Source code
1 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 : * See cxx source for full Copyright notice */
3 :
4 : // $Id$
5 : // $MpId: AliMpIntPair.h,v 1.6 2006/05/24 13:58:07 ivana Exp $
6 :
7 : /// \ingroup core
8 : /// \class AliMpIntPair
9 : /// \brief A pair of integers.
10 : ///
11 : /// The pair created by the default constructor is in invalide state,
12 : /// setting one of values changes the state to valid.
13 : ///
14 : /// \author David Guez, Ivana Hrivnacova; IPN Orsay
15 :
16 : #ifndef ALI_MP_INT_PAIR_H
17 : #define ALI_MP_INT_PAIR_H
18 :
19 : #include <TObject.h>
20 :
21 : using std::ostream;
22 :
23 : class AliMpIntPair : public TObject
24 : {
25 : public:
26 : AliMpIntPair(Int_t ix,Int_t iy);
27 : AliMpIntPair(Int_t ix,Int_t iy, Bool_t validity);
28 : AliMpIntPair(const AliMpIntPair& right);
29 : AliMpIntPair();
30 : virtual ~AliMpIntPair();
31 :
32 : // operators
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);
39 :
40 : //
41 : // static get methods
42 : //
43 : /// Return invalid pair
44 0 : static AliMpIntPair Invalid() {return AliMpIntPair();}
45 :
46 : //
47 : // get methods
48 : //
49 : /// Return first value
50 100968 : Int_t GetFirst() const {return fFirst;}
51 : /// Return second value
52 58056 : Int_t GetSecond() const {return fSecond;}
53 : /// Return validity
54 0 : Bool_t IsValid() const {return fValidity;}
55 :
56 : //
57 : // set methods
58 : //
59 : /// Set first value
60 0 : void SetFirst(Int_t ix) {fFirst=ix; fValidity=true; }
61 : /// Set second value
62 0 : void SetSecond(Int_t iy) {fSecond=iy; fValidity=true;}
63 : /// Set both first and second value
64 0 : void Set(Int_t ix, Int_t iy) { fFirst=ix; fSecond=iy; fValidity=true; }
65 :
66 : //
67 : // TObject functions used for sorting in Root collections
68 : //
69 : /// Return true as Compare() function is implemented
70 936 : virtual Bool_t IsSortable() const {return kTRUE;}
71 : virtual Int_t Compare(const TObject* obj) const;
72 :
73 : private:
74 : // data members
75 : Int_t fFirst; ///< the first value
76 : Int_t fSecond; ///< the second value
77 : Bool_t fValidity; ///< validity
78 :
79 18 : ClassDef(AliMpIntPair,1) // utility class for the motif type
80 : };
81 :
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);
86 :
87 : #endif //ALI_MP_INT_PAIR_H
|