#ifndef _TRIGUTIL_H_ #define _TRIGUTIL_H_ /* ---- Delphes ---- A Fast Simulator for general purpose LHC detector S. Ovyn ~~~~ severine.ovyn@uclouvain.be Center for Particle Physics and Phenomenology (CP3) Universite Catholique de Louvain (UCL) Louvain-la-Neuve, Belgium */ #include #include "TClonesArray.h" #include "BlockClasses.h" #include "Utilities/ExRootAnalysis/interface/TSimpleArray.h" #include "Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h" using namespace std; class TriggerBit { public: TriggerBit(){}; TriggerBit(const TriggerBit& tb); TriggerBit& operator=(const TriggerBit& tb); ~TriggerBit(); void GetTrigCondition(const string& trigger_algorithm); void PrintTrigCondition(const string& LogName, const int i); bool GetResult(TClonesArray *branchElecTrig, TClonesArray *branchMuonTrig, TClonesArray *branchJetTrig, TClonesArray *branchTauJetTrig, TClonesArray *branchPhotonTrig, TClonesArray *branchETmisTrig); vector GetCuts(const vector &Sequences); TSimpleArray SubArrayBjets(TClonesArray *JET); TSimpleArray SubArrayIElec(TClonesArray *ELEC); TSimpleArray SubArrayIMuon(TClonesArray *MUON); private: vector ElecValues; vector IElecValues; vector MuonValues; vector IMuonValues; vector JetValues; vector BjetValues; vector TauJetValues; vector EtmisValues; vector GammaValues; bool Result; }; class TriggerTable { public: TriggerTable(); ~TriggerTable() { list_of_trigger_bits.clear();}; TriggerTable& operator=(TriggerTable& tt); TriggerTable(const TriggerTable& tt); void TriggerCardReader(const string& filename="data/trigger.dat"); void PrintTriggerTable(const string& LogName); bool GetGlobalResult(TClonesArray *branchElecTrig, TClonesArray *branchMuonTrig, TClonesArray *branchJetTrig, TClonesArray *branchTauJetTrig, TClonesArray *branchPhotonTrig, TClonesArray *branchETmisTrig,ExRootTreeBranch *branchTrigger); void WriteResult(); private: vector list_of_trigger_bits; bool has_been_evaluated; bool GlobalResult; }; #endif