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