]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTrackHit.cxx
Updated for replacement of AliMpReader with AliMpSectorReader
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackHit.cxx
index fa14a667f2088a76aeab4a49f3c2838b1a5c829d..5d03a89d4204ade14fff45154eace7e4224411ae 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/*
-$Log$
-Revision 1.3  2000/06/25 13:06:39  hristov
-Inline functions moved from *.cxx to *.h files instead of forward declarations
+/* $Id$ */
 
-Revision 1.2  2000/06/15 07:58:49  morsch
-Code from MUON-dev joined
-
-Revision 1.1.2.3  2000/06/12 10:11:45  morsch
-Dummy copy constructor and assignment operator added
-
-Revision 1.1.2.2  2000/06/09 12:58:05  gosset
-Removed comment beginnings in Log sections of .cxx files
-Suppressed most violations of coding rules
-
-Revision 1.1.2.1  2000/06/07 14:44:53  gosset
-Addition of files for track reconstruction in C++
-*/
-
-//__________________________________________________________________________
+///////////////////////////////////////////////////////
 //
-// Reconstructed track hit in ALICE dimuon spectrometer
-//__________________________________________________________________________
+// Reconstructed track hit
+// in
+// ALICE
+// dimuon
+// spectrometer
+//
+///////////////////////////////////////////////////////
 
 #include "AliMUONTrackHit.h" 
-
 #include "AliMUONHitForRec.h" 
+#include "AliLog.h" 
 
 ClassImp(AliMUONTrackHit) // Class implementation in ROOT context
 
+  //__________________________________________________________________________
+AliMUONTrackHit::AliMUONTrackHit()
+  : TObject()
+{
+  // Default constructor
+  fHitForRecPtr = 0;
+  fNextTrackHitWithSameHitForRec = 0;
+  fPrevTrackHitWithSameHitForRec = 0;
+}
+  //__________________________________________________________________________
+AliMUONTrackHit::AliMUONTrackHit (const AliMUONTrackHit& theMUONTrackHit)
+  :  TObject(theMUONTrackHit)
+{
+  fTrackParam                    =  theMUONTrackHit.fTrackParam;
+  fHitForRecPtr                  =  theMUONTrackHit.fHitForRecPtr;
+  fNextTrackHitWithSameHitForRec =  theMUONTrackHit.fNextTrackHitWithSameHitForRec;
+  fPrevTrackHitWithSameHitForRec =  theMUONTrackHit.fPrevTrackHitWithSameHitForRec;
+}
+  //__________________________________________________________________________
+AliMUONTrackHit & AliMUONTrackHit::operator=(const AliMUONTrackHit& theMUONTrackHit)
+{
+  // check assignement to self
+  if (this == &theMUONTrackHit)
+    return *this;
+
+  // base class assignement
+  TObject::operator=(theMUONTrackHit);
+
+  fTrackParam                    =  theMUONTrackHit.fTrackParam;
+  fHitForRecPtr                  =  theMUONTrackHit.fHitForRecPtr;
+  fNextTrackHitWithSameHitForRec = theMUONTrackHit.fNextTrackHitWithSameHitForRec;
+  fPrevTrackHitWithSameHitForRec = theMUONTrackHit.fPrevTrackHitWithSameHitForRec;
+
+  return *this;
+
+}
   //__________________________________________________________________________
 AliMUONTrackHit::AliMUONTrackHit(AliMUONHitForRec* Hit)
 {
@@ -61,54 +85,41 @@ AliMUONTrackHit::AliMUONTrackHit(AliMUONHitForRec* Hit)
   fNextTrackHitWithSameHitForRec = NULL;
   Hit->SetNTrackHits(Hit->GetNTrackHits() + 1);
 }
-
-  //__________________________________________________________________________
-AliMUONTrackHit::AliMUONTrackHit (const AliMUONTrackHit& MUONTrackHit)
-{
-// Dummy copy constructor
-}
-
-  //__________________________________________________________________________
-AliMUONTrackHit & AliMUONTrackHit::operator=(const AliMUONTrackHit& MUONTrackHit)
-{
-// Dummy assignment operator
-    return *this;
-}
-
-
   //__________________________________________________________________________
 AliMUONTrackHit::~AliMUONTrackHit()
 {
   // Destructor
-//   AliMUONHitForRec * hit; // pointer to HitForRec
-//   // remove current TrackHit in HitForRec links
-//   if (this == hit->GetFirstTrackHitPtr())
-//     hit->SetFirstTrackHitPtr(fNextTrackHitWithSameHitForRec); // if first
-//   if (this == hit->GetLastTrackHitPtr())
-//     hit->SetLastTrackHitPtr(fPrevTrackHitWithSameHitForRec); // if last
-//   hit->SetNTrackHits(hit->GetNTrackHits() - 1); // decrement NTrackHits
-//   // update link to next TrackHit of previous TrackHit
-//   if (fPrevTrackHitWithSameHitForRec != NULL)
-//     fPrevTrackHitWithSameHitForRec->
-//       SetNextTrackHitWithSameHitForRec(fNextTrackHitWithSameHitForRec);
-//   // update link to previous TrackHit of next TrackHit
-//   if (fNextTrackHitWithSameHitForRec)
-//     fNextTrackHitWithSameHitForRec->
-//       SetPrevTrackHitWithSameHitForRec(fPrevTrackHitWithSameHitForRec);
+  // Update links between HitForRec's and TrackHit's
+  // connected to the current TrackHit being removed.
+  AliMUONHitForRec *hit = fHitForRecPtr; // pointer to HitForRec
+  // remove current TrackHit in HitForRec links
+  if (this == hit->GetFirstTrackHitPtr())
+    hit->SetFirstTrackHitPtr(fNextTrackHitWithSameHitForRec); // if first
+  if (this == hit->GetLastTrackHitPtr())
+    hit->SetLastTrackHitPtr(fPrevTrackHitWithSameHitForRec); // if last
+  hit->SetNTrackHits(hit->GetNTrackHits() - 1); // decrement NTrackHits of hit
+  // update link to next TrackHit of previous TrackHit
+  if (fPrevTrackHitWithSameHitForRec != NULL)
+    fPrevTrackHitWithSameHitForRec->
+      SetNextTrackHitWithSameHitForRec(fNextTrackHitWithSameHitForRec);
+  // update link to previous TrackHit of next TrackHit
+  if (fNextTrackHitWithSameHitForRec)
+    fNextTrackHitWithSameHitForRec->
+      SetPrevTrackHitWithSameHitForRec(fPrevTrackHitWithSameHitForRec);
   // to be checked thoroughly !!!!
   // with Root counter of AliMUONTrackHit objects,
   // with loop over all these links after the update
 }
 
   //__________________________________________________________________________
-Int_t AliMUONTrackHit::Compare(TObject* TrackHit)
+Int_t AliMUONTrackHit::Compare(const TObject* TrackHit) const
 {
-  // "Compare" function to sort with increasing Z.
-  // Returns -1 (0, +1) if Z of current TrackHit
+  // "Compare" function to sort with decreasing Z (spectro. muon Z <0).
+  // Returns 1 (0, -1) if Z of current TrackHit
   // is smaller than (equal to, larger than) Z of TrackHit
   if (fHitForRecPtr->GetZ() <
-      ((AliMUONTrackHit*)TrackHit)->fHitForRecPtr->GetZ()) return(-1);
+      ((AliMUONTrackHit*)TrackHit)->fHitForRecPtr->GetZ()) return(1);
   else if (fHitForRecPtr->GetZ() ==
           ((AliMUONTrackHit*)TrackHit)->fHitForRecPtr->GetZ()) return( 0);
-  else return(+1);
+  else return(-1);
 }