]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AD/ADsim/AliADTriggerSimulator.h
Updated calibration object to use by triggger simulator and simulator itself
[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         virtual void Print(Option_t* /* opt */) const;
68         
69 private:
70         // Private methods
71         AliADTriggerSimulator(const AliADTriggerSimulator &/*triggerSim*/);
72         AliADTriggerSimulator& operator= (const AliADTriggerSimulator & /*triggerSim*/);
73         AliADCalibData * LoadCalibData() const ;
74         void                  LoadClockOffset();
75         void GenerateBBWindows();
76         void GenerateBGWindows();
77         Bool_t AreGatesOpen() const;
78         
79         // Members
80         AliADLogicalSignal * fBBGate[kNCIUBoards];  // BB Observation window
81         AliADLogicalSignal * fBBLatch[kNCIUBoards]; // BB Latch window
82         AliADLogicalSignal * fBBReset[kNCIUBoards]; // BB Reset Window
83         
84         AliADLogicalSignal * fBGGate[kNCIUBoards];  // BG Observation window
85         AliADLogicalSignal * fBGLatch[kNCIUBoards]; // BG Latch Window
86         AliADLogicalSignal * fBGReset[kNCIUBoards]; // BG Reset Window
87
88         AliADCalibData *fCalibData; // Object holding the trigger configuration parameters
89         Float_t fClockOffset[kNCIUBoards]; // TDC clock offset including roll-over, trig count and L0->L1 delay
90         
91         TTree* fDigitsTree; //Pointer to AD digit tree
92         TClonesArray* fDigits; //Pointer to AD 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( AliADTriggerSimulator, 3 )  
101
102 };
103
104
105 #endif // ALIADTRIGGERSIMULATOR_H
106
107