ATLAS Offline Software
Loading...
Searching...
No Matches
T_AnalysisConfigMT_Tier0< T, A > Class Template Reference

#include <T_AnalysisConfigMT_Tier0.h>

Inheritance diagram for T_AnalysisConfigMT_Tier0< T, A >:
Collaboration diagram for T_AnalysisConfigMT_Tier0< T, A >:

Public Member Functions

 T_AnalysisConfigMT_Tier0 (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, TrackFilter *testFilter, TrackFilter *referenceFilter, TrackAssociator *associator, TrackAnalysis *analysis, TagNProbe *TnP_tool=0)
virtual ~T_AnalysisConfigMT_Tier0 ()
void setRunPurity (bool b)
void setShifter (bool b)
void useBeamCondSvc (bool b)
void containTracks (bool b)
void addTestChain (const std::string &chainName, const std::string &type, const std::string &key)
void addReferenceChain (const std::string &chainName, const std::string &type, const std::string &key)
void addSelectionChain (const std::string &chainName, const std::string &type, const std::string &key)
void addTestFilter (TrackFilter *filter)
void addReferenceFilter (TrackFilter *filter)
void addSelectionFilter (TrackFilter *filter)
virtual void initialize (T *p, ToolHandle< Trig::TrigDecisionTool > *tdt)
virtual void execute ()
const std::string & name () const
const std::string testChains () const
const std::string referenceChains () const
const std::string selectionChains () const
const TrackAnalysisanalysis () const
void setMCTruth (bool b=true)
bool mcTruth () const
void setBeamX (double d)
void setBeamY (double d)
void setBeamZ (double d)
double beamX () const
double beamY () const
double beamZ () const
bool genericFlag () const
void setGenericFlag (bool b)
const std::string & releaseData () const
void keepAllEvents (bool b)
void setUseHighestPT (bool b)
bool getUseHighestPT () const
void setVtxIndex (int i)
int getVtxIndex () const
bool filterOnRoi () const
bool setFilterOnRoi (bool b)
void setRequireDecision (bool b)
bool requireDecision () const

Public Attributes

A_analysis

Protected Member Functions

virtual void loop ()
virtual void book ()
virtual void finalize ()
void set_monTool (ToolHandle< GenericMonitoringTool > *m)
ToolHandle< GenericMonitoringTool > * monTool ()
std::pair< typename Collection::const_iterator, typename Collection::const_iterator > getCollection (const ElementLink< TrigRoiDescriptorCollection > &roi_link, const std::string &key="")
 new MT feature access
bool select (std::vector< TIDA::Vertex > &vertices, xAOD::VertexContainer::const_iterator vtx_start, xAOD::VertexContainer::const_iterator vtx_end)
bool selectTracks (TrigTrackSelector *selector, const ElementLink< TrigRoiDescriptorCollection > &roi_link, const std::string &key="")
StatusCode retrieve (Collection const *&collection, const std::string &key="")
bool selectTracksNotEmpty (TrigTrackSelector *selector, const std::string &key)
std::vector< double > getBeamspot (const std::string &key)
unsigned processElectrons (TrigTrackSelector &selectorRef, std::vector< TrackTrigObject > *elevec=0, const unsigned int selection=0, bool raw_track=false, double ETOffline=0, const std::string &containerName="ElectronAODCollection")
 select offline electrons
unsigned processMuons (TrigTrackSelector &selectorRef, const unsigned int selection=0, double ETOffline=0, const std::string &containerName="StacoMuonCollection")
 select offlinqe muons
unsigned processTaus (TrigTrackSelector &selectorRef, std::vector< TrackTrigObject > *tauvec=0, const unsigned selection=0, int requireNtracks=0, double EtCutOffline=0, const std::string &containerName="TauRecContainer")
 select offline taus

Protected Attributes

bool m_useBeamCondSvc
TIDA::Eventm_event
std::vector< ChainStringm_chainNames
std::vector< A * > m_analyses
std::string m_testType
bool m_doOffline
bool m_doMuons
bool m_doElectrons
bool m_doTaus
bool m_doBjets
bool m_hasTruthMap
bool m_doTauThreeProng
bool m_tauEtCutOffline
std::string m_outputFileName
int m_NRois
 output stats
int m_NRefTracks
int m_NTestTracks
bool m_runPurity
bool m_shifter
double m_pTthreshold
bool m_first
bool m_containTracks
TagNProbem_TnP_tool
TH1F * m_invmass
TH1F * m_invmass_obj
ToolHandle< GenericMonitoringTool > * m_monTool
T * m_provider
ToolHandle< Trig::TrigDecisionTool > * m_tdt
std::string m_analysisInstanceName
std::vector< std::vector< std::string > > m_types
std::vector< std::vector< std::string > > m_keys
std::string m_refChainName
std::string m_refChainKey
std::string m_testChainName
std::string m_testChainKey
std::vector< std::vector< TrackFilter * > > m_filters
TrigTrackSelectorm_selectorRef
TrigTrackSelectorm_selectorTest
TrigTrackSelectorm_selectorSel
TrackAssociatorm_associator
TrackAnalysism_analysis
bool m_mcTruth
double m_beamX
double m_beamY
double m_beamZ
int m_genericFlag
std::string m_releaseData
bool m_keepAllEvents
bool m_useHighestPT
int m_vtxIndex
bool m_filterOnRoi
bool m_requireDecision

Detailed Description

template<typename T, typename A = Analysis_Tier0>
class T_AnalysisConfigMT_Tier0< T, A >

Definition at line 93 of file T_AnalysisConfigMT_Tier0.h.

Constructor & Destructor Documentation

◆ T_AnalysisConfigMT_Tier0()

template<typename T, typename A = Analysis_Tier0>
T_AnalysisConfigMT_Tier0< T, A >::T_AnalysisConfigMT_Tier0 ( 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,
TrackFilter * testFilter,
TrackFilter * referenceFilter,
TrackAssociator * associator,
TrackAnalysis * analysis,
TagNProbe * TnP_tool = 0 )
inline

FIXME: the m_event should not be needed, we need to make this a local variable

Definition at line 103 of file T_AnalysisConfigMT_Tier0.h.

109 :
115 analysis),
116 _analysis(0),
117 m_useBeamCondSvc(false),
118 m_doOffline(true),
119 m_doMuons(false),
120 m_doElectrons(false),
121 m_doTaus(false),
122 m_doBjets(false),
123 m_hasTruthMap(false),
124 m_doTauThreeProng(false),
125 m_tauEtCutOffline(false),
126 m_NRois(0),
127 m_NRefTracks(0),
128 m_NTestTracks(0),
129 m_runPurity(false),
130 m_shifter(false),
131 m_pTthreshold(0),
132 m_first(true),
133 m_containTracks(false),
135 m_invmass(0),
136 m_invmass_obj(0),
137 m_monTool(0)
138 {
140 m_event = new TIDA::Event();
141 m_chainNames.push_back(testChainName);
142
143#if 0
144 ChainString& chain = m_chainNames.back();
145
146 std::cout << "\nT_AnalysisConfigMT_Tier0::name: " << name() << "\t" << this << std::endl;
147 std::cout << "T_AnalysisConfigMT_Tier0::chain specification: " << testChainName << " -> " << chain << "\t" << chain.raw() << std::endl;
148 std::cout << "\tchain: " << chain.head() << std::endl;
149 std::cout << "\tkey: " << chain.tail() << std::endl;
150 std::cout << "\troi: " << chain.roi() << std::endl;
151 std::cout << "\tvtx: " << chain.vtx() << std::endl;
152 std::cout << "\tte: " << chain.element() << std::endl;
153
154 std::cout << "\tpost: " << chain.post() << std::endl;
155 std::cout << "\tpt: " << chain.postvalue("pt") << std::endl;
156
157 std::cout << "\tcontainTracks: " << m_containTracks << std::endl;
158#endif
159
161 }
std::vector< ChainString > m_chainNames
ToolHandle< GenericMonitoringTool > * m_monTool
const TrackAnalysis * analysis() const
const std::string & name() const
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)

◆ ~T_AnalysisConfigMT_Tier0()

template<typename T, typename A = Analysis_Tier0>
virtual T_AnalysisConfigMT_Tier0< T, A >::~T_AnalysisConfigMT_Tier0 ( )
inlinevirtual

Definition at line 163 of file T_AnalysisConfigMT_Tier0.h.

163 {
164 delete m_event;
165 if ( m_TnP_tool != 0 ) delete m_TnP_tool ;
166 }

Member Function Documentation

◆ addReferenceChain()

void T_AnalysisConfig< T >::addReferenceChain ( const std::string & chainName,
const std::string & type,
const std::string & key )
inlineinherited

Definition at line 203 of file T_AnalysisConfig.h.

203 {
204 m_chainNames[1].push_back(chainName); m_types[1].push_back(type); m_keys[1].push_back(key);
205 }
std::vector< std::vector< std::string > > m_chainNames
std::vector< std::vector< std::string > > m_types
std::vector< std::vector< std::string > > m_keys

◆ addReferenceFilter()

void T_AnalysisConfig< T >::addReferenceFilter ( TrackFilter * filter)
inlineinherited

Definition at line 212 of file T_AnalysisConfig.h.

212{ m_filters[1].push_back(filter); }
std::vector< std::vector< TrackFilter * > > m_filters

◆ addSelectionChain()

void T_AnalysisConfig< T >::addSelectionChain ( const std::string & chainName,
const std::string & type,
const std::string & key )
inlineinherited

Definition at line 207 of file T_AnalysisConfig.h.

207 {
208 m_chainNames[2].push_back(chainName); m_types[2].push_back(type); m_keys[2].push_back(key);
209 }

◆ addSelectionFilter()

void T_AnalysisConfig< T >::addSelectionFilter ( TrackFilter * filter)
inlineinherited

Definition at line 213 of file T_AnalysisConfig.h.

213{ m_filters[2].push_back(filter); }

◆ addTestChain()

void T_AnalysisConfig< T >::addTestChain ( const std::string & chainName,
const std::string & type,
const std::string & key )
inlineinherited

Definition at line 199 of file T_AnalysisConfig.h.

199 {
200 m_chainNames[0].push_back(chainName); m_types[0].push_back(type); m_keys[0].push_back(key);
201 }

◆ addTestFilter()

void T_AnalysisConfig< T >::addTestFilter ( TrackFilter * filter)
inlineinherited

Definition at line 211 of file T_AnalysisConfig.h.

211{ m_filters[0].push_back(filter); }

◆ analysis()

const TrackAnalysis * T_AnalysisConfig< T >::analysis ( ) const
inlineinherited

Definition at line 258 of file T_AnalysisConfig.h.

258{return m_analysis;}
TrackAnalysis * m_analysis

◆ beamX()

double T_AnalysisConfig< T >::beamX ( ) const
inlineinherited

Definition at line 266 of file T_AnalysisConfig.h.

266{ return m_beamX; }

◆ beamY()

double T_AnalysisConfig< T >::beamY ( ) const
inlineinherited

Definition at line 267 of file T_AnalysisConfig.h.

267{ return m_beamY; }

◆ beamZ()

double T_AnalysisConfig< T >::beamZ ( ) const
inlineinherited

Definition at line 268 of file T_AnalysisConfig.h.

268{ return m_beamZ; }

◆ book()

template<typename T, typename A = Analysis_Tier0>
virtual void T_AnalysisConfigMT_Tier0< T, A >::book ( )
inlineprotectedvirtual

Reimplemented from T_AnalysisConfig< T >.

Definition at line 1084 of file T_AnalysisConfigMT_Tier0.h.

1084 {
1085
1086 if(m_provider->msg().level() <= MSG::VERBOSE)
1087 m_provider->msg(MSG::VERBOSE) << "AnalysisConfigMT_Tier0::book() " << name() << endmsg;
1088
1089 m_provider->msg(MSG::ERROR) << "AnalysisConfigMT_Tier0::book() should no longer be called: " << name() << endmsg;
1090
1091
1092 }

◆ containTracks()

template<typename T, typename A = Analysis_Tier0>
void T_AnalysisConfigMT_Tier0< T, A >::containTracks ( bool b)
inline

Definition at line 174 of file T_AnalysisConfigMT_Tier0.h.

174{ m_containTracks = b; }

◆ execute()

virtual void T_AnalysisConfig< T >::execute ( )
inlinevirtualinherited

Definition at line 225 of file T_AnalysisConfig.h.

225 {
226 if ( !m_provider ) std::cerr << "ERROR T_AnalysisConfig::execute() called without initialising" << std::endl;
227 loop();
228 }
virtual void loop()=0

◆ filterOnRoi()

bool T_AnalysisConfig< T >::filterOnRoi ( ) const
inlineinherited

Definition at line 284 of file T_AnalysisConfig.h.

◆ finalize()

template<typename T, typename A = Analysis_Tier0>
virtual void T_AnalysisConfigMT_Tier0< T, A >::finalize ( )
inlineprotectedvirtual

Reimplemented from T_AnalysisConfig< T >.

Definition at line 1096 of file T_AnalysisConfigMT_Tier0.h.

1096 {
1097
1098 if(m_provider->msg().level() <= MSG::VERBOSE){
1099 m_provider->msg(MSG::VERBOSE) << "AnalysisConfigMT_Tier0::finalise() " << m_provider->name() << endmsg;
1100 }
1101
1102 m_analysis->finalise();
1103
1104 // deleting instance of TnP_tool and setting pointer to null
1105 if ( m_TnP_tool != 0 ) {
1106 delete m_TnP_tool ;
1107 m_TnP_tool = 0 ;
1108 }
1109
1110 m_provider->msg(MSG::INFO) << m_provider->name() << " " << m_chainNames[0] << " \tNRois processed: " << m_NRois << "\tRef tracks: " << m_NRefTracks << "\tTestTracks: " << m_NTestTracks << endmsg;
1111
1112 if(m_provider->msg().level() <= MSG::VERBOSE) {
1113 m_provider->msg(MSG::VERBOSE) << m_provider->name() << " finalised" << endmsg;
1114 }
1115 }

◆ genericFlag()

bool T_AnalysisConfig< T >::genericFlag ( ) const
inlineinherited

Definition at line 270 of file T_AnalysisConfig.h.

◆ getBeamspot()

std::vector< double > T_AnalysisConfig< T >::getBeamspot ( const std::string & key)
inlineprotectedinherited

Definition at line 634 of file T_AnalysisConfig.h.

634 {
635 const Collection* collection = 0;
637
638 if ( key!="" ) {
639 if ( m_provider->evtStore()->template contains<Collection>( key ) ) {
641 if( sc.isSuccess() && collection ) {
642 m_provider->msg(MSG::DEBUG) << "SG Collection->size() " << collection->size() << " (" << key << ")" << endmsg;
643
646 if ( trackitr!=trackend ) {
647 v.resize(3);
648 v[0] = (*trackitr)->vx();
649 v[1] = (*trackitr)->vy();
650 v[2] = (*trackitr)->vz();
651 return v;
652 } // only need to look at the first track
653 }
654 }
655 }
656 return v;
657 }
StatusCode retrieve(Collection const *&collection, const std::string &key="")

◆ getCollection()

std::pair< typename Collection::const_iterator, typename Collection::const_iterator > T_AnalysisConfig< T >::getCollection ( const ElementLink< TrigRoiDescriptorCollection > & roi_link,
const std::string & key = "" )
inlineprotectedinherited

new MT feature access

will need this printout for debugging the feature access, so leave this commented until it has been properly debugged, then it can be removed

will not use the te name here, but keep it on just the same for the time being, for subsequent development

Definition at line 299 of file T_AnalysisConfig.h.

300 {
301
304 // std::cout << "try " << key << "\t" << m_provider->evtStore()->template transientContains<Collection>(key) << std::endl;
305
310 size_t pos = key_collection.find("/");
311 if ( pos!=std::string::npos ) {
312 key_collection = key.substr( pos+1, key.size()-pos );
313 key_tename = key.substr( 0, pos );
314 }
315
318
320
322 const std::string* keyStr = m_provider->evtStore()->keyToString(roi_link.key(), checkCLID);
323 m_provider->msg(MSG::DEBUG) << "Requesting range over (" << key << ") associated to ROI from " << (keyStr == nullptr ? "UNKNOWN" : *keyStr) << endmsg;
324
325 itrpair = (*m_tdt)->associateToEventView( handle, roi_link );
326
327 return itrpair;
328 }

◆ getUseHighestPT()

bool T_AnalysisConfig< T >::getUseHighestPT ( ) const
inlineinherited

Definition at line 279 of file T_AnalysisConfig.h.

◆ getVtxIndex()

int T_AnalysisConfig< T >::getVtxIndex ( ) const
inlineinherited

Definition at line 282 of file T_AnalysisConfig.h.

◆ initialize()

virtual void T_AnalysisConfig< T >::initialize ( T * p,
ToolHandle< Trig::TrigDecisionTool > * tdt )
inlinevirtualinherited

Definition at line 216 of file T_AnalysisConfig.h.

216 {
217 m_provider = p;
218 m_tdt = tdt;
219 if ( m_tdt==0 ) m_analysis->initialise();
220
221 }
ToolHandle< Trig::TrigDecisionTool > * m_tdt

◆ keepAllEvents()

void T_AnalysisConfig< T >::keepAllEvents ( bool b)
inlineinherited

Definition at line 276 of file T_AnalysisConfig.h.

◆ loop()

template<typename T, typename A = Analysis_Tier0>
virtual void T_AnalysisConfigMT_Tier0< T, A >::loop ( )
inlineprotectedvirtual

handle wildcard chain selection - but only the first time NB: also check all other chains as well - only set up an analysis for configured chains

get chain

get matching chains

replace wildcard with actual matching chains ...

end of first event setup

all this should perhaps be class variables

will need to add a vertex filter at some point probably

now start everything going for this event properly ...

(obviously) get the event info

first check whether the chains have actually run, otherwise there's no point doing anything

for Monte Carlo get the truth particles if requested to do so

get the offline vertices into our structure

fetch offline vertices ...

add the truth particles if needed

now add the vertices

now add the offline tracks and reco objects

AOD

xAOD::TruthParticles

anything else?

selectTracks<TruthParticleContainer>( &selectorTruth, "INav4MomTruthEvent" );

I'm oldschool and prefer the implicit (T*)0 than the implicit (T*)nullptr

now as a check go through the GenEvent collection

found this key

not found any truth collection

count of "events" - or interactions

count of particles

count of "events with some particles"

count of particles in this interaction

hooray! actually found a sensible event

if there were some particles in this interaction ...

need to be careful here, if not requiring truth only should not return

now loop over all relevant chains to get the trigger tracks...

create chains for ntpl

why does this need to be a class variable ???

useful debug information to be kept in for the time being

useful debug information to be kept in

Get chain combinations and loop on them

  • loop made on chain selected as the one steering RoI creation

only use the TDT for extracting collections if this was a trigger analysis for fullscan "offline" type analyses (ie fullscan FTK) do not use this

do we still want the blind chain access for track collections ???

dummy full scan chain

MT Vertex access

new Roi based feature access

new FeatureRequestDescriptor with leg access

count of how many rois processed so far

don't extract any additional rois if a superRoi is requested: In this case, the superRoi would be shared between the different chains

check this is not a spurious TDT match

get the tracks

create analysis chain

get tracks

now get the vertices

retrieve online vertices

"offline" of "roi" type chains

This is nonsense and needs restructuring - why is the truth and offline selection done within this RoI loop? It means the complete offline and truth tracks will be retrieved for every RoI ! really we should have the structure

  • check_a_trigger_chain_has_passed
  • get_offline_or_truth_particles
  • loop_over_rois
    • get_trigger_tracks
    • filter_offline_or_truth_reference
    • match_tracks
    • call_analyis_routine

will leave as it is for the time being

what is this for ???

if we want a purity, we need to swap round which tracks are the reference tracks and which the test tracks

stats book keeping

match test and reference tracks

filter on highest pt track only if required

ignore all tracks belong the specific analysis pt threshold if set

stats book keeping

match test and reference tracks

get vertices for this roi - have to copy to a vector<Vertex*>

Implements T_AnalysisConfig< T >.

Definition at line 195 of file T_AnalysisConfigMT_Tier0.h.

195 {
196
197 bool TnP_flag = (m_TnP_tool != 0) ; // flag for tag and probe analysis
198
199 if( m_provider->msg().level() <= MSG::VERBOSE) {
200 m_provider->msg(MSG::VERBOSE) << "AnalysisConfigMT_Tier0::loop() for " << T_AnalysisConfig<T>::m_analysisInstanceName << endmsg;
201 }
202
203 // get (offline) beam position
204 double xbeam = 0;
205 double ybeam = 0;
206
207 if ( m_first ) {
208
209 m_first = false;
210
211 if ( m_provider->msg().level() <= MSG::VERBOSE ) {
212 m_provider->msg(MSG::VERBOSE) << " using beam position\tx=" << xbeam << "\ty=" << ybeam << endmsg;
213
215
216 for ( unsigned i=0 ; i<configuredChains.size() ; i++ ) {
217 // std::cout << "Configured chain " << configuredChains[i] << std::endl;
218 m_provider->msg(MSG::VERBOSE) << "Chain " << configuredChains[i] << endmsg;
219 }
220 }
221
222 // std::cout << "\tloop() analyse chains " << m_chainNames.size() << std::endl;
223
225
227
231 while ( chainitr!=m_chainNames.end() ) {
232
234 ChainString& chainName = (*chainitr);
235
236 if (m_provider->msg().level() <= MSG::VERBOSE) {
237 m_provider->msg(MSG::VERBOSE) << "process chain " << chainName << endmsg;
238 }
239
240 if ( chainName.head() == "" ) {
241
243
244 chains.push_back( ChainString(selectChain) );
245
246 }
247 else {
248
251
252 for ( unsigned iselected=0 ; iselected<selectChains.size() ; iselected++ ) {
253
255
256#if 0
257 std::cout << "sorting:: chain specification: " << chainName << "\traw:" << chainName.raw() << std::endl;
258 std::cout << "\tchain: " << chainName.head() << std::endl;
259 std::cout << "\tkey: " << chainName.tail() << std::endl;
260 std::cout << "\tind: " << chainName.extra() << std::endl;
261 std::cout << "\troi: " << chainName.roi() << std::endl;
262 std::cout << "\tvtx: " << chainName.vtx() << std::endl;
263 std::cout << "\tte: " << chainName.element() << std::endl;
264#endif
265
268
269 if(m_provider->msg().level() <= MSG::VERBOSE) {
270 m_provider->msg(MSG::VERBOSE) << "Matching chain " << selectChains[iselected] << " (" << chainName.head() << ")" << endmsg;
271 }
272
273 // std::cout<< "\tMatching chain " << sc << " (" << chainName.head() << ")" << std::endl;
274
275 }
276 }
277
278 ++chainitr;
279 }
280
281 // m_chainNames.insert( m_chainNames.end(), chains.begin(), chains.end() );
283
284 if(m_provider->msg().level() <= MSG::VERBOSE) {
285 for ( size_t ic=m_chainNames.size() ; ic-- ; ) m_provider->msg(MSG::VERBOSE) << "Analyse chain " << m_chainNames[ic] << endmsg;
286 }
287
288 }
289
290 // std::cout << "\tloop() event analysis ..." << std::endl;
291
294
297
299 // Filter_Combined filterRef (&filter_offline, &filter_vertex);
300
301 int iRefFilter = 1;
302 int iTestFilter = 0;
303
304 if ( m_runPurity ) {
305 iRefFilter = 0;
306 iTestFilter = 1;
307 }
308
311
312
318
319 if ( xbeam!=0 || ybeam!=0 ) {
320 m_selectorRef->setBeamline( xbeam, ybeam );
321 }
322
324
325 // clear the ntuple TIDA::Event class
326 m_event->clear();
327
329
331
332 unsigned run_number = 0;
333 unsigned long long event_number = 0;
334 unsigned lumi_block = 0;
335 unsigned bunch_crossing_id = 0;
336 unsigned time_stamp = 0;
337 double mu_val = 0;
338
339 // std::cout << "\tloop() get EventInfo" << std::endl;
340
341 if ( this->template retrieve(pEventInfo, "EventInfo").isFailure() ) {
342 m_provider->msg(MSG::WARNING) << "Failed to get EventInfo " << endmsg;
343 } else {
344
345 run_number = pEventInfo->runNumber();
346 event_number = pEventInfo->eventNumber();
347 lumi_block = pEventInfo->lumiBlock();
348 time_stamp = pEventInfo->timeStamp();
350 mu_val = pEventInfo->averageInteractionsPerCrossing();
351 }
352
353 if(m_provider->msg().level() <= MSG::VERBOSE){
354 m_provider->msg(MSG::VERBOSE) << "run " << run_number
355 << "\tevent " << event_number
356 << "\tlb " << lumi_block << endmsg;
357 }
358
359 // m_provider->msg(MSG::INFO) << "run " << run_number
360 // << "\tevent " << event_number
361 // << "\tlb " << lumi_block << endmsg;
362
363 // std::cout << "\trun " << run_number << "\tevent " << event_number << "\tlb " << lumi_block << std::endl;
364
365
366 // clear the ntuple TIDA::Event class
367 m_event->clear();
368
369 m_event->run_number(run_number);
370 m_event->event_number(event_number);
371 m_event->lumi_block(lumi_block);
372 m_event->time_stamp(time_stamp);
373 m_event->bunch_crossing_id(bunch_crossing_id);
374 m_event->mu(mu_val);
375
378
379 bool analyse = false;
380
381 // Check HLTResult
382
383 // std::cout << "\tloop() loop over trigger chains to determine whether to process this event ..." << std::endl;
384
385 for ( unsigned ichain=0 ; ichain<m_chainNames.size() ; ichain++ ) {
386
387 const std::string& chainname = m_chainNames[ichain].head();
388
389 if ( chainname == "" ) analyse = true;
390 else {
391
392 //Only for trigger chains
393 if ( chainname.find("L2") == std::string::npos &&
394 chainname.find("EF") == std::string::npos &&
395 chainname.find("HLT") == std::string::npos ) continue;
396
397 if ( m_provider->msg().level() <= MSG::DEBUG ) {
398 m_provider->msg(MSG::DEBUG) << "Chain " << chainname
399 << "\tpass " << (*m_tdt)->isPassed(chainname)
400 << "\tpres " << (*m_tdt)->getPrescale(chainname) << endmsg;
401 }
402
403 // std::cout << "\tChain " << chainname << "\tpass " << (*m_tdt)->isPassed(chainname)
404 // << "\tpres " << (*m_tdt)->getPrescale(chainname) << std::endl;
405
406 if ( (*(m_tdt))->isPassed(chainname) || (*(m_tdt))->getPrescale(chainname) ) analyse = true;
407
408 }
409 }
410
411
412 // if ( (*m_tdt)->ExperimentalAndExpertMethods().isHLTTruncated() ) {
413 // m_provider->msg(MSG::WARNING) << "HLTResult truncated, skipping event" << endmsg;
414 // return;
415 // }
416
417 if ( !this->m_keepAllEvents && !analyse ) {
418 // m_provider->msg(MSG::VERBOSE) << "No chains passed unprescaled - not processing this event" << endmsg;
419 if(m_provider->msg().level() <= MSG::VERBOSE) {
420 m_provider->msg(MSG::VERBOSE) << "No chains passed unprescaled - not processing this event" << endmsg;
421 }
422 // std::cout << "\tNo chains passed unprescaled - not processing this event" << std::endl;
423 return;
424 }
425
426
427
429
430 selectorTruth.clear();
431
432
433
434 if(m_provider->msg().level() <= MSG::VERBOSE)
435 m_provider->msg(MSG::VERBOSE) << "MC Truth flag " << m_mcTruth << endmsg;
436
438
439 if ( m_mcTruth ) {
440 if(m_provider->msg().level() <= MSG::VERBOSE ) m_provider->msg(MSG::VERBOSE) << "getting Truth" << endmsg;
441
442 if ( this->template retrieve(truthMap, "TrigInDetTrackTruthMap").isFailure()) {
443 if(m_provider->msg().level() <= MSG::VERBOSE)
444 m_provider->msg(MSG::VERBOSE) << "TrigInDetTrackTruthMap not found" << endmsg;
445 m_hasTruthMap = false;
446 }
447 else {
448 if(m_provider->msg().level() <= MSG::VERBOSE)
449 m_provider->msg(MSG::VERBOSE) << "TrigInDetTrackTruthMap found" << endmsg;
450 m_hasTruthMap = true;
451 }
452 }
453
454
456
459
462
464
465 m_provider->msg(MSG::VERBOSE) << "fetching AOD Primary vertex container" << endmsg;
466
467 if ( !this->select( vertices, "PrimaryVertices" ) ) {
468 m_provider->msg(MSG::VERBOSE) << "could not retrieve vertex collection " "PrimaryVertices" << std::endl;
469 }
470
472
473 if ( m_mcTruth ) {
474 m_event->addChain( "Truth" );
475 m_event->back().addRoi(TIDARoiDescriptor());
476 m_event->back().back().addTracks(selectorTruth.tracks());
477 }
478
480
481 if ( m_doOffline ) {
482 for ( unsigned i=0 ; i<vertices.size() ; i++ ) {
483 if(m_provider->msg().level() <= MSG::VERBOSE)
484 m_provider->msg(MSG::VERBOSE) << "vertex " << i << " " << vertices[i] << endmsg;
485 m_event->addVertex(vertices[i]);
486 }
487 }
488
490
491 // int Noff = 0;
495
498
499 offline_tracks.clear();
500 electron_tracks.clear();
501 muon_tracks.clear();
502
503 ref_tracks.clear();
504 test_tracks.clear();
505
506 // offline track retrieval now done once for each chain rather than each roi
507 if ( m_provider->msg().level() <= MSG::VERBOSE )
508 m_provider->msg(MSG::VERBOSE) << "MC Truth flag " << m_mcTruth << endmsg;
509
510 bool foundTruth = false;
511
512 if ( !m_doOffline && m_mcTruth ) {
513
514 filter_truth.setRoi( 0 ); // don't filter on RoI yet (or until needed)
515
516 selectorTruth.clear();
517
518 if ( m_provider->msg().level() <= MSG::VERBOSE )
519 m_provider->msg(MSG::VERBOSE) << "getting Truth" << endmsg;
520
521 if ( m_provider->evtStore()->template contains<TruthParticleContainer>("INav4MomTruthEvent") ) {
522 //ESD
523 this->template selectTracks<TruthParticleContainer>( &selectorTruth, "INav4MomTruthEvent" );
524 foundTruth = true;
525 }
526 else if ( m_provider->evtStore()->template contains<TruthParticleContainer>("SpclMC") ) {
528 this->template selectTracks<TruthParticleContainer>( &selectorTruth, "SpclMC");
529 foundTruth = true;
530 }
531 else if ( m_provider->evtStore()->template contains<xAOD::TruthParticleContainer>("TruthParticles") ) {
533 this->template selectTracks<xAOD::TruthParticleContainer>( &selectorTruth, "TruthParticles");
534 foundTruth = true;
535 }
536 else if ( m_provider->evtStore()->template contains<TruthParticleContainer>("") ) {
539 foundTruth = true;
540 }
541 else
542 if ( m_provider->msg().level() <= MSG::VERBOSE ) {
543 m_provider->msg(MSG::VERBOSE) << "Truth not found - none whatsoever!" << endmsg;
544 }
545 }
546
547 if ( !m_doOffline && m_mcTruth && !foundTruth ) {
548
549 if ( m_provider->msg().level() <= MSG::VERBOSE ) {
550 m_provider->msg(MSG::VERBOSE) << "getting Truth" << endmsg;
551 }
552
554
556 const McEventCollection* mcevent = 0;
557
559
560 std::string keys[4] = { "GEN_AOD", "TruthEvent", "", "G4Truth" };
561
562 std::string key = "";
563
564 bool foundcollection = false;
565
566 for ( int ik=0 ; ik<4 ; ik++ ) {
567
568 if ( m_provider->msg().level() <= MSG::VERBOSE ) {
569 m_provider->msg(MSG::VERBOSE) << "Try McEventCollection: " << keys[ik] << endmsg;
570 }
571
572 if ( !m_provider->evtStore()->template contains<McEventCollection>(keys[ik]) ) {
573 if( m_provider->msg().level() <= MSG::VERBOSE )
574 m_provider->msg(MSG::VERBOSE) << "No McEventCollection: " << keys[ik] << endmsg;
575 continue;
576 }
577
578 if ( m_provider->msg().level() <= MSG::VERBOSE )
579 m_provider->msg(MSG::VERBOSE) << "evtStore()->retrieve( mcevent, " << keys[ik] << " )" << endmsg;
580
581 if ( this->template retrieve( mcevent, keys[ik] ).isFailure() ) {
582 if ( m_provider->msg().level() <= MSG::VERBOSE )
583 m_provider->msg(MSG::VERBOSE) << "Failed to get McEventCollection: " << keys[ik] << endmsg;
584 }
585 else {
587 key = keys[ik];
588 if(m_provider->msg().level() <= MSG::VERBOSE)
589 m_provider->msg(MSG::VERBOSE) << "Found McEventCollection: " << key << endmsg;
590 foundcollection = true;
591 break;
592 }
593 }
594
596 if ( !foundcollection ) {
597 if(m_provider->msg().level() <= MSG::VERBOSE)
598 m_provider->msg(MSG::WARNING) << "No MC Truth Collections of any sort, whatsoever!!!" << endmsg;
599
600 // m_tree->Fill();
601 // return StatusCode::FAILURE;
602
603 return;
604 }
605
606 if ( m_provider->msg().level() <= MSG::VERBOSE ) {
607 m_provider->msg(MSG::VERBOSE) << "Found McEventCollection: " << key << "\tNevents " << mcevent->size() << endmsg;
608 }
609
612
613 unsigned ie = 0;
614 unsigned ip = 0;
615
616 unsigned ie_ip = 0;
617
618 while ( evitr!=evend ) {
619
620 int _ip = 0;
621
623
624 //The logic should be clarified here
625 if ( pid!=0 ) {
626
627 for (auto pitr: *(*evitr) ) {
628
629 selectorTruth.selectTrack( pitr );
630
631 ++_ip;
632
633 }
634
635 }
636 ++ie;
637 ++evitr;
638
639 if ( _ip>0 ) {
641 // m_provider->msg(MSG::VERBOSE) << "Found " << ie << "\tpid " << pid << "\t with " << ip << " TruthParticles (GenParticles)" << endmsg;
642 ++ie_ip;
643 ip += _ip;
644 }
645 }
646
647 if(m_provider->msg().level() <= MSG::VERBOSE){
648 m_provider->msg(MSG::VERBOSE) << "Found " << ip << " TruthParticles (GenParticles) in " << ie_ip << " GenEvents out of " << ie << endmsg;
649 m_provider->msg(MSG::VERBOSE) << "selected " << selectorTruth.size() << " TruthParticles (GenParticles)" << endmsg;
650 }
651
652 if(selectorTruth.size() > 0) foundTruth = true;
653
654 if ( !(ip>0) ) {
655 if (m_provider->msg().level() <= MSG::VERBOSE) m_provider->msg(MSG::WARNING) << "NO TRUTH PARTICLES - returning" << endmsg;
656 return;
657 }
658
659 }
660
661 // m_provider->msg(MSG::VERBOSE) << " Offline tracks " << endmsg;
662
663 if ( m_doOffline ) {
664
665 if ( m_provider->evtStore()->template contains<xAOD::TrackParticleContainer>("InDetTrackParticles") ) {
666 this->template selectTracks<xAOD::TrackParticleContainer>( m_selectorRef, "InDetTrackParticles" );
667 refbeamspot = this->template getBeamspot<xAOD::TrackParticleContainer>( "InDetTrackParticles" );
668 }
669 else if (m_provider->evtStore()->template contains<Rec::TrackParticleContainer>("TrackParticleCandidate") ) {
670 this->template selectTracks<Rec::TrackParticleContainer>( m_selectorRef, "TrackParticleCandidate" );
671 }
672 else if ( m_provider->msg().level() <= MSG::WARNING ) {
673 m_provider->msg(MSG::WARNING) << " Offline tracks not found " << endmsg;
674 }
675
676 }
677
678
679 // std::cout << "\tloop() loop over chains proper ..." << std::endl;
680
682 for ( unsigned ichain=0 ; ichain<m_chainNames.size() ; ichain++ ) {
683
685
686 // std::string& chainname = chains[ichain];
687 const std::string& chainname = m_chainNames[ichain].head();
688 const std::string& key = m_chainNames[ichain].tail();
689 const std::string& vtx_name = m_chainNames[ichain].vtx();
690 //Not used left just in case
691 //const std::string& roi_name = m_chainNames[ichain].roi();
692 //const std::string& te_name = m_chainNames[ichain].element();
693 m_pTthreshold = 0;
694
695 if ( m_chainNames[ichain].postcount() ) {
696 std::string ptvalue = m_chainNames[ichain].postvalue("pt");
698 }
699
700
702 unsigned decisiontype;
703
705
706
709
711 // if ( decisiontype==TrigDefs::requireDecision ) std::cout << "\tSUTT TrigDefs::requireDecision " << decisiontype << std::endl;
712 // if ( decisiontype==TrigDefs::Physics ) std::cout << "\tSUTT TrigDefs::Physics " << decisiontype << std::endl;
713
714 if ( chainname!="" && m_provider->msg().level() <= MSG::VERBOSE ) {
715
716 m_provider->msg(MSG::VERBOSE) << "status for chain " << chainname
717 << "\tpass " << (*m_tdt)->isPassed(chainname)
718 << "\tprescale " << (*m_tdt)->getPrescale(chainname) << endmsg;
719
720 m_provider->msg(MSG::VERBOSE) << "fetching features for chain " << chainname << endmsg;
721
722 m_provider->msg(MSG::VERBOSE) << chainname << "\tpassed: " << (*m_tdt)->isPassed( chainname ) << endmsg;
723 }
724
726 // std::cout << "\tstatus for chain " << chainname
727 // << "\tpass " << (*m_tdt)->isPassed( chainname )
728 // << "\tpassdt " << (*m_tdt)->isPassed( chainname, decisiontype )
729 // << "\tprescale " << (*m_tdt)->getPrescale( chainname ) << std::endl;
730
731
732 // m_provider->msg(MSG::INFO) << chainname << "\tpassed: " << (*m_tdt)->isPassed( chainname ) << "\t" << m_chainNames[ichain] << "\trun " << run_number << "\tevent " << event_number << endmsg;
733
734
735 if ( chainname!="" && !this->m_keepAllEvents && !(*m_tdt)->isPassed( chainname, decisiontype ) ) continue;
736
737
740 // Trig::FeatureContainer f = (*m_tdt)->features( chainname, TrigDefs::alsoDeactivateTEs);
741
744
745 // tag and probe analysis processes multiple chains passed in the tag and probe tool at once so loop over vector of chains
747
748 if ( !TnP_flag ) {
749 chainNames.push_back(m_chainNames[ichain].raw()) ;
750 }
751 else {
752 chainNames.push_back(m_TnP_tool->tag()) ;
753 chainNames.push_back(m_TnP_tool->probe()) ;
754 }
755
756 // loop over new chainNames vector but doing the same stuff
757 for ( unsigned i = 0 ; i < chainNames.size() ; ++i ) {
758
761
762 m_event->addChain( chainNames[i] );
763
764 TIDA::Chain& chain = m_event->back();
765
766 if ( chainName == "" ) {
767
769
770 m_selectorTest->clear();
771
773
775
776 chain.addRoi( *roiInfo );
777
778 if ( m_provider->evtStore()->template contains<xAOD::TrackParticleContainer>(key) ) {
781 }
782
784
785 chain.back().addTracks(testtracks);
786
787 if ( vtx_name!="" ) {
788
790
791 m_provider->msg(MSG::VERBOSE) << "\tFetch xAOD::VertexContainer with key " << vtx_name << endmsg;
792
794
795 if ( this->select( tidavertices, vtx_name ) ) chain.back().addVertices( tidavertices );
796 }
797
798
799 delete roiInfo;
800
801 }
802 else {
803
805
806 //std::string roi_key = m_chainNames[ichain].roi();
807
809
811
813
815
816 int leg = -1;
817
818 if ( chainConfig.element()!="" ) {
819 leg = std::atoi(chainConfig.element().c_str());
820 }
821
825 roi_key,
827 "roi",
828 leg ) );
829
830 // const unsigned int featureCollectionMode = const std::string& navElementLinkKey = "roi") const;
831
832 int iroi = 0;
833
835
836 iroi++;
837
841
842 if ( roi_key=="SuperRoi" && iroi>1 ) continue;
843
844 // std::cout << "\troi: get link " << roi_key << " ..." << std::endl;
845
847
849 if ( roi_key!="" && roi_link.dataID()!=roi_key ) continue;
850
851 const TrigRoiDescriptor* const* roiptr = roi_link.cptr();
852
853 if ( roiptr == 0 ) {
854 continue;
855 }
856
857 // std::cout << "\troi: link deref ..." << *roiptr << std::endl;
858
859 if (m_provider->msg().level() <= MSG::VERBOSE) {
860 m_provider->msg(MSG::VERBOSE) << " RoI descriptor for seeded chain " << chainname << " " << **roiptr << endmsg;
861 }
862
864
865 // if ( dbg ) std::cout << "\troi " << iroi << " " << *roiInfo << std::endl;
866
868
869 m_selectorTest->clear();
870
872
873 // beamspot stuff not needed for xAOD::TrackParticles
874
876
877 chain.addRoi( *roiInfo );
878
880
882
883 chain.back().addTracks(testtracks);
884
885
887
888 if ( vtx_name!="" ) {
889
891
893
894 chain.back().addVertices( tidavertices );
895
896 }
897
898
899#if 0
900 if ( dbg ) {
901 std::cout << "\tTIDA analysis for chain: " << chainname << "\t key: " << key << "\t" << **roiptr << std::endl;
902 std::cout << "\tcollections: " << chain.back() << std::endl;
903 }
904#endif
905
906 delete roiInfo;
907
908 }
909
910
911 }
912
913 } // end of loop chainNames vector loop
914
915
916 if ( m_provider->msg().level() <= MSG::VERBOSE ) {
917 m_provider->msg(MSG::VERBOSE) << "event: " << *m_event << endmsg;
918 }
919
920 }
921
922 // close previous loop over chains and open new one
923
924 for ( unsigned ichain=0 ; ichain<m_event->size() ; ichain++ ) {
925
926 TIDA::Chain& chain = (*m_event)[ichain];
928 const std::string& vtx_name = chainConfig.vtx();
929
930 // skip tag chains to avoid performing standard analysis on them (done for tnp at the same time as probes)
931 if ( TnP_flag && chainConfig.extra().find("_tag")!=std::string::npos ) continue ;
932
934
935 if (TnP_flag) {
937 // needs to be done AFTER retrieving offline tracks as m_selectorRef passed as arguement, hence restructuring
938 }
939 else {
940 rois.reserve( chain.size() );
941 for ( size_t ir=0 ; ir<chain.size() ; ir++ ) {
942 rois.push_back( &(chain.rois()[ir]) );
943 }
944 }
945
946 // now loop over the rois (again)
947
948 for ( unsigned iroi=0 ; iroi<rois.size() ; iroi++ ) {
949
950 if ( this->filterOnRoi() ) {
951 filterRef.setRoi( &(rois.at(iroi)->roi() ) );
952 filterRef.containtracks( m_containTracks );
953 }
954 else filterRef.setRoi( 0 );
955
956 test_tracks.clear();
957
958 // this block is before the track retrieval in the original, is it working the same here?
959
973
974 if ( m_provider->msg().level() <= MSG::VERBOSE )
975 m_provider->msg(MSG::VERBOSE) << "MC Truth flag " << m_mcTruth << endmsg;
976
977 if ( !m_doOffline && m_mcTruth ) {
978 if ( this->filterOnRoi() ) filter_truth.setRoi( &(rois.at(iroi)->roi() ) );
980 }
981 else { // ie. if ( m_doOffline )
982 ref_tracks = m_selectorRef->tracks(&filterRef) ;
983 }
984
985 if ( m_provider->msg().level() <= MSG::VERBOSE ) {
986 m_provider->msg(MSG::VERBOSE) << "ref tracks.size() " << m_selectorRef->tracks().size() << endmsg;
987 for ( int ii=m_selectorRef->tracks().size() ; ii-- ; ) {
988 m_provider->msg(MSG::VERBOSE) << " ref track " << ii << " " << *m_selectorRef->tracks()[ii] << endmsg;
989 }
990 }
991
992 test_tracks.clear();
993
994
995 for ( unsigned itrk=0 ; itrk<rois.at(iroi)->tracks().size() ; itrk++ ) {
996 test_tracks.push_back(&(rois.at(iroi)->tracks().at(itrk)));
997 }
998
999 // std::cout << "sutt track multiplicities: offline " << offline_tracks.size() << "\ttest " << test_tracks.size() << std::endl;
1000
1001 _analysis->setvertices( vertices.size() );
1002
1003 if ( refbeamspot.size()>0 ) _analysis->setBeamRef( refbeamspot );
1004 if ( testbeamspot.size()>0 ) _analysis->setBeamTest( testbeamspot );
1005
1008
1009 if ( m_runPurity ) {
1010
1011 if ( this->getUseHighestPT() ) HighestPTOnly( test_tracks );
1012
1014
1016 m_NRois++;
1017 m_NRefTracks += test_tracks.size();
1018 m_NTestTracks += ref_tracks.size();
1019
1020
1023
1025
1026 }
1027 else {
1028
1030 if ( this->getUseHighestPT() ) HighestPTOnly( ref_tracks );
1031
1033
1035
1037 m_NRois++;
1038 m_NRefTracks += ref_tracks.size();
1039 m_NTestTracks += test_tracks.size();
1040
1043
1044 _analysis->setroi( &rois.at(iroi)->roi() );
1046
1047 if ( vtx_name!="" ) {
1049 std::vector<TIDA::Vertex> vr = rois.at(iroi)->vertices();
1051 for ( unsigned iv=0 ; iv<vr.size() ; iv++ ) vtx_rec.push_back( &vr[iv] );
1052
1054 if ( this->getVtxIndex()<0 ) {
1055 for ( unsigned iv=0 ; iv<vertices.size() ; iv++ ) vtx.push_back( &vertices[iv] );
1056 }
1057 else {
1058 if ( vertices.size()>unsigned(this->getVtxIndex()) ) vtx.push_back( &vertices[this->getVtxIndex()] );
1059 }
1060
1061 _analysis->execute_vtx( vtx, vtx_rec, m_event );
1062 }
1063
1064 }
1065
1066 if ( _analysis->debug() ) {
1067 m_provider->msg(MSG::INFO) << "Missing track for " << m_chainNames[ichain]
1068 << "\trun " << run_number
1069 << "\tevent " << event_number
1070 << "\tlb " << lumi_block << endmsg;
1071 }
1072
1073 }
1074
1075 }
1076
1077 if ( m_provider->msg().level() <= MSG::VERBOSE ) {
1078 m_provider->msg(MSG::VERBOSE) << "\n\nEvent " << *m_event << endmsg;
1079 }
1080 }
bool passed(DecisionID id, const DecisionIDContainer &)
checks if required decision ID is in the set of IDs in the container
size_t size() const
Number of registered mappings.
void HighestPTOnly(std::vector< T * > &tracks)
Definition TIDATools.h:20
void FilterPT(std::vector< T * > &tracks, double pt)
Definition TIDATools.h:41
TrigTrackSelector * m_selectorTest
bool selectTracks(TrigTrackSelector *selector, const ElementLink< TrigRoiDescriptorCollection > &roi_link, const std::string &key="")
TrigTrackSelector * m_selectorRef
std::vector< double > getBeamspot(const std::string &key)
TrackAssociator * m_associator
bool select(std::vector< TIDA::Vertex > &vertices, xAOD::VertexContainer::const_iterator vtx_start, xAOD::VertexContainer::const_iterator vtx_end)
int signal_process_id(const GenEvent &evt)
Definition GenEvent.h:572

◆ mcTruth()

bool T_AnalysisConfig< T >::mcTruth ( ) const
inlineinherited

Definition at line 261 of file T_AnalysisConfig.h.

261{ return m_mcTruth; }

◆ monTool()

template<typename T, typename A = Analysis_Tier0>
ToolHandle< GenericMonitoringTool > * T_AnalysisConfigMT_Tier0< T, A >::monTool ( )
inlineprotected

Definition at line 1119 of file T_AnalysisConfigMT_Tier0.h.

1119{ return m_monTool; }

◆ name()

const std::string & T_AnalysisConfig< T >::name ( ) const
inlineinherited

Definition at line 235 of file T_AnalysisConfig.h.

std::string m_analysisInstanceName

◆ processElectrons()

unsigned T_AnalysisConfig< T >::processElectrons ( TrigTrackSelector & selectorRef,
std::vector< TrackTrigObject > * elevec = 0,
const unsigned int selection = 0,
bool raw_track = false,
double ETOffline = 0,
const std::string & containerName = "ElectronAODCollection" )
inlineprotectedinherited

select offline electrons

Definition at line 703 of file T_AnalysisConfig.h.

713 {
714
715 m_provider->msg(MSG::DEBUG) << "Fetching offline electrons: " << containerName << endmsg;
716
717 selectorRef.clear();
718
719# ifdef XAODTRACKING_TRACKPARTICLE_H
721# else
723# endif
724
725
726 const Container* container = 0;
727
728 if( ! m_provider->evtStore()->template contains<Container>(containerName) ) {
729 m_provider->msg(MSG::WARNING) << "Error No Electron Container " << containerName << " !" << endmsg;
730 return 0;
731 }
732
734 if( sc.isFailure() || !container ) {
735 m_provider->msg(MSG::WARNING) << "Error retrieving container: " << containerName << " !" << endmsg;
736 return 0;
737 }
738
739 m_provider->msg(MSG::DEBUG) << "Event with " << container->size() << " Electron object(s) " << endmsg;
740
743
744 for( ; elec!=elec_end ; ++elec ){
745 //m_provider->msg(MSG::DEBUG) << " Electron " << (*elec)
746 // << ", eta " << (*elec)->eta()
747 // << ", phi " << (*elec)->phi()
748 // << ", ET " << (*elec)->pt()
749 // << ", author " << (*elec)->author()
750 // << ", trackParticle " << (*elec)->trackParticle()
751 // << ", conversion " << (*elec)->conversion()
752 // << ", mediumPP " << ((*elec)->isem(egammaPID::ElectronMediumPP)==0)
753 // << endmsg;
754
755 bool good_electron = false;
756# ifdef XAODTRACKING_TRACKPARTICLE_H
758# else
760# endif
761
762 if (good_electron) {
763 const xAOD::Electron_v1& eleduff = *(*elec);
764 long unsigned eleid = (unsigned long)(&eleduff) ;
765 TrackTrigObject eleobj = TrackTrigObject( (*elec)->eta(),
766 (*elec)->phi(),
767 (*elec)->pt(),
768 0,
769 (*elec)->type(),
770 eleid );
771
772 bool trk_added ;
774 else trk_added = selectorRef.selectTrack( (*elec)->trackParticle() );
775
776 if (trk_added) eleobj.addChild( selectorRef.tracks().back()->id() );
777 if (elevec) elevec->push_back( eleobj );
778 }
779 }
780
781 return selectorRef.tracks().size();
782 }
bool isGoodOffline(const Analysis::Electron &elec)

◆ processMuons()

unsigned T_AnalysisConfig< T >::processMuons ( TrigTrackSelector & selectorRef,
const unsigned int selection = 0,
double ETOffline = 0,
const std::string & containerName = "StacoMuonCollection" )
inlineprotectedinherited

select offlinqe muons

Definition at line 789 of file T_AnalysisConfig.h.

796 {
797
798# ifdef XAODTRACKING_TRACKPARTICLE_H
800# else
802# endif
803
804 m_provider->msg(MSG::DEBUG) << " Offline muons (" << containerName << ")" << endmsg;
805
806 selectorRef.clear();
807
808 const Container* container = 0;
809
810 if( ! m_provider->evtStore()->template contains<Container>(containerName) ) {
811 m_provider->msg(MSG::WARNING) << "Error No MuonCollection" << containerName << " !" << endmsg;
812 return 0;
813 }
814
816 if( sc.isFailure() || !container ) {
817 m_provider->msg(MSG::WARNING) << "Error retrieving " << containerName << " !" << endmsg;
818 return 0;
819 }
820
821 auto muon = container->begin();
822 auto muon_end = container->end();
823
824 // std::cout << "SUTT Offline muons " << container->size() << "\t threshold " << ETOffline << std::endl;
825
826 for( ; muon!=muon_end ; ++muon ){
827# ifdef XAODTRACKING_TRACKPARTICLE_H
829# else
830 if ( TIDA::isGoodOffline(*(*muon)) ) selectorRef.selectTrack((*muon)->inDetTrackParticle());
831# endif
832 }
833
834
835 // std::cout << "SUTT found " << selectorRef.tracks().size() << " muons for " << containerName << std::endl;
836 m_provider->msg(MSG::DEBUG) << "found " << selectorRef.tracks().size() << " muons for " << containerName << endmsg;
837
838 return selectorRef.tracks().size();
839}

◆ processTaus()

unsigned T_AnalysisConfig< T >::processTaus ( TrigTrackSelector & selectorRef,
std::vector< TrackTrigObject > * tauvec = 0,
const unsigned selection = 0,
int requireNtracks = 0,
double EtCutOffline = 0,
const std::string & containerName = "TauRecContainer" )
inlineprotectedinherited

select offline taus

Definition at line 846 of file T_AnalysisConfig.h.

856 {
857
858# ifdef XAODTRACKING_TRACKPARTICLE_H
860# else
862# endif
863
864 selectorRef.clear();
865
866 const Container* container = 0;
867
868 selectorRef.clear();
869
870 m_provider->msg(MSG::DEBUG) << " Offline taus " << containerName << endmsg;
871
872 if ( !m_provider->evtStore()->template contains<Container>(containerName)) {
873 m_provider->msg(MSG::WARNING) << " Offline taus not found" << endmsg;
874 return 0;
875 }
876
878 if (sc != StatusCode::SUCCESS) {
879 m_provider->msg(MSG::WARNING) << " Offline tau retrieval not successful" << endmsg;
880 return 0;
881 }
882
885
886
887 for ( ; tau!=tau_end ; ++tau ) {
888
889# ifdef XAODTRACKING_TRACKPARTICLE_H
890 // unsigned N = (*tau)->nTracks();
891
892# ifndef XAODTAU_VERSIONS_TAUJET_V3_H
893 int N = (*tau)->nTracks();
894 // std::cout << "SUTT no tau detail " << N << "\t3prong: " << doThreeProng << std::endl;
895# else
896 int N=0;
897 (*tau)->detail( xAOD::TauJetParameters::nChargedTracks, N );
898 // std::cout << "SUTT tau detail: N " << N << "\t3prong: " << doThreeProng << std::endl;
899# endif
900
901# else
902 unsigned N = (*tau)->numTrack();
903# endif
904
905
906 bool good_tau = false;
907# ifdef XAODTRACKING_TRACKPARTICLE_H
909# else
911# endif
912
913 // std::cout << "SUTT tau ntracks: " << N << "\tgoodtau: " << good_tau << "\tpt: " << (*tau)->p4().Et() << "\t3prong: " << doThreeProng << std::endl;
914
915 if (good_tau){
916 const xAOD::TauJet_v3& duff = *(*tau);
917 long unsigned tauid = (unsigned long)(&duff) ;
918 TrackTrigObject tauobj = TrackTrigObject( (*tau)->eta(),
919 (*tau)->phi(),
920 (*tau)->pt(),
921 0,
922 (*tau)->type(),
923 tauid );
924
925 bool trk_added = false;
926
927 for ( unsigned i=N ; i-- ; ) {
928# ifdef XAODTAU_TAUTRACK_H
929
930 std::vector< ElementLink<xAOD::TrackParticleContainer> > alink = (*tau)->track(i)->trackLinks();
931
932 trk_added = false;
933
934 for ( size_t ilink=0 ; ilink<alink.size() ; ilink++ ) {
935 if ( alink[ilink].isValid() ) trk_added = selectorRef.selectTrack((*alink[ilink]));
936 }
938 // trk_added = selectorRef.selectTrack((*tau)->track(i)->track());
940# else
941 trk_added = selectorRef.selectTrack((*tau)->track(i));
942# endif
943 if ( trk_added ) tauobj.addChild( selectorRef.tracks().back()->id() );
944 }
945 if ( tauvec ) tauvec->push_back( tauobj );
946 }
947 }
948
949 return selectorRef.tracks().size();
950
951}

◆ referenceChains()

const std::string T_AnalysisConfig< T >::referenceChains ( ) const
inlineinherited

Definition at line 244 of file T_AnalysisConfig.h.

244 {
246 for(unsigned int i=0; i<m_chainNames[1].size(); i++)
247 name += (m_chainNames[1][i]+"::"+m_types[1][i]+"::"+m_keys[1][i]+" ");
248 return name;
249 }

◆ releaseData()

const std::string & T_AnalysisConfig< T >::releaseData ( ) const
inlineinherited

Definition at line 273 of file T_AnalysisConfig.h.

273{ return m_releaseData; }

◆ requireDecision()

bool T_AnalysisConfig< T >::requireDecision ( ) const
inlineinherited

Definition at line 288 of file T_AnalysisConfig.h.

◆ retrieve()

StatusCode T_AnalysisConfig< T >::retrieve ( Collection const *& collection,
const std::string & key = "" )
inlineprotectedinherited

old implementation - leave in place until after the full validation ... return m_provider->evtStore()->retrieve( container, containerName);

commented code intentionally left for development purposes ... std::cout << "\t\t\t T_AnalysisConfig::selectTracks() - > TrackSelector" << std::endl;

Definition at line 573 of file T_AnalysisConfig.h.

573 {
576 if ( m_provider->evtStore()->template contains<Collection>( key ) ) {
578 if ( handle.isValid() ) {
581 collection = handle.cptr();
582 return StatusCode::SUCCESS;
583 }
584 }
585 return StatusCode::FAILURE;
586 }

◆ select()

bool T_AnalysisConfig< T >::select ( std::vector< TIDA::Vertex > & vertices,
xAOD::VertexContainer::const_iterator vtx_start,
xAOD::VertexContainer::const_iterator vtx_end )
inlineprotectedinherited

variances

quality

Definition at line 342 of file T_AnalysisConfig.h.

344 {
345
347
348 for ( ; vtxitr!=vtx_end ; ++vtxitr ) {
349 if ( (*vtxitr)->vertexType()!=0 ) {
350 m_provider->msg(MSG::VERBOSE) << "\tvertex " << (*vtxitr)->z() << endmsg;
351
352 vertices.push_back( TIDA::Vertex( (*vtxitr)->x(),
353 (*vtxitr)->y(),
354 (*vtxitr)->z(),
356 (*vtxitr)->covariancePosition()(Trk::x,Trk::x),
357 (*vtxitr)->covariancePosition()(Trk::y,Trk::y),
358 (*vtxitr)->covariancePosition()(Trk::z,Trk::z),
359 (*vtxitr)->nTrackParticles(),
361 (*vtxitr)->chiSquared(),
362 (*vtxitr)->numberDoF() ) );
363
364 }
365 }
366
367 return true;
368 }

◆ selectionChains()

const std::string T_AnalysisConfig< T >::selectionChains ( ) const
inlineinherited

Definition at line 251 of file T_AnalysisConfig.h.

251 {
253 for(unsigned int i=0; i<m_chainNames[2].size(); i++)
254 name += (m_chainNames[2][i]+"::"+m_types[2][i]+"::"+m_keys[2][i]+" ");
255 return name;
256 }

◆ selectTracks()

bool T_AnalysisConfig< T >::selectTracks ( TrigTrackSelector * selector,
const ElementLink< TrigRoiDescriptorCollection > & roi_link,
const std::string & key = "" )
inlineprotectedinherited

will need this printout for debugging the feature access, so leave this commented until it has been properly debugged, then it can be removed

will not use the te name here, but keep it on just the same for the time being, for subsequent development

Definition at line 441 of file T_AnalysisConfig.h.

444 {
445
446
449 // std::cout << "try " << key << "\t" << m_provider->evtStore()->template transientContains<Collection>(key) << std::endl;
450
455 size_t pos = key_collection.find("/");
456 if ( pos!=std::string::npos ) {
457 key_collection = key.substr( pos+1, key.size()-pos );
458 key_tename = key.substr( 0, pos );
459 }
460
463
465
467 const std::string* keyStr = m_provider->evtStore()->keyToString(roi_link.key(), checkCLID);
468 m_provider->msg(MSG::DEBUG) << "Requesting range over (" << key << ") associated to ROI from " << (keyStr == nullptr ? "UNKNOWN" : *keyStr) << endmsg;
469
470 itrpair = (*m_tdt)->associateToEventView( handle, roi_link );
471
472 if ( itrpair.first != itrpair.second ) {
473 selector->selectTracks( itrpair.first, itrpair.second );
474 return true;
475 }
476 else {
477 m_provider->msg(MSG::DEBUG) << "TDT TrackFeature collection (" << key << ") is empty " << endmsg;
478 return false;
479 }
480 }

◆ selectTracksNotEmpty()

bool T_AnalysisConfig< T >::selectTracksNotEmpty ( TrigTrackSelector * selector,
const std::string & key )
inlineprotectedinherited

Definition at line 608 of file T_AnalysisConfig.h.

608 {
609 const Collection* collection = nullptr;
610 if ( key.empty() ) return false;
611 if ( !m_provider->evtStore()->template contains<Collection>( key ) ) return false;
612
614
615 if ( !( sc.isSuccess() && collection ) ) return false;
616
617 m_provider->msg(MSG::DEBUG) << "SG Collection->size() " << collection->size() << " (" << key << ")" << endmsg;
618
619 // added to fix muon samples bug
620 if ( collection->size() == 0 ) {
621 m_provider->msg(MSG::WARNING) << "no particles in collection" << endmsg;
622 return false;
623 }
624
626 return true;
627 }

◆ set_monTool()

template<typename T, typename A = Analysis_Tier0>
void T_AnalysisConfigMT_Tier0< T, A >::set_monTool ( ToolHandle< GenericMonitoringTool > * m)
inlineprotected

Definition at line 1117 of file T_AnalysisConfigMT_Tier0.h.

1117{ m_monTool=m; }

◆ setBeamX()

void T_AnalysisConfig< T >::setBeamX ( double d)
inlineinherited

Definition at line 263 of file T_AnalysisConfig.h.

263{ m_beamX=d; }

◆ setBeamY()

void T_AnalysisConfig< T >::setBeamY ( double d)
inlineinherited

Definition at line 264 of file T_AnalysisConfig.h.

264{ m_beamY=d; }

◆ setBeamZ()

void T_AnalysisConfig< T >::setBeamZ ( double d)
inlineinherited

Definition at line 265 of file T_AnalysisConfig.h.

265{ m_beamZ=d; }

◆ setFilterOnRoi()

bool T_AnalysisConfig< T >::setFilterOnRoi ( bool b)
inlineinherited

Definition at line 285 of file T_AnalysisConfig.h.

285{ return m_filterOnRoi=b; }

◆ setGenericFlag()

void T_AnalysisConfig< T >::setGenericFlag ( bool b)
inlineinherited

Definition at line 271 of file T_AnalysisConfig.h.

271{ m_genericFlag=b; }

◆ setMCTruth()

void T_AnalysisConfig< T >::setMCTruth ( bool b = true)
inlineinherited

Definition at line 260 of file T_AnalysisConfig.h.

260{ m_mcTruth=b; }

◆ setRequireDecision()

void T_AnalysisConfig< T >::setRequireDecision ( bool b)
inlineinherited

Definition at line 287 of file T_AnalysisConfig.h.

◆ setRunPurity()

template<typename T, typename A = Analysis_Tier0>
void T_AnalysisConfigMT_Tier0< T, A >::setRunPurity ( bool b)
inline

Definition at line 168 of file T_AnalysisConfigMT_Tier0.h.

168{ m_runPurity=b; }

◆ setShifter()

template<typename T, typename A = Analysis_Tier0>
void T_AnalysisConfigMT_Tier0< T, A >::setShifter ( bool b)
inline

Definition at line 170 of file T_AnalysisConfigMT_Tier0.h.

170{ m_shifter=b; }

◆ setUseHighestPT()

void T_AnalysisConfig< T >::setUseHighestPT ( bool b)
inlineinherited

Definition at line 278 of file T_AnalysisConfig.h.

278{ m_useHighestPT=b; }

◆ setVtxIndex()

void T_AnalysisConfig< T >::setVtxIndex ( int i)
inlineinherited

Definition at line 281 of file T_AnalysisConfig.h.

281{ m_vtxIndex=i; }

◆ testChains()

const std::string T_AnalysisConfig< T >::testChains ( ) const
inlineinherited

Definition at line 237 of file T_AnalysisConfig.h.

237 {
239 for(unsigned int i=0; i<m_chainNames[0].size(); i++)
240 name += (m_chainNames[0][i]+"::"+m_types[0][i]+"::"+m_keys[0][i]+" ");
241 return name;
242 }

◆ useBeamCondSvc()

template<typename T, typename A = Analysis_Tier0>
void T_AnalysisConfigMT_Tier0< T, A >::useBeamCondSvc ( bool b)
inline

Definition at line 172 of file T_AnalysisConfigMT_Tier0.h.

172{ m_useBeamCondSvc = b; }

Member Data Documentation

◆ _analysis

template<typename T, typename A = Analysis_Tier0>
A* T_AnalysisConfigMT_Tier0< T, A >::_analysis

Definition at line 178 of file T_AnalysisConfigMT_Tier0.h.

◆ m_analyses

template<typename T, typename A = Analysis_Tier0>
std::vector<A*> T_AnalysisConfigMT_Tier0< T, A >::m_analyses
protected

Definition at line 1128 of file T_AnalysisConfigMT_Tier0.h.

◆ m_analysis

TrackAnalysis* T_AnalysisConfig< T >::m_analysis
protectedinherited

Definition at line 986 of file T_AnalysisConfig.h.

◆ m_analysisInstanceName

std::string T_AnalysisConfig< T >::m_analysisInstanceName
protectedinherited

Definition at line 965 of file T_AnalysisConfig.h.

◆ m_associator

TrackAssociator* T_AnalysisConfig< T >::m_associator
protectedinherited

Definition at line 985 of file T_AnalysisConfig.h.

◆ m_beamX

double T_AnalysisConfig< T >::m_beamX
protectedinherited

Definition at line 990 of file T_AnalysisConfig.h.

◆ m_beamY

double T_AnalysisConfig< T >::m_beamY
protectedinherited

Definition at line 990 of file T_AnalysisConfig.h.

◆ m_beamZ

double T_AnalysisConfig< T >::m_beamZ
protectedinherited

Definition at line 990 of file T_AnalysisConfig.h.

◆ m_chainNames

template<typename T, typename A = Analysis_Tier0>
std::vector<ChainString> T_AnalysisConfigMT_Tier0< T, A >::m_chainNames
protected

Definition at line 1127 of file T_AnalysisConfigMT_Tier0.h.

◆ m_containTracks

template<typename T, typename A = Analysis_Tier0>
bool T_AnalysisConfigMT_Tier0< T, A >::m_containTracks
protected

Definition at line 1155 of file T_AnalysisConfigMT_Tier0.h.

◆ m_doBjets

template<typename T, typename A = Analysis_Tier0>
bool T_AnalysisConfigMT_Tier0< T, A >::m_doBjets
protected

Definition at line 1135 of file T_AnalysisConfigMT_Tier0.h.

◆ m_doElectrons

template<typename T, typename A = Analysis_Tier0>
bool T_AnalysisConfigMT_Tier0< T, A >::m_doElectrons
protected

Definition at line 1133 of file T_AnalysisConfigMT_Tier0.h.

◆ m_doMuons

template<typename T, typename A = Analysis_Tier0>
bool T_AnalysisConfigMT_Tier0< T, A >::m_doMuons
protected

Definition at line 1132 of file T_AnalysisConfigMT_Tier0.h.

◆ m_doOffline

template<typename T, typename A = Analysis_Tier0>
bool T_AnalysisConfigMT_Tier0< T, A >::m_doOffline
protected

Definition at line 1131 of file T_AnalysisConfigMT_Tier0.h.

◆ m_doTaus

template<typename T, typename A = Analysis_Tier0>
bool T_AnalysisConfigMT_Tier0< T, A >::m_doTaus
protected

Definition at line 1134 of file T_AnalysisConfigMT_Tier0.h.

◆ m_doTauThreeProng

template<typename T, typename A = Analysis_Tier0>
bool T_AnalysisConfigMT_Tier0< T, A >::m_doTauThreeProng
protected

Definition at line 1137 of file T_AnalysisConfigMT_Tier0.h.

◆ m_event

template<typename T, typename A = Analysis_Tier0>
TIDA::Event* T_AnalysisConfigMT_Tier0< T, A >::m_event
protected

Definition at line 1125 of file T_AnalysisConfigMT_Tier0.h.

◆ m_filterOnRoi

bool T_AnalysisConfig< T >::m_filterOnRoi
protectedinherited

Definition at line 1001 of file T_AnalysisConfig.h.

◆ m_filters

std::vector< std::vector<TrackFilter*> > T_AnalysisConfig< T >::m_filters
protectedinherited

Definition at line 979 of file T_AnalysisConfig.h.

◆ m_first

template<typename T, typename A = Analysis_Tier0>
bool T_AnalysisConfigMT_Tier0< T, A >::m_first
protected

Definition at line 1153 of file T_AnalysisConfigMT_Tier0.h.

◆ m_genericFlag

int T_AnalysisConfig< T >::m_genericFlag
protectedinherited

Definition at line 992 of file T_AnalysisConfig.h.

◆ m_hasTruthMap

template<typename T, typename A = Analysis_Tier0>
bool T_AnalysisConfigMT_Tier0< T, A >::m_hasTruthMap
protected

Definition at line 1136 of file T_AnalysisConfigMT_Tier0.h.

◆ m_invmass

template<typename T, typename A = Analysis_Tier0>
TH1F* T_AnalysisConfigMT_Tier0< T, A >::m_invmass
protected

Definition at line 1159 of file T_AnalysisConfigMT_Tier0.h.

◆ m_invmass_obj

template<typename T, typename A = Analysis_Tier0>
TH1F* T_AnalysisConfigMT_Tier0< T, A >::m_invmass_obj
protected

Definition at line 1160 of file T_AnalysisConfigMT_Tier0.h.

◆ m_keepAllEvents

bool T_AnalysisConfig< T >::m_keepAllEvents
protectedinherited

Definition at line 995 of file T_AnalysisConfig.h.

◆ m_keys

std::vector< std::vector<std::string> > T_AnalysisConfig< T >::m_keys
protectedinherited

Definition at line 970 of file T_AnalysisConfig.h.

◆ m_mcTruth

bool T_AnalysisConfig< T >::m_mcTruth
protectedinherited

Definition at line 988 of file T_AnalysisConfig.h.

◆ m_monTool

template<typename T, typename A = Analysis_Tier0>
ToolHandle<GenericMonitoringTool>* T_AnalysisConfigMT_Tier0< T, A >::m_monTool
protected

Definition at line 1162 of file T_AnalysisConfigMT_Tier0.h.

◆ m_NRefTracks

template<typename T, typename A = Analysis_Tier0>
int T_AnalysisConfigMT_Tier0< T, A >::m_NRefTracks
protected

Definition at line 1144 of file T_AnalysisConfigMT_Tier0.h.

◆ m_NRois

template<typename T, typename A = Analysis_Tier0>
int T_AnalysisConfigMT_Tier0< T, A >::m_NRois
protected

output stats

Definition at line 1143 of file T_AnalysisConfigMT_Tier0.h.

◆ m_NTestTracks

template<typename T, typename A = Analysis_Tier0>
int T_AnalysisConfigMT_Tier0< T, A >::m_NTestTracks
protected

Definition at line 1145 of file T_AnalysisConfigMT_Tier0.h.

◆ m_outputFileName

template<typename T, typename A = Analysis_Tier0>
std::string T_AnalysisConfigMT_Tier0< T, A >::m_outputFileName
protected

Definition at line 1140 of file T_AnalysisConfigMT_Tier0.h.

◆ m_provider

T* T_AnalysisConfig< T >::m_provider
protectedinherited

Definition at line 957 of file T_AnalysisConfig.h.

◆ m_pTthreshold

template<typename T, typename A = Analysis_Tier0>
double T_AnalysisConfigMT_Tier0< T, A >::m_pTthreshold
protected

Definition at line 1151 of file T_AnalysisConfigMT_Tier0.h.

◆ m_refChainKey

std::string T_AnalysisConfig< T >::m_refChainKey
protectedinherited

Definition at line 973 of file T_AnalysisConfig.h.

◆ m_refChainName

std::string T_AnalysisConfig< T >::m_refChainName
protectedinherited

Definition at line 972 of file T_AnalysisConfig.h.

◆ m_releaseData

std::string T_AnalysisConfig< T >::m_releaseData
protectedinherited

Definition at line 993 of file T_AnalysisConfig.h.

◆ m_requireDecision

bool T_AnalysisConfig< T >::m_requireDecision
protectedinherited

Definition at line 1003 of file T_AnalysisConfig.h.

◆ m_runPurity

template<typename T, typename A = Analysis_Tier0>
bool T_AnalysisConfigMT_Tier0< T, A >::m_runPurity
protected

Definition at line 1147 of file T_AnalysisConfigMT_Tier0.h.

◆ m_selectorRef

TrigTrackSelector* T_AnalysisConfig< T >::m_selectorRef
protectedinherited

Definition at line 981 of file T_AnalysisConfig.h.

◆ m_selectorSel

TrigTrackSelector* T_AnalysisConfig< T >::m_selectorSel
protectedinherited

Definition at line 983 of file T_AnalysisConfig.h.

◆ m_selectorTest

TrigTrackSelector* T_AnalysisConfig< T >::m_selectorTest
protectedinherited

Definition at line 982 of file T_AnalysisConfig.h.

◆ m_shifter

template<typename T, typename A = Analysis_Tier0>
bool T_AnalysisConfigMT_Tier0< T, A >::m_shifter
protected

Definition at line 1149 of file T_AnalysisConfigMT_Tier0.h.

◆ m_tauEtCutOffline

template<typename T, typename A = Analysis_Tier0>
bool T_AnalysisConfigMT_Tier0< T, A >::m_tauEtCutOffline
protected

Definition at line 1138 of file T_AnalysisConfigMT_Tier0.h.

◆ m_tdt

ToolHandle<Trig::TrigDecisionTool>* T_AnalysisConfig< T >::m_tdt
protectedinherited

Definition at line 959 of file T_AnalysisConfig.h.

◆ m_testChainKey

std::string T_AnalysisConfig< T >::m_testChainKey
protectedinherited

Definition at line 976 of file T_AnalysisConfig.h.

◆ m_testChainName

std::string T_AnalysisConfig< T >::m_testChainName
protectedinherited

Definition at line 975 of file T_AnalysisConfig.h.

◆ m_testType

template<typename T, typename A = Analysis_Tier0>
std::string T_AnalysisConfigMT_Tier0< T, A >::m_testType
protected

Definition at line 1129 of file T_AnalysisConfigMT_Tier0.h.

◆ m_TnP_tool

template<typename T, typename A = Analysis_Tier0>
TagNProbe* T_AnalysisConfigMT_Tier0< T, A >::m_TnP_tool
protected

Definition at line 1157 of file T_AnalysisConfigMT_Tier0.h.

◆ m_types

std::vector< std::vector<std::string> > T_AnalysisConfig< T >::m_types
protectedinherited

Definition at line 969 of file T_AnalysisConfig.h.

◆ m_useBeamCondSvc

template<typename T, typename A = Analysis_Tier0>
bool T_AnalysisConfigMT_Tier0< T, A >::m_useBeamCondSvc
protected

Definition at line 1123 of file T_AnalysisConfigMT_Tier0.h.

◆ m_useHighestPT

bool T_AnalysisConfig< T >::m_useHighestPT
protectedinherited

Definition at line 997 of file T_AnalysisConfig.h.

◆ m_vtxIndex

int T_AnalysisConfig< T >::m_vtxIndex
protectedinherited

Definition at line 999 of file T_AnalysisConfig.h.


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