1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
16 /// \class AliTPCclusterMI
17 /// \brief Implementation of the TPC cluser
19 /// AliTPC parallel tracker -
20 /// Description of this class together with its intended usage
21 /// will follow shortly
23 /// \author Marian Ivanov Marian.Ivanov@cern.ch
27 #include "AliTPCclusterMI.h"
28 #include "AliTPCclusterInfo.h"
29 #include "AliTrackPointArray.h"
30 #include "AliGeomManager.h"
34 ClassImp(AliTPCclusterMI)
38 AliTPCclusterMI::AliTPCclusterMI():
41 fTimeBin(0), //time bin coordinate
42 fPad(0), //pad coordinate
43 fQ(0), //Q of cluster (in ADC counts)
44 fMax(0), //maximal amplitude in cluster
45 fType(0), //type of the cluster 0 means golden
46 fUsed(0), //counter of usage
47 fDetector(0), //detector number
48 fRow(0) //row number number
51 // default constructor
55 AliTPCclusterMI::AliTPCclusterMI(const AliTPCclusterMI & cluster):
58 fTimeBin(cluster.fTimeBin),
64 fDetector(cluster.fDetector),
69 // AliInfo("Copy constructor\n");
71 if (cluster.fInfo) fInfo = new AliTPCclusterInfo(*(cluster.fInfo));
74 AliTPCclusterMI & AliTPCclusterMI::operator = (const AliTPCclusterMI & cluster)
76 /// assignment operator
78 // AliInfo("Asignment operator\n");
80 if (this == &cluster) return (*this);
82 (AliCluster&)(*this) = (AliCluster&)cluster;
84 fType = cluster.fType;
86 fUsed = cluster.fUsed;
87 fDetector = cluster.fDetector;
89 fTimeBin = cluster.fTimeBin;
93 if (cluster.fInfo) fInfo = new AliTPCclusterInfo(*(cluster.fInfo));
100 AliTPCclusterMI::AliTPCclusterMI(Int_t *lab, Float_t *hit) :
101 AliCluster(0,hit,0.,0.,lab),
103 fTimeBin(0), //time bin coordinate
104 fPad(0), //pad coordinate
105 fQ(0), //Q of cluster (in ADC counts)
106 fMax(0), //maximal amplitude in cluster
107 fType(0), //type of the cluster 0 means golden
108 fUsed(0), //counter of usage
109 fDetector(0), //detector number
110 fRow(0) //row number number
114 fQ = (UShort_t)hit[4];
118 AliTPCclusterMI::~AliTPCclusterMI() {
121 if (fInfo) delete fInfo;
127 Bool_t AliTPCclusterMI::IsSortable() const
135 Int_t AliTPCclusterMI::Compare(const TObject* obj) const
137 /// compare according y
139 AliTPCclusterMI * o2 = (AliTPCclusterMI*)obj;
140 return (o2->GetY()>GetY())? -1:1;
144 void AliTPCclusterMI::SetDetector(Int_t detector){
147 fDetector = (UChar_t)(detector%72);
148 AliGeomManager::ELayerID id = (fDetector<36) ?
149 AliGeomManager::kTPC1 :AliGeomManager::kTPC2 ;
150 Int_t modId = (fDetector<36)?fDetector: fDetector-36;
151 SetVolumeId(AliGeomManager::LayerToVolUID(id,modId));
155 void AliTPCclusterMI::SetInfo(AliTPCclusterInfo * info) {
158 if (fInfo) delete fInfo;
163 AliTPCclusterMI* AliTPCclusterMI::MakeCluster(AliTrackPoint* /*point*/) {
164 /// make AliTPCclusterMI out of AliTrackPoint
165 /// (not yet implemented)
171 AliTrackPoint* AliTPCclusterMI::MakePoint() {
172 /// make AliTrackPoint out of AliTPCclusterMI
174 AliTrackPoint* point = new AliTrackPoint();
179 // voluem ID to add later ....
186 //______________________________________________________________________________
187 void AliTPCclusterMI::SetGlobalTrackPoint( const AliCluster &cl, AliTrackPoint &point )
189 /// Set global AliTrackPoint
193 cl.GetGlobalXYZ(xyz);
194 cl.GetGlobalCov(cov);
195 // voluem ID to add later ....