ATLAS Offline Software
InDetEtaDependentCutsSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef INDETETADEPENDENTCUTS_INDETETADEPENDENTCUTSSVC_H
5 #define INDETETADEPENDENTCUTS_INDETETADEPENDENTCUTSSVC_H
6 
7 // STL includes
8 #include <string>
9 #include <vector>
10 
11 
12 // FrameWork includes
14 
15 // InDetRecInterfaces includes
17 
18 #include "GaudiKernel/ISvcLocator.h"
19 
20 namespace InDet {
22  : public extends<AthService, IInDetEtaDependentCutsSvc>
23  {
25  // Public methods:
27  public:
28 
30  InDetEtaDependentCutsSvc(const std::string& name, ISvcLocator* sl);
31 
33  virtual ~InDetEtaDependentCutsSvc() override final;
34 
35  StatusCode initialize() override final;
36  StatusCode finalize() override final;
37 
38  void getValue(const InDet::CutName cutName, std::vector < double >& cut) override final;
39  void getValue(const InDet::CutName cutName, std::vector < int >& cut) override final;
40 
41  double getMaxEta() const override final;
42  double getMinPtAtEta (const double eta) const override final;
43  double getMaxZImpactAtEta (const double eta) const override final;
44  double getMaxPrimaryImpactAtEta(const double eta) const override final;
45  double getMaxChi2AtEta (const double eta) const override final;
46 
47  int getMinSiHitsAtEta (const double eta) const override final;
48  int getMinSiNotSharedAtEta (const double eta) const override final;
49  int getMaxSharedAtEta (const double eta) const override final;
50  int getMinPixelHitsAtEta (const double eta) const override final;
51  int getMaxSiHolesAtEta (const double eta) const override final;
52  int getMaxPixelHolesAtEta (const double eta) const override final;
53  int getMaxSctHolesAtEta (const double eta) const override final;
54  int getMaxDoubleHolesAtEta (const double eta) const override final;
55  int getMinInnermostPixelHitsAtEta (const double eta) const override final;
56  int getMinStripHitsAtEta (const double eta) const override final;
57 
58 
60  // Private data:
62  private:
63  template <class T>
64  T getValueAtEta(const std::vector< T >& cuts, const double eta) const{
65  return cuts.at(getIndexByEta(eta)); // will print an info and clamp if out of range
66  }
67 
68  int getIndexByEta(const double eta) const;
69 
70  DoubleArrayProperty m_etaBins {this, "etaBins" , {4.0} , "eta bins (highest eta is maxEta)" };
71  DoubleArrayProperty m_minPT {this, "minPT" , {900.0} , "min pT [MeV]" };
72  DoubleArrayProperty m_maxPrimaryImpact {this, "maxPrimaryImpact" , {2.0} , "max Rphi IP (primaries) [mm]" };
73  DoubleArrayProperty m_maxZImpact {this, "maxZImpact" , {200.0} , "max Z IP [mm]" };
74  DoubleArrayProperty m_maxdImpactSSSSeeds {this, "maxdImpactSSSSeeds" , {20.0} , "max impact on seeds SSS [mm]" };
75  DoubleArrayProperty m_etaWidthBrem {this, "etaWidthBrem" , {0.2} , "eta Width of road for brem (cut for brem)"};
76  DoubleArrayProperty m_phiWidthBrem {this, "phiWidthBrem" , {0.3} , "phi Width of road for brem (cut for brem)"};
77  DoubleArrayProperty m_minPTBrem {this, "minPTBrem" , {1000.0} , "min pT for brem reocvery [MeV]" };
78  DoubleArrayProperty m_Xi2max {this, "Xi2max" , {9.0} , "Xi2 max" };
79  DoubleArrayProperty m_Xi2maxNoAdd {this, "Xi2maxNoAdd" , {25.0} , "Xi2 max no add" };
80  IntegerArrayProperty m_minClusters {this, "minClusters" , {9} , "min number of (Si) clusters (Si hits)" };
81  IntegerArrayProperty m_minPixelHits {this, "minPixelHits" , {1} , "min number of pixel hits" };
82  IntegerArrayProperty m_minSiNotShared {this, "minSiNotShared" , {7} , "min number of NOT shared" };
83  IntegerArrayProperty m_maxShared {this, "maxShared" , {2} , "max number of shared" };
84  IntegerArrayProperty m_maxHoles {this, "maxHoles" , {2} , "max number of Si holes" };
85  IntegerArrayProperty m_maxPixelHoles {this, "maxPixelHoles" , {1} , "max number of Pixel holes" };
86  IntegerArrayProperty m_maxSctHoles {this, "maxSctHoles" , {2} , "max number of SCT holes" };
87  IntegerArrayProperty m_maxDoubleHoles {this, "maxDoubleHoles" , {1} , "max number of double holes" };
88  IntegerArrayProperty m_maxHolesPattern {this, "maxHolesPattern" , {2} , "max holes in pattern" };
89  IntegerArrayProperty m_maxHolesGapPattern {this, "maxHolesGapPattern" , {2} , "max holes gap in pattern" };
90  IntegerArrayProperty m_nWeightedClustersMin {this, "nWeightedClustersMin", {6} , "min number of weigthed clusters" };
91  IntegerArrayProperty m_minInPixelHits {this, "minInnermostPixelHits",{0} , "min number of pixel hits in innermost layer" };
92  IntegerArrayProperty m_minStripHits {this, "minStripHits", {0} , "min number of strip hits" };
93 
94  std::unordered_map< InDet::CutName, std::vector<double> > m_mapDoubleCuts; // double min/max stored in a single object
95  std::unordered_map< InDet::CutName, std::vector<int> > m_mapIntCuts; // int min/max stored in a single object
96 
97  };
98 
99 
100 } // end namespace
101 
102 
103 
104 #endif //> !INDETETADEPENDENTCUTS_INDETETADEPENDENTCUTSSVC_H
InDet::InDetEtaDependentCutsSvc::getMaxEta
double getMaxEta() const override final
Definition: InDetEtaDependentCutsSvc.cxx:204
InDet::InDetEtaDependentCutsSvc::m_maxdImpactSSSSeeds
DoubleArrayProperty m_maxdImpactSSSSeeds
Definition: InDetEtaDependentCutsSvc.h:74
InDet::InDetEtaDependentCutsSvc::m_Xi2maxNoAdd
DoubleArrayProperty m_Xi2maxNoAdd
Definition: InDetEtaDependentCutsSvc.h:79
InDet::InDetEtaDependentCutsSvc::getValueAtEta
T getValueAtEta(const std::vector< T > &cuts, const double eta) const
Definition: InDetEtaDependentCutsSvc.h:64
InDet::InDetEtaDependentCutsSvc::m_maxPixelHoles
IntegerArrayProperty m_maxPixelHoles
Definition: InDetEtaDependentCutsSvc.h:85
InDet::InDetEtaDependentCutsSvc::m_minPTBrem
DoubleArrayProperty m_minPTBrem
Definition: InDetEtaDependentCutsSvc.h:77
InDet::InDetEtaDependentCutsSvc::m_Xi2max
DoubleArrayProperty m_Xi2max
Definition: InDetEtaDependentCutsSvc.h:78
InDet::InDetEtaDependentCutsSvc::m_minSiNotShared
IntegerArrayProperty m_minSiNotShared
Definition: InDetEtaDependentCutsSvc.h:82
InDet::InDetEtaDependentCutsSvc::getValue
void getValue(const InDet::CutName cutName, std::vector< double > &cut) override final
Definition: InDetEtaDependentCutsSvc.cxx:174
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::cuts
Definition: TrackStatHelper.h:83
taskman.template
dictionary template
Definition: taskman.py:317
InDet::InDetEtaDependentCutsSvc::getMaxPixelHolesAtEta
int getMaxPixelHolesAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:236
InDet::InDetEtaDependentCutsSvc::m_maxZImpact
DoubleArrayProperty m_maxZImpact
Definition: InDetEtaDependentCutsSvc.h:73
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
InDet::InDetEtaDependentCutsSvc::getMinInnermostPixelHitsAtEta
int getMinInnermostPixelHitsAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:256
InDet::InDetEtaDependentCutsSvc::getMinPtAtEta
double getMinPtAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:208
InDet::InDetEtaDependentCutsSvc::m_maxDoubleHoles
IntegerArrayProperty m_maxDoubleHoles
Definition: InDetEtaDependentCutsSvc.h:87
InDet::InDetEtaDependentCutsSvc::getMaxSctHolesAtEta
int getMaxSctHolesAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:240
InDet::InDetEtaDependentCutsSvc::m_maxHolesGapPattern
IntegerArrayProperty m_maxHolesGapPattern
Definition: InDetEtaDependentCutsSvc.h:89
InDet::InDetEtaDependentCutsSvc::getMaxZImpactAtEta
double getMaxZImpactAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:212
InDet::InDetEtaDependentCutsSvc::m_minClusters
IntegerArrayProperty m_minClusters
Definition: InDetEtaDependentCutsSvc.h:80
InDet::InDetEtaDependentCutsSvc::getMaxChi2AtEta
double getMaxChi2AtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:220
InDet::InDetEtaDependentCutsSvc::m_minPT
DoubleArrayProperty m_minPT
Definition: InDetEtaDependentCutsSvc.h:71
InDet::InDetEtaDependentCutsSvc::~InDetEtaDependentCutsSvc
virtual ~InDetEtaDependentCutsSvc() override final
Destructor:
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
vector
Definition: MultiHisto.h:13
InDet::InDetEtaDependentCutsSvc::m_maxPrimaryImpact
DoubleArrayProperty m_maxPrimaryImpact
Definition: InDetEtaDependentCutsSvc.h:72
InDet::InDetEtaDependentCutsSvc::getMinStripHitsAtEta
int getMinStripHitsAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:260
BindingsTest.cut
cut
This script demonstrates how to call a C++ class from Python Also how to use PyROOT is shown.
Definition: BindingsTest.py:13
InDet::InDetEtaDependentCutsSvc::getMinSiHitsAtEta
int getMinSiHitsAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:224
InDet::InDetEtaDependentCutsSvc::getMaxSharedAtEta
int getMaxSharedAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:252
InDet::InDetEtaDependentCutsSvc::m_etaBins
DoubleArrayProperty m_etaBins
Definition: InDetEtaDependentCutsSvc.h:70
InDet::InDetEtaDependentCutsSvc::getMaxDoubleHolesAtEta
int getMaxDoubleHolesAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:244
InDet::InDetEtaDependentCutsSvc::m_nWeightedClustersMin
IntegerArrayProperty m_nWeightedClustersMin
Definition: InDetEtaDependentCutsSvc.h:90
InDet::InDetEtaDependentCutsSvc::getMaxSiHolesAtEta
int getMaxSiHolesAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:232
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
InDet::InDetEtaDependentCutsSvc::m_maxHolesPattern
IntegerArrayProperty m_maxHolesPattern
Definition: InDetEtaDependentCutsSvc.h:88
InDet::InDetEtaDependentCutsSvc::getIndexByEta
int getIndexByEta(const double eta) const
Definition: InDetEtaDependentCutsSvc.cxx:159
InDet::InDetEtaDependentCutsSvc
Definition: InDetEtaDependentCutsSvc.h:23
InDet::InDetEtaDependentCutsSvc::m_minPixelHits
IntegerArrayProperty m_minPixelHits
Definition: InDetEtaDependentCutsSvc.h:81
InDet::InDetEtaDependentCutsSvc::m_mapIntCuts
std::unordered_map< InDet::CutName, std::vector< int > > m_mapIntCuts
Definition: InDetEtaDependentCutsSvc.h:95
InDet::InDetEtaDependentCutsSvc::m_minInPixelHits
IntegerArrayProperty m_minInPixelHits
Definition: InDetEtaDependentCutsSvc.h:91
InDet::InDetEtaDependentCutsSvc::m_maxShared
IntegerArrayProperty m_maxShared
Definition: InDetEtaDependentCutsSvc.h:83
InDet::InDetEtaDependentCutsSvc::m_mapDoubleCuts
std::unordered_map< InDet::CutName, std::vector< double > > m_mapDoubleCuts
Definition: InDetEtaDependentCutsSvc.h:94
InDet::InDetEtaDependentCutsSvc::m_minStripHits
IntegerArrayProperty m_minStripHits
Definition: InDetEtaDependentCutsSvc.h:92
InDet::InDetEtaDependentCutsSvc::m_etaWidthBrem
DoubleArrayProperty m_etaWidthBrem
Definition: InDetEtaDependentCutsSvc.h:75
InDet::InDetEtaDependentCutsSvc::getMinPixelHitsAtEta
int getMinPixelHitsAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:228
AthService.h
InDet::CutName
CutName
Definition: IInDetEtaDependentCutsSvc.h:12
InDet::InDetEtaDependentCutsSvc::m_phiWidthBrem
DoubleArrayProperty m_phiWidthBrem
Definition: InDetEtaDependentCutsSvc.h:76
InDet::InDetEtaDependentCutsSvc::m_maxSctHoles
IntegerArrayProperty m_maxSctHoles
Definition: InDetEtaDependentCutsSvc.h:86
IInDetEtaDependentCutsSvc.h
InDet::InDetEtaDependentCutsSvc::initialize
StatusCode initialize() override final
Definition: InDetEtaDependentCutsSvc.cxx:34
InDet::InDetEtaDependentCutsSvc::getMaxPrimaryImpactAtEta
double getMaxPrimaryImpactAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:216
InDet::InDetEtaDependentCutsSvc::m_maxHoles
IntegerArrayProperty m_maxHoles
Definition: InDetEtaDependentCutsSvc.h:84
InDet::InDetEtaDependentCutsSvc::finalize
StatusCode finalize() override final
Definition: InDetEtaDependentCutsSvc.cxx:154
InDet::InDetEtaDependentCutsSvc::InDetEtaDependentCutsSvc
InDetEtaDependentCutsSvc(const std::string &name, ISvcLocator *sl)
Constructor with parameters:
Definition: InDetEtaDependentCutsSvc.cxx:19
InDet::InDetEtaDependentCutsSvc::getMinSiNotSharedAtEta
int getMinSiNotSharedAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:248