o add Reset function to CalPad and CalROC o Add functionality to AliTPCdataQA - Reset...
[u/mrichter/AliRoot.git] / MUON / AliMUONReconstructor.h
CommitLineData
cac2eb58 1#ifndef ALIMUONRECONSTRUCTOR_H
2#define ALIMUONRECONSTRUCTOR_H
22899106 3
cac2eb58 4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
22899106 5* See cxx source for full Copyright notice */
cac2eb58 6
22899106 7// $Id$
cac2eb58 8
692de412 9/// \ingroup rec
10/// \class AliMUONReconstructor
22899106 11/// \brief Implementation of AliReconstructor for MUON (both tracker and trigger)
12///
13// Author Laurent Aphecetche, Subatech
692de412 14
22899106 15#ifndef ALIRECONSTRUCTOR_H
16# include "AliReconstructor.h"
17#endif
cfeca9e2 18#ifndef ROOT_TObjArray
19#define "TObjArray.h"
20#endif
cac2eb58 21
9ec6a948 22class AliMUONCalibrationData;
23class AliMUONDigitCalibrator;
2cf44ef3 24class AliMUONDigitMaker;
9c4b1ee7 25class AliMUONGeometryTransformer;
9ec6a948 26class AliMUONTracker;
27class AliMUONTriggerCircuit;
c5ce806f 28class AliMUONVClusterFinder;
c5ce806f 29class AliMUONVClusterServer;
9ec6a948 30class AliMUONVClusterStore;
31class AliMUONVDigitStore;
32class AliMUONVTrackStore;
33class AliMUONVTriggerStore;
00d46f24 34class AliMUONTriggerElectronics;
9ec6a948 35class TClonesArray;
d5315275 36class AliMUONTriggerUtilities;
c5ce806f 37
7e88424f 38#include "AliMUONRecoParam.h"
39
22899106 40class AliMUONReconstructor : public AliReconstructor
41{
42public:
43 AliMUONReconstructor();
44 virtual ~AliMUONReconstructor();
45
46 virtual Bool_t HasDigitConversion() const;
47
48 virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
49
22899106 50 virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
51
52 virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
53
d76c31f4 54 virtual AliTracker* CreateTracker() const;
3304fa09 55
ea49e931 56 /// Get param object
cfeca9e2 57 static const AliMUONRecoParam* GetRecoParam();
3304fa09 58
9bf6860b 59 static AliMUONVClusterFinder* CreateClusterFinder(const char* clusterFinderType);
60
22899106 61private:
62 /// Not implemented
63 AliMUONReconstructor(const AliMUONReconstructor&);
64 /// Not implemented
65 AliMUONReconstructor& operator=(const AliMUONReconstructor&);
66
67 void ConvertDigits(AliRawReader* rawReader,
68 AliMUONVDigitStore* digitStore,
69 AliMUONVTriggerStore* triggerStore) const;
70 void Calibrate(AliMUONVDigitStore& digitStore) const;
00d46f24 71 void CreateCalibrationData() const;
22899106 72 void CreateCalibrator() const;
73 void CreateDigitMaker() const;
74 void CreateTriggerCircuit() const;
d5315275 75 void CreateTriggerUtilities() const;
cfeca9e2 76 AliMUONVClusterServer* CreateClusterServer(const AliMUONRecoParam& rp) const;
22899106 77 void FillTreeR(AliMUONVTriggerStore* triggerStore,
22899106 78 TTree& clustersTree) const;
79
80 AliMUONVDigitStore* DigitStore() const;
22899106 81 AliMUONVTriggerStore* TriggerStore() const;
00d46f24 82 void ResponseRemovingChambers(AliMUONVTriggerStore* triggerStore) const;
9bf6860b 83
22899106 84private:
92c23b09 85
22899106 86 mutable AliMUONDigitMaker* fDigitMaker; //!< Raw to Digits converter
87 AliMUONGeometryTransformer* fTransformer; //!< Geometry transformer (local<->global)
88 mutable AliMUONVDigitStore* fDigitStore; //!< Digit container
32ab62c9 89 mutable AliMUONTriggerCircuit* fTriggerCircuit; //!< Trigger Circuit
22899106 90 mutable AliMUONCalibrationData* fCalibrationData; //!< Calibration data
91 mutable AliMUONDigitCalibrator* fDigitCalibrator; //!< Digit to calibrate digit converter
22899106 92 mutable AliMUONVTriggerStore* fTriggerStore; //!< Trigger container
93 mutable AliMUONVTrackStore* fTrackStore; //!< Track container
9ec6a948 94 mutable AliMUONVClusterStore* fClusterStore; //!< cluster store (when not in combined tracking mode)
00d46f24 95 mutable AliMUONTriggerElectronics* fTriggerProcessor; //!< Processor to recalculate trigger response
d5315275 96 mutable AliMUONTriggerUtilities* fTriggerUtilities; //!< Trigger utilities for masks
cfeca9e2 97 mutable TObjArray fClusterServers; //!< Clusterizers (one per event specie)
98 mutable TObjArray fTrackers; //!< trackers (one per event specie)
7b830a3f 99 mutable Bool_t fShouldCalibrate; // whether the fDigitCalibrator should be non-null
100
101 ClassDef(AliMUONReconstructor,12) // Implementation of AliReconstructor
cac2eb58 102};
103
104#endif