86c89a6ed7cc825dfc7789bf1b77634ca5fada80
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerElectronics.h
1 #ifndef ALIMUONTRIGGERELECTRONICS_H
2 #define ALIMUONTRIGGERELECTRONICS_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 /// \ingroup sim 
9 /// \class AliMUONTriggerElectronics
10 /// \brief Manager class for muon trigger electronics
11 ///
12 /// Client of trigger board classes
13 ///
14 /// \author Rachid Guernane (LPCCFd)
15
16 #ifndef ROOT_TObject
17 #  include "TObject.h"
18 #endif
19
20 #ifndef ROOT_TString
21 #  include "TString.h"
22 #endif
23
24 class AliMUONTriggerCrate;
25 class AliMUONCalibrationData;
26 class AliMUONGlobalTriggerBoard;
27 class AliMUONTriggerCrateStore;
28 class AliMUONVTriggerStore;
29 class AliMUONVDigitStore;
30
31 class AliMUONTriggerElectronics : public TObject
32 {
33    public:
34       AliMUONTriggerElectronics(AliMUONCalibrationData* calibData=0);
35
36     virtual ~AliMUONTriggerElectronics();
37
38       /// Set Crate config from ascii file
39       virtual void SetDataSource(TString SourceFile = 
40                                  "$ALICE_ROOT/MUON/mapping/data/stationTrigger/crate.dat") 
41       {fSourceFileName = SourceFile;}
42
43       virtual void Factory(AliMUONCalibrationData* calibData);
44       void LoadMasks(AliMUONCalibrationData* calibData);
45
46       virtual void Feed(UShort_t pattern[2][4]);
47                   virtual void Feed(const AliMUONVDigitStore& digitStore);
48       virtual void Reset();
49
50       virtual void Scan(Option_t *option);
51
52       virtual void LocalResponse();
53       virtual void RegionalResponse();
54       virtual void GlobalResponse();
55
56       virtual void DumpOS();
57
58       virtual void Digits2Trigger(const AliMUONVDigitStore& digitStore,
59                                   AliMUONVTriggerStore& triggerStore);
60
61    private:
62       /// Not implemented
63       AliMUONTriggerElectronics(const AliMUONTriggerElectronics& right);
64       /// Not implemented
65       AliMUONTriggerElectronics&  operator = (const AliMUONTriggerElectronics& right);
66      
67    private:
68       TString                    fSourceFileName;     ///< Source file
69       AliMUONTriggerCrateStore  *fCrates;             ///< Crate array
70       AliMUONGlobalTriggerBoard *fGlobalTriggerBoard; ///< Global trigger board
71       
72    ClassDef(AliMUONTriggerElectronics,3)
73 };
74 #endif