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