Initialisation revisited
[u/mrichter/AliRoot.git] / VZERO / AliVZEROTriggerSimulator.h
1 #ifndef ALIVZEROTRIGGERSIMULATOR_H\r
2 #define ALIVZEROTRIGGERSIMULATOR_H\r
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights\r
4  * reserved. \r
5  *\r
6  * See cxx source for full Copyright notice                               \r
7  */\r
8 \r
9 #include <TObject.h>\r
10 \r
11 #include "AliVZEROTriggerData.h"\r
12 \r
13 class AliVZEROLogicalSignal;\r
14 class TTree;\r
15 class TClonesArray;\r
16 \r
17 class AliVZEROTriggerSimulator : public TObject {\r
18 public:\r
19         AliVZEROTriggerSimulator();\r
20         AliVZEROTriggerSimulator(TTree * digitsTree, TClonesArray* digits);\r
21         ~AliVZEROTriggerSimulator();\r
22         \r
23         AliVZEROTriggerData * GetTriggerData() const {return fTriggerData;};\r
24         \r
25         Bool_t GetBBAandBBC() const             {return (fTriggerWord & 0x1);};\r
26         Bool_t GetBBAorBBC() const              {return (fTriggerWord>>1 & 0x1);};\r
27         Bool_t GetBGAandBBC() const             {return (fTriggerWord>>2 & 0x1);};\r
28         Bool_t GetBGA() const                   {return (fTriggerWord>>3 & 0x1);};\r
29         Bool_t GetBGCandBBA() const             {return (fTriggerWord>>4 & 0x1);};\r
30         Bool_t GetBGC() const                   {return (fTriggerWord>>5 & 0x1);};\r
31         Bool_t GetCTA1andCTC1() const   {return (fTriggerWord>>6 & 0x1);};\r
32         Bool_t GetCTA1orCTC1() const    {return (fTriggerWord>>7 & 0x1);};\r
33         Bool_t GetCTA2andCTC2() const   {return (fTriggerWord>>8 & 0x1);};\r
34         Bool_t GetCTA2orCTC2() const    {return (fTriggerWord>>9 & 0x1);};\r
35         Bool_t GetMTAandMTC() const             {return (fTriggerWord>>10 & 0x1);};\r
36         Bool_t GetMTAorMTC() const              {return (fTriggerWord>>11 & 0x1);};\r
37         Bool_t GetBBA() const                   {return (fTriggerWord>>12 & 0x1);};\r
38         Bool_t GetBBC() const                   {return (fTriggerWord>>13 & 0x1);};\r
39         Bool_t GetBGAorBGC() const              {return (fTriggerWord>>14 & 0x1);};\r
40         Bool_t GetBeamGas() const               {return (fTriggerWord>>15 & 0x1);};\r
41         \r
42         void SetBBAandBBC()             { (fTriggerWord += 0x1);};\r
43         void SetBBAorBBC()              { (fTriggerWord += 0x1<<1);};\r
44         void SetBGAandBBC()             { (fTriggerWord += 0x1<<2);};\r
45         void SetBGA()                   { (fTriggerWord += 0x1<<3);};\r
46         void SetBGCandBBA()             { (fTriggerWord += 0x1<<4);};\r
47         void SetBGC()                   { (fTriggerWord += 0x1<<5);};\r
48         void SetCTA1andCTC1()   { (fTriggerWord += 0x1<<6);};\r
49         void SetCTA1orCTC1()    { (fTriggerWord += 0x1<<7);};\r
50         void SetCTA2andCTC2()   { (fTriggerWord += 0x1<<8);};\r
51         void SetCTA2orCTC2()    { (fTriggerWord += 0x1<<9);};\r
52         void SetMTAandMTC()             { (fTriggerWord += 0x1<<10);};\r
53         void SetMTAorMTC()              { (fTriggerWord += 0x1<<11);};  \r
54         void SetBBA()                   { (fTriggerWord += 0x1<<12);};\r
55         void SetBBC()                   { (fTriggerWord += 0x1<<13);};\r
56         void SetBGAorBGC()              { (fTriggerWord += 0x1<<14);};\r
57         void SetBeamGas()               { (fTriggerWord += 0x1<<15);};\r
58         \r
59         void Run();\r
60         \r
61 private:\r
62         // Private methods\r
63         AliVZEROTriggerSimulator(const AliVZEROTriggerSimulator &/*triggerSim*/);\r
64         AliVZEROTriggerSimulator& operator= (const AliVZEROTriggerSimulator & /*triggerSim*/);\r
65         AliVZEROTriggerData * LoadTriggerData() const ;\r
66         void GenerateBBWindows();\r
67         void GenerateBGWindows();\r
68         \r
69         // Members\r
70         AliVZEROLogicalSignal * fBBGate[AliVZEROTriggerData::kNCIUBoards];\r
71         AliVZEROLogicalSignal * fBBLatch[AliVZEROTriggerData::kNCIUBoards];\r
72         AliVZEROLogicalSignal * fBBReset[AliVZEROTriggerData::kNCIUBoards];\r
73         \r
74         AliVZEROLogicalSignal * fBGGate[AliVZEROTriggerData::kNCIUBoards];\r
75         AliVZEROLogicalSignal * fBGLatch[AliVZEROTriggerData::kNCIUBoards];\r
76         AliVZEROLogicalSignal * fBGReset[AliVZEROTriggerData::kNCIUBoards];\r
77 \r
78         AliVZEROTriggerData *fTriggerData; // Object holding the trigger configuration parameters\r
79         \r
80         TTree* fDigitsTree;\r
81         TClonesArray* fDigits;\r
82         \r
83         Bool_t fBBFlags[64];\r
84         Bool_t fBGFlags[64];\r
85         Int_t  fCharges[64];\r
86         \r
87         UShort_t fTriggerWord;\r
88                 \r
89         ClassDef( AliVZEROTriggerSimulator, 1 )  \r
90 \r
91 };\r
92 \r
93 \r
94 #endif // ALIVZEROTRIGGERSIMULATOR_H\r
95 \r