]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTransientDigit.cxx
Removing extra semicolons (FedoraCore3, gcc 3.4.2)
[u/mrichter/AliRoot.git] / MUON / AliMUONTransientDigit.cxx
index 6d9c7973232ab44c66ccf8975ac52382ae1def3d..5d22b7e3cabfaf291b951abec07bcf4b53b82863 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/*
-$Log $
-*/
+/* $Id$ */
 
-#include "AliMUONTransientDigit.h"
 #include <TObjArray.h>
+#include <TVector.h>
+
+#include "AliMUONTransientDigit.h"
+#include "AliLog.h"
 
 ClassImp(AliMUONTransientDigit)
 
+//____________________________________________________________________________
+AliMUONTransientDigit::AliMUONTransientDigit()
+  : AliMUONDigit()
+{
+// Constructor
+
+  fTrackList=0;
+}
  
 //____________________________________________________________________________
 
-AliMUONTransientDigit::AliMUONTransientDigit(const AliMUONTransientDigit& digit)
+  AliMUONTransientDigit::AliMUONTransientDigit(const AliMUONTransientDigit& digit)
+    : AliMUONDigit(digit)
 {
-// dummy copy constructor
+// Protected copy constructor
+
+  AliFatal( "Not implemented.");
 }
 
 
@@ -37,21 +49,67 @@ AliMUONTransientDigit::AliMUONTransientDigit(Int_t ich, Int_t *digits):
     //
     // Creates a MUON digit list object
     //
-
     fChamber     = ich;
-    fTrackList   = new TObjArray;
-    
+    fTrackList   = new TObjArray(5);   
+    // 5 is arbitrary number, just to decrease default 16
 }
 
+////////////////////////////////////////////////////////////////////////
 AliMUONTransientDigit::~AliMUONTransientDigit() 
 {
-delete fTrackList;
+  fTrackList->Delete();
+  delete fTrackList;
 }
 
-AliMUONTransientDigit& AliMUONTransientDigit::operator =(const AliMUONTransientDigit& rhs)
+////////////////////////////////////////////////////////////////////////
+AliMUONTransientDigit& 
+AliMUONTransientDigit::operator =(const AliMUONTransientDigit& rhs)
 {
-// Dummy assignment operator
-    return *this;
+// Protected assignement operator
+
+  if (this == &rhs) return *this;
+
+  AliFatal("Not implemented.");
+    
+  return *this;  
 }
 
+////////////////////////////////////////////////////////////////////////
+void AliMUONTransientDigit::AddToTrackList(Int_t track, Int_t charge)
+{
+  TVector *pTrInfo = new TVector(3);
+  TVector &trInfo = *pTrInfo;
+  trInfo(0) = track;
+  trInfo(1) = charge;
+  fTrackList->Add(pTrInfo);
+}
+
+////////////////////////////////////////////////////////////////////////
+void AliMUONTransientDigit::UpdateTrackList(Int_t track, Int_t charge)
+{
+  Int_t lastEntry = fTrackList->GetLast();
+  TVector *pVect = static_cast<TVector*>(fTrackList->At(lastEntry));
+  if ( static_cast<Int_t>((*pVect)(0)) == track) {
+    (*pVect)(1) += charge;  // update charge
+  } else {
+    AddToTrackList(track,charge);
+  }
+}
+
+////////////////////////////////////////////////////////////////////////
+Int_t AliMUONTransientDigit::GetTrack(Int_t i) const
+{
+  if (i > fTrackList->GetEntriesFast()) return 0;
+  TVector *pVect = static_cast<TVector*>(fTrackList->At(i));
+  return static_cast<Int_t>((*pVect)(0));
+}
+
+
+////////////////////////////////////////////////////////////////////////
+Int_t AliMUONTransientDigit::GetCharge(Int_t i) const
+{
+  if (i > fTrackList->GetEntriesFast()) return 0;
+  TVector *pVect = static_cast<TVector*>(fTrackList->At(i));
+  return static_cast<Int_t>((*pVect)(1));
+}