ATLAS Offline Software
Loading...
Searching...
No Matches
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
20namespace 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
Scalar eta() const
pseudorapidity method
std::unordered_map< InDet::CutName, std::vector< int > > m_mapIntCuts
T getValueAtEta(const std::vector< T > &cuts, const double eta) const
int getMinSiNotSharedAtEta(const double eta) const override final
std::unordered_map< InDet::CutName, std::vector< double > > m_mapDoubleCuts
int getMinSiHitsAtEta(const double eta) const override final
int getMaxSharedAtEta(const double eta) const override final
int getMaxSctHolesAtEta(const double eta) const override final
void getValue(const InDet::CutName cutName, std::vector< double > &cut) override final
double getMaxChi2AtEta(const double eta) const override final
double getMaxEta() const override final
virtual ~InDetEtaDependentCutsSvc() override final
Destructor:
double getMaxZImpactAtEta(const double eta) const override final
int getMinPixelHitsAtEta(const double eta) const override final
int getIndexByEta(const double eta) const
int getMinInnermostPixelHitsAtEta(const double eta) const override final
int getMinStripHitsAtEta(const double eta) const override final
double getMinPtAtEta(const double eta) const override final
int getMaxPixelHolesAtEta(const double eta) const override final
InDetEtaDependentCutsSvc(const std::string &name, ISvcLocator *sl)
Constructor with parameters:
int getMaxSiHolesAtEta(const double eta) const override final
int getMaxDoubleHolesAtEta(const double eta) const override final
double getMaxPrimaryImpactAtEta(const double eta) const override final
Primary Vertex Finder.
STL namespace.
#define private