11 #include <unordered_map> 31 trackerGeometry_(&trackerGeometry),
32 trackerTopology_(&trackerTopology),
33 cablingMap_(&cablingMap),
34 stubAlgorithm_(&stubAlgorithm),
35 pSetSA_(&pSetStubAlgorithm),
36 pSetGC_(&pSetGeometryConfiguration),
37 pSetIdTTStubAlgorithm_(pSetIdTTStubAlgorithm),
38 pSetIdGeometryConfiguration_(pSetIdGeometryConfiguration),
40 fromDD4hep_(iConfig.getParameter<
bool>(
"fromDD4hep")),
42 pSetSG_(iConfig.getParameter<
ParameterSet>(
"UnSupportedGeometry")),
43 sgXMLLabel_(pSetSG_.getParameter<
string>(
"XMLLabel")),
44 sgXMLPath_(pSetSG_.getParameter<
string>(
"XMLPath")),
45 sgXMLFile_(pSetSG_.getParameter<
string>(
"XMLFile")),
46 sgXMLVersions_(pSetSG_.getParameter<
vector<
string>>(
"XMLVersions")),
48 pSetPH_(iConfig.getParameter<
ParameterSet>(
"ProcessHistory")),
49 phGeometryConfiguration_(pSetPH_.getParameter<
string>(
"GeometryConfiguration")),
50 phTTStubAlgorithm_(pSetPH_.getParameter<
string>(
"TTStubAlgorithm")),
52 pSetTF_(iConfig.getParameter<
ParameterSet>(
"TrackFinding")),
53 beamWindowZ_(pSetTF_.getParameter<double>(
"BeamWindowZ")),
54 matchedLayers_(pSetTF_.getParameter<
int>(
"MatchedLayers")),
55 matchedLayersPS_(pSetTF_.getParameter<
int>(
"MatchedLayersPS")),
56 unMatchedStubs_(pSetTF_.getParameter<
int>(
"UnMatchedStubs")),
57 unMatchedStubsPS_(pSetTF_.getParameter<
int>(
"UnMatchedStubsPS")),
58 scattering_(pSetTF_.getParameter<double>(
"Scattering")),
61 minPt_(pSetTMTT_.getParameter<double>(
"MinPt")),
62 maxEta_(pSetTMTT_.getParameter<double>(
"MaxEta")),
63 chosenRofPhi_(pSetTMTT_.getParameter<double>(
"ChosenRofPhi")),
64 numLayers_(pSetTMTT_.getParameter<
int>(
"NumLayers")),
65 tmttWidthR_(pSetTMTT_.getParameter<
int>(
"WidthR")),
66 tmttWidthPhi_(pSetTMTT_.getParameter<
int>(
"WidthPhi")),
67 tmttWidthZ_(pSetTMTT_.getParameter<
int>(
"WidthZ")),
69 pSetHybrid_(iConfig.getParameter<
ParameterSet>(
"Hybrid")),
70 hybridMinPtStub_(pSetHybrid_.getParameter<double>(
"MinPtStub")),
71 hybridMinPtCand_(pSetHybrid_.getParameter<double>(
"MinPtCand")),
72 hybridMaxEta_(pSetHybrid_.getParameter<double>(
"MaxEta")),
73 hybridChosenRofPhi_(pSetHybrid_.getParameter<double>(
"ChosenRofPhi")),
74 hybridNumLayers_(pSetHybrid_.getParameter<
int>(
"NumLayers")),
75 hybridNumRingsPS_(pSetHybrid_.getParameter<
vector<
int>>(
"NumRingsPS")),
76 hybridWidthsR_(pSetHybrid_.getParameter<
vector<
int>>(
"WidthsR")),
77 hybridWidthsZ_(pSetHybrid_.getParameter<
vector<
int>>(
"WidthsZ")),
78 hybridWidthsPhi_(pSetHybrid_.getParameter<
vector<
int>>(
"WidthsPhi")),
79 hybridWidthsAlpha_(pSetHybrid_.getParameter<
vector<
int>>(
"WidthsAlpha")),
80 hybridWidthsBend_(pSetHybrid_.getParameter<
vector<
int>>(
"WidthsBend")),
81 hybridRangesR_(pSetHybrid_.getParameter<
vector<double>>(
"RangesR")),
82 hybridRangesZ_(pSetHybrid_.getParameter<
vector<double>>(
"RangesZ")),
83 hybridRangesAlpha_(pSetHybrid_.getParameter<
vector<double>>(
"RangesAlpha")),
84 hybridLayerRs_(pSetHybrid_.getParameter<
vector<double>>(
"LayerRs")),
85 hybridDiskZs_(pSetHybrid_.getParameter<
vector<double>>(
"DiskZs")),
87 tbInnerRadius_(pSetHybrid_.getParameter<double>(
"InnerRadius")),
89 pSetTP_(iConfig.getParameter<
ParameterSet>(
"TrackingParticle")),
90 tpMinPt_(pSetTP_.getParameter<double>(
"MinPt")),
91 tpMaxEta_(pSetTP_.getParameter<double>(
"MaxEta")),
92 tpMaxVertR_(pSetTP_.getParameter<double>(
"MaxVertR")),
93 tpMaxVertZ_(pSetTP_.getParameter<double>(
"MaxVertZ")),
94 tpMaxD0_(pSetTP_.getParameter<double>(
"MaxD0")),
95 tpMinLayers_(pSetTP_.getParameter<
int>(
"MinLayers")),
96 tpMinLayersPS_(pSetTP_.getParameter<
int>(
"MinLayersPS")),
97 tpMaxBadStubs2S_(pSetTP_.getParameter<
int>(
"MaxBadStubs2S")),
98 tpMaxBadStubsPS_(pSetTP_.getParameter<
int>(
"MaxBadStubsPS")),
100 pSetFW_(iConfig.getParameter<
ParameterSet>(
"Firmware")),
101 widthDSPa_(pSetFW_.getParameter<
int>(
"WidthDSPa")),
102 widthDSPb_(pSetFW_.getParameter<
int>(
"WidthDSPb")),
103 widthDSPc_(pSetFW_.getParameter<
int>(
"WidthDSPc")),
104 widthAddrBRAM36_(pSetFW_.getParameter<
int>(
"WidthAddrBRAM36")),
105 widthAddrBRAM18_(pSetFW_.getParameter<
int>(
"WidthAddrBRAM18")),
106 numFramesInfra_(pSetFW_.getParameter<
int>(
"NumFramesInfra")),
107 freqLHC_(pSetFW_.getParameter<double>(
"FreqLHC")),
108 freqBE_(pSetFW_.getParameter<double>(
"FreqBE")),
109 tmpFE_(pSetFW_.getParameter<
int>(
"TMP_FE")),
110 tmpTFP_(pSetFW_.getParameter<
int>(
"TMP_TFP")),
111 speedOfLight_(pSetFW_.getParameter<double>(
"SpeedOfLight")),
112 bField_(pSetFW_.getParameter<double>(
"BField")),
113 bFieldError_(pSetFW_.getParameter<double>(
"BFieldError")),
114 outerRadius_(pSetFW_.getParameter<double>(
"OuterRadius")),
115 innerRadius_(pSetFW_.getParameter<double>(
"InnerRadius")),
116 halfLength_(pSetFW_.getParameter<double>(
"HalfLength")),
117 tiltApproxSlope_(pSetFW_.getParameter<double>(
"TiltApproxSlope")),
118 tiltApproxIntercept_(pSetFW_.getParameter<double>(
"TiltApproxIntercept")),
119 tiltUncertaintyR_(pSetFW_.getParameter<double>(
"TiltUncertaintyR")),
120 mindPhi_(pSetFW_.getParameter<double>(
"MindPhi")),
121 maxdPhi_(pSetFW_.getParameter<double>(
"MaxdPhi")),
122 mindZ_(pSetFW_.getParameter<double>(
"MindZ")),
123 maxdZ_(pSetFW_.getParameter<double>(
"MaxdZ")),
124 pitch2S_(pSetFW_.getParameter<double>(
"Pitch2S")),
125 pitchPS_(pSetFW_.getParameter<double>(
"PitchPS")),
126 length2S_(pSetFW_.getParameter<double>(
"Length2S")),
127 lengthPS_(pSetFW_.getParameter<double>(
"LengthPS")),
128 tiltedLayerLimitsZ_(pSetFW_.getParameter<
vector<double>>(
"TiltedLayerLimitsZ")),
129 psDiskLimitsR_(pSetFW_.getParameter<
vector<double>>(
"PSDiskLimitsR")),
131 pSetFE_(iConfig.getParameter<
ParameterSet>(
"FrontEnd")),
132 widthBend_(pSetFE_.getParameter<
int>(
"WidthBend")),
133 widthCol_(pSetFE_.getParameter<
int>(
"WidthCol")),
134 widthRow_(pSetFE_.getParameter<
int>(
"WidthRow")),
135 baseBend_(pSetFE_.getParameter<double>(
"BaseBend")),
136 baseCol_(pSetFE_.getParameter<double>(
"BaseCol")),
137 baseRow_(pSetFE_.getParameter<double>(
"BaseRow")),
138 baseWindowSize_(pSetFE_.getParameter<double>(
"BaseWindowSize")),
139 bendCut_(pSetFE_.getParameter<double>(
"BendCut")),
142 numRegions_(pSetDTC_.getParameter<
int>(
"NumRegions")),
143 numOverlappingRegions_(pSetDTC_.getParameter<
int>(
"NumOverlappingRegions")),
144 numATCASlots_(pSetDTC_.getParameter<
int>(
"NumATCASlots")),
145 numDTCsPerRegion_(pSetDTC_.getParameter<
int>(
"NumDTCsPerRegion")),
146 numModulesPerDTC_(pSetDTC_.getParameter<
int>(
"NumModulesPerDTC")),
147 dtcNumRoutingBlocks_(pSetDTC_.getParameter<
int>(
"NumRoutingBlocks")),
148 dtcDepthMemory_(pSetDTC_.getParameter<
int>(
"DepthMemory")),
149 dtcWidthRowLUT_(pSetDTC_.getParameter<
int>(
"WidthRowLUT")),
150 dtcWidthInv2R_(pSetDTC_.getParameter<
int>(
"WidthInv2R")),
151 offsetDetIdDSV_(pSetDTC_.getParameter<
int>(
"OffsetDetIdDSV")),
152 offsetDetIdTP_(pSetDTC_.getParameter<
int>(
"OffsetDetIdTP")),
153 offsetLayerDisks_(pSetDTC_.getParameter<
int>(
"OffsetLayerDisks")),
154 offsetLayerId_(pSetDTC_.getParameter<
int>(
"OffsetLayerId")),
155 numBarrelLayer_(pSetDTC_.getParameter<
int>(
"NumBarrelLayer")),
156 slotLimitPS_(pSetDTC_.getParameter<
int>(
"SlotLimitPS")),
157 slotLimit10gbps_(pSetDTC_.getParameter<
int>(
"SlotLimit10gbps")),
160 tfpWidthPhi0_(pSetTFP_.getParameter<
int>(
"WidthPhi0")),
161 tfpWidthInv2R_(pSetTFP_.getParameter<
int>(
"WidthInv2R")),
162 tfpWidthCot_(pSetTFP_.getParameter<
int>(
"WidthCot")),
163 tfpWidthZ0_(pSetTFP_.getParameter<
int>(
"WidthZ0")),
164 tfpNumChannel_(pSetTFP_.getParameter<
int>(
"NumChannel")),
166 pSetGP_(iConfig.getParameter<
ParameterSet>(
"GeometricProcessor")),
167 numSectorsPhi_(pSetGP_.getParameter<
int>(
"NumSectorsPhi")),
168 chosenRofZ_(pSetGP_.getParameter<double>(
"ChosenRofZ")),
169 neededRangeChiZ_(pSetGP_.getParameter<double>(
"RangeChiZ")),
170 gpDepthMemory_(pSetGP_.getParameter<
int>(
"DepthMemory")),
171 boundariesEta_(pSetGP_.getParameter<
vector<double>>(
"BoundariesEta")),
173 pSetHT_(iConfig.getParameter<
ParameterSet>(
"HoughTransform")),
174 htNumBinsInv2R_(pSetHT_.getParameter<
int>(
"NumBinsInv2R")),
175 htNumBinsPhiT_(pSetHT_.getParameter<
int>(
"NumBinsPhiT")),
176 htMinLayers_(pSetHT_.getParameter<
int>(
"MinLayers")),
177 htDepthMemory_(pSetHT_.getParameter<
int>(
"DepthMemory")),
179 pSetMHT_(iConfig.getParameter<
ParameterSet>(
"MiniHoughTransform")),
180 mhtNumBinsInv2R_(pSetMHT_.getParameter<
int>(
"NumBinsInv2R")),
181 mhtNumBinsPhiT_(pSetMHT_.getParameter<
int>(
"NumBinsPhiT")),
182 mhtNumDLBs_(pSetMHT_.getParameter<
int>(
"NumDLBs")),
183 mhtNumDLBNodes_(pSetMHT_.getParameter<
int>(
"NumDLBNodes")),
184 mhtNumDLBChannel_(pSetMHT_.getParameter<
int>(
"NumDLBChannel")),
185 mhtMinLayers_(pSetMHT_.getParameter<
int>(
"MinLayers")),
187 pSetZHT_(iConfig.getParameter<
ParameterSet>(
"ZHoughTransform")),
188 zhtNumBinsZT_(pSetZHT_.getParameter<
int>(
"NumBinsZT")),
189 zhtNumBinsCot_(pSetZHT_.getParameter<
int>(
"NumBinsCot")),
190 zhtNumStages_(pSetZHT_.getParameter<
int>(
"NumStages")),
191 zhtMinLayers_(pSetZHT_.getParameter<
int>(
"MinLayers")),
192 zhtMaxTracks_(pSetZHT_.getParameter<
int>(
"MaxTracks")),
193 zhtMaxStubsPerLayer_(pSetZHT_.getParameter<
int>(
"MaxStubsPerLayer")),
195 pSetKFin_(iConfig.getParameter<
ParameterSet>(
"KalmanFilterIn")),
196 kfinShiftRangePhi_(pSetKFin_.getParameter<
int>(
"ShiftRangePhi")),
197 kfinShiftRangeZ_(pSetKFin_.getParameter<
int>(
"ShiftRangeZ")),
199 pSetKF_(iConfig.getParameter<
ParameterSet>(
"KalmanFilter")),
200 kfNumWorker_(pSetKF_.getParameter<
int>(
"NumWorker")),
201 kfMinLayers_(pSetKF_.getParameter<
int>(
"MinLayers")),
202 kfMaxLayers_(pSetKF_.getParameter<
int>(
"MaxLayers")),
203 kfRangeFactor_(pSetKF_.getParameter<double>(
"RangeFactor")),
205 pSetKFOut_(iConfig.getParameter<
ParameterSet>(
"KalmanFilterOut")),
206 kfoutchi2rphiBins_(pSetKFOut_.getParameter<
vector<double>>(
"chi2rphiBins")),
207 kfoutchi2rzBins_(pSetKFOut_.getParameter<
vector<double>>(
"chi2rzBins")),
208 kfoutchi2rphiConv_(pSetKFOut_.getParameter<
int>(
"chi2rphiConv")),
209 kfoutchi2rzConv_(pSetKFOut_.getParameter<
int>(
"chi2rzConv")),
210 tttrackBits_(pSetKFOut_.getParameter<
int>(
"TTTrackBits")),
211 weightBinFraction_(pSetKFOut_.getParameter<
int>(
"WeightBinFraction")),
213 pSetDR_(iConfig.getParameter<
ParameterSet>(
"DuplicateRemoval")),
214 drDepthMemory_(pSetDR_.getParameter<
int>(
"DepthMemory")) {
251 vector<pair<string, ParameterSet>> pSets;
252 pSets.reserve(
ph.size());
261 exception.addContext(
"tt::Setup::checkHistory");
264 auto consistent = [&pSetId](
const pair<string, ParameterSet>&
p) {
return p.second.id() == pSetId; };
265 if (!all_of(pSets.begin(), pSets.end(), consistent)) {
268 exception.addContext(
"tt::Setup::checkHistory");
270 exception <<
"Current Configuration:" << endl << pSetProcess.
dump() << endl;
271 for (
const pair<string, ParameterSet>&
p : pSets)
273 exception <<
"Process " <<
p.first <<
" Configuration:" << endl <<
dumpDiff(
p.second, pSetProcess) << endl;
280 stringstream ssHistory, ssProcess,
ss;
281 ssHistory << pSetHistory.
dump();
282 ssProcess << pSetProcess.
dump();
283 string lineHistory, lineProcess;
284 for (; getline(ssHistory, lineHistory) && getline(ssProcess, lineProcess);)
285 ss << (lineHistory != lineProcess ?
"\033[1;31m" :
"") << lineHistory <<
"\033[0m" << endl;
313 const int dtcRegion = tfpRegion - dtcChannel >= 0 ? tfpRegion - dtcChannel : tfpRegion - dtcChannel +
numRegions_;
366 exception.addContext(
"tt::Setup::sensorModule");
375 return encodingsBend.at(windowSize);
384 <<
"Magnetic Field from EventSetup (" << bFieldES <<
") differs more then " <<
bFieldError_ 385 <<
" from supported value (" <<
bField_ <<
"). ";
397 const auto end = geomXMLFile.find(
sgXMLFile_);
398 if (begin != string::npos && end != string::npos)
399 version = geomXMLFile.substr(begin, end - begin - 1);
404 exception.addContext(
"tt::Setup::checkGeometry");
419 const auto& pSetsTiltedLayer =
pSetSA_->
getParameter<vector<ParameterSet>>(
"TiltedBarrelCutSet");
422 for (
const auto& pSet : pSetsTiltedLayer)
425 for (
const auto& pSet : pSetsEncapDisks)
429 for (
const auto& windows : windowss)
430 for (
const auto&
window : windows)
437 set<double> encoding;
438 for (
int bend = 0; bend <
window + 1; bend++)
440 encodings.emplace_back(encoding.begin(), encoding.end());
450 enum SubDetId { pixelBarrel = 1, pixelDisks = 2 };
454 if (detId.subdetId() == pixelBarrel || detId.subdetId() == pixelDisks)
481 exception.addContext(
"tt::Setup::Setup");
491 constexpr
double ptMax = 9.e9;
501 ptMin,
ptMax, -
etaMax,
etaMax,
tip,
lip,
minHit,
signalOnly,
intimeOnly,
chargedOnly,
stableOnly);
503 TrackingParticleSelector(
ptMin,
ptMax, -
etaMax,
etaMax,
tip,
lip,
minHit,
false,
false,
false,
stableOnly);
508 const DetId& detId = ttStubRef->getDetId();
525 const DetId& detId = ttStubRef->getDetId();
531 const DetId& detId = ttStubRef->getDetId();
538 for (
int layer =
numLayers_ - 1; layer >= 0; layer--) {
539 const int i =
ints[layer];
548 for (
int layer =
numLayers_ - 1; layer >= 0; layer--) {
549 const int i =
ints[layer];
559 for (
int layer = 0; layer <
numLayers_; layer++) {
561 ints[layer] =
i + (hitPattern[layer] ? 1 : 0);
570 for (
int layer = 0; layer <
numLayers_; layer++)
577 const DetId& detId = ttStubRef->getDetId();
580 const double sigma = sm->
pitchRow() / r;
584 const double dPhi = sigma + scat + extra + digi;
597 const DetId& detId = ttStubRef->getDetId();
601 const double dZ = sigma + digi;
606 <<
"is out of range " <<
mindZ_ <<
" to " <<
maxdZ_ <<
".";
614 const DetId& detId = ttStubRef->getDetId();
617 const double sigma =
pow(sm->
pitchRow() / r, 2) / 12.;
621 return sigma + scat + extra + digi;
626 const DetId& detId = ttStubRef->getDetId();
636 for (
const TTStubRef& ttStubRef : ttStubRefs)
637 hitPattern.insert(
layerId(ttStubRef));
644 const double cot = sinh(
tp.eta());
645 const double s =
sin(
tp.phi());
646 const double c =
cos(
tp.phi());
648 const double z0 =
v.z() - (
v.x() *
c +
v.y() *
s) * cot;
649 const double d0 =
v.x() *
s -
v.y() *
c;
693 const double rangePhi =
baseRegion_ + rangeInv2R * rangeR / 2.;
735 const double maxRangeInv2R =
max(rangeInv2R, hybridRangeInv2R);
770 if (
frame.first.isNull())
777 const bool side = gp.z() > 0.;
791 double z = bv.
val(baseZ, widthZ, 0,
true);
793 double r = bv.
val(baseR, widthR, 0,
barrel);
826 const MeasurementPoint& mp = ttStubRef->clusterRef(0)->findAverageLocalCoordinatesCentered();
834 exception.addContext(
"tt::Setup::checkDTCId");
845 exception.addContext(
"tt::Setup::checkTKLayoutId");
854 const bool oorRegion = tfpRegion >=
numRegions_ || tfpRegion < 0;
855 const bool oorChannel = tfpChannel >=
numDTCsPerTFP_ || tfpChannel < 0;
856 if (oorRegion || oorChannel) {
858 exception.addContext(
"tt::Setup::checkTFPIdentifier");
860 exception <<
"Requested Processing Region " 861 <<
"(" << tfpRegion <<
") " 862 <<
"is out of range 0 to " <<
numRegions_ - 1 <<
".";
865 <<
"(" << tfpChannel <<
") " Class for "official" algorithm to be used in TTStubBuilder.
const std::vector< SensorModule * > & dtcModules(int dtcId) const
constexpr int32_t ceil(float num)
void checkTKLayoutId(int tkLayoutId) const
double extract(double base, int size, bool twos=false)
std::string phTTStubAlgorithm_
T getParameter(std::string const &) const
double dZ(const TTStubRef &ttStubRef, double cot) const
edm::ParameterSetID pSetIdGeometryConfiguration_
void calculateConstants()
TrackingParticleSelector tpSelector_
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
Bit vector used by Track Trigger emulators. Mainly used to convert integers into arbitrary (within ma...
std::pair< TTStubRef, Frame > FrameStub
std::vector< double > boundariesEta_
static PFTauRenderPlugin instance
std::string phGeometryConfiguration_
const DetIdContainer & detIds() const override
Returm a vector of all GeomDet DetIds (including those of GeomDetUnits)
std::vector< double > hybridBasesZ_
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
double v1(const TTStubRef &ttStubRef, double cot) const
unsigned int tidWheel(const DetId &id) const
Sin< T >::type sin(const T &t)
bool exists(std::string const ¶meterName) const
checks if a parameter exists
ParameterSet const & getParameterSet(std::string const &) const
Global3DPoint GlobalPoint
const TrackerDetToDTCELinkCablingMap * cablingMap_
void checkDTCId(int dtcId) const
std::vector< double > hybridBasesAlpha_
std::vector< double > hybridRangesAlpha_
int tkLayoutId(int dtcId) const
TrackingParticleSelector tpSelectorLoose_
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
SensorModule::Type type(const TTStubRef &ttStubRef) const
bool useForAlgEff(const TrackingParticle &tp) const
edm::ParameterSetID pSetIdTTStubAlgorithm_
std::vector< int > hybridWidthsR_
void produceSensorModules()
unsigned int layer(const DetId &id) const
const std::vector< double > & encodingBend(int windowSize, bool psModule) const
double dPhi(const TTStubRef &ttStubRef, double inv2R) const
double hybridChosenRofPhi_
std::vector< double > hybridRangesR_
std::string dumpDiff(const edm::ParameterSet &pSetHistory, const edm::ParameterSet &pSetProcess) const
std::vector< double > hybridDiskZs_
math::XYZPointD Point
point in the space
std::unordered_map< DetId, SensorModule * > detIdToSensorModule_
double v0(const TTStubRef &ttStubRef, double inv2R) const
std::vector< double > hybridLayerRs_
const TrackerGeometry * trackerGeometry_
std::vector< double > hybridBasesPhi_
std::vector< std::vector< double > > encodingsBendPS_
std::vector< double > numTiltedLayerRings_
GlobalPoint stubPos(const TTStubRef &ttStubRef) const
int slot(int dtcId) const
std::vector< std::vector< double > > windowSizeTiltedLayerRings_
std::vector< double > hybridRangesZ_
ModuleType getDetectorType(DetId) const
std::vector< std::string > sgXMLVersions_
void encodeBend(std::vector< std::vector< double >> &, bool) const
Cos< T >::type cos(const T &t)
std::vector< double > hybridBasesR_
int layerId(const TTStubRef &ttStubRef) const
std::vector< int > hybridNumsUnusedBits_
Abs< T >::type abs(const T &t)
bool reconstructable(const std::vector< TTStubRef > &ttStubRefs) const
double stubR(const TTBV &hw, const TTStubRef &ttStubRef) const
float degradeBend(bool psModule, int window, int bend) const
std::vector< std::vector< double > > encodingsBend2S_
def window(xmin, xmax, ymin, ymax, x=0, y=0, width=100, height=100, xlogbase=None, ylogbase=None, minusInfinity=-1000, flipx=False, flipy=True)
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
std::vector< SensorModule > sensorModules_
static constexpr auto TOB
double hybridRangeR() const
std::vector< double > sectorCots_
bool gbps10(int dtcId) const
void checkTFPIdentifier(int tfpRegion, int tfpChannel) const
const edm::ParameterSet * pSetGC_
void consumeStubAlgorithm()
int numOverlappingRegions_
std::vector< std::vector< double > > windowSizeEndcapDisksRings_
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
std::vector< int > hybridWidthsAlpha_
void checkHistory(const edm::ProcessHistory &processHistory) const
static constexpr float d0
bool isLower(const DetId &id) const
bool psModule(int dtcId) const
std::vector< edm::ParameterSet > hybridDisk2SRsSet_
double tiltCorrection(double cot) const
std::vector< int > hybridWidthsZ_
std::vector< double > windowSizeBarrelLayers_
int dtcNumModulesPerRoutingBlock_
void checkMagneticField()
ParameterSet const & getParameterSet(ParameterSetID const &id)
TTBV layerMap(const std::vector< int > &ints) const
int trackletLayerId(const TTStubRef &ttStubRef) const
const StubAlgorithmOfficial * stubAlgorithm_
std::string dump(unsigned int indent=0) const
std::pair< std::unordered_multimap< uint32_t, DTCELinkId >::const_iterator, std::unordered_multimap< uint32_t, DTCELinkId >::const_iterator > detIdToDTCELinkId(uint32_t const) const
Resolves one or more DTCELinkId of eLinks which are connected to the detector identified by the given...
bool side(int dtcId) const
double deltaPhi(double lhs, double rhs=0.)
Monte Carlo truth information used for tracking validation.
std::vector< std::vector< SensorModule * > > dtcModules_
int indexLayerId(const TTStubRef &ttStubRef) const
Log< level::Warning, false > LogWarning
int dtcId(int tklId) const
const MagneticField * magneticField_
SensorModule * sensorModule(const DetId &detId) const
SingleObjectSelector< TrackingParticleCollection, ::TrackingParticleSelector > TrackingParticleSelector
std::vector< int > hybridWidthsPhi_
const edm::ParameterSet * pSetSA_
bool barrel(const TTStubRef &ttStubRef) const
void configureTPSelector()
Power< A, B >::type pow(const A &a, const B &b)
ROOT::VecOps::RVec< int > ints
const TrackerTopology * trackerTopology_
bool configurationSupported_
std::vector< int > hybridWidthsBend_
std::vector< std::vector< double > > disk2SRs_