|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
    7 #ifndef INDETTRACKSELECTIONTOOL_INDETTRACKSELECTIONTOOL_H 
    8 #define INDETTRACKSELECTIONTOOL_INDETTRACKSELECTIONTOOL_H 
   17 #include "GaudiKernel/ToolHandle.h" 
   18 #include "GaudiKernel/ServiceHandle.h" 
   27 #include <unordered_map> 
  126 #ifndef XAOD_ANALYSIS 
  136     static inline bool maxDoubleIsSet(Double_t cutValue) {
return cutValue < InDet::InDetTrackSelectionTool::LOCAL_MAX_DOUBLE && cutValue >= 0.;}
 
  137     static inline bool maxIntIsSet(Int_t cutValue){
return cutValue < InDet::InDetTrackSelectionTool::LOCAL_MAX_INT && cutValue >= 0;}
 
  141     Gaudi::Property<Double_t> 
m_minPt{
this, 
"minPt", -1., 
"Minimum transverse momentum"};
 
  142     Gaudi::Property<Double_t> 
m_minP{
this, 
"minP", -1., 
"Minimum momentum"};
 
  145       {
this, 
"maxAbsEta", 
LOCAL_MAX_DOUBLE, 
"Maximum magnitude of pseudorapidity"};
 
  157       {
this, 
"maxSigmaZ0SinTheta", 
LOCAL_MAX_DOUBLE, 
"Maximum error on z0*sin(theta)"};
 
  164        "Significance cut on |z0*sin(theta)|"};
 
  167       {
this, 
"minNInnermostLayerHits", -1,
 
  168        "Required hits on the innermost pixel layer"};
 
  170       {
this, 
"minNNextToInnermostLayerHits", -1,
 
  171        "Required hits on the next to innermost pixel layer"};
 
  173       {
this, 
"minNBothInnermostLayersHits", -1,
 
  174        "Required hits on two innermost pixel layers"};
 
  177        "Maximum shared hits in innermost pixel layer"};
 
  179       {
this, 
"useMinBiasInnermostLayersCut", 0,
 
  180        "IBL hit if expected, otherwise next layer hit if expected"};
 
  182       {
this, 
"minNSiHits", -1, 
"Minimum silicon (pixel + SCT) hits"};
 
  185        "Maximum silicon (pixel + SCT) sensors shared with other track"};
 
  187       {
this, 
"minNSiHitsIfSiSharedHits", -1,
 
  188        "Minimum number of silicon hits if there are any shared silicon hits"};
 
  190       {
this, 
"maxNSiHoles", 
LOCAL_MAX_INT, 
"Maximum silicon (pixel + SCT) holes"};
 
  192       {
this, 
"minNPixelHits", -1, 
"Required pixel hits"};
 
  195        "Maximum pixels shared with other tracks"};
 
  198        "Maximum number of missed layers in pixel"};
 
  202        "Eta cutoff for strict silicon hits cut"};
 
  204       {
this, 
"minNSiHitsAboveEtaCutoff", -1,
 
  205        "Minimum silicon hits at large pseudorapidity"};
 
  207       {
this, 
"maxOneSharedModule", 
false,
 
  208        "Allow only 1 shared pixel hit or 2 shared SCT hits, not both"};
 
  210       {
this, 
"useEtaDependentMaxChiSq", 
false,
 
  211        "Whether or not to use the eta-dependent chi squared per degree of freedom cut"};
 
  214       {
this, 
"minNSiHitsPhysical", -1,
 
  215        "Minimum physical silicon hits (i.e. dead sensors do not count)"};
 
  217       {
this, 
"minNPixelHitsPhysical", -1, 
"Minimum physical pixel hits"};
 
  219       {
this, 
"minNSctHitsPhysical", -1, 
"Minimum physical SCT hits"};
 
  221       {
this, 
"minNSctHits", -1, 
"Minimum SCT hits"};
 
  224        "Maximum SCT hits shared with other track"};
 
  228       {
this, 
"maxNSctDoubleHoles", 
LOCAL_MAX_INT, 
"Maximum SCT double holes"};
 
  232        "Maximum eta that ignores TRT hit cuts"};
 
  234       {
this, 
"maxEtaForTrtHitCuts", -1.,
 
  235        "Eta above which TRT hit cuts are not applied."};
 
  236     Gaudi::Property<Int_t> 
m_minNTrtHits{
this, 
"minNTrtHits", -1, 
"Minimum TRT hits"};
 
  238       {
this, 
"minNTrtHitsPlusOutliers", -1, 
"Minimum TRT hits including outliers"};
 
  240       {
this, 
"minNTrtHighThresholdHits", -1, 
"Minimum high E TRT hits"};
 
  242       {
this, 
"minNTrtHighThresholdHitsPlusOutliers", -1,
 
  243        "Minimum high E TRT hits including outliers"};
 
  246        "Maximum TRT hits that are above high energy threshold"};
 
  249        "Maximum TRT hits that are above high energy threshold including outliers"};
 
  252        "Maximum fraction of TRT outliers over TRT hits plus outliers"};
 
  258        "Maximum chi squared per degree of freedom"};
 
  259     Gaudi::Property<Double_t> 
m_minProb{
this, 
"minProb", -1., 
"Minimum p(chi^2, Ndof)"};
 
  262        "Minimum pt for chi-sq probability cut"};
 
  264       {
this, 
"minProbAbovePtCutoff", -1.,
 
  265        "Minimum chi-sq probability above a pt cutoff"};
 
  268       {
this, 
"minNUsedHitsdEdx", -1, 
"Minimum hits used for dEdx"};
 
  270       {
this, 
"minNOverflowHitsdEdx", -1, 
"Minimum overflow hits in IBL for dEdx"};
 
  272       {
this, 
"eProbHTonlyForXe", 
false,
 
  273        "Flag whether to apply the eProbabilityHT cut only when all TRT hits are Xenon"};
 
  275       {
this, 
"minEProbabilityHT", -1.,
 
  276        "Minimum High Threshold electron probability"};
 
  279       {
this, 
"useExperimentalInnermostLayersCut", 
false,
 
  280        "Use the experimental cut on pixel holes"};
 
  282 #ifndef XAOD_ANALYSIS 
  284       {
this, 
"minNSiHitsMod", -1,
 
  285        "Minimum number of Si hits, with pixel hits counting twice"};
 
  287       {
this, 
"minNSiHitsModTop", -1,
 
  288        "Min number of Si hits on top half (pixel counting twice)"};
 
  290       {
this, 
"minNSiHitsModBottom", -1,
 
  291        "Min number of Si hits on bottom half (pixel counting twice)"};
 
  295       {
this, 
"vecEtaCutoffsForSiHitsCut", {},
 
  296        "Minimum eta cutoffs for each Silicon hit cut"};
 
  298       {
this, 
"vecMinNSiHitsAboveEta", {},
 
  299        "Minimum Silicon hits above each eta cutoff"};
 
  301       {
this, 
"vecEtaCutoffsForPtCut", {}, 
"Minimum eta cutoffs for each pT cut"};
 
  303       {
this, 
"vecMinPtAboveEta", {},
 
  304        "Minimum transverse momentum above each eta cutoff"};
 
  307       {
this, 
"vecPtCutoffsForSctHitsCut", {},
 
  308        "Minimum pt cutoffs for each SCT hits"};
 
  310       {
this, 
"vecMinNSctHitsAbovePt", {},
 
  311        "Minimum SCT hits above each pt cutoff"};
 
  314       {
this, 
"vecEtaCutoffsForZ0SinThetaCut", {},
 
  315        "Minimum eta cutoffs for each Z0SinTheta value"};
 
  317       {
this, 
"vecPtCutoffsForZ0SinThetaCut", {},
 
  318        "Minimum pt cutoffs for each Z0SinTheta value"};
 
  320       {
this, 
"vecvecMaxZ0SinThetaAboveEtaPt", {},
 
  321        "Maximum Z0SinTheta value above each eta and pT cutoff"};
 
  324       {
this, 
"vecEtaCutoffsForD0Cut", {}, 
"Minimum eta cutoffs for each D0 value"};
 
  326       {
this, 
"vecPtCutoffsForD0Cut", {}, 
"Minimum pt cutoffs for each D0 value"};
 
  328       {
this, 
"vecvecMaxD0AboveEtaPt", {},
 
  329        "Maximum D0 value above each eta and pT cutoff"};
 
  332       {
this, 
"vecEtaCutoffsForSctHolesCut", {},
 
  333        "Minimum eta cutoffs for each SctHoles value"};
 
  335       {
this, 
"vecPtCutoffsForSctHolesCut", {},
 
  336        "Minimum pt cutoffs for each SctHoles value"};
 
  338       {
this, 
"vecvecMaxSctHolesAboveEtaPt", {},
 
  339        "Maximum SctHoles value above each eta and pT cutoff"};
 
  342       {
this, 
"vecEtaCutoffsForSctHitsPlusDeadCut", {},
 
  343        "Minimum eta cutoffs for each SctHitsPlusDead value"};
 
  345       {
this, 
"vecPtCutoffsForSctHitsPlusDeadCut", {},
 
  346        "Minimum pt cutoffs for each SctHitsPlusDead value"};
 
  348       {
this, 
"vecvecMinSctHitsPlusDeadAboveEtaPt", {},
 
  349        "Minimum SctHitsPlusDead value above each eta and pT cutoff"};
 
  356     Gaudi::Property<std::string> 
m_cutLevel{
this, 
"CutLevel", 
""}; 
 
  361 #ifndef XAOD_ANALYSIS 
  362     Gaudi::Property<Bool_t> 
m_initTrkTools{
this, 
"UseTrkTrackTools", 
false, 
"Whether to initialize the Trk::Track tools"};
 
  365       {
this, 
"TrackSummaryTool", 
"Trk::TrackSummaryTool/TrackSummaryTool"};
 
  367       {
this, 
"Extrapolator", 
"Trk::Extrapolator/Extrapolator"};
 
  369 #endif // XAOD_ANALYSIS 
  375 #endif // INDETTRACKSELECTIONTOOL_INDETTRACKSELECTIONTOOL_H 
  
bool const RAWDATA *ch2 const
Class providing the definition of the 4-vector interface.
::StatusCode StatusCode
StatusCode definition for legacy code.
cut
This script demonstrates how to call a C++ class from Python Also how to use PyROOT is shown.
def best(iterable, priorities=[3, 2, 1, -1, 0])
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Class mimicking the AthMessaging class from the offline software.
Class describing a Vertex.
Object to encode the result of several cuts.
Class describing a TrackParticle.
AccessorTemplate< ContainerId::track, CT, ColumnAccessMode::input, CM > TrackAccessor
setBGCode setTAP setLVL2ErrorBits bool