]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCclusterMI.cxx
49d8ba62f34448ced9ece8819a9d89e32d6f9f14
[u/mrichter/AliRoot.git] / TPC / AliTPCclusterMI.cxx
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 //-------------------------------------------------------
17 //          Implementation of the TPC cluser
18 //
19 //   Origin: Marian Ivanov   Marian.Ivanov@cern.ch
20 // 
21 //  AliTPC parallel tracker - 
22 //  Description of this class together with its intended usage
23 //  will follow shortly
24 //  
25 //-------------------------------------------------------
26
27 /* $Id$ */
28
29 #include "AliTPCclusterMI.h"
30 #include "AliTPCclusterInfo.h"
31 #include "AliLog.h"
32
33 ClassImp(AliTPCclusterMI)
34
35
36 AliTPCclusterMI::AliTPCclusterMI(Bool_t withInfo):
37   AliCluster(),
38   fQ(0),
39   fType(0),
40   fMax(0),
41   fUsed(0),
42   fDetector(0),
43   fRow(0),
44   fTimeBin(0),
45   fPad(0),
46   fInfo(0)
47 {
48   //
49   // default constructor
50   //
51   if (withInfo) fInfo = new AliTPCclusterInfo;
52 }
53
54 AliTPCclusterMI::AliTPCclusterMI(const AliTPCclusterMI & cluster):
55   AliCluster(cluster),
56   fQ(cluster.fQ),
57   fType(cluster.fType),
58   fMax(cluster.fMax),
59   fUsed(cluster.fUsed),
60   fDetector(cluster.fDetector),
61   fRow(cluster.fRow),
62   fTimeBin(cluster.fTimeBin),
63   fPad(cluster.fPad),
64   fInfo(0)
65 {
66   //
67   // copy constructor
68   // 
69   //  AliInfo("Copy constructor\n");
70   if (cluster.fInfo) fInfo = new AliTPCclusterInfo(*(cluster.fInfo));
71 }
72
73 AliTPCclusterMI & AliTPCclusterMI::operator = (const AliTPCclusterMI & cluster)
74 {
75   //
76   // assignment operator
77   // 
78   //  AliInfo("Asignment operator\n");
79
80   (AliCluster&)(*this) = (AliCluster&)cluster;
81   fQ    = cluster.fQ;
82   fType = cluster.fType;
83   fMax  = cluster.fMax;
84   fUsed = cluster.fUsed;
85   fDetector = cluster.fDetector;
86   fRow  = cluster.fRow;
87   fTimeBin = cluster.fTimeBin;
88   fPad     = cluster.fPad;
89   fInfo = 0;
90   if (cluster.fInfo) fInfo = new AliTPCclusterInfo(*(cluster.fInfo));
91   return *this;
92 }
93
94
95
96
97 AliTPCclusterMI::AliTPCclusterMI(Int_t *lab, Float_t *hit) : 
98   AliCluster(0,hit,0.,0.,lab),
99   fQ(0),
100   fType(0),
101   fMax(0),
102   fUsed(0),
103   fDetector(0),
104   fRow(0),
105   fInfo(0)
106 {
107   //
108   // constructor
109   //
110   fQ = (UShort_t)hit[4];
111   fInfo = 0;
112 }
113
114 AliTPCclusterMI::~AliTPCclusterMI() {
115   //
116   // destructor
117   //
118   if (fInfo) delete fInfo;
119 }
120
121
122
123 Bool_t AliTPCclusterMI::IsSortable() const
124 {
125   //
126   //
127   return kTRUE;
128
129 }
130
131 Int_t AliTPCclusterMI::Compare(const TObject* obj) const
132 {
133   //
134   // compare according y
135   AliTPCclusterMI * o2 = (AliTPCclusterMI*)obj;
136   return (o2->GetY()>GetY())? -1:1; 
137 }