1 #ifndef ALIADTRIGGERSIMULATOR_H
2 #define ALIADTRIGGERSIMULATOR_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
6 * See cxx source for full Copyright notice
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
17 #include "AliADConst.h"
19 class AliADLogicalSignal;
24 class AliADTriggerSimulator : public TObject {
26 AliADTriggerSimulator();
27 AliADTriggerSimulator(TTree * digitsTree, TClonesArray* digits);
28 ~AliADTriggerSimulator();
30 AliADCalibData * GetCalibData() const {return fCalibData;};
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);};
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);};
67 virtual void Print(Option_t* /* opt */) const;
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;
80 AliADLogicalSignal * fBBGate[kNCIUBoards]; // BB Observation window
81 AliADLogicalSignal * fBBLatch[kNCIUBoards]; // BB Latch window
82 AliADLogicalSignal * fBBReset[kNCIUBoards]; // BB Reset Window
84 AliADLogicalSignal * fBGGate[kNCIUBoards]; // BG Observation window
85 AliADLogicalSignal * fBGLatch[kNCIUBoards]; // BG Latch Window
86 AliADLogicalSignal * fBGReset[kNCIUBoards]; // BG Reset Window
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
91 TTree* fDigitsTree; //Pointer to AD digit tree
92 TClonesArray* fDigits; //Pointer to AD digit array
94 Bool_t fBBFlags[64]; // Individual BB Flags
95 Bool_t fBGFlags[64]; // Individual BG Flags
96 Float_t fCharges[64]; // Individual Charge
98 UShort_t fTriggerWord; // Word holding the 16 triggers return by the FEE
100 ClassDef( AliADTriggerSimulator, 3 )
105 #endif // ALIADTRIGGERSIMULATOR_H