Updated DA config following the commit the DA source file.
[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 // Class AliVZEROTriggerSimulator\r
10 // ------------------------------\r
11 //  Simulate the VZERO Trigger response\r
12 // Use FEE parameters stored in Database\r
13 // Can work on real data or in simulation\r
14 //\r
15 \r
16 #include <TObject.h>\r
17 \r
18 #include "AliVZEROTriggerData.h"\r
19 \r
20 class AliVZEROLogicalSignal;\r
21 class TTree;\r
22 class TClonesArray;\r
23 \r
24 class AliVZEROTriggerSimulator : public TObject {\r
25 public:\r
26         AliVZEROTriggerSimulator();\r
27         AliVZEROTriggerSimulator(TTree * digitsTree, TClonesArray* digits);\r
28         ~AliVZEROTriggerSimulator();\r
29         \r
30         AliVZEROTriggerData * GetTriggerData() const {return fTriggerData;};\r
31         \r
32         Bool_t GetBBAandBBC() const             {return (fTriggerWord & 0x1);};\r
33         Bool_t GetBBAorBBC() const              {return (fTriggerWord>>1 & 0x1);};\r
34         Bool_t GetBGAandBBC() const             {return (fTriggerWord>>2 & 0x1);};\r
35         Bool_t GetBGA() const                   {return (fTriggerWord>>3 & 0x1);};\r
36         Bool_t GetBGCandBBA() const             {return (fTriggerWord>>4 & 0x1);};\r
37         Bool_t GetBGC() const                   {return (fTriggerWord>>5 & 0x1);};\r
38         Bool_t GetCTA1andCTC1() const   {return (fTriggerWord>>6 & 0x1);};\r
39         Bool_t GetCTA1orCTC1() const    {return (fTriggerWord>>7 & 0x1);};\r
40         Bool_t GetCTA2andCTC2() const   {return (fTriggerWord>>8 & 0x1);};\r
41         Bool_t GetCTA2orCTC2() const    {return (fTriggerWord>>9 & 0x1);};\r
42         Bool_t GetMTAandMTC() const             {return (fTriggerWord>>10 & 0x1);};\r
43         Bool_t GetMTAorMTC() const              {return (fTriggerWord>>11 & 0x1);};\r
44         Bool_t GetBBA() const                   {return (fTriggerWord>>12 & 0x1);};\r
45         Bool_t GetBBC() const                   {return (fTriggerWord>>13 & 0x1);};\r
46         Bool_t GetBGAorBGC() const              {return (fTriggerWord>>14 & 0x1);};\r
47         Bool_t GetBeamGas() const               {return (fTriggerWord>>15 & 0x1);};\r
48         \r
49         void SetBBAandBBC()             { (fTriggerWord += 0x1);};\r
50         void SetBBAorBBC()              { (fTriggerWord += 0x1<<1);};\r
51         void SetBGAandBBC()             { (fTriggerWord += 0x1<<2);};\r
52         void SetBGA()                   { (fTriggerWord += 0x1<<3);};\r
53         void SetBGCandBBA()             { (fTriggerWord += 0x1<<4);};\r
54         void SetBGC()                   { (fTriggerWord += 0x1<<5);};\r
55         void SetCTA1andCTC1()   { (fTriggerWord += 0x1<<6);};\r
56         void SetCTA1orCTC1()    { (fTriggerWord += 0x1<<7);};\r
57         void SetCTA2andCTC2()   { (fTriggerWord += 0x1<<8);};\r
58         void SetCTA2orCTC2()    { (fTriggerWord += 0x1<<9);};\r
59         void SetMTAandMTC()             { (fTriggerWord += 0x1<<10);};\r
60         void SetMTAorMTC()              { (fTriggerWord += 0x1<<11);};  \r
61         void SetBBA()                   { (fTriggerWord += 0x1<<12);};\r
62         void SetBBC()                   { (fTriggerWord += 0x1<<13);};\r
63         void SetBGAorBGC()              { (fTriggerWord += 0x1<<14);};\r
64         void SetBeamGas()               { (fTriggerWord += 0x1<<15);};\r
65         \r
66         void Run();\r
67         \r
68 private:\r
69         // Private methods\r
70         AliVZEROTriggerSimulator(const AliVZEROTriggerSimulator &/*triggerSim*/);\r
71         AliVZEROTriggerSimulator& operator= (const AliVZEROTriggerSimulator & /*triggerSim*/);\r
72         AliVZEROTriggerData * LoadTriggerData() const ;\r
73         void                  LoadClockOffset();\r
74         void GenerateBBWindows();\r
75         void GenerateBGWindows();\r
76         \r
77         // Members\r
78         AliVZEROLogicalSignal * fBBGate[AliVZEROTriggerData::kNCIUBoards];  // BB Observation window\r
79         AliVZEROLogicalSignal * fBBLatch[AliVZEROTriggerData::kNCIUBoards]; // BB Latch window\r
80         AliVZEROLogicalSignal * fBBReset[AliVZEROTriggerData::kNCIUBoards]; // BB Reset Window\r
81         \r
82         AliVZEROLogicalSignal * fBGGate[AliVZEROTriggerData::kNCIUBoards];  // BG Observation window\r
83         AliVZEROLogicalSignal * fBGLatch[AliVZEROTriggerData::kNCIUBoards]; // BG Latch Window\r
84         AliVZEROLogicalSignal * fBGReset[AliVZEROTriggerData::kNCIUBoards]; // BG Reset Window\r
85 \r
86         AliVZEROTriggerData *fTriggerData; // Object holding the trigger configuration parameters\r
87         Float_t fClockOffset[AliVZEROTriggerData::kNCIUBoards]; // TDC clock offset including roll-over, trig count and L0->L1 delay\r
88         \r
89         TTree* fDigitsTree; //Pointer to VZERO digit tree\r
90         TClonesArray* fDigits; //Pointer to VZERO digit array\r
91         \r
92         Bool_t fBBFlags[64]; // Individual BB Flags\r
93         Bool_t fBGFlags[64]; // Individual BG Flags\r
94         Float_t  fCharges[64]; // Individual Charge\r
95         \r
96         UShort_t fTriggerWord; // Word holding the 16 triggers return by the FEE\r
97                 \r
98         ClassDef( AliVZEROTriggerSimulator, 3 )  \r
99 \r
100 };\r
101 \r
102 \r
103 #endif // ALIVZEROTRIGGERSIMULATOR_H\r
104 \r
105 \r