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 //-------------------------------------------------------
17 // Implementation of the TPC cluser
19 // Origin: Marian Ivanov Marian.Ivanov@cern.ch
21 // AliTPC parallel tracker -
22 // Description of this class together with its intended usage
23 // will follow shortly
25 //-------------------------------------------------------
29 #include "AliTPCclusterMI.h"
30 #include "AliTPCclusterInfo.h"
31 #include "AliGeomManager.h"
34 ClassImp(AliTPCclusterMI)
37 AliTPCclusterMI::AliTPCclusterMI(Bool_t withInfo):
50 // default constructor
52 if (withInfo) fInfo = new AliTPCclusterInfo;
55 AliTPCclusterMI::AliTPCclusterMI(const AliTPCclusterMI & cluster):
61 fDetector(cluster.fDetector),
63 fTimeBin(cluster.fTimeBin),
70 // AliInfo("Copy constructor\n");
71 if (cluster.fInfo) fInfo = new AliTPCclusterInfo(*(cluster.fInfo));
74 AliTPCclusterMI & AliTPCclusterMI::operator = (const AliTPCclusterMI & cluster)
77 // assignment operator
79 // AliInfo("Asignment operator\n");
81 (AliCluster&)(*this) = (AliCluster&)cluster;
83 fType = cluster.fType;
85 fUsed = cluster.fUsed;
86 fDetector = cluster.fDetector;
88 fTimeBin = cluster.fTimeBin;
91 if (cluster.fInfo) fInfo = new AliTPCclusterInfo(*(cluster.fInfo));
98 AliTPCclusterMI::AliTPCclusterMI(Int_t *lab, Float_t *hit) :
99 AliCluster(0,hit,0.,0.,lab),
111 fQ = (UShort_t)hit[4];
115 AliTPCclusterMI::~AliTPCclusterMI() {
119 if (fInfo) delete fInfo;
124 Bool_t AliTPCclusterMI::IsSortable() const
132 Int_t AliTPCclusterMI::Compare(const TObject* obj) const
135 // compare according y
136 AliTPCclusterMI * o2 = (AliTPCclusterMI*)obj;
137 return (o2->GetY()>GetY())? -1:1;
141 void AliTPCclusterMI::SetDetector(Int_t detector){
145 fDetector = (UChar_t)(detector%72);
146 AliGeomManager::ELayerID id = (fDetector<36) ?
147 AliGeomManager::kTPC1 :AliGeomManager::kTPC2 ;
148 Int_t modId = (fDetector<36)?fDetector: fDetector-36;
149 SetVolumeId(AliGeomManager::LayerToVolUID(id,modId));