 |
ATLAS Offline Software
|
Go to the documentation of this file.
3 #ifndef FPGATrackSimGenScanTool_H
4 #define FPGATrackSimGenScanTool_H
53 #include "GaudiKernel/ServiceHandle.h"
81 using base_class::base_class;
89 std::vector<std::shared_ptr<const FPGATrackSimRoad>> &road)
override;
100 ToolHandle<FPGATrackSimGenScanMonitoring>
m_monitoring {
this,
"Monitoring",
"FPGATrackSimGenScanMonitoring",
"Monitoring Tool"};
101 ToolHandle<FPGATrackSimBinnedHits>
m_binnedhits {
this,
"BinnedHits",
"FPGATrackSimBinnedHits",
"Binned Hits Class"};
105 Gaudi::Property<double>
m_rin{
this,
"rin", {-1.0},
"Radius of inner layer for extrapolations and keylayer definition"};
106 Gaudi::Property<double>
m_rout{
this,
"rout", {-1.0},
"Radius of outer layer for extrapolations and keylayer definition"};
109 Gaudi::Property<unsigned>
m_threshold{
this,
"threshold", {},
"Minimum value to accept as a road (inclusive)"};
111 Gaudi::Property<std::string>
m_binFilter{
this,
"binFilter", {
"PairThenGroup"},
"which bin filter to run, current options: PairThenGroup, IncrementalBuild"};
113 Gaudi::Property<bool>
m_binningOnly{
this,
"binningOnly", {
false},
"Turn off road building to test the binning only"};
115 Gaudi::Property<bool>
m_reversePairDir{
this,
"reversePairDir", {},
"Build Pairs starting at last layer and work in"};
116 Gaudi::Property<std::vector<double>>
m_pairFilterDeltaPhiCut{
this,
"pairFilterDeltaPhiCut", {},
"Pair Filter Delta Phi Cut Value (list one per layer)"};
117 Gaudi::Property<std::vector<double>>
m_pairFilterDeltaEtaCut{
this,
"pairFilterDeltaEtaCut", {},
"Pair Filter Delta Eta Cut Value (list one per layer)"};
118 Gaudi::Property<std::vector<double>>
m_pairFilterPhiExtrapCut{
this,
"pairFilterPhiExtrapCut", {},
"Pair Filter Phi Extrap Cut Value (in/out pair)"};
119 Gaudi::Property<std::vector<double>>
m_pairFilterEtaExtrapCut{
this,
"pairFilterEtaExtrapCut", {},
"Pair Filter Eta Extrap Cut Value(in/out pair)"};
130 Gaudi::Property<std::vector<double>>
m_pairSetPhiExtrapCurvedCut{
this,
"pairSetPhiExtrapCurvedCut", {},
"Pair Set Phi Extrap Curved Cut Value(in/out pair)"};
131 Gaudi::Property<double>
m_phiWeight{
this,
"phiChi2Weight", 1.0,
"Weight for phi component of chi2 in genscan fit"};
132 Gaudi::Property<double>
m_etaWeight{
this,
"etaChi2Weight", 1.0,
"Weight for eta component of chi2 in genscan fit"};
133 Gaudi::Property<bool>
m_inBinFiltering {
this,
"inBinFiltering",
true,
"Filter roads that appear to be outside their bin"};
134 Gaudi::Property<int>
m_keepHitsStrategy {
this,
"keepHitsStrategy", -1,
"If this is less than 0, do nothing. If 1, pick 3 hits furthest apart. If 2, pick 3 inner hits. If 3, pick 3 outer hits. If 4, drop only middle hit for 5/5 otherwise keep all 4 hits for 4/5"};
147 struct IntermediateState;
148 void updateState(
const IntermediateState &inputstate,
149 IntermediateState &outputstate,
150 unsigned lyridx,
const std::vector<const StoredHit *>& newhits);
182 class HitPair :
public std::pair<const StoredHit *, const StoredHit *>
188 double dR()
const {
return this->
second->hitptr->getR() - this->
first->hitptr->getR(); }
199 return this->
second->phiShift + this->
dPhi() / this->
dR() * (r_out - this->
second->hitptr->getR()); }
202 return this->
first->phiShift + this->
dPhi() / this->
dR() * (r_in - this->
first->hitptr->getR()); }
205 return this->
second->etaShift + this->
dEta() / this->
dR() * (r_out - this->
second->hitptr->getR()); }
208 return this->
first->etaShift + this->
dEta() / this->
dR() * (r_in - this->
first->hitptr->getR()); }
272 std::vector<std::unique_ptr<FPGATrackSimRoad>>
m_roads{};
275 #endif // FPGATrackSimGenScanTool_H
bool const RAWDATA *ch2 const
Binning Classes for GenScanTool.
::StatusCode StatusCode
StatusCode definition for legacy code.
double chi2(TH1 *h0, TH1 *h1)
: FPGATrackSim-specific class to represent an hit in the detector.
Defines a class for roads.