]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - RICH/AliRICHTransientDigit.cxx
Log replaced by Id
[u/mrichter/AliRoot.git] / RICH / AliRICHTransientDigit.cxx
index f79d2ae1b42bd07ba9ed8d8a642abff54f24da17..922d359efa6dd99db701fef4a0e0a58908bdd4a0 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/*
-  $Log$
-  Revision 1.2  2000/10/02 15:53:28  jbarbosa
-  Fixed memory leak (delete fTrackList).
-
-  Revision 1.1  2000/06/12 15:35:17  jbarbosa
-  Cleaned up version.
-
-*/
-
+/* $Id$ */
 
 #include "AliRICHTransientDigit.h"
 #include <TObjArray.h>
+#include "TVector.h"
 
 ClassImp(AliRICHTransientDigit)
     
@@ -45,8 +37,45 @@ AliRICHTransientDigit::AliRICHTransientDigit(Int_t ich, Int_t *digits):
 
 AliRICHTransientDigit::~AliRICHTransientDigit()
 {
-  if (fTrackList) {
-    fTrackList->Delete();
-    delete fTrackList;
+  fTrackList->Delete();
+  delete fTrackList;
+}
+
+////////////////////////////////////////////////////////////////////////
+void AliRICHTransientDigit::AddToTrackList(Int_t track, Int_t charge)
+{
+  TVector *pTrInfo = new TVector(2);
+  TVector &trInfo = *pTrInfo;
+  trInfo(0) = track;
+  trInfo(1) = charge;
+  fTrackList->Add(pTrInfo);
+}
+
+////////////////////////////////////////////////////////////////////////
+void AliRICHTransientDigit::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 AliRICHTransientDigit::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 AliRICHTransientDigit::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));
+}