]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliClusters.cxx
Possibility to vary the cos(PA) cut
[u/mrichter/AliRoot.git] / TPC / AliClusters.cxx
index 26d1541ce915574a852338d24cec6adaef6eedb1..fa30eb6ac5c5771b45e4800d691bb6c5240a8922 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/*
-$Log$
-Revision 1.4  2000/10/05 16:17:27  kowal2
-New class replacing AliCluster
-
-Revision 1.3  2000/06/30 12:07:49  kowal2
-Updated from the TPC-PreRelease branch
-
-Revision 1.2.4.2  2000/06/14 16:45:13  kowal2
-Improved algorithms. Compiler warnings removed.
-
-Revision 1.2.4.1  2000/06/09 07:09:29  kowal2
-
-Clustering and tracking classes are splitted from the simulation ones
-
-Revision 1.2  2000/04/17 09:37:33  kowal2
-removed obsolete AliTPCDigitsDisplay.C
-
-Revision 1.1.4.2  2000/04/10 11:34:02  kowal2
-
-Clusters handling in a new data structure
-
-*/
+/* $Id$ */
 
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                           //
@@ -62,23 +40,67 @@ ClassImp(AliClusters)
 //*****************************************************************************
 //
 //_____________________________________________________________________________
-AliClusters::AliClusters() 
+AliClusters::AliClusters()
+            :AliSegmentID(), 
+            fClusters(0),
+             fNclusters(0),
+             fClass(0)
 {  
   //
   //default constructor
   //
-  fNclusters=0;
-  fClusters =0;
-  fClass =0;
+
+}
+//________________________________________________________________________
+AliClusters::AliClusters(const AliClusters &param)
+            :AliSegmentID(), 
+            fClusters(0),
+             fNclusters(0),
+             fClass(0)
+{
+  //
+  //  copy constructor - dummy
+  //
+  fNclusters = param.fNclusters;
 }
 
+//________________________________________________________________________
+AliClusters::AliClusters(const char *classname)
+            :AliSegmentID(),
+             fClusters(0),
+             fNclusters(0),
+             fClass(0)
+{
+//
+// Special constructor
+//          
+  fClass = gROOT->GetClass(classname);
+  
+  if (!fClass)
+        Error("AliClusters", "%s is not a valid class name", classname);
+  if (!fClass->InheritsFrom(TObject::Class())) 
+       Error("AliClusters", "%s does not inherit from TObject", classname);
+                                                 
+  fClusters = new TClonesArray(fClass->GetName(),100);
+}
+
+//______________________________________________________________________                                                          
+AliClusters & AliClusters::operator =(const AliClusters & param)
+{
+  //
+  // assignment operator - dummy
+  //
+  if (this == &param) return (*this);
+  fNclusters=param.fNclusters;
+  return (*this);
+}
 //________________________________________________________________________
 AliClusters::~AliClusters()
 {
    //
    //default destructor
   //
-   if (fClusters !=0) fClusters->Clear();
+   if (fClusters !=0) fClusters->Delete();
    delete fClusters;
 }
 
@@ -150,7 +172,7 @@ TObject * AliClusters::InsertCluster( const TObject * c)
     Error("AliClusters", "class type not specified");
     return 0; 
   }
-  if(!fClusters) fClusters=new TClonesArray(fClass->GetName(),1000);
+  if(!fClusters) fClusters=new TClonesArray(fClass->GetName(),100);
   TClonesArray &lclusters = *fClusters;
   return new(lclusters[fNclusters++]) AliComplexCluster(*((AliComplexCluster*)c));
 }
@@ -163,13 +185,13 @@ Int_t AliClusters::Find(Double_t y) const
   //
   AliComplexCluster* cl;
   cl=(AliComplexCluster*)fClusters->UncheckedAt(0);
-  if (y <= cl->fY) return 0;  
+  if (y <= cl->GetY()) return 0;  
   cl=(AliComplexCluster*)fClusters->UncheckedAt(fNclusters-1);
-  if (y > cl->fY) return fNclusters; 
+  if (y > cl->GetY()) return fNclusters; 
   Int_t b=0, e=fNclusters-1, m=(b+e)/2;
   for (; b<e; m=(b+e)/2) {
     cl = (AliComplexCluster*)fClusters->UncheckedAt(m);
-    if (y > cl->fY) b=m+1;
+    if (y > cl->GetY()) b=m+1;
     else e=m; 
   }
   return m;
@@ -188,8 +210,8 @@ void AliClusters::DrawClusters(Float_t shiftx, Float_t shifty,
   for (Int_t i=0;i<ncl;i++){
     AliComplexCluster *cl = (AliComplexCluster*)fClusters->UncheckedAt(i);
     TMarker * marker = new TMarker;
-    marker->SetX(cl->fX+shiftx);
-    marker->SetY(cl->fY+shifty);
+    marker->SetX(cl->GetX()+shiftx);
+    marker->SetY(cl->GetY()+shifty);
     marker->SetMarkerSize(size);
     marker->SetMarkerStyle(style);
     marker->SetMarkerColor(color);