Adding classes forgotten in previous commit
[u/mrichter/AliRoot.git] / MUON / AliMUONPointWithRef.cxx
CommitLineData
0b936dc0 1/**************************************************************************
2* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3* *
4* Author: The ALICE Off-line Project. *
5* Contributors are mentioned in the code where appropriate. *
6* *
7* Permission to use, copy, modify and distribute this software and its *
8* documentation strictly for non-commercial purposes is hereby granted *
9* without fee, provided that the above copyright notice appears in all *
10* copies and that both the copyright notice and this permission notice *
11* appear in the supporting documentation. The authors make no claims *
12* about the suitability of this software for any purpose. It is *
13* provided "as is" without express or implied warranty. *
14**************************************************************************/
15
16// $Id$
17
18///\class AliMUONPointWithRef
19///
20/// A class used to represent a point with an external integer reference
21/// and with a specific sorting method (see AliMUONContourMaker)
22///
23/// \author Laurent Aphecetche, Subatech
24///
25
26#include "AliMUONPointWithRef.h"
27
28#include "AliMUONSegment.h"
29#include "Riostream.h"
30#include "TString.h"
31
32//\cond CLASSIMP
33ClassImp(AliMUONPointWithRef)
34//\endcond
35
36//_____________________________________________________________________________
37AliMUONPointWithRef::AliMUONPointWithRef() : fX(), fY(), fRef(-1)
38{
39 /// ctor
40}
41
42//_____________________________________________________________________________
43AliMUONPointWithRef::AliMUONPointWithRef(Double_t x, Double_t y, Int_t ref)
44: fX(x), fY(y), fRef(ref)
45{
46 /// dtor
47}
48
49//_____________________________________________________________________________
50Int_t
51AliMUONPointWithRef::Compare(const TObject* obj) const
52{
53 // Should serve to sort the vertical edges in ascending order, first on absissa,
54 // then on ordinate
55
56 if ( this == obj ) return 0;
57
58 const AliMUONPointWithRef* rhs = static_cast<const AliMUONPointWithRef*>(obj);
59
60 if ( AliMUONSegment::AreEqual(Y(),rhs->Y()) )
61 {
62 if ( AliMUONSegment::AreEqual(X(),rhs->X()) )
63 {
64 return 0;
65 }
66 else if ( X() > rhs->X() )
67 {
68 return 1;
69 }
70 else
71 return -1;
72 }
73 else if ( Y() < rhs->Y() )
74 {
75 return -1;
76 }
77 else
78 {
79 return 1;
80 }
81}
82
83//_____________________________________________________________________________
84void
85AliMUONPointWithRef::Print(Option_t*) const
86{
87 /// Printout
88 cout << Form("(%10.5f,%10.5f) [%4d]",X(),Y(),Ref()) << endl;
89}