]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - RICH/AliRICHTransientDigit.cxx
pragma for AliRICHv2 removed as this version is no longer exist
[u/mrichter/AliRoot.git] / RICH / AliRICHTransientDigit.cxx
index cde4a8163b1266292dc05bd9966a44a26bb9b7b1..922d359efa6dd99db701fef4a0e0a58908bdd4a0 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/*
-  $Log$
-  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)
     
@@ -42,5 +37,45 @@ AliRICHTransientDigit::AliRICHTransientDigit(Int_t ich, Int_t *digits):
 
 AliRICHTransientDigit::~AliRICHTransientDigit()
 {
+  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));
+}