#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 "TLorentzVector.h" #include "TClonesArray.h" #include "Utilities/ExRootAnalysis/interface/BlockClasses.h" #include "Utilities/ExRootAnalysis/interface/TSimpleArray.h" #include "Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h" using namespace std; class TriggerBit { public: TriggerBit(); ~TriggerBit() {}; void GetTrigCondition(const std::string& trigger_algorithm); void PrintTrigCondition(string LogName,int i); bool GetResult(TClonesArray *branchElecTrig, TClonesArray *branchMuonTrig, TClonesArray *branchJetTrig, TClonesArray *branchTauJetTrig, TClonesArray *branchPhotonTrig, TClonesArray *branchETmisTrig); private: vector GetCuts(const vector &Sequences); vector ElecValues; vector MuonValues; vector JetValues; vector TauJetValues; vector EtmisValues; vector GammaValues; bool Result; }; class TriggerTable { public: TriggerTable(); ~TriggerTable() {}; void TriggerCardReader(const string filename="data/trigger.dat"); // avant, ça s'appellait TriggerReader // appelle la méthode TriggerBit::GetTrigCondition void PrintTriggerTable(string LogName); // fait un cout des triggers bits, c'est toujours pratique // appelle la méthode TriggerBit::PriniTrigCondition bool GetGlobalResult(TClonesArray *branchElecTrig, TClonesArray *branchMuonTrig, TClonesArray *branchJetTrig, TClonesArray *branchTauJetTrig, TClonesArray *branchPhotonTrig, TClonesArray *branchETmisTrig,ExRootTreeBranch *branchTrigger); void WriteResult(); // sauve dans le TTree // ce nom est stupide, faut le changer int event_i; private: bool Evaluate( int event_i ); // boucle sur list_of_trigger_bits, comme on a dit // appelle la methode TriggerBit::Evaluate ou TriggerBit::GetResult (à voir) // renvoie la réponse globale du trigger // à la fin, mettre has_been_evaluated = true; // voir le NB ci-dessous vector list_of_trigger_bits; bool has_been_evaluated; bool GlobalResult; }; #endif