]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTracker.h
Fixing the decoding of regional header bits.
[u/mrichter/AliRoot.git] / MUON / AliMUONTracker.h
index d320c9edc67296c45136b5cdcaeb42174cf0c447..788cb9e4b18b276bb1bd8333e14b6d145f90281d 100644 (file)
@@ -3,12 +3,13 @@
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
+// $Id$
 
 /// \ingroup rec
 /// \class AliMUONTracker
 /// \brief MUON base Tracker
 ///
-//  Author: Christian Finck, SUBATECH Nantes
+//  Authors: Christian Finck, Laurent Aphecetche, SUBATECH Nantes
 
 #include "AliTracker.h"
 
@@ -18,17 +19,20 @@ class AliMUONDigitMaker;
 class AliMUONGeometryTransformer;
 class AliMUONTrackHitPattern;
 class AliMUONTriggerCircuit;
+class AliMUONVClusterServer;
 class AliMUONVClusterStore;
+class AliMUONVDigitStore;
 class AliMUONVTrackReconstructor;
 class AliMUONVTrackStore;
 class AliMUONVTriggerStore;
-class AliMUONVClusterServer;
+class AliMUONVTriggerTrackStore;
 
 class AliMUONTracker : public AliTracker
 {
  public:
 
-  AliMUONTracker(AliMUONVClusterServer& clusterServer,
+  AliMUONTracker(AliMUONVClusterServer* clusterServer,
+                 const AliMUONVDigitStore& digitStore,
                  const AliMUONDigitMaker* digitMaker=0,
                  const AliMUONGeometryTransformer* transformer=0,
                  const AliMUONTriggerCircuit* triggerCircuit=0);
@@ -47,6 +51,8 @@ class AliMUONTracker : public AliTracker
   /// Dummy implementation
   virtual AliCluster *GetCluster(Int_t /*index*/) const {return 0;}
 
+  static AliMUONVTrackReconstructor* CreateTrackReconstructor(const char* trackingMode, AliMUONVClusterServer* clusterServer);
+  
 private:
   /// Not implemented
   AliMUONTracker(const AliMUONTracker& rhs);
@@ -55,10 +61,12 @@ private:
     
   AliMUONVClusterStore* ClusterStore() const;
 
-  void CreateTrackReconstructor();
+  AliMUONVTriggerTrackStore* TriggerTrackStore() const;
   
   void FillESD(AliMUONVTrackStore& trackStore, AliESDEvent* esd) const;
 
+  void SetupClusterServer(AliMUONVClusterServer& clusterServer);
+  
 private:
   const AliMUONDigitMaker* fDigitMaker; //!< digit maker (not owner)
   const AliMUONGeometryTransformer* fTransformer; //!< geometry transformer (not owner)
@@ -67,7 +75,11 @@ private:
   AliMUONVTrackReconstructor* fTrackReco; //!< track reconstructor
   mutable AliMUONVClusterStore* fClusterStore; //!< cluster container
   AliMUONVTriggerStore* fTriggerStore; //!< trigger information
-  AliMUONVClusterServer& fClusterServer; //!< to get clusters
+  AliMUONVClusterServer* fClusterServer; //!< to get clusters
+  Bool_t fIsOwnerOfClusterServer; //!< whether we are owner of the cluster server
+  const AliMUONVDigitStore& fDigitStore; //!< digit info to fill in ESD
+  mutable AliMUONVClusterStore* fInputClusterStore; //!< cluster container
+  mutable AliMUONVTriggerTrackStore* fTriggerTrackStore; //!< trigger track store
   
   ClassDef(AliMUONTracker,0)  //tracker base class for MUON
 };