ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigAnalysis
TrigInDetAnalysisExample
TrigInDetAnalysisExample
AnalysisConfig_Ntuple.h
Go to the documentation of this file.
1
/* emacs: this is -*- c++ -*- */
10
11
12
#ifndef TrigInDetAnalysisExample_AnalysisConfig_Ntuple_H
13
#define TrigInDetAnalysisExample_AnalysisConfig_Ntuple_H
14
15
#include "
TrigInDetAnalysis/TIDAEvent.h
"
16
#include "
TrigInDetAnalysis/TIDAVertex.h
"
17
#include "
TrigInDetAnalysisUtils/T_AnalysisConfig.h
"
18
19
#include "
TrigInDetAnalysisExample/ChainString.h
"
20
21
#include "
xAODTracking/TrackParticle.h
"
22
#include "
xAODTracking/TrackParticleContainer.h
"
23
24
// #include "AthenaMonitoring/AthMonitorAlgorithm.h"
25
#include "
AthenaBaseComps/AthReentrantAlgorithm.h
"
26
27
#include "TTree.h"
28
#include "TFile.h"
29
30
#define endmsg endmsg
31
32
class
AnalysisConfig_Ntuple
:
public
T_AnalysisConfig
<AthReentrantAlgorithm> {
33
34
public
:
35
36
// Full constructor: test/reference/selection
37
// - analysisInstanceName: the name of the analysis chain being created
38
// - xxxChainName: the name of the chain to be used as test/reference/selection; must be "StoreGate" in case of direct access to SG containers
39
// - xxxType: the type of tracks to be retrieved from the test/reference/selection chain or container
40
// - xxxKey: the key for tracks to be retrieved from the test/reference/selection chain or container
41
// - all standard operations are performed in loops over 0=test 1=reference 2=selection
42
43
AnalysisConfig_Ntuple
(
const
std::vector<std::string>& chainNames,
const
std::string&
outputFileName
=
"TrkNtuple.root"
,
44
double
tauEtCutOffline=0.0,
int
TruthPdgId = 0,
bool
keepAllEvents
=
false
,
int
parentTruthPdgId = 0) :
45
T_AnalysisConfig
<
AthReentrantAlgorithm
>(
"Ntple"
,
46
""
,
""
,
""
,
47
""
,
""
,
""
,
48
""
,
""
,
""
,
49
0, 0, 0,
50
0,
51
0 ),
52
m_useBeamCondSvc
(false),
53
m_event
(0),
54
m_File
(0),
55
m_Tree
(0),
56
m_Dir
(0),
57
m_doOffline
(false),
58
m_doVertices
(false),
59
m_doMuons
(false),
60
m_doMuonsSP
(false),
61
m_muonType
(),
62
m_muonIsLRT
(),
63
m_electronType
(),
64
m_rawElectrons
(),
65
m_electronIsLRT
(),
66
m_tauType
(),
67
m_tauProngs
(),
68
m_vertexType
(),
69
m_doBjets
(false),
70
m_hasTruthMap
(false),
71
m_tauEtCutOffline
(tauEtCutOffline),
72
m_TruthPdgId
(TruthPdgId),
73
m_finalised
(true),
74
m_printInfo
(true),
75
m_ptmin
(0),
76
m_parentTruthPdgId
(parentTruthPdgId)
77
{
80
81
this->
keepAllEvents
(
keepAllEvents
);
82
83
for
(
unsigned
i=0 ; i<chainNames.size() ; i++ ) {
84
85
if
( chainNames[i].
empty
() )
continue
;
86
87
ChainString
chain(chainNames[i]);
88
89
std::string cs = chain.head();
90
91
if
( cs==
"Offline"
)
m_doOffline
=
true
;
92
else
if
( cs==
"Truth"
)
m_mcTruth
=
true
;
93
else
if
( cs==
"Vertex"
) {
94
m_vertexType
.push_back(chain.tail());
95
m_doVertices
=
true
;
96
}
97
else
if
( cs==
"MuonsSP"
)
m_doMuonsSP
=
true
;
98
else
if
( cs==
"Muons"
){
99
m_muonType
.push_back(chain.tail());
100
if
(chain.roi() ==
"LRT"
)
m_muonIsLRT
.push_back(
true
);
101
else
m_muonIsLRT
.push_back(
false
);
102
}
103
else
if
( cs==
"Electrons"
) {
104
m_electronType
.push_back(chain.tail());
105
m_rawElectrons
.push_back(chain.roi());
106
107
if
(chain.roi() ==
"LRT"
)
m_electronIsLRT
.push_back(
true
);
// more abuse
108
else
m_electronIsLRT
.push_back(
false
);
109
}
110
else
if
( cs==
"Taus"
) {
111
m_tauType
.push_back(chain.tail());
112
m_tauProngs
.push_back(chain.roi());
113
}
114
else
if
( cs==
"Bjets"
)
m_doBjets
=
true
;
115
else
{
116
117
if
( cs!=
""
&& cs.find(
"HLT"
)==std::string::npos ) {
119
// if ( m_provider ) m_provider->msg(MSG::WARNING) << "Unknown chain type: " << cs << endmsg;
120
// else std::cout << "Unknown chain type: " << cs << std::endl;
121
continue
;
122
}
123
124
m_chainNames
.push_back( chain );
125
126
}
127
}
128
129
m_event
=
new
TIDA::Event
();
130
m_outputFileName
=
outputFileName
;
131
132
}
133
134
// non-copyable
135
AnalysisConfig_Ntuple
(
const
AnalysisConfig_Ntuple
& );
136
AnalysisConfig_Ntuple
&
operator=
(
const
AnalysisConfig_Ntuple
& );
137
138
virtual
~AnalysisConfig_Ntuple
() {
141
if
( !
m_finalised
)
finalize
();
142
delete
m_event
;
143
}
144
145
void
set_ptmin
(
double
d=0 ) {
m_ptmin
=d; }
146
147
size_t
get_jets
(
Trig::FeatureContainer::combination_const_iterator
citr,
148
std::vector<TrackTrigObject>& objects,
const
std::string& key=
""
);
149
150
protected
:
151
152
virtual
void
loop
();
153
154
virtual
void
book
();
155
156
virtual
void
finalize
();
157
158
bool
m_useBeamCondSvc
;
159
160
TIDA::Event
*
m_event
;
161
162
TFile*
m_File
;
163
TTree*
m_Tree
;
164
TDirectory*
m_Dir
;
165
166
std::vector<ChainString>
m_chainNames
;
167
168
bool
m_doOffline
;
169
bool
m_doVertices
;
170
bool
m_doMuons
;
171
bool
m_doMuonsSP
;
172
173
std::vector<std::string>
m_muonType
;
174
std::vector<bool>
m_muonIsLRT
;
175
176
std::vector<std::string>
m_electronType
;
177
std::vector<std::string>
m_rawElectrons
;
178
std::vector<bool>
m_electronIsLRT
;
179
180
std::vector<std::string>
m_tauType
;
181
std::vector<std::string>
m_tauProngs
;
182
183
std::vector<std::string>
m_vertexType
;
184
185
bool
m_doBjets
;
186
bool
m_hasTruthMap
;
187
bool
m_tauEtCutOffline
;
188
189
std::string
m_outputFileName
;
190
191
int
m_TruthPdgId
;
192
193
bool
m_finalised
;
194
195
// bool m_keepAllEvents; // nw in base class
196
197
bool
m_printInfo
;
198
199
double
m_ptmin
;
200
201
int
m_parentTruthPdgId
;
202
203
};
204
205
206
207
#endif
// TrigInDetAnalysisExample_AnalysisConfig_Ntuple_H
208
AthReentrantAlgorithm.h
ChainString.h
TrackParticleContainer.h
TrackParticle.h
outputFileName
static const std::string outputFileName
Definition
ProduceDummyStripCabling.cxx:17
TIDAEvent.h
Basic event class to contain a vector of chains for trigger analysis.
TIDAVertex.h
T_AnalysisConfig.h
empty
static const Attributes_t empty
Definition
XmlStreamer.cxx:16
AnalysisConfig_Ntuple::m_doVertices
bool m_doVertices
Definition
AnalysisConfig_Ntuple.h:169
AnalysisConfig_Ntuple::m_tauType
std::vector< std::string > m_tauType
Definition
AnalysisConfig_Ntuple.h:180
AnalysisConfig_Ntuple::m_useBeamCondSvc
bool m_useBeamCondSvc
Definition
AnalysisConfig_Ntuple.h:158
AnalysisConfig_Ntuple::m_outputFileName
std::string m_outputFileName
Definition
AnalysisConfig_Ntuple.h:189
AnalysisConfig_Ntuple::m_muonType
std::vector< std::string > m_muonType
Definition
AnalysisConfig_Ntuple.h:173
AnalysisConfig_Ntuple::m_ptmin
double m_ptmin
Definition
AnalysisConfig_Ntuple.h:199
AnalysisConfig_Ntuple::get_jets
size_t get_jets(Trig::FeatureContainer::combination_const_iterator citr, std::vector< TrackTrigObject > &objects, const std::string &key="")
retrieve the jets from the Roi
Definition
AnalysisConfig_Ntuple.cxx:107
AnalysisConfig_Ntuple::m_hasTruthMap
bool m_hasTruthMap
Definition
AnalysisConfig_Ntuple.h:186
AnalysisConfig_Ntuple::m_tauProngs
std::vector< std::string > m_tauProngs
Definition
AnalysisConfig_Ntuple.h:181
AnalysisConfig_Ntuple::m_event
TIDA::Event * m_event
Definition
AnalysisConfig_Ntuple.h:160
AnalysisConfig_Ntuple::m_chainNames
std::vector< ChainString > m_chainNames
Definition
AnalysisConfig_Ntuple.h:166
AnalysisConfig_Ntuple::m_doBjets
bool m_doBjets
Definition
AnalysisConfig_Ntuple.h:185
AnalysisConfig_Ntuple::~AnalysisConfig_Ntuple
virtual ~AnalysisConfig_Ntuple()
Definition
AnalysisConfig_Ntuple.h:138
AnalysisConfig_Ntuple::m_electronType
std::vector< std::string > m_electronType
Definition
AnalysisConfig_Ntuple.h:176
AnalysisConfig_Ntuple::finalize
virtual void finalize()
finalise the analysis - take ratios for efficiencies etc
Definition
AnalysisConfig_Ntuple.cxx:252
AnalysisConfig_Ntuple::m_rawElectrons
std::vector< std::string > m_rawElectrons
Definition
AnalysisConfig_Ntuple.h:177
AnalysisConfig_Ntuple::m_Tree
TTree * m_Tree
Definition
AnalysisConfig_Ntuple.h:163
AnalysisConfig_Ntuple::m_TruthPdgId
int m_TruthPdgId
Definition
AnalysisConfig_Ntuple.h:191
AnalysisConfig_Ntuple::m_tauEtCutOffline
bool m_tauEtCutOffline
Definition
AnalysisConfig_Ntuple.h:187
AnalysisConfig_Ntuple::loop
virtual void loop()
Definition
AnalysisConfig_Ntuple.cxx:147
AnalysisConfig_Ntuple::m_electronIsLRT
std::vector< bool > m_electronIsLRT
Definition
AnalysisConfig_Ntuple.h:178
AnalysisConfig_Ntuple::AnalysisConfig_Ntuple
AnalysisConfig_Ntuple(const AnalysisConfig_Ntuple &)
AnalysisConfig_Ntuple::operator=
AnalysisConfig_Ntuple & operator=(const AnalysisConfig_Ntuple &)
AnalysisConfig_Ntuple::m_finalised
bool m_finalised
Definition
AnalysisConfig_Ntuple.h:193
AnalysisConfig_Ntuple::set_ptmin
void set_ptmin(double d=0)
Definition
AnalysisConfig_Ntuple.h:145
AnalysisConfig_Ntuple::m_printInfo
bool m_printInfo
Definition
AnalysisConfig_Ntuple.h:197
AnalysisConfig_Ntuple::book
virtual void book()
setup the analysis the analysis, retrieve the tools etc
Definition
AnalysisConfig_Ntuple.cxx:161
AnalysisConfig_Ntuple::m_muonIsLRT
std::vector< bool > m_muonIsLRT
Definition
AnalysisConfig_Ntuple.h:174
AnalysisConfig_Ntuple::AnalysisConfig_Ntuple
AnalysisConfig_Ntuple(const std::vector< std::string > &chainNames, const std::string &outputFileName="TrkNtuple.root", double tauEtCutOffline=0.0, int TruthPdgId=0, bool keepAllEvents=false, int parentTruthPdgId=0)
Definition
AnalysisConfig_Ntuple.h:43
AnalysisConfig_Ntuple::m_doOffline
bool m_doOffline
Definition
AnalysisConfig_Ntuple.h:168
AnalysisConfig_Ntuple::m_doMuonsSP
bool m_doMuonsSP
Definition
AnalysisConfig_Ntuple.h:171
AnalysisConfig_Ntuple::m_parentTruthPdgId
int m_parentTruthPdgId
Definition
AnalysisConfig_Ntuple.h:201
AnalysisConfig_Ntuple::m_doMuons
bool m_doMuons
Definition
AnalysisConfig_Ntuple.h:170
AnalysisConfig_Ntuple::m_vertexType
std::vector< std::string > m_vertexType
Definition
AnalysisConfig_Ntuple.h:183
AnalysisConfig_Ntuple::m_File
TFile * m_File
Definition
AnalysisConfig_Ntuple.h:162
AnalysisConfig_Ntuple::m_Dir
TDirectory * m_Dir
Definition
AnalysisConfig_Ntuple.h:164
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition
AthReentrantAlgorithm.h:74
ChainString
Definition
ChainString.h:23
TIDA::Event
Definition
TIDAEvent.h:32
T_AnalysisConfig< AthReentrantAlgorithm >::m_mcTruth
bool m_mcTruth
Definition
T_AnalysisConfig.h:963
T_AnalysisConfig< AthReentrantAlgorithm >::keepAllEvents
void keepAllEvents(bool b)
Definition
T_AnalysisConfig.h:274
T_AnalysisConfig< AthReentrantAlgorithm >::T_AnalysisConfig
T_AnalysisConfig(const std::string &analysisInstanceName, const std::string &testChainName, const std::string &testType, const std::string &testKey, const std::string &referenceChainName, const std::string &referenceType, const std::string &referenceKey, const std::string &selectionChainName, const std::string &selectionType, const std::string &selectionKey, TrackFilter *testFilter, TrackFilter *referenceFilter, TrackFilter *selectionFilter, TrackAssociator *associator, TrackAnalysis *analysis)
Definition
T_AnalysisConfig.h:67
Trig::FeatureContainer::combination_const_iterator
std::vector< Combination >::const_iterator combination_const_iterator
Definition
FeatureContainer.h:45
Generated on
for ATLAS Offline Software by
1.17.0