/////////////////////////////////////////////////////////////////////////////// // STNTUPLE trigger table to be stored in the STNTUPLE DB subdirectory // // Author: P.Murat (CDF/FNAL) // Date: Oct 15 2001 /////////////////////////////////////////////////////////////////////////////// #include ClassImp(TStnTriggerTable) //_____________________________________________________________________________ TStnTriggerTable::TStnTriggerTable():fObjName("TStnTriggerTable") { fListOfTriggers[0] = new TObjArray(64); fListOfTriggers[1] = new TObjArray(64); fListOfTriggers[2] = new TObjArray(128); } //_____________________________________________________________________________ TStnTriggerTable::~TStnTriggerTable() { for (int i=0; i<3; i++) { fListOfTriggers[i]->Delete(); delete fListOfTriggers[i]; } } //_____________________________________________________________________________ void TStnTriggerTable::AddTrigger(const TStnTrigger* Trigger) { // levels are 1,2,3 Int_t lev = Trigger->Level(); Int_t bit = Trigger->Bit(); fListOfTriggers[lev-1]->AddAtAndExpand((TObject*) Trigger,bit); } //_____________________________________________________________________________ void TStnTriggerTable::GetListOfTriggers(Int_t Level, const char* Pattern, TObjArray* List) { // do not assume that the trigger names are all uppercased List->Clear(); Int_t nt = NTriggers(Level); TString trigger_name; TString pat(Pattern); pat.ToUpper(); for (int i=0; iName(); trigger_name.ToUpper(); if (strstr(trigger_name,pat) != 0) { List->Add((TObject*)t); } } } } //_____________________________________________________________________________ void TStnTriggerTable::Delete(Option_t* Opt) { for (int i=0; i<3; i++) { fListOfTriggers[i]->Delete(); } } //_____________________________________________________________________________ void TStnTriggerTable::Print(Option_t* Opt) const { printf(" **** trigger table %s ",fName.Data()); printf(" N(L1 triggers) = %3i ,",fListOfTriggers[0]->GetEntries()); printf(" N(L2 triggers) = %3i ,",fListOfTriggers[1]->GetEntries()); printf(" N(L3 triggers) = %3i \n",fListOfTriggers[2]->GetEntries()); int banner_printed; for (int lev=0; lev<3; lev++) { int nt = fListOfTriggers[lev]->GetSize(); banner_printed = 0; for (int i=0; iPrint("banner"); banner_printed = 1; } trig->Print("data"); } } } }