#ifndef STNTUPLE_TStnTriggerInfo #define STNTUPLE_TStnTriggerInfo //----------------------------------------------------------------------------- // STNTUPLE trigger info block: "generic", user-assigned, bit numbers for // L1,L2,L3 triggers // // bit numbers in the structure below are "generic" in a sense that they // are supposed to be stable across the runs even if the real L1-L3 bits // numbers are changing, so Muon bit #1, for example, would always stand for // "high-Pt muon trigger", no matter what the minor differences between the // real implementation of this trigger were // This allows to select on the trigger bits w/o accessing the database // it is up to us to make these assignments sensible and to keep them stable // this class is not independent, it represents a piece of TStnTriggerBlock // as we need memory in TStnTriggerBlock to be contiguous, TStnTriggerInfo // is not derived from TObject, // being placeholders these classes also can't have virtual functions (!!!) // // Author: Pasha Murat (CDF/FNAL) // Date: Oct 13 2001 //----------------------------------------------------------------------------- #include "TObject.h" class TStnTriggerInfo { public: // number of data words in the object enum { kNDataWords = 6 }; protected: Int_t fMuonWord; // settings for muon trigger bits Int_t fElectronWord; // settings for electron bits Int_t fPhotonWord; // settings for photon bits Int_t fTauWord; // settings for tau bits Int_t fJetWord; // settings for jet bits Int_t fOther; // includes 0-bias and min-bias //----------------------------------------------------------------------------- // methods //----------------------------------------------------------------------------- public: TStnTriggerInfo(); ~TStnTriggerInfo() {}; // ****** accessors Int_t* Data () { return &fMuonWord; } Int_t MuonBit (Int_t I) { return (fMuonWord >> I) & 0x1; } Int_t ElectronBit(Int_t I) { return (fElectronWord >> I) & 0x1; } Int_t TauBit (Int_t I) { return (fTauWord >> I) & 0x1; } Int_t JetBit (Int_t I) { return (fJetWord >> I) & 0x1; } Int_t PhotonBit (Int_t I) { return (fPhotonWord >> I) & 0x1; } Int_t OtherBit (Int_t I) { return (fOther >> I) & 0x1; } // ****** modifiers void SetBit(Int_t& Word, Int_t Bit, Int_t Value) { Word = (Word & (0xffffffff ^ (1<