#ifndef ALIRECONSTRUCTOR_H
# include "AliReconstructor.h"
#endif
+#ifndef ROOT_TObjArray
+#define "TObjArray.h"
+#endif
+class AliMUONCalibrationData;
+class AliMUONDigitCalibrator;
class AliMUONDigitMaker;
-class AliMUONVDigitStore;
-class AliMUONVTriggerStore;
-
class AliMUONGeometryTransformer;
-
-class AliMUONTriggerCrateStore;
+class AliMUONTracker;
class AliMUONTriggerCircuit;
-class TClonesArray;
-class AliMUONVTriggerStore;
-
-class AliMUONDigitCalibrator;
-class AliMUONCalibrationData;
-
-class AliMUONClusterReconstructor;
+class AliMUONVClusterFinder;
+class AliMUONVClusterServer;
class AliMUONVClusterStore;
-
-class AliMUONTracker;
+class AliMUONVDigitStore;
class AliMUONVTrackStore;
+class AliMUONVTriggerStore;
+class AliMUONTriggerElectronics;
+class TClonesArray;
+class AliMUONTriggerUtilities;
-class AliMUONTriggerChamberEff;
-
-class AliMUONStopwatchGroup;
+#include "AliMUONRecoParam.h"
class AliMUONReconstructor : public AliReconstructor
{
virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
- virtual Bool_t HasLocalReconstruction() const;
-
- virtual void Reconstruct(AliRunLoader* runLoader) const;
-
- virtual void Reconstruct(AliRunLoader* runLoader, AliRawReader* rawReader) const;
-
virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
- virtual AliTracker* CreateTracker(AliRunLoader* runLoader) const;
-
+ virtual AliTracker* CreateTracker() const;
+
+ /// Get param object
+ static const AliMUONRecoParam* GetRecoParam();
+
+ static AliMUONVClusterFinder* CreateClusterFinder(const char* clusterFinderType);
+
private:
/// Not implemented
AliMUONReconstructor(const AliMUONReconstructor&);
AliMUONVDigitStore* digitStore,
AliMUONVTriggerStore* triggerStore) const;
void Calibrate(AliMUONVDigitStore& digitStore) const;
- void Clusterize(const AliMUONVDigitStore& digitStore, AliMUONVClusterStore& clusterStore) const;
- AliMUONTriggerCrateStore* CrateManager() const;
+ void CreateCalibrationData() const;
void CreateCalibrator() const;
void CreateDigitMaker() const;
void CreateTriggerCircuit() const;
- void CreateClusterReconstructor() const;
- void CreateTriggerChamberEff() const;
+ void CreateTriggerUtilities() const;
+ AliMUONVClusterServer* CreateClusterServer(const AliMUONRecoParam& rp) const;
void FillTreeR(AliMUONVTriggerStore* triggerStore,
- AliMUONVClusterStore* clusterStore,
TTree& clustersTree) const;
AliMUONVDigitStore* DigitStore() const;
- AliMUONVClusterStore* ClusterStore() const;
AliMUONVTriggerStore* TriggerStore() const;
-
+ void ResponseRemovingChambers(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 AliMUONClusterReconstructor* fClusterReconstructor; //!< Clusterizer
- mutable AliMUONVClusterStore* fClusterStore; //!< Cluster container
mutable AliMUONVTriggerStore* fTriggerStore; //!< Trigger container
mutable AliMUONVTrackStore* fTrackStore; //!< Track container
- mutable AliMUONTriggerChamberEff* fTrigChamberEff; //!< pointer to trigger chamber efficiency class
- AliMUONStopwatchGroup* fTimers; //!< Internal timers
+ mutable AliMUONVClusterStore* fClusterStore; //!< cluster store (when not in combined tracking mode)
+ mutable AliMUONTriggerElectronics* fTriggerProcessor; //!< Processor to recalculate trigger response
+ mutable AliMUONTriggerUtilities* fTriggerUtilities; //!< Trigger utilities for masks
+ mutable TObjArray fClusterServers; //!< Clusterizers (one per event specie)
+ mutable TObjArray fTrackers; //!< trackers (one per event specie)
+ mutable Bool_t fShouldCalibrate; // whether the fDigitCalibrator should be non-null
- ClassDef(AliMUONReconstructor,1) // Implementation of AliReconstructor
+ ClassDef(AliMUONReconstructor,12) // Implementation of AliReconstructor
};
#endif