X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=MUON%2FAliMUONReconstructor.h;h=0994b9d9e59f766b94fb98736017f0927191ed06;hp=2b77cb128dcfce298722337a0eca205d629946da;hb=e5b4d568ecc0045760c7712719dac4172380286c;hpb=666ada1e60ab34f89a2ba56de095a5825a57ddee diff --git a/MUON/AliMUONReconstructor.h b/MUON/AliMUONReconstructor.h index 2b77cb128dc..0994b9d9e59 100644 --- a/MUON/AliMUONReconstructor.h +++ b/MUON/AliMUONReconstructor.h @@ -1,70 +1,100 @@ #ifndef ALIMUONRECONSTRUCTOR_H #define ALIMUONRECONSTRUCTOR_H + /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * See cxx source for full Copyright notice */ +* See cxx source for full Copyright notice */ -/* $Id$ */ -// Revision of includes 07/05/2004 +// $Id$ /// \ingroup rec /// \class AliMUONReconstructor -/// \brief Class for the MUON reconstruction +/// \brief Implementation of AliReconstructor for MUON (both tracker and trigger) +/// +// Author Laurent Aphecetche, Subatech -#include "AliReconstructor.h" +#ifndef ALIRECONSTRUCTOR_H +# include "AliReconstructor.h" +#endif -class AliMUONCalibrationData; -class AliMUONData; -class TTask; class AliMUONDigitMaker; +class AliMUONVDigitStore; +class AliMUONVTriggerStore; + +class AliMUONGeometryTransformer; + class AliMUONTriggerCrateStore; +class AliMUONTriggerCircuit; class TClonesArray; -class AliMUONGeometryTransformer; +class AliMUONVTriggerStore; -class AliMUONReconstructor: public AliReconstructor -{ - public: - AliMUONReconstructor(); - virtual ~AliMUONReconstructor(); - - virtual void Init(AliRunLoader* runLoader); - - virtual void Reconstruct(TTree* /*digitsTree*/, - TTree* /*clustersTree*/) const {return;} - virtual void Reconstruct(AliRawReader* /*rawReader*/, - TTree* /*clustersTree*/) const {return;} - virtual void Reconstruct(AliRunLoader* runLoader) const; - virtual void Reconstruct(AliRunLoader* runLoader, - AliRawReader* rawReader) const; - - virtual void FillESD(TTree* /*digitsTree*/, TTree* /*clustersTree*/, - AliESD* /*esd*/) const {return;} - virtual void FillESD(AliRawReader* /*rawReader*/, TTree* /*clustersTree*/, - AliESD* /*esd*/) const {return;} - virtual void FillESD(AliRunLoader* runLoader, AliESD* esd) const; - virtual void FillESD(AliRunLoader* runLoader, - AliRawReader* /*rawReader*/, AliESD* esd) const; - - enum {kNone, kOriginal, kKalman, kCombi}; +class AliMUONDigitCalibrator; +class AliMUONCalibrationData; -private: +class AliMUONTracker; +class AliMUONVTrackStore; - TTask* GetCalibrationTask(AliMUONData* data) const; - AliMUONReconstructor(const AliMUONReconstructor& right); - AliMUONReconstructor& operator = (const AliMUONReconstructor& right); +class AliMUONRecoParam; -private: - AliRunLoader* fRunLoader; //!< pointer to runloader - AliMUONDigitMaker* fDigitMaker; //!< pointer to the digit maker class +class AliMUONVClusterFinder; - mutable AliMUONCalibrationData* fCalibrationData; //!< pointer to calibration data - - AliMUONTriggerCrateStore* fCrateManager; //!< Crate array +class AliMUONVClusterServer; - TClonesArray* fTriggerCircuit; //!< trigger circuit - - AliMUONGeometryTransformer* fTransformer; //!< pointer to transformation +class AliMUONReconstructor : public AliReconstructor +{ +public: + AliMUONReconstructor(); + virtual ~AliMUONReconstructor(); + + virtual Bool_t HasDigitConversion() const; - ClassDef(AliMUONReconstructor, 0) // class for the MUON reconstruction + virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const; + + virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const; + + virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const; + + virtual AliTracker* CreateTracker() const; + + static const AliMUONRecoParam* GetRecoParam(); + + static AliMUONVClusterFinder* CreateClusterFinder(const char* clusterFinderType); + +private: + /// Not implemented + AliMUONReconstructor(const AliMUONReconstructor&); + /// Not implemented + AliMUONReconstructor& operator=(const AliMUONReconstructor&); + + void ConvertDigits(AliRawReader* rawReader, + AliMUONVDigitStore* digitStore, + AliMUONVTriggerStore* triggerStore) const; + void Calibrate(AliMUONVDigitStore& digitStore) const; + AliMUONTriggerCrateStore* CrateManager() const; + void CreateCalibrator() const; + void CreateDigitMaker() const; + void CreateTriggerCircuit() const; + void CreateClusterServer() const; + void FillTreeR(AliMUONVTriggerStore* triggerStore, + TTree& clustersTree) const; + + AliMUONVDigitStore* DigitStore() const; + AliMUONVTriggerStore* TriggerStore() const; + +private: + mutable AliMUONTriggerCrateStore* fCrateManager; //!< Trigger Crate manager + mutable AliMUONDigitMaker* fDigitMaker; //!< Raw to Digits converter + AliMUONGeometryTransformer* fTransformer; //!< Geometry transformer (local<->global) + mutable AliMUONVDigitStore* fDigitStore; //!< Digit container + mutable AliMUONTriggerCircuit* fTriggerCircuit; //!< Trigger Circuit + mutable AliMUONCalibrationData* fCalibrationData; //!< Calibration data + mutable AliMUONDigitCalibrator* fDigitCalibrator; //!< Digit to calibrate digit converter + mutable AliMUONVClusterServer* fClusterServer; //!< Clusterizer + mutable AliMUONVTriggerStore* fTriggerStore; //!< Trigger container + mutable AliMUONVTrackStore* fTrackStore; //!< Track container + + static AliMUONRecoParam* fgRecoParam; //!< parameters used to tune the MUON reconstruction + + ClassDef(AliMUONReconstructor,6) // Implementation of AliReconstructor }; #endif