|
ATLAS Offline Software
|
#include <TrackSelector.h>
|
| TrackSelector (const std::string &type, const std::string &name, const IInterface *parent) |
|
virtual | ~TrackSelector () |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | finalize () override |
|
bool | selectTrack (const Amg::Vector3D &pv, const xAOD::TrackParticle *track, double refPt=0) const |
| Returns true if the argument track fulfills the selection. More...
|
|
bool | selectTrack (const Amg::Vector3D &pv, const xAOD::TrackParticle *track, std::bitset< 17 > &failedCuts, double refPt=0) const |
| Also return individual cuts. More...
|
|
const std::bitset< 17 > & | currentTrackpassedCuts () const |
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
enum | m_Cuts {
pTMin,
d0Max,
z0Max,
sigd0Max,
sigz0Max,
etaMax,
nHitBLayer,
deadBLayer,
nHitPix,
nHitSct,
nHitSi,
nHitTrt,
nHitTrtHighE,
fitChi2,
fitProb,
fitChi2OnNdfMax,
trackingTightDef,
numCuts
} |
|
typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
|
◆ StoreGateSvc_t
◆ m_Cuts
◆ TrackSelector()
Analysis::TrackSelector::TrackSelector |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~TrackSelector()
Analysis::TrackSelector::~TrackSelector |
( |
| ) |
|
|
virtual |
◆ currentTrackpassedCuts()
const std::bitset<17>& Analysis::TrackSelector::currentTrackpassedCuts |
( |
| ) |
const |
|
inline |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ 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
◆ finalize()
StatusCode Analysis::TrackSelector::finalize |
( |
| ) |
|
|
overridevirtual |
◆ initialize()
StatusCode Analysis::TrackSelector::initialize |
( |
| ) |
|
|
overridevirtual |
retrieving TrackToVertex:
dump cuts:
Definition at line 72 of file TrackSelector.cxx.
77 return StatusCode::FAILURE;
85 ATH_MSG_INFO(
"Using InDetEtaDependentCutsSvc. Track selections from config not used");
157 return StatusCode::SUCCESS;
◆ 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.
◆ interfaceID()
const InterfaceID & Analysis::TrackSelector::interfaceID |
( |
| ) |
|
|
static |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ 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()
◆ renounceArray()
◆ selectTrack() [1/2]
Returns true if the argument track fulfills the selection.
Definition at line 169 of file TrackSelector.cxx.
173 std::bitset<17> failedCuts;
◆ selectTrack() [2/2]
Also return individual cuts.
apply cuts:
std::string showPassedCuts = ~failedCuts.to_string(); // not available !
Definition at line 177 of file TrackSelector.cxx.
187 trackD0 =
track->d0();
188 trackZ0 =
track->z0() -
pv.z();
189 tracksigD0 = std::sqrt(
track->definingParametersCovMatrix()(0,0));
190 tracksigZ0 = std::sqrt(
track->definingParametersCovMatrix()(1,1));
193 auto ctx = Gaudi::Hive::currentContext();
195 if (perigee==
nullptr) {
199 trackD0 = perigee->parameters()[
Trk::d0];
200 trackZ0 = perigee->parameters()[
Trk::z0];
201 tracksigD0 = std::sqrt((*perigee->covariance())(
Trk::d0,
Trk::d0));
202 tracksigZ0 = std::sqrt((*perigee->covariance())(
Trk::z0,
Trk::z0));
206 <<
" Eta= " <<
track->eta() <<
" Phi= " <<
track->phi() <<
" pT= " <<
track->pt()
207 <<
" d0= " << trackD0
208 <<
" z0= " << trackZ0 <<
" sigd0= " << tracksigD0 <<
" sigz0: " << tracksigZ0 );
214 if(
track->pt() < pTMin_cut) {
216 failedCuts.set(
pTMin);
219 failedCuts.set(
pTMin);
223 if(std::abs(trackD0)>d0_cut) {
225 failedCuts.set(
d0Max);
229 if(std::abs(trackZ0*
sin(
track->theta()))>z0_cut) {
231 failedCuts.set(
z0Max);
250 if(std::abs(
track->eta())>eta_cut) {
266 ATH_MSG_WARNING(
"#BTAG# expectInnermostPixelLayerHit not computed in TrackSummary: assuming true");
279 if(nhp>=PixHole_cut) {
306 if(
ns < SCTStrip_cut) {
312 if((
np+
ns) < Si_cut) {
339 bool innerHitsCrit = ((nibl+nnibl)>0);
340 bool lowetaCrit = fabs(
track->eta())> 1.65 && (
ns+
np)>=11;
341 bool highetaCrit = fabs(
track->eta())<=1.65 && (
ns+
np)>=9 ;
342 bool pixholeCrit = (nhp==0) ;
343 bool isTight = innerHitsCrit && pixholeCrit && (lowetaCrit || highetaCrit);
357 Genfun::CumulativeChiSquare myCumulativeChiSquare(
ndf);
358 proba = 1.-myCumulativeChiSquare(
chi2);
382 int passl = ~failedCuts[(
m_Cuts)
i];
◆ 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()
◆ m_antiPileUpNHitSiCut
int Analysis::TrackSelector::m_antiPileUpNHitSiCut |
|
private |
◆ m_antiPileUpNHolePixCut
int Analysis::TrackSelector::m_antiPileUpNHolePixCut |
|
private |
◆ m_antiPileUpSigD0Cut
double Analysis::TrackSelector::m_antiPileUpSigD0Cut |
|
private |
◆ m_antiPileUpSigZ0Cut
double Analysis::TrackSelector::m_antiPileUpSigZ0Cut |
|
private |
◆ m_d0Max
double Analysis::TrackSelector::m_d0Max |
|
private |
◆ m_detStore
◆ m_etaDependentCutsSvc
◆ m_etaMax
double Analysis::TrackSelector::m_etaMax |
|
private |
◆ m_evtStore
◆ m_fitChi2
double Analysis::TrackSelector::m_fitChi2 |
|
private |
◆ m_fitChi2OnNdfMax
double Analysis::TrackSelector::m_fitChi2OnNdfMax |
|
private |
◆ m_fitProb
double Analysis::TrackSelector::m_fitProb |
|
private |
◆ m_inputTrackCollection
std::string Analysis::TrackSelector::m_inputTrackCollection |
|
private |
◆ m_nHitBLayer
int Analysis::TrackSelector::m_nHitBLayer |
|
private |
◆ m_nHitPix
int Analysis::TrackSelector::m_nHitPix |
|
private |
◆ m_nHitSct
int Analysis::TrackSelector::m_nHitSct |
|
private |
◆ m_nHitSi
int Analysis::TrackSelector::m_nHitSi |
|
private |
◆ m_nHitTrt
int Analysis::TrackSelector::m_nHitTrt |
|
private |
◆ m_nHitTrtHighE
int Analysis::TrackSelector::m_nHitTrtHighE |
|
private |
◆ m_ntrc
std::atomic<int> Analysis::TrackSelector::m_ntrc[numCuts] |
|
mutableprivate |
◆ m_ntrf
int Analysis::TrackSelector::m_ntrf |
|
private |
◆ m_ntri
int Analysis::TrackSelector::m_ntri |
|
private |
◆ m_outputTrackCollection
std::string Analysis::TrackSelector::m_outputTrackCollection |
|
private |
◆ m_passedCuts
std::bitset<numCuts> Analysis::TrackSelector::m_passedCuts |
|
private |
◆ m_pTMin
double Analysis::TrackSelector::m_pTMin |
|
private |
◆ m_pTMinOffset
double Analysis::TrackSelector::m_pTMinOffset |
|
private |
◆ m_pTMinSlope
double Analysis::TrackSelector::m_pTMinSlope |
|
private |
◆ m_sharedHitMapLocation
std::string Analysis::TrackSelector::m_sharedHitMapLocation |
|
private |
◆ m_sigd0Max
double Analysis::TrackSelector::m_sigd0Max |
|
private |
◆ m_sigz0Max
double Analysis::TrackSelector::m_sigz0Max |
|
private |
◆ m_trackToVertexTool
◆ m_useAntiPileUpCuts
bool Analysis::TrackSelector::m_useAntiPileUpCuts |
|
private |
◆ m_useBLayerHitPrediction
bool Analysis::TrackSelector::m_useBLayerHitPrediction |
|
private |
◆ m_useDeadPixInfo
bool Analysis::TrackSelector::m_useDeadPixInfo |
|
private |
◆ m_useDeadSctInfo
bool Analysis::TrackSelector::m_useDeadSctInfo |
|
private |
◆ m_useEtaDependentCuts
bool Analysis::TrackSelector::m_useEtaDependentCuts |
|
private |
◆ m_usePerigeeParameters
bool Analysis::TrackSelector::m_usePerigeeParameters |
|
private |
◆ m_usepTDepTrackSel
bool Analysis::TrackSelector::m_usepTDepTrackSel |
|
private |
◆ m_useTrackingTightDefinition
bool Analysis::TrackSelector::m_useTrackingTightDefinition |
|
private |
◆ m_useTrackQualityInfo
bool Analysis::TrackSelector::m_useTrackQualityInfo |
|
private |
◆ m_useTrackSummaryInfo
bool Analysis::TrackSelector::m_useTrackSummaryInfo |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_z0Max
double Analysis::TrackSelector::m_z0Max |
|
private |
The documentation for this class was generated from the following files:
std::bitset< numCuts > m_passedCuts
bool m_useAntiPileUpCuts
location of shared map in StoreGate
double m_z0Max
max. d0: |d0|<d0Max
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
bool m_useTrackSummaryInfo
max. pseudo-rapidity
bool m_useDeadSctInfo
if true uses dead pixel sensors from conddb (except b-layer) to compute nPix
bool selectTrack(const Amg::Vector3D &pv, const xAOD::TrackParticle *track, double refPt=0) const
Returns true if the argument track fulfills the selection.
int m_nHitSi
at least n hits in SCT
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
double m_fitChi2OnNdfMax
min. fit chi2 probability
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool msgLvl(const MSG::Level lvl) const
double m_pTMin
if true use perigee parameters instead of parameters w.r.t. primary vertex
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
@ numberOfTRTHits
number of TRT hits [unit8_t].
#define ATH_MSG_VERBOSE(x)
int m_antiPileUpNHolePixCut
@ numberOfTRTHighThresholdHits
number of TRT hits which pass the high threshold (only xenon counted) [unit8_t].
virtual void setOwner(IDataHandleHolder *o)=0
double m_antiPileUpSigZ0Cut
std::string m_inputTrackCollection
bool m_useDeadPixInfo
at least n transition hits in TRT
bool m_useBLayerHitPrediction
if false the following cuts are ignored
bool m_usepTDepTrackSel
min. pT: |pT|>pTMin
double chi2(TH1 *h0, TH1 *h1)
int m_antiPileUpNHitSiCut
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
bool m_usePerigeeParameters
Properties for V0 finding: not yet implemented.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
bool m_useTrackingTightDefinition
std::string m_outputTrackCollection
location of inputTracks in StoreGate
bool m_useEtaDependentCuts
int m_nHitPix
at least n hits in Blayer
double m_sigd0Max
max. z0:
bool m_useTrackQualityInfo
if true uses dead SCT sensors to compute nSct
ToolHandle< Reco::ITrackToVertex > m_trackToVertexTool
int m_nHitSct
at least n hits in pixels
std::atomic< int > m_ntrc[numCuts]
#define ATH_MSG_WARNING(x)
double m_antiPileUpSigD0Cut
activate antiPU cut d0z0
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
double m_fitProb
max. fit chi2
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
@ numberOfSCTHits
number of hits in SCT [unit8_t].
ServiceHandle< InDet::IInDetEtaDependentCutsSvc > m_etaDependentCutsSvc
service to get cut values depending on different variable
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].
int m_nHitTrtHighE
at least n hits in TRT
int m_nHitTrt
at least n hits in pixels+SCT
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
double m_fitChi2
if false the following cuts are ignored
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer