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 1083 of file T_AnalysisConfigMT_Tier0.h.

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

◆ 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 1095 of file T_AnalysisConfigMT_Tier0.h.

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

◆ 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" );

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
558
559 std::string keys[4] = { "GEN_AOD", "TruthEvent", "", "G4Truth" };
560
561 std::string key = "";
562
563 bool foundcollection = false;
564
565 for ( int ik=0 ; ik<4 ; ik++ ) {
566
567 if ( m_provider->msg().level() <= MSG::VERBOSE ) {
568 m_provider->msg(MSG::VERBOSE) << "Try McEventCollection: " << keys[ik] << endmsg;
569 }
570
571 if ( !m_provider->evtStore()->template contains<McEventCollection>(keys[ik]) ) {
572 if( m_provider->msg().level() <= MSG::VERBOSE )
573 m_provider->msg(MSG::VERBOSE) << "No McEventCollection: " << keys[ik] << endmsg;
574 continue;
575 }
576
577 if ( m_provider->msg().level() <= MSG::VERBOSE )
578 m_provider->msg(MSG::VERBOSE) << "evtStore()->retrieve( mcevent, " << keys[ik] << " )" << endmsg;
579
580 if ( this->template retrieve( mcevent, keys[ik] ).isFailure() ) {
581 if ( m_provider->msg().level() <= MSG::VERBOSE )
582 m_provider->msg(MSG::VERBOSE) << "Failed to get McEventCollection: " << keys[ik] << endmsg;
583 }
584 else {
586 key = keys[ik];
587 if(m_provider->msg().level() <= MSG::VERBOSE)
588 m_provider->msg(MSG::VERBOSE) << "Found McEventCollection: " << key << endmsg;
589 foundcollection = true;
590 break;
591 }
592 }
593
595 if ( !foundcollection ) {
596 if(m_provider->msg().level() <= MSG::VERBOSE)
597 m_provider->msg(MSG::WARNING) << "No MC Truth Collections of any sort, whatsoever!!!" << endmsg;
598
599 // m_tree->Fill();
600 // return StatusCode::FAILURE;
601
602 return;
603 }
604
605 if ( m_provider->msg().level() <= MSG::VERBOSE ) {
606 m_provider->msg(MSG::VERBOSE) << "Found McEventCollection: " << key << "\tNevents " << mcevent->size() << endmsg;
607 }
608
611
612 unsigned ie = 0;
613 unsigned ip = 0;
614
615 unsigned ie_ip = 0;
616
617 while ( evitr!=evend ) {
618
619 int _ip = 0;
620
622
623 //The logic should be clarified here
624 if ( pid!=0 ) {
625
626 for (auto pitr: *(*evitr) ) {
627
628 selectorTruth.selectTrack( pitr );
629
630 ++_ip;
631
632 }
633
634 }
635 ++ie;
636 ++evitr;
637
638 if ( _ip>0 ) {
640 // m_provider->msg(MSG::VERBOSE) << "Found " << ie << "\tpid " << pid << "\t with " << ip << " TruthParticles (GenParticles)" << endmsg;
641 ++ie_ip;
642 ip += _ip;
643 }
644 }
645
646 if(m_provider->msg().level() <= MSG::VERBOSE){
647 m_provider->msg(MSG::VERBOSE) << "Found " << ip << " TruthParticles (GenParticles) in " << ie_ip << " GenEvents out of " << ie << endmsg;
648 m_provider->msg(MSG::VERBOSE) << "selected " << selectorTruth.size() << " TruthParticles (GenParticles)" << endmsg;
649 }
650
651 if(selectorTruth.size() > 0) foundTruth = true;
652
653 if ( !(ip>0) ) {
654 if (m_provider->msg().level() <= MSG::VERBOSE) m_provider->msg(MSG::WARNING) << "NO TRUTH PARTICLES - returning" << endmsg;
655 return;
656 }
657
658 }
659
660 // m_provider->msg(MSG::VERBOSE) << " Offline tracks " << endmsg;
661
662 if ( m_doOffline ) {
663
664 if ( m_provider->evtStore()->template contains<xAOD::TrackParticleContainer>("InDetTrackParticles") ) {
665 this->template selectTracks<xAOD::TrackParticleContainer>( m_selectorRef, "InDetTrackParticles" );
666 refbeamspot = this->template getBeamspot<xAOD::TrackParticleContainer>( "InDetTrackParticles" );
667 }
668 else if (m_provider->evtStore()->template contains<Rec::TrackParticleContainer>("TrackParticleCandidate") ) {
669 this->template selectTracks<Rec::TrackParticleContainer>( m_selectorRef, "TrackParticleCandidate" );
670 }
671 else if ( m_provider->msg().level() <= MSG::WARNING ) {
672 m_provider->msg(MSG::WARNING) << " Offline tracks not found " << endmsg;
673 }
674
675 }
676
677
678 // std::cout << "\tloop() loop over chains proper ..." << std::endl;
679
681 for ( unsigned ichain=0 ; ichain<m_chainNames.size() ; ichain++ ) {
682
684
685 // std::string& chainname = chains[ichain];
686 const std::string& chainname = m_chainNames[ichain].head();
687 const std::string& key = m_chainNames[ichain].tail();
688 const std::string& vtx_name = m_chainNames[ichain].vtx();
689 //Not used left just in case
690 //const std::string& roi_name = m_chainNames[ichain].roi();
691 //const std::string& te_name = m_chainNames[ichain].element();
692 m_pTthreshold = 0;
693
694 if ( m_chainNames[ichain].postcount() ) {
695 std::string ptvalue = m_chainNames[ichain].postvalue("pt");
697 }
698
699
701 unsigned decisiontype;
702
704
705
708
710 // if ( decisiontype==TrigDefs::requireDecision ) std::cout << "\tSUTT TrigDefs::requireDecision " << decisiontype << std::endl;
711 // if ( decisiontype==TrigDefs::Physics ) std::cout << "\tSUTT TrigDefs::Physics " << decisiontype << std::endl;
712
713 if ( chainname!="" && m_provider->msg().level() <= MSG::VERBOSE ) {
714
715 m_provider->msg(MSG::VERBOSE) << "status for chain " << chainname
716 << "\tpass " << (*m_tdt)->isPassed(chainname)
717 << "\tprescale " << (*m_tdt)->getPrescale(chainname) << endmsg;
718
719 m_provider->msg(MSG::VERBOSE) << "fetching features for chain " << chainname << endmsg;
720
721 m_provider->msg(MSG::VERBOSE) << chainname << "\tpassed: " << (*m_tdt)->isPassed( chainname ) << endmsg;
722 }
723
725 // std::cout << "\tstatus for chain " << chainname
726 // << "\tpass " << (*m_tdt)->isPassed( chainname )
727 // << "\tpassdt " << (*m_tdt)->isPassed( chainname, decisiontype )
728 // << "\tprescale " << (*m_tdt)->getPrescale( chainname ) << std::endl;
729
730
731 // m_provider->msg(MSG::INFO) << chainname << "\tpassed: " << (*m_tdt)->isPassed( chainname ) << "\t" << m_chainNames[ichain] << "\trun " << run_number << "\tevent " << event_number << endmsg;
732
733
734 if ( chainname!="" && !this->m_keepAllEvents && !(*m_tdt)->isPassed( chainname, decisiontype ) ) continue;
735
736
739 // Trig::FeatureContainer f = (*m_tdt)->features( chainname, TrigDefs::alsoDeactivateTEs);
740
743
744 // tag and probe analysis processes multiple chains passed in the tag and probe tool at once so loop over vector of chains
746
747 if ( !TnP_flag ) {
748 chainNames.push_back(m_chainNames[ichain].raw()) ;
749 }
750 else {
751 chainNames.push_back(m_TnP_tool->tag()) ;
752 chainNames.push_back(m_TnP_tool->probe()) ;
753 }
754
755 // loop over new chainNames vector but doing the same stuff
756 for ( unsigned i = 0 ; i < chainNames.size() ; ++i ) {
757
760
761 m_event->addChain( chainNames[i] );
762
763 TIDA::Chain& chain = m_event->back();
764
765 if ( chainName == "" ) {
766
768
769 m_selectorTest->clear();
770
772
774
775 chain.addRoi( *roiInfo );
776
777 if ( m_provider->evtStore()->template contains<xAOD::TrackParticleContainer>(key) ) {
780 }
781
783
784 chain.back().addTracks(testtracks);
785
786 if ( vtx_name!="" ) {
787
789
790 m_provider->msg(MSG::VERBOSE) << "\tFetch xAOD::VertexContainer with key " << vtx_name << endmsg;
791
793
794 if ( this->select( tidavertices, vtx_name ) ) chain.back().addVertices( tidavertices );
795 }
796
797
798 delete roiInfo;
799
800 }
801 else {
802
804
805 //std::string roi_key = m_chainNames[ichain].roi();
806
808
810
812
814
815 int leg = -1;
816
817 if ( chainConfig.element()!="" ) {
818 leg = std::atoi(chainConfig.element().c_str());
819 }
820
824 roi_key,
826 "roi",
827 leg ) );
828
829 // const unsigned int featureCollectionMode = const std::string& navElementLinkKey = "roi") const;
830
831 int iroi = 0;
832
834
835 iroi++;
836
840
841 if ( roi_key=="SuperRoi" && iroi>1 ) continue;
842
843 // std::cout << "\troi: get link " << roi_key << " ..." << std::endl;
844
846
848 if ( roi_key!="" && roi_link.dataID()!=roi_key ) continue;
849
850 const TrigRoiDescriptor* const* roiptr = roi_link.cptr();
851
852 if ( roiptr == 0 ) {
853 continue;
854 }
855
856 // std::cout << "\troi: link deref ..." << *roiptr << std::endl;
857
858 if (m_provider->msg().level() <= MSG::VERBOSE) {
859 m_provider->msg(MSG::VERBOSE) << " RoI descriptor for seeded chain " << chainname << " " << **roiptr << endmsg;
860 }
861
863
864 // if ( dbg ) std::cout << "\troi " << iroi << " " << *roiInfo << std::endl;
865
867
868 m_selectorTest->clear();
869
871
872 // beamspot stuff not needed for xAOD::TrackParticles
873
875
876 chain.addRoi( *roiInfo );
877
879
881
882 chain.back().addTracks(testtracks);
883
884
886
887 if ( vtx_name!="" ) {
888
890
892
893 chain.back().addVertices( tidavertices );
894
895 }
896
897
898#if 0
899 if ( dbg ) {
900 std::cout << "\tTIDA analysis for chain: " << chainname << "\t key: " << key << "\t" << **roiptr << std::endl;
901 std::cout << "\tcollections: " << chain.back() << std::endl;
902 }
903#endif
904
905 delete roiInfo;
906
907 }
908
909
910 }
911
912 } // end of loop chainNames vector loop
913
914
915 if ( m_provider->msg().level() <= MSG::VERBOSE ) {
916 m_provider->msg(MSG::VERBOSE) << "event: " << *m_event << endmsg;
917 }
918
919 }
920
921 // close previous loop over chains and open new one
922
923 for ( unsigned ichain=0 ; ichain<m_event->size() ; ichain++ ) {
924
925 TIDA::Chain& chain = (*m_event)[ichain];
927 const std::string& vtx_name = chainConfig.vtx();
928
929 // skip tag chains to avoid performing standard analysis on them (done for tnp at the same time as probes)
930 if ( TnP_flag && chainConfig.extra().find("_tag")!=std::string::npos ) continue ;
931
933
934 if (TnP_flag) {
936 // needs to be done AFTER retrieving offline tracks as m_selectorRef passed as arguement, hence restructuring
937 }
938 else {
939 rois.reserve( chain.size() );
940 for ( size_t ir=0 ; ir<chain.size() ; ir++ ) {
941 rois.push_back( &(chain.rois()[ir]) );
942 }
943 }
944
945 // now loop over the rois (again)
946
947 for ( unsigned iroi=0 ; iroi<rois.size() ; iroi++ ) {
948
949 if ( this->filterOnRoi() ) {
950 filterRef.setRoi( &(rois.at(iroi)->roi() ) );
951 filterRef.containtracks( m_containTracks );
952 }
953 else filterRef.setRoi( 0 );
954
955 test_tracks.clear();
956
957 // this block is before the track retrieval in the original, is it working the same here?
958
972
973 if ( m_provider->msg().level() <= MSG::VERBOSE )
974 m_provider->msg(MSG::VERBOSE) << "MC Truth flag " << m_mcTruth << endmsg;
975
976 if ( !m_doOffline && m_mcTruth ) {
977 if ( this->filterOnRoi() ) filter_truth.setRoi( &(rois.at(iroi)->roi() ) );
979 }
980 else { // ie. if ( m_doOffline )
981 ref_tracks = m_selectorRef->tracks(&filterRef) ;
982 }
983
984 if ( m_provider->msg().level() <= MSG::VERBOSE ) {
985 m_provider->msg(MSG::VERBOSE) << "ref tracks.size() " << m_selectorRef->tracks().size() << endmsg;
986 for ( int ii=m_selectorRef->tracks().size() ; ii-- ; ) {
987 m_provider->msg(MSG::VERBOSE) << " ref track " << ii << " " << *m_selectorRef->tracks()[ii] << endmsg;
988 }
989 }
990
991 test_tracks.clear();
992
993
994 for ( unsigned itrk=0 ; itrk<rois.at(iroi)->tracks().size() ; itrk++ ) {
995 test_tracks.push_back(&(rois.at(iroi)->tracks().at(itrk)));
996 }
997
998 // std::cout << "sutt track multiplicities: offline " << offline_tracks.size() << "\ttest " << test_tracks.size() << std::endl;
999
1000 _analysis->setvertices( vertices.size() );
1001
1002 if ( refbeamspot.size()>0 ) _analysis->setBeamRef( refbeamspot );
1003 if ( testbeamspot.size()>0 ) _analysis->setBeamTest( testbeamspot );
1004
1007
1008 if ( m_runPurity ) {
1009
1010 if ( this->getUseHighestPT() ) HighestPTOnly( test_tracks );
1011
1013
1015 m_NRois++;
1016 m_NRefTracks += test_tracks.size();
1017 m_NTestTracks += ref_tracks.size();
1018
1019
1022
1024
1025 }
1026 else {
1027
1029 if ( this->getUseHighestPT() ) HighestPTOnly( ref_tracks );
1030
1032
1034
1036 m_NRois++;
1037 m_NRefTracks += ref_tracks.size();
1038 m_NTestTracks += test_tracks.size();
1039
1042
1043 _analysis->setroi( &rois.at(iroi)->roi() );
1045
1046 if ( vtx_name!="" ) {
1048 std::vector<TIDA::Vertex> vr = rois.at(iroi)->vertices();
1050 for ( unsigned iv=0 ; iv<vr.size() ; iv++ ) vtx_rec.push_back( &vr[iv] );
1051
1053 if ( this->getVtxIndex()<0 ) {
1054 for ( unsigned iv=0 ; iv<vertices.size() ; iv++ ) vtx.push_back( &vertices[iv] );
1055 }
1056 else {
1057 if ( vertices.size()>unsigned(this->getVtxIndex()) ) vtx.push_back( &vertices[this->getVtxIndex()] );
1058 }
1059
1060 _analysis->execute_vtx( vtx, vtx_rec, m_event );
1061 }
1062
1063 }
1064
1065 if ( _analysis->debug() ) {
1066 m_provider->msg(MSG::INFO) << "Missing track for " << m_chainNames[ichain]
1067 << "\trun " << run_number
1068 << "\tevent " << event_number
1069 << "\tlb " << lumi_block << endmsg;
1070 }
1071
1072 }
1073
1074 }
1075
1076 if ( m_provider->msg().level() <= MSG::VERBOSE ) {
1077 m_provider->msg(MSG::VERBOSE) << "\n\nEvent " << *m_event << endmsg;
1078 }
1079 }
bool passed(DecisionID id, const DecisionIDContainer &)
checks if required decision ID is in the set of IDs in the container
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 &e)
Definition GenEvent.h:637

◆ 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 1118 of file T_AnalysisConfigMT_Tier0.h.

1118{ 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
828 if ( TIDA::isGoodOffline(*(*muon), selection, ETOffline ) ) selectorRef.selectTrack(*((*muon)->inDetTrackParticleLink()));
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}
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
Definition AtlasPID.h:878

◆ 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 1116 of file T_AnalysisConfigMT_Tier0.h.

1116{ 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 1127 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 1126 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 1154 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 1134 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 1132 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 1131 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 1130 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 1133 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 1136 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 1124 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 1152 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 1135 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 1158 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 1159 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 1161 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 1143 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 1142 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 1144 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 1139 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 1150 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 1146 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 1148 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 1137 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 1128 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 1156 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 1122 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: