]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCclusterMI.cxx
Fixes for building of DA (Anshul)
[u/mrichter/AliRoot.git] / TPC / AliTPCclusterMI.cxx
index 02418e76205052f47cdb3d5996276850c1e65b24..13f2d2b0e5238840cefe07cee738a5e03093aa12 100644 (file)
 /* $Id$ */
 
 #include "AliTPCclusterMI.h"
+#include "AliTPCclusterInfo.h"
+#include "AliGeomManager.h"
+#include "AliLog.h"
 
 ClassImp(AliTPCclusterMI)
 
 
 AliTPCclusterMI::AliTPCclusterMI():
   AliCluster(),
-  fX(0),
-  fQ(0),
-  fType(0),
-  fMax(0),
-  fUsed(0),
-  fDetector(0),
-  fRow(0)
+  fInfo(0),
+  fTimeBin(0),  //time bin coordinate
+  fPad(0),  //pad coordinate
+  fQ(0),       //Q of cluster (in ADC counts)  
+  fMax(0),      //maximal amplitude in cluster
+  fType(0),     //type of the cluster 0 means golden 
+  fUsed(0),     //counter of usage  
+  fDetector(0), //detector  number
+  fRow(0)      //row number number
 {
   //
   // default constructor
   //
 }
 
+AliTPCclusterMI::AliTPCclusterMI(const AliTPCclusterMI & cluster):
+  AliCluster(cluster),
+  fInfo(0),
+  fTimeBin(cluster.fTimeBin),
+  fPad(cluster.fPad),
+  fQ(cluster.fQ),
+  fMax(cluster.fMax),
+  fType(cluster.fType),
+  fUsed(cluster.fUsed),
+  fDetector(cluster.fDetector),
+  fRow(cluster.fRow)
+{
+  //
+  // copy constructor
+  // 
+  //  AliInfo("Copy constructor\n");
+  if (cluster.fInfo) fInfo = new AliTPCclusterInfo(*(cluster.fInfo));
+}
+
+AliTPCclusterMI & AliTPCclusterMI::operator = (const AliTPCclusterMI & cluster)
+{
+  //
+  // assignment operator
+  // 
+  //  AliInfo("Asignment operator\n");
+
+  (AliCluster&)(*this) = (AliCluster&)cluster;
+  fQ    = cluster.fQ;
+  fType = cluster.fType;
+  fMax  = cluster.fMax;
+  fUsed = cluster.fUsed;
+  fDetector = cluster.fDetector;
+  fRow  = cluster.fRow;
+  fTimeBin = cluster.fTimeBin;
+  fPad     = cluster.fPad;
+  delete fInfo;
+  fInfo = 0;
+  if (cluster.fInfo) fInfo = new AliTPCclusterInfo(*(cluster.fInfo));
+  return *this;
+}
+
+
+
+
 AliTPCclusterMI::AliTPCclusterMI(Int_t *lab, Float_t *hit) : 
-  AliCluster(lab,hit),
-  fX(0),
-  fType(0),
-  fMax(0),
-  fUsed(0),
-  fDetector(0),
-  fRow(0)    
+  AliCluster(0,hit,0.,0.,lab),
+  fInfo(0),
+  fTimeBin(0),  //time bin coordinate
+  fPad(0),  //pad coordinate
+  fQ(0),       //Q of cluster (in ADC counts)  
+  fMax(0),      //maximal amplitude in cluster
+  fType(0),     //type of the cluster 0 means golden 
+  fUsed(0),     //counter of usage  
+  fDetector(0), //detector  number
+  fRow(0)      //row number number
 {
   //
   // constructor
   //
   fQ = (UShort_t)hit[4];
+  fInfo = 0;
+}
+
+AliTPCclusterMI::~AliTPCclusterMI() {
+  //
+  // destructor
+  //
+  if (fInfo) delete fInfo;
+  fInfo = 0;
 }
 
+
+
 Bool_t AliTPCclusterMI::IsSortable() const
 {
   //
@@ -74,5 +137,26 @@ Int_t AliTPCclusterMI::Compare(const TObject* obj) const
   //
   // compare according y
   AliTPCclusterMI * o2 = (AliTPCclusterMI*)obj;
-  return (o2->GetY()>fY)? -1:1; 
+  return (o2->GetY()>GetY())? -1:1; 
+}
+
+
+void AliTPCclusterMI::SetDetector(Int_t detector){
+  //
+  // set volume ID 
+  //  
+  fDetector = (UChar_t)(detector%72);
+  AliGeomManager::ELayerID id = (fDetector<36) ? 
+    AliGeomManager::kTPC1 :AliGeomManager::kTPC2 ;
+  Int_t modId = (fDetector<36)?fDetector: fDetector-36;
+  SetVolumeId(AliGeomManager::LayerToVolUID(id,modId));  
+}
+
+
+void AliTPCclusterMI::SetInfo(AliTPCclusterInfo * info) {
+  //
+  //
+  //
+  if (fInfo) delete fInfo;
+  fInfo = info;
 }