ATLAS Offline Software
Loading...
Searching...
No Matches
TrigAnalysisTest::Run1BStoxAODTrigger Class Reference

#include <Run1BStoxAODTrigger.h>

Inheritance diagram for TrigAnalysisTest::Run1BStoxAODTrigger:
Collaboration diagram for TrigAnalysisTest::Run1BStoxAODTrigger:

Public Member Functions

 Run1BStoxAODTrigger ()
 Run1BStoxAODTrigger (const Run1BStoxAODTrigger &)=delete
Run1BStoxAODTriggeroperator= (const Run1BStoxAODTrigger &)=delete
void processEvent (Trig::TrigDecisionTool &trigDecTool)
int finalize ()
void setEventStore (EventPtr_t store)
EventPtr_t eventStore ()

Private Attributes

unsigned int m_passed_l1
unsigned int m_passed_hlt
std::map< std::string, int > m_trigger_counts
TFile * m_histFile
TH1 * m_all_triggers
TH1 * m_HLT_EFBMuMuXFex_eta
TH1 * m_HLT_EFBMuMuXFex_mass
TH1 * m_HLT_TrigTauJet
TH1 * m_HLT_MuonEF_NSegments
TH1 * m_HLT_MuonEF_pt
TH1 * m_HLT_TrigEFMissingET
TH1 * m_HLT_TrigEFMissingET_FEB
TH1 * m_HLT_TrigEFMissingET_topocl
EventPtr_t m_eventStore = nullptr

Detailed Description

Definition at line 20 of file Run1BStoxAODTrigger.h.

Constructor & Destructor Documentation

◆ Run1BStoxAODTrigger() [1/2]

TrigAnalysisTest::Run1BStoxAODTrigger::Run1BStoxAODTrigger ( )

Definition at line 40 of file Run1BStoxAODTrigger.cxx.

41 : m_passed_l1(0),
43 //m_first_call(true)
44 {
45 m_histFile = new TFile("hist.root", "RECREATE");
46 if (m_histFile == nullptr || !m_histFile->IsOpen()) {
47 throw std::runtime_error("unable to open file for writing, exiting");
48 }
49
50 // bphys
51 m_HLT_EFBMuMuXFex_eta = new TH1F( "HLT_EFBMuMuXFex_eta", "HLT_EFBMuMuXFex;#eta;No. of TrigEFBphys objects", 100, -4., 4. );
52 m_HLT_EFBMuMuXFex_mass = new TH1F( "HLT_EFBMuMuXFex_mass", "HLT_EFBMuMuXFex;#M (GeV);No. of TrigEFBphys objects", 100, 0., 20. );
53 // taus
54 m_HLT_TrigTauJet = new TH1F( "HLT_TrigTauJet", "HLT_TrigTauJet;p_{T} (GeV);Jets", 100, 0., 500. );
55 // muons
56 m_HLT_MuonEF_NSegments = new TH1F( "HLT_MuonEF_NSegments", "HLT_MuonEF_NSegments;NSegments;Muons", 100, 0., 100.);
57 m_HLT_MuonEF_pt = new TH1F( "HLT_MuonEF_pt", "HLT_MuonEF_pt;p_{T} (GeV);Muons", 100, 0., 100.);
58 // MET
59 m_HLT_TrigEFMissingET = new TH1F( "HLT_TrigEFMissingET", "HLT_TrigEFMissingET;E_{T} (GeV);Entries", 100, 0., 200.);
60 m_HLT_TrigEFMissingET_FEB = new TH1F( "HLT_TrigEFMissingET_FEB", "HLT_TrigEFMissingET_FEB;E_{T} (GeV);Entries", 100, 0., 200. );
61 m_HLT_TrigEFMissingET_topocl = new TH1F( "HLT_TrigEFMissingET_topocl", "HLT_TrigEFMissingET_topocl;E_{T} (GeV);Entries", 100, 0., 200. );
62 // all trigger bits. The binning is changed in finalize() when the total number of triggers is known
63 m_all_triggers = new TH1F("all_triggers", ";Trigger;No. of events", 1, 0., 1.);
64 }
TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)

◆ Run1BStoxAODTrigger() [2/2]

TrigAnalysisTest::Run1BStoxAODTrigger::Run1BStoxAODTrigger ( const Run1BStoxAODTrigger & )
delete

Member Function Documentation

◆ eventStore()

EventPtr_t TrigAnalysisTest::ITest::eventStore ( )
inlineinherited

Definition at line 29 of file ITest.h.

29{ return m_eventStore; }
EventPtr_t m_eventStore
Definition ITest.h:31

◆ finalize()

int TrigAnalysisTest::Run1BStoxAODTrigger::finalize ( )
virtual

Implements TrigAnalysisTest::ITest.

Definition at line 166 of file Run1BStoxAODTrigger.cxx.

167 {
168 //athena doesn't store m_all_triggers without this
169 m_histFile->cd();
170
171 // Dump for debugging.
172 cout << "L1 triggers passed: " << m_passed_l1 << endl;
173 cout << "EF triggers passed: " << m_passed_hlt << endl;
174 cout << "START SUMMARY: Run1BStoxAODTrigger" << endl;
175 cout << "creating histogram with one bin per trigger, n of bins is " << m_trigger_counts.size() << endl;
176 // Set the correct binning
177 m_all_triggers->SetBins( m_trigger_counts.size(), 0.0, m_trigger_counts.size() );
178 cout << "histogram created" << endl;
179 int trigger_counter = 0;
180 for (auto it = m_trigger_counts.begin(); it!=m_trigger_counts.end(); it++) {
181 cout << (*it).first << "\t" << (*it).second <<endl;
182 trigger_counter++;
183 m_all_triggers->GetXaxis()->SetBinLabel( trigger_counter, ((*it).first).c_str() );
184 m_all_triggers->SetBinContent( trigger_counter, (*it).second );
185 }
186 cout << "END SUMMARY : Run1BStoxAODTrigger" << endl;
187
188 m_histFile->Write();
189 m_histFile->Close();
190
191 // our aim here is to test the conversion of variables
192 return 0;
193 }
std::map< std::string, int > m_trigger_counts

◆ operator=()

Run1BStoxAODTrigger & TrigAnalysisTest::Run1BStoxAODTrigger::operator= ( const Run1BStoxAODTrigger & )
delete

◆ processEvent()

void TrigAnalysisTest::Run1BStoxAODTrigger::processEvent ( Trig::TrigDecisionTool & trigDecTool)
virtual

Implements TrigAnalysisTest::ITest.

Definition at line 67 of file Run1BStoxAODTrigger.cxx.

67 {
68
69 // Did we pass a trigger level?
70 if (trigDecTool.isPassed("L1_.*"))
72 if (trigDecTool.isPassed("EF_.*"))
74
75 auto chainGroups = trigDecTool.getChainGroup(".*");
76 for(auto &trig : chainGroups->getListOfTriggers()) {
77 if(!m_trigger_counts.count(trig))
78 m_trigger_counts[trig] = 0;
79 if(trigDecTool.isPassed(trig)) {
80 m_trigger_counts[trig] += 1;
81 cout << "Trigger passed: " << trig << endl;
82 }
83 }
84
85 //
86 //extract trigger containers and fill histograms
87 //
88
89 // bphys
90 // HLT_EFBMuMuXFex
91 const xAOD::TrigBphysContainer* HLT_xAOD__TrigBphysContainer_EFBMuMuXFex = 0;
92 eventStore()->retrieve( HLT_xAOD__TrigBphysContainer_EFBMuMuXFex, "HLT_xAOD__TrigBphysContainer_EFBMuMuXFex" ).ignore();
93 cout << "size of HLT_xAOD__TrigBphysContainer_EFBMuMuXFex is " << HLT_xAOD__TrigBphysContainer_EFBMuMuXFex->size() << endl;
95 for(TrigBphys_iter = HLT_xAOD__TrigBphysContainer_EFBMuMuXFex->begin(); TrigBphys_iter != HLT_xAOD__TrigBphysContainer_EFBMuMuXFex->end(); ++TrigBphys_iter) {
96 cout << "eta, mass = "<< (*TrigBphys_iter)->eta() << ", "<< (*TrigBphys_iter)->mass() << endl;
97 m_HLT_EFBMuMuXFex_eta->Fill( (*TrigBphys_iter)->eta() );
98 m_HLT_EFBMuMuXFex_mass->Fill( (*TrigBphys_iter)->mass() );
99 }
100
101 // taus
102 // HLT_TrigTauJet
103 const xAOD::JetContainer* HLT_xAOD__JetContainer_TrigTauJet = 0;
104 eventStore()->retrieve( HLT_xAOD__JetContainer_TrigTauJet, "HLT_xAOD__JetContainer_TrigTauJet" ).ignore();//weird name
105 cout << "HLT_xAOD__JetContainer_TrigTauJet successfully retrieved - size is " << HLT_xAOD__JetContainer_TrigTauJet->size() << " jets" << endl;
107 for(Jet_iter = HLT_xAOD__JetContainer_TrigTauJet->begin(); Jet_iter != HLT_xAOD__JetContainer_TrigTauJet->end(); ++Jet_iter) {
108 cout << "tau jet eta, pt: " << (*Jet_iter)->eta() << ", " << (*Jet_iter)->pt() << endl;
109 m_HLT_TrigTauJet->Fill( (*Jet_iter)->pt() / 1000. );
110 }
111
112
113 // muons
114 // HLT_MuonEFInfo
115 const xAOD::MuonContainer* HLT_xAOD__MuonContainer_MuonEFInfo = 0;
116 eventStore()->retrieve( HLT_xAOD__MuonContainer_MuonEFInfo, "HLT_xAOD__MuonContainer_MuonEFInfo").ignore();
117 cout << "size of HLT_xAOD__MuonContainer_MuonEFInfo is " << HLT_xAOD__MuonContainer_MuonEFInfo->size() << endl;
119 for(Muon_iter = HLT_xAOD__MuonContainer_MuonEFInfo->begin(); Muon_iter!= HLT_xAOD__MuonContainer_MuonEFInfo->end(); ++Muon_iter) {
120 cout << "muon n segments, pt: " << (*Muon_iter)->nMuonSegments() << ", " << (*Muon_iter)->pt() << endl;
121 m_HLT_MuonEF_NSegments->Fill( float((*Muon_iter)->nMuonSegments()) );
122 m_HLT_MuonEF_pt->Fill( (*Muon_iter)->pt() / 1000. );
123 }
124
125
126 // MET
127 // HLT_xAOD__TrigMissingETContainer_TrigEFMissingET
128 const xAOD::TrigMissingETContainer* HLT_xAOD__TrigMissingETContainer_TrigEFMissingET = 0;
129 eventStore()->retrieve( HLT_xAOD__TrigMissingETContainer_TrigEFMissingET, "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET" ).ignore();
131 cout << "Size of TrigMissingETContainer is " << HLT_xAOD__TrigMissingETContainer_TrigEFMissingET->size() << endl;
132 for(TrigMissingET_iter = HLT_xAOD__TrigMissingETContainer_TrigEFMissingET->begin(); TrigMissingET_iter != HLT_xAOD__TrigMissingETContainer_TrigEFMissingET->end(); ++TrigMissingET_iter) {
133 Double_t ex = (*TrigMissingET_iter)->ex();
134 Double_t ey = (*TrigMissingET_iter)->ey();
135 Double_t et = TMath::Sqrt(ex*ex + ey*ey);
136 cout << " missing et = " << et << endl;
137 m_HLT_TrigEFMissingET->Fill( et / 1000. );
138 }
139 // HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_FEB
140 const xAOD::TrigMissingETContainer* HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_FEB = 0;
141 eventStore()->retrieve( HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_FEB, "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_FEB" ).ignore();
142 cout << "Size of TrigMissingETContainer is " << HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_FEB->size() << endl;
143 for(TrigMissingET_iter = HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_FEB->begin(); TrigMissingET_iter != HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_FEB->end(); ++TrigMissingET_iter) {
144 Double_t ex = (*TrigMissingET_iter)->ex();
145 Double_t ey = (*TrigMissingET_iter)->ey();
146 Double_t et = TMath::Sqrt(ex*ex + ey*ey);
147 cout << " missing et = " << et << endl;
148 m_HLT_TrigEFMissingET_FEB->Fill( et / 1000. );
149 }
150 // HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl
151 const xAOD::TrigMissingETContainer* HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl = 0;
152 eventStore()->retrieve( HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl, "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl" ).ignore();
153 cout << "Size of TrigMissingETContainer is " << HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl->size() << endl;
154 for(TrigMissingET_iter = HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl->begin(); TrigMissingET_iter != HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl->end(); ++TrigMissingET_iter) {
155 Double_t ex = (*TrigMissingET_iter)->ex();
156 Double_t ey = (*TrigMissingET_iter)->ey();
157 Double_t et = TMath::Sqrt(ex*ex + ey*ey);
158 cout << " missing et = " << et << endl;
159 m_HLT_TrigEFMissingET_topocl->Fill( et / 1000. );
160 }
161
162 cout << " --- Event processing done --- \n" << endl;
163 }
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
size_type size() const noexcept
Returns the number of elements in the collection.
StatusCode retrieve(const T *&ptr) const
Retrieve the default object into a const T*.
EventPtr_t eventStore()
Definition ITest.h:29
const Trig::ChainGroup * getChainGroup(const std::vector< std::string > &patterns, TrigDefs::Group props=TrigDefs::Group::Default) const
Create/get chain group (.
virtual bool isPassed(const std::string &chain, unsigned int condition) const
true if given chain passed
TrigMissingETContainer_v1 TrigMissingETContainer
DataVector of TrigMissingET - the current version.
JetContainer_v1 JetContainer
Definition of the current "jet container version".
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".
TrigBphysContainer_v1 TrigBphysContainer

◆ setEventStore()

void TrigAnalysisTest::ITest::setEventStore ( EventPtr_t store)
inlineinherited

Definition at line 28 of file ITest.h.

TestStore store
Definition TestStore.cxx:23

Member Data Documentation

◆ m_all_triggers

TH1* TrigAnalysisTest::Run1BStoxAODTrigger::m_all_triggers
private

Definition at line 38 of file Run1BStoxAODTrigger.h.

◆ m_eventStore

EventPtr_t TrigAnalysisTest::ITest::m_eventStore = nullptr
privateinherited

Definition at line 31 of file ITest.h.

◆ m_histFile

TFile* TrigAnalysisTest::Run1BStoxAODTrigger::m_histFile
private

Definition at line 35 of file Run1BStoxAODTrigger.h.

◆ m_HLT_EFBMuMuXFex_eta

TH1* TrigAnalysisTest::Run1BStoxAODTrigger::m_HLT_EFBMuMuXFex_eta
private

Definition at line 40 of file Run1BStoxAODTrigger.h.

◆ m_HLT_EFBMuMuXFex_mass

TH1* TrigAnalysisTest::Run1BStoxAODTrigger::m_HLT_EFBMuMuXFex_mass
private

Definition at line 41 of file Run1BStoxAODTrigger.h.

◆ m_HLT_MuonEF_NSegments

TH1* TrigAnalysisTest::Run1BStoxAODTrigger::m_HLT_MuonEF_NSegments
private

Definition at line 45 of file Run1BStoxAODTrigger.h.

◆ m_HLT_MuonEF_pt

TH1* TrigAnalysisTest::Run1BStoxAODTrigger::m_HLT_MuonEF_pt
private

Definition at line 46 of file Run1BStoxAODTrigger.h.

◆ m_HLT_TrigEFMissingET

TH1* TrigAnalysisTest::Run1BStoxAODTrigger::m_HLT_TrigEFMissingET
private

Definition at line 48 of file Run1BStoxAODTrigger.h.

◆ m_HLT_TrigEFMissingET_FEB

TH1* TrigAnalysisTest::Run1BStoxAODTrigger::m_HLT_TrigEFMissingET_FEB
private

Definition at line 49 of file Run1BStoxAODTrigger.h.

◆ m_HLT_TrigEFMissingET_topocl

TH1* TrigAnalysisTest::Run1BStoxAODTrigger::m_HLT_TrigEFMissingET_topocl
private

Definition at line 50 of file Run1BStoxAODTrigger.h.

◆ m_HLT_TrigTauJet

TH1* TrigAnalysisTest::Run1BStoxAODTrigger::m_HLT_TrigTauJet
private

Definition at line 43 of file Run1BStoxAODTrigger.h.

◆ m_passed_hlt

unsigned int TrigAnalysisTest::Run1BStoxAODTrigger::m_passed_hlt
private

Definition at line 31 of file Run1BStoxAODTrigger.h.

◆ m_passed_l1

unsigned int TrigAnalysisTest::Run1BStoxAODTrigger::m_passed_l1
private

Definition at line 30 of file Run1BStoxAODTrigger.h.

◆ m_trigger_counts

std::map<std::string,int> TrigAnalysisTest::Run1BStoxAODTrigger::m_trigger_counts
private

Definition at line 33 of file Run1BStoxAODTrigger.h.


The documentation for this class was generated from the following files: