|
ATLAS Offline Software
|
Go to the documentation of this file.
3 #ifndef FPGATrackSimGenScanTool_H
4 #define FPGATrackSimGenScanTool_H
53 #include "GaudiKernel/ServiceHandle.h"
86 std::vector<std::shared_ptr<const FPGATrackSimRoad>> &road)
override;
98 ToolHandle<FPGATrackSimGenScanMonitoring>
m_monitoring {
this,
"Monitoring",
"FPGATrackSimGenScanMonitoring",
"Monitoring Tool"};
99 ToolHandle<FPGATrackSimGenScanBinningBase>
m_binning {
this,
"Binning",
"FPGATrackSimGenScanBinningBase",
"Gen Scan Binning Tool"};
103 Gaudi::Property<std::string>
m_parSet{
this,
"parSet", {},
"String name of parameter set"};
104 Gaudi::Property<std::vector<float>>
m_parMin{
this,
"parMin", {},
"Vector of minimum bounds of parameters (expect 5"};
105 Gaudi::Property<std::vector<float>>
m_parMax{
this,
"parMax", {},
"Vector of maximum bounds of parameters (expect 5"};
106 Gaudi::Property<std::vector<unsigned>>
m_parBins{
this,
"parBins", {},
"Vector of number of bins for each parameter (expect 5)"};
108 Gaudi::Property<double>
m_rin{
this,
"rin", {-1.0},
"Radius of inner layer for extrapolations and keylayer definition"};
109 Gaudi::Property<double>
m_rout{
this,
"rout", {-1.0},
"Radius of outer layer for extrapolations and keylayer definition"};
111 Gaudi::Property<double>
m_d0FractionalPadding{
this,
"d0FractionalPadding", {},
"Fractional padding used when calculating the valid range of bins"};
112 Gaudi::Property<double>
m_z0FractionalPadding{
this,
"z0FractionalPadding", {},
"Fractional padding used when calculating the valid range of bins"};
113 Gaudi::Property<double>
m_etaFractionalPadding{
this,
"etaFractionalPadding", {},
"Fractional padding used when calculating the valid range of bins"};
114 Gaudi::Property<double>
m_phiFractionalPadding{
this,
"phiFractionalPadding", {},
"Fractional padding used when calculating the valid range of bins"};
115 Gaudi::Property<double>
m_qOverPtFractionalPadding{
this,
"qOverPtFractionalPadding", {},
"Fractional padding used when calculating the valid range of bins"};
117 Gaudi::Property<unsigned>
m_threshold{
this,
"threshold", {},
"Minimum value to accept as a road (inclusive)"};
119 Gaudi::Property<std::string>
m_binFilter{
this,
"binFilter", {
"PairThenGroup"},
"which bin filter to run, current options: PairThenGroup, IncrementalBuild"};
122 Gaudi::Property<bool>
m_reversePairDir{
this,
"reversePairDir", {},
"Build Pairs starting at last layer and work in"};
123 Gaudi::Property<std::vector<double>>
m_pairFilterDeltaPhiCut{
this,
"pairFilterDeltaPhiCut", {},
"Pair Filter Delta Phi Cut Value (list one per layer)"};
124 Gaudi::Property<std::vector<double>>
m_pairFilterDeltaEtaCut{
this,
"pairFilterDeltaEtaCut", {},
"Pair Filter Delta Eta Cut Value (list one per layer)"};
125 Gaudi::Property<std::vector<double>>
m_pairFilterPhiExtrapCut{
this,
"pairFilterPhiExtrapCut", {},
"Pair Filter Phi Extrap Cut Value (in/out pair)"};
126 Gaudi::Property<std::vector<double>>
m_pairFilterEtaExtrapCut{
this,
"pairFilterEtaExtrapCut", {},
"Pair Filter Eta Extrap Cut Value(in/out pair)"};
137 Gaudi::Property<std::vector<double>>
m_pairSetPhiExtrapCurvedCut{
this,
"pairSetPhiExtrapCurvedCut", {},
"Pair Set Phi Extrap Curved Cut Value(in/out pair)"};
162 std::vector<HitPairSet> &output_pairset);
164 struct IntermediateState;
165 void updateState(
const IntermediateState &inputstate,
166 IntermediateState &outputstate,
167 unsigned lyridx,
const std::vector<const StoredHit *>& newhits);
169 std::vector<HitPairSet> &output_pairset);
197 std::shared_ptr<const FPGATrackSimHit>
hitptr;
220 class HitPair :
public std::pair<const StoredHit *, const StoredHit *>
226 double dR()
const {
return this->
second->hitptr->getR() - this->
first->hitptr->getR(); }
237 return this->
second->phiShift + this->
dPhi() / this->
dR() * (r_out - this->
second->hitptr->getR()); }
240 return this->
first->phiShift + this->
dPhi() / this->
dR() * (r_in - this->
first->hitptr->getR()); }
243 return this->
second->etaShift + this->
dEta() / this->
dR() * (r_out - this->
second->hitptr->getR()); }
246 return this->
first->etaShift + this->
dEta() / this->
dR() * (r_in - this->
first->hitptr->getR()); }
326 #endif // FPGATrackSimGenScanTool_H
void addHit(StoredHit hit)
bool const RAWDATA *ch2 const
Binning Classes for GenScanTool.
::StatusCode StatusCode
StatusCode definition for legacy code.
: FPGATrackSim-specific class to represent an hit in the detector.
Iterable Multidimensional Array Class for FPGATrackSimGenScanTool.
std::vector< StoredHit > hits
Defines a class for roads.