X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONTracker.h;h=bbb356cbfa33f4c0f9c155f0c11efe1ee626a6c0;hb=fb43b48d60e00880fae1616a9b2b8466d1d83320;hp=fd25db5ee4f16a32215f11161b64acf480186283;hpb=d81d2e8e8fe3be623b97539673532c073c0403e6;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONTracker.h b/MUON/AliMUONTracker.h index fd25db5ee4f..bbb356cbfa3 100644 --- a/MUON/AliMUONTracker.h +++ b/MUON/AliMUONTracker.h @@ -3,57 +3,90 @@ /* 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" -class AliESD; + class AliCluster; -class AliMUONRecData; -class TClonesArray; +class AliESDEvent; +class AliMUONGeometryTransformer; +class AliMUONRecoParam; +class AliMUONTrackHitPattern; +class AliMUONTriggerCircuit; +class AliMUONVClusterServer; +class AliMUONVClusterStore; +class AliMUONVDigitStore; class AliMUONVTrackReconstructor; +class AliMUONVTrackStore; +class AliMUONVTriggerStore; +class AliMUONVTriggerTrackStore; +class AliMUONTriggerUtilities; class AliMUONTracker : public AliTracker { public: - AliMUONTracker(); + AliMUONTracker(const AliMUONRecoParam* recoParam, + AliMUONVClusterServer* clusterServer, + AliMUONVDigitStore& digitStore, + const AliMUONGeometryTransformer* transformer=0, + const AliMUONTriggerCircuit* triggerCircuit=0, + const AliMUONTriggerUtilities* triggerUtilities=0); virtual ~AliMUONTracker(); - - virtual Int_t Clusters2Tracks(AliESD* /*esd*/); + + virtual Int_t Clusters2Tracks(AliESDEvent* esd); + + virtual Int_t LoadClusters(TTree* clustersTree); + + virtual void UnloadClusters(); + + /// Return reco parameters + const AliMUONRecoParam* GetRecoParam() const { return fkRecoParam; } /// Dummy implementation - virtual Int_t PropagateBack(AliESD* /*event*/) {return 0;} - /// Dummy implementation - virtual Int_t RefitInward(AliESD* /*event*/) {return 0;} - /// Dummy implementation - virtual Int_t LoadClusters(TTree* /*tree*/) {return 0;} + virtual Int_t PropagateBack(AliESDEvent* /*event*/) {return 0;} /// Dummy implementation - virtual void UnloadClusters() {return;} + virtual Int_t RefitInward(AliESDEvent* /*event*/) {return 0;} /// Dummy implementation virtual AliCluster *GetCluster(Int_t /*index*/) const {return 0;} - /// Set trigger circuit - void SetTriggerCircuit(TClonesArray* circuit) {fTriggerCircuit = circuit;} - /// Set pointer to data container - void SetMUONData(AliMUONRecData* data) {fMUONData = data;} - /// Set option - void SetOption(Option_t* opt); - + static AliMUONVTrackReconstructor* CreateTrackReconstructor(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer); + private: /// Not implemented AliMUONTracker(const AliMUONTracker& rhs); /// Not implemented AliMUONTracker& operator=(const AliMUONTracker& rhs); - TClonesArray* fTriggerCircuit; //!< trigger circuit - AliMUONRecData* fMUONData; //!< pointer to container - AliMUONVTrackReconstructor* fTrackReco; //!< track reconstructor + AliMUONVClusterStore* ClusterStore() const; + + AliMUONVTriggerTrackStore* TriggerTrackStore() const; + + void FillESD(const AliMUONVTrackStore& trackStore, AliESDEvent* esd) const; + void SetupClusterServer(AliMUONVClusterServer& clusterServer); + +private: + const AliMUONGeometryTransformer* fkTransformer; //!< geometry transformer (not owner) + const AliMUONTriggerCircuit* fkTriggerCircuit; //!< trigger circuit (not owner) + AliMUONTrackHitPattern* fTrackHitPatternMaker; //!< trigger hit pattern maker + AliMUONVTrackReconstructor* fTrackReco; //!< track reconstructor + mutable AliMUONVClusterStore* fClusterStore; //!< cluster container + AliMUONVTriggerStore* fTriggerStore; //!< trigger information + AliMUONVClusterServer* fClusterServer; //!< to get clusters + Bool_t fIsOwnerOfClusterServer; //!< whether we are owner of the cluster server + const AliMUONVDigitStore& fkDigitStore; //!< digit info to fill in ESD + mutable AliMUONVClusterStore* fInputClusterStore; //!< cluster container + mutable AliMUONVTriggerTrackStore* fTriggerTrackStore; //!< trigger track store + const AliMUONRecoParam* fkRecoParam; //!< pointer to reco param + AliMUONVTrackStore* fInternalTrackStore; //!< internal track store + ClassDef(AliMUONTracker,0) //tracker base class for MUON }; #endif