Generated the decision for hypo thats triggers on high pt isolated tracks.
More...
#include <TrigdEdxTrackHypoTool.h>
|
| HLT::Identifier | m_decisionId |
| Gaudi::Property< std::vector< float > > | m_cutTrackPtGeV { this, "cutTrackPtGeV", { float(20.0) }, "Track pT requirement in GeV" } |
| Gaudi::Property< std::vector< float > > | m_cutTrackEta { this, "cutTrackEta", { float(2.5) }, "Track Eta requirement" } |
| Gaudi::Property< std::vector< float > > | m_cutTracka0beam { this, "cutTracka0beam", { float(2.5) }, "Track a0beam requirement" } |
| Gaudi::Property< std::vector< float > > | m_cutTrackdEdx { this, "cutTrackdEdx", { float(1.7) }, "Track dE/dx requirement" } |
| Gaudi::Property< std::vector< int > > | m_cutTrackNhighdEdxHits { this, "cutTrackNhighdEdxHits", { int(2) }, "N high dEdx of pixel hits requirement" } |
| Gaudi::Property< std::vector< std::string > > | m_cutTrackHighdEdxDef { this, "cutTrackHighdEdxDef", { std::string("1p70") }, "Definition / threshold of high dEdx hits" } |
| StoreGateSvc_t | m_evtStore |
| | Pointer to StoreGate (event store by default)
|
| StoreGateSvc_t | m_detStore |
| | Pointer to StoreGate (detector store by default)
|
| std::vector< SG::VarHandleKeyArray * > | m_vhka |
| bool | m_varHandleArraysDeclared |
Generated the decision for hypo thats triggers on high pt isolated tracks.
- Author
- Kunihiro Nagano kunih.nosp@m.iro..nosp@m.nagan.nosp@m.o@ce.nosp@m.rn.ch - KEK
Definition at line 20 of file TrigdEdxTrackHypoTool.h.
◆ StoreGateSvc_t
◆ TrigdEdxTrackHypoTool()
| TrigdEdxTrackHypoTool::TrigdEdxTrackHypoTool |
( |
const std::string & | type, |
|
|
const std::string & | name, |
|
|
const IInterface * | parent ) |
◆ ~TrigdEdxTrackHypoTool()
| TrigdEdxTrackHypoTool::~TrigdEdxTrackHypoTool |
( |
| ) |
|
|
virtual |
◆ decide()
| StatusCode TrigdEdxTrackHypoTool::decide |
( |
std::vector< dEdxTrkHypoInfo > & | toolInputs | ) |
const |
decides upon a collection of tracks
Definition at line 47 of file TrigdEdxTrackHypoTool.cxx.
48{
50 size_t numdEdxTrks = toolInputs.size();
51
53
54 if ( numTrigger == 1 ) {
57 }
58 else {
61 }
62
63 return StatusCode::SUCCESS;
64}
#define ATH_MSG_VERBOSE(x)
◆ decideOnSingleObject()
| bool TrigdEdxTrackHypoTool::decideOnSingleObject |
( |
dEdxTrkHypoInfo & | input, |
|
|
size_t | cutIndex ) const |
|
private |
Definition at line 138 of file TrigdEdxTrackHypoTool.cxx.
139{
141
142
144 float trackPtGeV =
trackPt / 1000.0;
146 if( trackPtGeV < ptThreshold ) return false;
147
148
151 if( std::abs(trackEta) > etaThreshold ) return false;
152
153
154 float tracka0beam = trk->
getDetail<
float>(
"HPtdEdxTrk_a0beam");
156 if( std::abs(tracka0beam) > a0Threshold ) return false;
157
158
159 float trackdEdx = trk->
getDetail<
float>(
"HPtdEdxTrk_dedx");
161 if( trackdEdx < dedxThreshold ) return false;
162
163
165 if( ! trk->
hasDetail<int16_t>(name) )
ATH_MSG_ERROR(
"HPtdEdxTrk container does not have entry for " << name );
168 if( n_hdedx_hits < n_hdedx_hits_threshold ) return false;
169
170
171 ATH_MSG_VERBOSE(
" Selected, cut index / pT / eta / a0 / dEdx / n high dEdx hits = " << cutIndex <<
" / " << trackPtGeV <<
" / " << trackEta <<
" / " << tracka0beam <<
" / " << trackdEdx <<
" / " << n_hdedx_hits);
172
173 return true;
174}
bool hasDetail(const std::string &name) const
Check if a given type of detail is available.
bool getDetail(const std::string &name, TYPE &value) const
Get an TYPE detail from the object.
bool trackEta(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool trackPt(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
TrigComposite_v1 TrigComposite
Declare the latest version of the class.
◆ declareGaudiProperty()
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
158 {
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
◆ declareProperty()
Definition at line 145 of file AthCommonDataStore.h.
145 {
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
◆ detStore()
◆ evtStore()
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ inclusiveSelection()
| StatusCode TrigdEdxTrackHypoTool::inclusiveSelection |
( |
std::vector< dEdxTrkHypoInfo > & | toolInputs | ) |
const |
|
private |
Definition at line 69 of file TrigdEdxTrackHypoTool.cxx.
70{
71 bool isPassed = false;
72 unsigned int idEdxTrk=0;
73 for ( auto& input: toolInputs ) {
78 isPassed = true;
80 }
81 } else {
83 }
84 ++idEdxTrk;
85 }
86
88 return StatusCode::SUCCESS;
89}
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
void addDecisionID(DecisionID id, Decision *d)
Appends the decision (given as ID) to the decision object.
◆ initialize()
| StatusCode TrigdEdxTrackHypoTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ msg()
◆ msgLvl()
| bool AthCommonMsg< AlgTool >::msgLvl |
( |
const MSG::Level | lvl | ) |
const |
|
inlineinherited |
◆ multiplicitySelection()
| StatusCode TrigdEdxTrackHypoTool::multiplicitySelection |
( |
std::vector< dEdxTrkHypoInfo > & | toolInputs | ) |
const |
|
private |
Definition at line 94 of file TrigdEdxTrackHypoTool.cxx.
95{
97
98 for (
size_t cutIndex=0; cutIndex <
m_cutTrackPtGeV.size(); ++cutIndex ) {
99 size_t elementIndex{ 0 };
100 for ( auto& input: toolInputs ) {
104 passingSelection[cutIndex].push_back( elementIndex );
105 }
106 }
107 else {
109 }
110 elementIndex++;
111 }
112
113 if ( passingSelection[cutIndex].
empty() ) {
114 ATH_MSG_VERBOSE(
"No object passed selection " << cutIndex <<
" rejecting" );
115 return StatusCode::SUCCESS;
116 }
117 }
118
119 std::set<size_t> passingIndices;
121
122 if ( passingIndices.empty() ) {
124 return StatusCode::SUCCESS;
125 }
126
127 for ( auto idx: passingIndices ) {
130 }
131
132 return StatusCode::SUCCESS;
133}
static const Attributes_t empty
void elementsInUniqueCombinations(const Index2DVec &indices, std::set< size_t > &participants, const std::function< bool(const Index1DVec &)> &filter)
std::vector< Index1DVec > Index2DVec
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ renounce()
Definition at line 380 of file AthCommonDataStore.h.
381 {
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
Definition at line 308 of file AthCommonDataStore.h.
308 {
309
310
313 for (
auto k :
keys) {
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka
◆ m_cutTracka0beam
| Gaudi::Property< std::vector<float> > TrigdEdxTrackHypoTool::m_cutTracka0beam { this, "cutTracka0beam", { float(2.5) }, "Track a0beam requirement" } |
|
private |
◆ m_cutTrackdEdx
| Gaudi::Property< std::vector<float> > TrigdEdxTrackHypoTool::m_cutTrackdEdx { this, "cutTrackdEdx", { float(1.7) }, "Track dE/dx requirement" } |
|
private |
◆ m_cutTrackEta
| Gaudi::Property< std::vector<float> > TrigdEdxTrackHypoTool::m_cutTrackEta { this, "cutTrackEta", { float(2.5) }, "Track Eta requirement" } |
|
private |
◆ m_cutTrackHighdEdxDef
| Gaudi::Property< std::vector<std::string> > TrigdEdxTrackHypoTool::m_cutTrackHighdEdxDef { this, "cutTrackHighdEdxDef", { std::string("1p70") }, "Definition / threshold of high dEdx hits" } |
|
private |
Definition at line 49 of file TrigdEdxTrackHypoTool.h.
49{ this, "cutTrackHighdEdxDef", { std::string("1p70") }, "Definition / threshold of high dEdx hits" };
◆ m_cutTrackNhighdEdxHits
| Gaudi::Property< std::vector<int> > TrigdEdxTrackHypoTool::m_cutTrackNhighdEdxHits { this, "cutTrackNhighdEdxHits", { int(2) }, "N high dEdx of pixel hits requirement" } |
|
private |
Definition at line 48 of file TrigdEdxTrackHypoTool.h.
48{
this,
"cutTrackNhighdEdxHits", {
int(2) },
"N high dEdx of pixel hits requirement" };
◆ m_cutTrackPtGeV
| Gaudi::Property< std::vector<float> > TrigdEdxTrackHypoTool::m_cutTrackPtGeV { this, "cutTrackPtGeV", { float(20.0) }, "Track pT requirement in GeV" } |
|
private |
◆ m_decisionId
◆ m_detStore
◆ m_evtStore
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files: