| 1 | /** | 
| 2 | * \file TrigLevel2.h | 
| 3 | * \author Gianfranca DeRosa / Wolfgang Menn | 
| 4 | */ | 
| 5 |  | 
| 6 |  | 
| 7 | #ifndef TrigLevel2_h | 
| 8 | #define TrigLevel2_h | 
| 9 | // | 
| 10 | #include <TObject.h> | 
| 11 | #include <TClonesArray.h> | 
| 12 |  | 
| 13 | #include <TrigStruct.h> | 
| 14 |  | 
| 15 | /** | 
| 16 | * \brief  Class which contains the Trigger data | 
| 17 | * | 
| 18 | */ | 
| 19 |  | 
| 20 | class TrigLevel2 : public TObject { | 
| 21 | private: | 
| 22 |  | 
| 23 | public: | 
| 24 |  | 
| 25 | UInt_t         evcount; ///<event number starts from 0 at each new run | 
| 26 | UInt_t         pmtpl[3]; ///<Rate counters top / middle /bottom | 
| 27 | UInt_t         trigrate[6]; ///<Rate counters of trigger configurations TOF 1/2/.../6 (time base 4 seconds) | 
| 28 | UInt_t         dltime[2];  ///<livetime  or deadtime live=0.16*dltime[0]; dead=0.01*dltime[1] | 
| 29 | UInt_t         s4calcount[2]; ///<Rate counters of s4 and calorimeter (time base 4 seconds) | 
| 30 | UInt_t         pmtcount1[24]; ///<Rate counters of the first 24 pmt's (S111a,...,S118a,S111b,...,S118b etc. look at the QL sequence) | 
| 31 | UInt_t         pmtcount2[24]; ///<Rate counters of the last 24 pmt's | 
| 32 | UInt_t         patternbusy[3]; ///<Too complex to describe, basically there are 3 registers which store the status of the busy lines of all the detector in the 3 phases of acq. (after the trigger, when IDAQ set the busy and when iDAQ remove it) | 
| 33 | UInt_t         patterntrig[6]; ///<What is used in the trigger. One has to do some bit shifting to check the values | 
| 34 | UInt_t         trigconf; ///<Gives the trigger configuration by bit shifting. For example: "trigconf & (1<<0)" => TOF1 | 
| 35 | Int_t          unpackError; ///<is a flag set in case of CRC errors during the unpacking of data | 
| 36 | // | 
| 37 | // here you can define methods to make life simplier during the analysis | 
| 38 | // | 
| 39 |  | 
| 40 | // | 
| 41 | // constructor | 
| 42 | // | 
| 43 | TrigLevel2(); | 
| 44 | // | 
| 45 | // 16 June 06: Included GetTrigLevel2 | 
| 46 | TrigLevel2*   GetTrigLevel2(){return this;}; | 
| 47 | void SetFromLevel2Struct(cTrigLevel2 *l2); | 
| 48 | void GetLevel2Struct(cTrigLevel2 *l2) const; | 
| 49 |  | 
| 50 |  | 
| 51 | void Clear(); //emiliano | 
| 52 |  | 
| 53 | ClassDef(TrigLevel2,2); | 
| 54 | }; | 
| 55 |  | 
| 56 | #endif |