]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AD/ADsim/AliADTriggerSimulator.h
Update master to aliroot
[u/mrichter/AliRoot.git] / AD / ADsim / AliADTriggerSimulator.h
1 #ifndef ALIADTRIGGERSIMULATOR_H
2 #define ALIADTRIGGERSIMULATOR_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 AliADTriggerSimulator
10 // ------------------------------
11 //  Simulate the AD 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 #include "AliADConst.h"
18
19 class AliADLogicalSignal;
20 class AliADCalibData;
21 class TTree;
22 class TClonesArray;
23
24 class AliADTriggerSimulator : public TObject {
25 public:
26         AliADTriggerSimulator();
27         AliADTriggerSimulator(TTree * digitsTree, TClonesArray* digits);
28         ~AliADTriggerSimulator();
29         
30         AliADCalibData * GetCalibData() const {return fCalibData;};
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         void FillFlags(Bool_t *bbFlag, Bool_t *bgFlag, Float_t time[16]);
68         virtual void Print(Option_t* /* opt */) const;
69         
70 private:
71         // Private methods
72         AliADTriggerSimulator(const AliADTriggerSimulator &/*triggerSim*/);
73         AliADTriggerSimulator& operator= (const AliADTriggerSimulator & /*triggerSim*/);
74         AliADCalibData * LoadCalibData() const ;
75         void                  LoadClockOffset();
76         void GenerateBBWindows();
77         void GenerateBGWindows();
78         Bool_t AreGatesOpen() const;
79         
80         // Members
81         AliADLogicalSignal * fBBGate[kNCIUBoards];  // BB Observation window
82         AliADLogicalSignal * fBBLatch[kNCIUBoards]; // BB Latch window
83         AliADLogicalSignal * fBBReset[kNCIUBoards]; // BB Reset Window
84         
85         AliADLogicalSignal * fBGGate[kNCIUBoards];  // BG Observation window
86         AliADLogicalSignal * fBGLatch[kNCIUBoards]; // BG Latch Window
87         AliADLogicalSignal * fBGReset[kNCIUBoards]; // BG Reset Window
88
89         AliADCalibData *fCalibData; // Object holding the trigger configuration parameters
90         Float_t fClockOffset[kNCIUBoards]; // TDC clock offset including roll-over, trig count and L0->L1 delay
91         
92         TTree* fDigitsTree; //Pointer to AD digit tree
93         TClonesArray* fDigits; //Pointer to AD digit array
94         
95         Bool_t fBBFlags[16]; // Individual BB Flags
96         Bool_t fBGFlags[16]; // Individual BG Flags
97         Float_t  fCharges[16]; // Individual Charge
98         
99         UShort_t fTriggerWord; // Word holding the 16 triggers return by the FEE
100                 
101         ClassDef( AliADTriggerSimulator, 3 )  
102
103 };
104
105
106 #endif // ALIADTRIGGERSIMULATOR_H
107
108