ATLAS Offline Software
InDetEtaDependentCutsSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 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  : virtual public IInDetEtaDependentCutsSvc, public AthService
23  {
25  // Public methods:
27  public:
28 
30  InDetEtaDependentCutsSvc(const std::string& name, ISvcLocator* sl);
31 
33  virtual ~InDetEtaDependentCutsSvc() override final;
34 
35  virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvIF) final;
36 
37  StatusCode initialize() override final;
38  StatusCode finalize() override final;
39 
40  void getValue(const InDet::CutName cutName, std::vector < double >& cut) override final;
41  void getValue(const InDet::CutName cutName, std::vector < int >& cut) override final;
42 
43  double getMaxEta() const override final;
44  double getMinPtAtEta (const double eta) const override final;
45  double getMaxZImpactAtEta (const double eta) const override final;
46  double getMaxPrimaryImpactAtEta(const double eta) const override final;
47  double getMaxChi2AtEta (const double eta) const override final;
48 
49  int getMinSiHitsAtEta (const double eta) const override final;
50  int getMinSiNotSharedAtEta (const double eta) const override final;
51  int getMaxSharedAtEta (const double eta) const override final;
52  int getMinPixelHitsAtEta (const double eta) const override final;
53  int getMaxSiHolesAtEta (const double eta) const override final;
54  int getMaxPixelHolesAtEta (const double eta) const override final;
55  int getMaxSctHolesAtEta (const double eta) const override final;
56  int getMaxDoubleHolesAtEta (const double eta) const override final;
57  int getMinInnermostPixelHitsAtEta (const double eta) const override final;
58  int getMinStripHitsAtEta (const double eta) const override final;
59 
60 
62  // Private data:
64  private:
65  template <class T>
66  T getValueAtEta(const std::vector< T >& cuts, const double eta) const{
67  return cuts.at(getIndexByEta(eta)); // will print an info and clamp if out of range
68  }
69 
70  int getIndexByEta(const double eta) const;
71 
72  DoubleArrayProperty m_etaBins {this, "etaBins" , {4.0} , "eta bins (highest eta is maxEta)" };
73  DoubleArrayProperty m_minPT {this, "minPT" , {900.0} , "min pT [MeV]" };
74  DoubleArrayProperty m_maxPrimaryImpact {this, "maxPrimaryImpact" , {2.0} , "max Rphi IP (primaries) [mm]" };
75  DoubleArrayProperty m_maxZImpact {this, "maxZImpact" , {200.0} , "max Z IP [mm]" };
76  DoubleArrayProperty m_maxdImpactSSSSeeds {this, "maxdImpactSSSSeeds" , {20.0} , "max impact on seeds SSS [mm]" };
77  DoubleArrayProperty m_etaWidthBrem {this, "etaWidthBrem" , {0.2} , "eta Width of road for brem (cut for brem)"};
78  DoubleArrayProperty m_phiWidthBrem {this, "phiWidthBrem" , {0.3} , "phi Width of road for brem (cut for brem)"};
79  DoubleArrayProperty m_minPTBrem {this, "minPTBrem" , {1000.0} , "min pT for brem reocvery [MeV]" };
80  DoubleArrayProperty m_Xi2max {this, "Xi2max" , {9.0} , "Xi2 max" };
81  DoubleArrayProperty m_Xi2maxNoAdd {this, "Xi2maxNoAdd" , {25.0} , "Xi2 max no add" };
82  IntegerArrayProperty m_minClusters {this, "minClusters" , {9} , "min number of (Si) clusters (Si hits)" };
83  IntegerArrayProperty m_minPixelHits {this, "minPixelHits" , {1} , "min number of pixel hits" };
84  IntegerArrayProperty m_minSiNotShared {this, "minSiNotShared" , {7} , "min number of NOT shared" };
85  IntegerArrayProperty m_maxShared {this, "maxShared" , {2} , "max number of shared" };
86  IntegerArrayProperty m_maxHoles {this, "maxHoles" , {2} , "max number of Si holes" };
87  IntegerArrayProperty m_maxPixelHoles {this, "maxPixelHoles" , {1} , "max number of Pixel holes" };
88  IntegerArrayProperty m_maxSctHoles {this, "maxSctHoles" , {2} , "max number of SCT holes" };
89  IntegerArrayProperty m_maxDoubleHoles {this, "maxDoubleHoles" , {1} , "max number of double holes" };
90  IntegerArrayProperty m_maxHolesPattern {this, "maxHolesPattern" , {2} , "max holes in pattern" };
91  IntegerArrayProperty m_maxHolesGapPattern {this, "maxHolesGapPattern" , {2} , "max holes gap in pattern" };
92  IntegerArrayProperty m_nWeightedClustersMin {this, "nWeightedClustersMin", {6} , "min number of weigthed clusters" };
93  IntegerArrayProperty m_minInPixelHits {this, "minInnermostPixelHits",{0} , "min number of pixel hits in innermost layer" };
94  IntegerArrayProperty m_minStripHits {this, "minStripHits", {0} , "min number of strip hits" };
95 
96  std::unordered_map< InDet::CutName, std::vector<double> > m_mapDoubleCuts; // double min/max stored in a single object
97  std::unordered_map< InDet::CutName, std::vector<int> > m_mapIntCuts; // int min/max stored in a single object
98 
99  };
100 
101 
102 } // end namespace
103 
104 
105 
106 #endif //> !INDETETADEPENDENTCUTS_INDETETADEPENDENTCUTSSVC_H
InDet::InDetEtaDependentCutsSvc::getMaxEta
double getMaxEta() const override final
Definition: InDetEtaDependentCutsSvc.cxx:217
InDet::InDetEtaDependentCutsSvc::m_maxdImpactSSSSeeds
DoubleArrayProperty m_maxdImpactSSSSeeds
Definition: InDetEtaDependentCutsSvc.h:76
InDet::InDetEtaDependentCutsSvc::m_Xi2maxNoAdd
DoubleArrayProperty m_Xi2maxNoAdd
Definition: InDetEtaDependentCutsSvc.h:81
InDet::InDetEtaDependentCutsSvc::getValueAtEta
T getValueAtEta(const std::vector< T > &cuts, const double eta) const
Definition: InDetEtaDependentCutsSvc.h:66
InDet::InDetEtaDependentCutsSvc::m_maxPixelHoles
IntegerArrayProperty m_maxPixelHoles
Definition: InDetEtaDependentCutsSvc.h:87
InDet::InDetEtaDependentCutsSvc::m_minPTBrem
DoubleArrayProperty m_minPTBrem
Definition: InDetEtaDependentCutsSvc.h:79
InDet::InDetEtaDependentCutsSvc::m_Xi2max
DoubleArrayProperty m_Xi2max
Definition: InDetEtaDependentCutsSvc.h:80
InDet::InDetEtaDependentCutsSvc::m_minSiNotShared
IntegerArrayProperty m_minSiNotShared
Definition: InDetEtaDependentCutsSvc.h:84
InDet::InDetEtaDependentCutsSvc::getValue
void getValue(const InDet::CutName cutName, std::vector< double > &cut) override final
Definition: InDetEtaDependentCutsSvc.cxx:187
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
InDet
DUMMY 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:249
InDet::InDetEtaDependentCutsSvc::m_maxZImpact
DoubleArrayProperty m_maxZImpact
Definition: InDetEtaDependentCutsSvc.h:75
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
InDet::InDetEtaDependentCutsSvc::getMinInnermostPixelHitsAtEta
int getMinInnermostPixelHitsAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:269
InDet::InDetEtaDependentCutsSvc::getMinPtAtEta
double getMinPtAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:221
InDet::InDetEtaDependentCutsSvc::m_maxDoubleHoles
IntegerArrayProperty m_maxDoubleHoles
Definition: InDetEtaDependentCutsSvc.h:89
InDet::InDetEtaDependentCutsSvc::getMaxSctHolesAtEta
int getMaxSctHolesAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:253
InDet::InDetEtaDependentCutsSvc::m_maxHolesGapPattern
IntegerArrayProperty m_maxHolesGapPattern
Definition: InDetEtaDependentCutsSvc.h:91
InDet::InDetEtaDependentCutsSvc::getMaxZImpactAtEta
double getMaxZImpactAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:225
InDet::InDetEtaDependentCutsSvc::m_minClusters
IntegerArrayProperty m_minClusters
Definition: InDetEtaDependentCutsSvc.h:82
InDet::InDetEtaDependentCutsSvc::getMaxChi2AtEta
double getMaxChi2AtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:233
InDet::InDetEtaDependentCutsSvc::m_minPT
DoubleArrayProperty m_minPT
Definition: InDetEtaDependentCutsSvc.h:73
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
AthService
Definition: AthService.h:32
InDet::InDetEtaDependentCutsSvc::m_maxPrimaryImpact
DoubleArrayProperty m_maxPrimaryImpact
Definition: InDetEtaDependentCutsSvc.h:74
InDet::InDetEtaDependentCutsSvc::getMinStripHitsAtEta
int getMinStripHitsAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:273
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:237
InDet::InDetEtaDependentCutsSvc::getMaxSharedAtEta
int getMaxSharedAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:265
InDet::IInDetEtaDependentCutsSvc
Definition: IInDetEtaDependentCutsSvc.h:23
InDet::InDetEtaDependentCutsSvc::m_etaBins
DoubleArrayProperty m_etaBins
Definition: InDetEtaDependentCutsSvc.h:72
InDet::InDetEtaDependentCutsSvc::getMaxDoubleHolesAtEta
int getMaxDoubleHolesAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:257
InDet::InDetEtaDependentCutsSvc::m_nWeightedClustersMin
IntegerArrayProperty m_nWeightedClustersMin
Definition: InDetEtaDependentCutsSvc.h:92
InDet::InDetEtaDependentCutsSvc::getMaxSiHolesAtEta
int getMaxSiHolesAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:245
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
InDet::InDetEtaDependentCutsSvc::m_maxHolesPattern
IntegerArrayProperty m_maxHolesPattern
Definition: InDetEtaDependentCutsSvc.h:90
InDet::InDetEtaDependentCutsSvc::getIndexByEta
int getIndexByEta(const double eta) const
Definition: InDetEtaDependentCutsSvc.cxx:172
InDet::InDetEtaDependentCutsSvc
Definition: InDetEtaDependentCutsSvc.h:23
InDet::InDetEtaDependentCutsSvc::m_minPixelHits
IntegerArrayProperty m_minPixelHits
Definition: InDetEtaDependentCutsSvc.h:83
InDet::InDetEtaDependentCutsSvc::m_mapIntCuts
std::unordered_map< InDet::CutName, std::vector< int > > m_mapIntCuts
Definition: InDetEtaDependentCutsSvc.h:97
InDet::InDetEtaDependentCutsSvc::m_minInPixelHits
IntegerArrayProperty m_minInPixelHits
Definition: InDetEtaDependentCutsSvc.h:93
InDet::InDetEtaDependentCutsSvc::queryInterface
virtual StatusCode queryInterface(const InterfaceID &riid, void **ppvIF) final
Definition: InDetEtaDependentCutsSvc.cxx:33
InDet::InDetEtaDependentCutsSvc::m_maxShared
IntegerArrayProperty m_maxShared
Definition: InDetEtaDependentCutsSvc.h:85
InDet::InDetEtaDependentCutsSvc::m_mapDoubleCuts
std::unordered_map< InDet::CutName, std::vector< double > > m_mapDoubleCuts
Definition: InDetEtaDependentCutsSvc.h:96
InDet::InDetEtaDependentCutsSvc::m_minStripHits
IntegerArrayProperty m_minStripHits
Definition: InDetEtaDependentCutsSvc.h:94
InDet::InDetEtaDependentCutsSvc::m_etaWidthBrem
DoubleArrayProperty m_etaWidthBrem
Definition: InDetEtaDependentCutsSvc.h:77
InDet::InDetEtaDependentCutsSvc::getMinPixelHitsAtEta
int getMinPixelHitsAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:241
AthService.h
InDet::CutName
CutName
Definition: IInDetEtaDependentCutsSvc.h:14
InDet::InDetEtaDependentCutsSvc::m_phiWidthBrem
DoubleArrayProperty m_phiWidthBrem
Definition: InDetEtaDependentCutsSvc.h:78
InDet::InDetEtaDependentCutsSvc::m_maxSctHoles
IntegerArrayProperty m_maxSctHoles
Definition: InDetEtaDependentCutsSvc.h:88
IInDetEtaDependentCutsSvc.h
InDet::InDetEtaDependentCutsSvc::initialize
StatusCode initialize() override final
Definition: InDetEtaDependentCutsSvc.cxx:47
InDet::InDetEtaDependentCutsSvc::getMaxPrimaryImpactAtEta
double getMaxPrimaryImpactAtEta(const double eta) const override final
Definition: InDetEtaDependentCutsSvc.cxx:229
InDet::InDetEtaDependentCutsSvc::m_maxHoles
IntegerArrayProperty m_maxHoles
Definition: InDetEtaDependentCutsSvc.h:86
InDet::InDetEtaDependentCutsSvc::finalize
StatusCode finalize() override final
Definition: InDetEtaDependentCutsSvc.cxx:167
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:261