]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONTracker.h
New raw-reader class which deals with events taken from shared memory via the DATE...
[u/mrichter/AliRoot.git] / MUON / AliMUONTracker.h
CommitLineData
196471e9 1#ifndef ALIMUONTRACKER_H
2#define ALIMUONTRACKER_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6
6b092dfc 7/// \ingroup rec
196471e9 8/// \class AliMUONTracker
9/// \brief MUON base Tracker
d81d2e8e 10///
9bf6860b 11// Authors: Christian Finck, Laurent Aphecetche, SUBATECH Nantes
196471e9 12
13#include "AliTracker.h"
e64fdf8a 14
196471e9 15class AliCluster;
af885e0f 16class AliESDEvent;
e64fdf8a 17class AliMUONDigitMaker;
18class AliMUONGeometryTransformer;
19class AliMUONTrackHitPattern;
32ab62c9 20class AliMUONTriggerCircuit;
9bf6860b 21class AliMUONVClusterServer;
e64fdf8a 22class AliMUONVClusterStore;
9bf6860b 23class AliMUONVDigitStore;
196471e9 24class AliMUONVTrackReconstructor;
e64fdf8a 25class AliMUONVTrackStore;
26class AliMUONVTriggerStore;
9bf6860b 27class AliMUONVTriggerTrackStore;
196471e9 28
29class AliMUONTracker : public AliTracker
30{
31 public:
32
9bf6860b 33 AliMUONTracker(AliMUONVClusterServer* clusterServer,
34 const AliMUONVDigitStore& digitStore,
1fef78c8 35 const AliMUONDigitMaker* digitMaker=0,
e64fdf8a 36 const AliMUONGeometryTransformer* transformer=0,
683cb6c5 37 const AliMUONTriggerCircuit* triggerCircuit=0);
196471e9 38 virtual ~AliMUONTracker();
196471e9 39
af885e0f 40 virtual Int_t Clusters2Tracks(AliESDEvent* esd);
e64fdf8a 41
e64fdf8a 42 virtual Int_t LoadClusters(TTree* clustersTree);
43
e64fdf8a 44 virtual void UnloadClusters();
45
71a2d3aa 46 /// Dummy implementation
af885e0f 47 virtual Int_t PropagateBack(AliESDEvent* /*event*/) {return 0;}
71a2d3aa 48 /// Dummy implementation
af885e0f 49 virtual Int_t RefitInward(AliESDEvent* /*event*/) {return 0;}
71a2d3aa 50 /// Dummy implementation
196471e9 51 virtual AliCluster *GetCluster(Int_t /*index*/) const {return 0;}
196471e9 52
9bf6860b 53 static AliMUONVTrackReconstructor* CreateTrackReconstructor(const char* trackingMode, AliMUONVClusterServer* clusterServer);
54
196471e9 55private:
71a2d3aa 56 /// Not implemented
57 AliMUONTracker(const AliMUONTracker& rhs);
58 /// Not implemented
59 AliMUONTracker& operator=(const AliMUONTracker& rhs);
60
1fef78c8 61 AliMUONVClusterStore* ClusterStore() const;
62
9bf6860b 63 AliMUONVTriggerTrackStore* TriggerTrackStore() const;
3304fa09 64
af885e0f 65 void FillESD(AliMUONVTrackStore& trackStore, AliESDEvent* esd) const;
e64fdf8a 66
9bf6860b 67 void SetupClusterServer(AliMUONVClusterServer& clusterServer);
68
e64fdf8a 69private:
e64fdf8a 70 const AliMUONDigitMaker* fDigitMaker; //!< digit maker (not owner)
71 const AliMUONGeometryTransformer* fTransformer; //!< geometry transformer (not owner)
3304fa09 72 const AliMUONTriggerCircuit* fTriggerCircuit; //!< trigger circuit (not owner)
e64fdf8a 73 AliMUONTrackHitPattern* fTrackHitPatternMaker; //!< trigger hit pattern maker
3304fa09 74 AliMUONVTrackReconstructor* fTrackReco; //!< track reconstructor
1fef78c8 75 mutable AliMUONVClusterStore* fClusterStore; //!< cluster container
e64fdf8a 76 AliMUONVTriggerStore* fTriggerStore; //!< trigger information
9bf6860b 77 AliMUONVClusterServer* fClusterServer; //!< to get clusters
78 Bool_t fIsOwnerOfClusterServer; //!< whether we are owner of the cluster server
89b4e052 79 const AliMUONVDigitStore& fDigitStore; //!< digit info to fill in ESD
9bf6860b 80 mutable AliMUONVClusterStore* fInputClusterStore; //!< cluster container
81 mutable AliMUONVTriggerTrackStore* fTriggerTrackStore; //!< trigger track store
e64fdf8a 82
196471e9 83 ClassDef(AliMUONTracker,0) //tracker base class for MUON
84};
85#endif