]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/AliMUONReconstructor.h
speedup of track model compression by another factor 2
[u/mrichter/AliRoot.git] / MUON / AliMUONReconstructor.h
... / ...
CommitLineData
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
19class AliMUONCalibrationData;
20class AliMUONDigitCalibrator;
21class AliMUONDigitMaker;
22class AliMUONGeometryTransformer;
23class AliMUONTracker;
24class AliMUONTriggerCircuit;
25class AliMUONVClusterFinder;
26class AliMUONVClusterServer;
27class AliMUONVClusterStore;
28class AliMUONVDigitStore;
29class AliMUONVTrackStore;
30class AliMUONVTriggerStore;
31class AliMUONTriggerElectronics;
32class TClonesArray;
33class AliMUONTriggerUtilities;
34
35#include "AliMUONRecoParam.h"
36
37class AliMUONReconstructor : public AliReconstructor
38{
39public:
40 AliMUONReconstructor();
41 virtual ~AliMUONReconstructor();
42
43 virtual Bool_t HasDigitConversion() const;
44
45 virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
46
47 virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
48
49 virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
50
51 virtual AliTracker* CreateTracker() const;
52
53 /// Get param object
54 static const AliMUONRecoParam* GetRecoParam() { return dynamic_cast<const AliMUONRecoParam*>(AliReconstructor::GetRecoParam(7)); }
55
56 static AliMUONVClusterFinder* CreateClusterFinder(const char* clusterFinderType);
57
58private:
59 /// Not implemented
60 AliMUONReconstructor(const AliMUONReconstructor&);
61 /// Not implemented
62 AliMUONReconstructor& operator=(const AliMUONReconstructor&);
63
64 void ConvertDigits(AliRawReader* rawReader,
65 AliMUONVDigitStore* digitStore,
66 AliMUONVTriggerStore* triggerStore) const;
67 void Calibrate(AliMUONVDigitStore& digitStore) const;
68 void CreateCalibrationData() const;
69 void CreateCalibrator() const;
70 void CreateDigitMaker() const;
71 void CreateTriggerCircuit() const;
72 void CreateTriggerUtilities() const;
73 void CreateClusterServer() const;
74 void FillTreeR(AliMUONVTriggerStore* triggerStore,
75 TTree& clustersTree) const;
76
77 AliMUONVDigitStore* DigitStore() const;
78 AliMUONVTriggerStore* TriggerStore() const;
79 void ResponseRemovingChambers(AliMUONVTriggerStore* triggerStore) const;
80
81private:
82
83 mutable AliMUONDigitMaker* fDigitMaker; //!< Raw to Digits converter
84 AliMUONGeometryTransformer* fTransformer; //!< Geometry transformer (local<->global)
85 mutable AliMUONVDigitStore* fDigitStore; //!< Digit container
86 mutable AliMUONTriggerCircuit* fTriggerCircuit; //!< Trigger Circuit
87 mutable AliMUONCalibrationData* fCalibrationData; //!< Calibration data
88 mutable AliMUONDigitCalibrator* fDigitCalibrator; //!< Digit to calibrate digit converter
89 mutable AliMUONVClusterServer* fClusterServer; //!< Clusterizer
90 mutable AliMUONVTriggerStore* fTriggerStore; //!< Trigger container
91 mutable AliMUONVTrackStore* fTrackStore; //!< Track container
92 mutable AliMUONVClusterStore* fClusterStore; //!< cluster store (when not in combined tracking mode)
93 mutable AliMUONTriggerElectronics* fTriggerProcessor; //!< Processor to recalculate trigger response
94 mutable AliMUONTriggerUtilities* fTriggerUtilities; //!< Trigger utilities for masks
95
96 ClassDef(AliMUONReconstructor,10) // Implementation of AliReconstructor
97};
98
99#endif