17 namespace trackerDTC {
29 : magneticField_(&magneticField),
30 trackerGeometry_(&trackerGeometry),
31 trackerTopology_(&trackerTopology),
32 cablingMap_(&cablingMap),
33 stubAlgorithm_(&stubAlgorithm),
34 pSetSA_(&pSetStubAlgorithm),
35 pSetGC_(&pSetGeometryConfiguration),
36 pSetIdTTStubAlgorithm_(pSetIdTTStubAlgorithm),
37 pSetIdGeometryConfiguration_(pSetIdGeometryConfiguration),
39 fromDD4hep_(iConfig.getParameter<bool>(
"fromDD4hep")),
41 pSetSG_(iConfig.getParameter<
ParameterSet>(
"SupportedGeometry")),
42 sgXMLLabel_(pSetSG_.getParameter<
string>(
"XMLLabel")),
43 sgXMLPath_(pSetSG_.getParameter<
string>(
"XMLPath")),
44 sgXMLFile_(pSetSG_.getParameter<
string>(
"XMLFile")),
45 sgXMLVersions_(pSetSG_.getParameter<
vector<
string>>(
"XMLVersions")),
47 pSetPH_(iConfig.getParameter<
ParameterSet>(
"ProcessHistory")),
48 phGeometryConfiguration_(pSetPH_.getParameter<
string>(
"GeometryConfiguration")),
49 phTTStubAlgorithm_(pSetPH_.getParameter<
string>(
"TTStubAlgorithm")),
51 pSetTF_(iConfig.getParameter<
ParameterSet>(
"TrackFinding")),
52 beamWindowZ_(pSetTF_.getParameter<double>(
"BeamWindowZ")),
53 matchedLayers_(pSetTF_.getParameter<int>(
"MatchedLayers")),
54 matchedLayersPS_(pSetTF_.getParameter<int>(
"MatchedLayersPS")),
55 unMatchedStubs_(pSetTF_.getParameter<int>(
"UnMatchedStubs")),
56 unMatchedStubsPS_(pSetTF_.getParameter<int>(
"UnMatchedStubsPS")),
59 minPt_(pSetTMTT_.getParameter<double>(
"MinPt")),
60 maxEta_(pSetTMTT_.getParameter<double>(
"MaxEta")),
61 chosenRofPhi_(pSetTMTT_.getParameter<double>(
"ChosenRofPhi")),
62 numLayers_(pSetTMTT_.getParameter<int>(
"NumLayers")),
63 widthR_(pSetTMTT_.getParameter<int>(
"WidthR")),
64 widthPhi_(pSetTMTT_.getParameter<int>(
"WidthPhi")),
65 widthZ_(pSetTMTT_.getParameter<int>(
"WidthZ")),
67 pSetHybrid_(iConfig.getParameter<
ParameterSet>(
"Hybrid")),
68 hybridMinPt_(pSetHybrid_.getParameter<double>(
"MinPt")),
69 hybridMaxEta_(pSetHybrid_.getParameter<double>(
"MaxEta")),
70 hybridChosenRofPhi_(pSetHybrid_.getParameter<double>(
"ChosenRofPhi")),
71 hybridNumLayers_(pSetHybrid_.getParameter<int>(
"NumLayers")),
72 hybridNumRingsPS_(pSetHybrid_.getParameter<
vector<int>>(
"NumRingsPS")),
73 hybridWidthsR_(pSetHybrid_.getParameter<
vector<int>>(
"WidthsR")),
74 hybridWidthsZ_(pSetHybrid_.getParameter<
vector<int>>(
"WidthsZ")),
75 hybridWidthsPhi_(pSetHybrid_.getParameter<
vector<int>>(
"WidthsPhi")),
76 hybridWidthsAlpha_(pSetHybrid_.getParameter<
vector<int>>(
"WidthsAlpha")),
77 hybridWidthsBend_(pSetHybrid_.getParameter<
vector<int>>(
"WidthsBend")),
78 hybridRangesR_(pSetHybrid_.getParameter<
vector<double>>(
"RangesR")),
79 hybridRangesZ_(pSetHybrid_.getParameter<
vector<double>>(
"RangesZ")),
80 hybridRangesAlpha_(pSetHybrid_.getParameter<
vector<double>>(
"RangesAlpha")),
81 hybridLayerRs_(pSetHybrid_.getParameter<
vector<double>>(
"LayerRs")),
82 hybridDiskZs_(pSetHybrid_.getParameter<
vector<double>>(
"DiskZs")),
85 pSetTP_(iConfig.getParameter<
ParameterSet>(
"TrackingParticle")),
86 tpMaxEta_(pSetTP_.getParameter<double>(
"MaxEta")),
87 tpMaxVertR_(pSetTP_.getParameter<double>(
"MaxVertR")),
88 tpMaxVertZ_(pSetTP_.getParameter<double>(
"MaxVertZ")),
89 tpMaxD0_(pSetTP_.getParameter<double>(
"MaxD0")),
90 tpMinLayers_(pSetTP_.getParameter<int>(
"MinLayers")),
91 tpMinLayersPS_(pSetTP_.getParameter<int>(
"MinLayersPS")),
94 numFramesInfra_(pSetFW_.getParameter<int>(
"NumFramesInfra")),
95 freqLHC_(pSetFW_.getParameter<double>(
"FreqLHC")),
96 freqBE_(pSetFW_.getParameter<double>(
"FreqBE")),
97 tmpFE_(pSetFW_.getParameter<int>(
"TMP_FE")),
98 tmpTFP_(pSetFW_.getParameter<int>(
"TMP_TFP")),
99 speedOfLight_(pSetFW_.getParameter<double>(
"SpeedOfLight")),
100 bField_(pSetFW_.getParameter<double>(
"BField")),
101 bFieldError_(pSetFW_.getParameter<double>(
"BFieldError")),
102 outerRadius_(pSetFW_.getParameter<double>(
"OuterRadius")),
103 innerRadius_(pSetFW_.getParameter<double>(
"InnerRadius")),
104 halfLength_(pSetFW_.getParameter<double>(
"HalfLength")),
105 maxPitch_(pSetFW_.getParameter<double>(
"MaxPitch")),
107 pSetFE_(iConfig.getParameter<
ParameterSet>(
"FrontEnd")),
108 widthBend_(pSetFE_.getParameter<int>(
"WidthBend")),
109 widthCol_(pSetFE_.getParameter<int>(
"WidthCol")),
110 widthRow_(pSetFE_.getParameter<int>(
"WidthRow")),
111 baseBend_(pSetFE_.getParameter<double>(
"BaseBend")),
112 baseCol_(pSetFE_.getParameter<double>(
"BaseCol")),
113 baseRow_(pSetFE_.getParameter<double>(
"BaseRow")),
114 baseWindowSize_(pSetFE_.getParameter<double>(
"BaseWindowSize")),
115 bendCut_(pSetFE_.getParameter<double>(
"BendCut")),
118 numRegions_(pSetDTC_.getParameter<int>(
"NumRegions")),
119 numOverlappingRegions_(pSetDTC_.getParameter<int>(
"NumOverlappingRegions")),
120 numATCASlots_(pSetDTC_.getParameter<int>(
"NumATCASlots")),
121 numDTCsPerRegion_(pSetDTC_.getParameter<int>(
"NumDTCsPerRegion")),
122 numModulesPerDTC_(pSetDTC_.getParameter<int>(
"NumModulesPerDTC")),
123 dtcNumRoutingBlocks_(pSetDTC_.getParameter<int>(
"NumRoutingBlocks")),
124 dtcDepthMemory_(pSetDTC_.getParameter<int>(
"DepthMemory")),
125 dtcWidthRowLUT_(pSetDTC_.getParameter<int>(
"WidthRowLUT")),
126 dtcWidthQoverPt_(pSetDTC_.getParameter<int>(
"WidthQoverPt")),
127 offsetDetIdDSV_(pSetDTC_.getParameter<int>(
"OffsetDetIdDSV")),
128 offsetDetIdTP_(pSetDTC_.getParameter<int>(
"OffsetDetIdTP")),
129 offsetLayerDisks_(pSetDTC_.getParameter<int>(
"OffsetLayerDisks")),
130 offsetLayerId_(pSetDTC_.getParameter<int>(
"OffsetLayerId")),
132 pSetGP_(iConfig.getParameter<
ParameterSet>(
"GeometricProcessor")),
133 numSectorsPhi_(pSetGP_.getParameter<int>(
"NumSectorsPhi")),
134 chosenRofZ_(pSetGP_.getParameter<double>(
"ChosenRofZ")),
135 neededRangeChiZ_(pSetGP_.getParameter<double>(
"RangeChiZ")),
136 gpDepthMemory_(pSetGP_.getParameter<int>(
"DepthMemory")),
137 boundariesEta_(pSetGP_.getParameter<
vector<double>>(
"BoundariesEta")),
139 pSetHT_(iConfig.getParameter<
ParameterSet>(
"HoughTransform")),
140 htNumBinsQoverPt_(pSetHT_.getParameter<int>(
"NumBinsQoverPt")),
141 htNumBinsPhiT_(pSetHT_.getParameter<int>(
"NumBinsPhiT")),
142 htMinLayers_(pSetHT_.getParameter<int>(
"MinLayers")),
143 htDepthMemory_(pSetHT_.getParameter<int>(
"DepthMemory")),
145 pSetMHT_(iConfig.getParameter<
ParameterSet>(
"MiniHoughTransform")),
146 mhtNumBinsQoverPt_(pSetMHT_.getParameter<int>(
"NumBinsQoverPt")),
147 mhtNumBinsPhiT_(pSetMHT_.getParameter<int>(
"NumBinsPhiT")),
148 mhtNumDLB_(pSetMHT_.getParameter<int>(
"NumDLB")),
149 mhtMinLayers_(pSetMHT_.getParameter<int>(
"MinLayers")),
151 pSetSF_(iConfig.getParameter<
ParameterSet>(
"SeedFilter")),
152 sfPowerBaseCot_(pSetSF_.getParameter<int>(
"PowerBaseCot")),
153 sfBaseDiffZ_(pSetSF_.getParameter<int>(
"BaseDiffZ")),
154 sfMinLayers_(pSetSF_.getParameter<int>(
"MinLayers")),
156 pSetKF_(iConfig.getParameter<
ParameterSet>(
"KalmanFilter")),
157 kfWidthLutInvPhi_(pSetKF_.getParameter<int>(
"WidthLutInvPhi")),
158 kfWidthLutInvZ_(pSetKF_.getParameter<int>(
"WidthLutInvZ")),
159 kfNumTracks_(pSetKF_.getParameter<int>(
"NumTracks")),
160 kfMinLayers_(pSetKF_.getParameter<int>(
"MinLayers")),
161 kfMaxLayers_(pSetKF_.getParameter<int>(
"MaxLayers")),
162 kfMaxStubsPerLayer_(pSetKF_.getParameter<int>(
"MaxStubsPerLayer")),
163 kfMaxSkippedLayers_(pSetKF_.getParameter<int>(
"MaxSkippedLayers")),
164 kfBaseShiftr0_(pSetKF_.getParameter<int>(
"BaseShiftr0")),
165 kfBaseShiftr02_(pSetKF_.getParameter<int>(
"BaseShiftr02")),
166 kfBaseShiftv0_(pSetKF_.getParameter<int>(
"BaseShiftv0")),
167 kfBaseShiftS00_(pSetKF_.getParameter<int>(
"BaseShiftS00")),
168 kfBaseShiftS01_(pSetKF_.getParameter<int>(
"BaseShiftS01")),
169 kfBaseShiftK00_(pSetKF_.getParameter<int>(
"BaseShiftK00")),
170 kfBaseShiftK10_(pSetKF_.getParameter<int>(
"BaseShiftK10")),
171 kfBaseShiftR00_(pSetKF_.getParameter<int>(
"BaseShiftR00")),
172 kfBaseShiftInvR00_(pSetKF_.getParameter<int>(
"BaseShiftInvR00")),
173 kfBaseShiftChi20_(pSetKF_.getParameter<int>(
"BaseShiftChi20")),
174 kfBaseShiftC00_(pSetKF_.getParameter<int>(
"BaseShiftC00")),
175 kfBaseShiftC01_(pSetKF_.getParameter<int>(
"BaseShiftC01")),
176 kfBaseShiftC11_(pSetKF_.getParameter<int>(
"BaseShiftC11")),
177 kfBaseShiftr1_(pSetKF_.getParameter<int>(
"BaseShiftr1")),
178 kfBaseShiftr12_(pSetKF_.getParameter<int>(
"BaseShiftr12")),
179 kfBaseShiftv1_(pSetKF_.getParameter<int>(
"BaseShiftv1")),
180 kfBaseShiftS12_(pSetKF_.getParameter<int>(
"BaseShiftS12")),
181 kfBaseShiftS13_(pSetKF_.getParameter<int>(
"BaseShiftS13")),
182 kfBaseShiftK21_(pSetKF_.getParameter<int>(
"BaseShiftK21")),
183 kfBaseShiftK31_(pSetKF_.getParameter<int>(
"BaseShiftK31")),
184 kfBaseShiftR11_(pSetKF_.getParameter<int>(
"BaseShiftR11")),
185 kfBaseShiftInvR11_(pSetKF_.getParameter<int>(
"BaseShiftInvR11")),
186 kfBaseShiftChi21_(pSetKF_.getParameter<int>(
"BaseShiftChi21")),
187 kfBaseShiftC22_(pSetKF_.getParameter<int>(
"BaseShiftC22")),
188 kfBaseShiftC23_(pSetKF_.getParameter<int>(
"BaseShiftC23")),
189 kfBaseShiftC33_(pSetKF_.getParameter<int>(
"BaseShiftC33")),
190 kfBaseShiftChi2_(pSetKF_.getParameter<int>(
"BaseShiftChi2")),
192 pSetDR_(iConfig.getParameter<
ParameterSet>(
"DuplicateRemoval")),
193 drDepthMemory_(pSetDR_.getParameter<int>(
"DepthMemory")),
194 drWidthPhi0_(pSetDR_.getParameter<int>(
"WidthPhi0")),
195 drWidthQoverPt_(pSetDR_.getParameter<int>(
"WidthQoverPt")),
196 drWidthCot_(pSetDR_.getParameter<int>(
"WidthCot")),
197 drWidthZ0_(pSetDR_.getParameter<int>(
"WidthZ0")) {
235 vector<pair<string, ParameterSet>> pSets;
236 pSets.reserve(ph.
size());
239 if (pSet && pSet->
exists(label))
244 exception << label <<
" not found in process history.";
245 exception.addContext(
"tt::Setup::checkHistory");
248 auto consistent = [&pSetId](
const pair<string, ParameterSet>&
p) {
return p.second.id() == pSetId; };
249 if (!all_of(pSets.begin(), pSets.end(), consistent)) {
252 exception.addContext(
"tt::Setup::checkHistory");
253 exception << label <<
" inconsistent with History." << endl;
254 exception <<
"Current Configuration:" << endl << pSetProcess.
dump() << endl;
255 for (
const pair<string, ParameterSet>&
p : pSets)
257 exception <<
"Process " <<
p.first <<
" Configuration:" << endl <<
dumpDiff(
p.second, pSetProcess) << endl;
264 stringstream ssHistory, ssProcess,
ss;
265 ssHistory << pSetHistory.
dump();
266 ssProcess << pSetProcess.
dump();
267 string lineHistory, lineProcess;
268 for (; getline(ssHistory, lineHistory) && getline(ssProcess, lineProcess);)
269 ss << (lineHistory != lineProcess ?
"\033[1;31m" :
"") << lineHistory <<
"\033[0m" << endl;
276 const int tkId = tkLayoutId - 1;
297 const int dtcRegion = tfpRegion - dtcChannel >= 0 ? tfpRegion - dtcChannel : tfpRegion - dtcChannel +
numRegions_;
327 exception <<
"Unknown DetId used.";
328 exception.
addContext(
"tt::Setup::sensorModule");
337 return encodingsBend.at(windowSize);
352 <<
"Magnetic Field from EventSetup (" << bFieldES <<
") differs more then " <<
bFieldError_
353 <<
" from supported value (" <<
bField_ <<
"). ";
363 for (
const string& geomXMLFile : geomXMLFiles) {
366 if (
begin != string::npos &&
end != string::npos)
369 if (version.empty()) {
372 exception.
addContext(
"tt::Setup::checkGeometry");
378 <<
"Geometry Configuration " <<
sgXMLPath_ << version <<
"/" <<
sgXMLFile_ <<
" is not supported. ";
387 const auto& pSetsTiltedLayer =
pSetSA_->
getParameter<vector<ParameterSet>>(
"TiltedBarrelCutSet");
390 for (
const auto& pSet : pSetsTiltedLayer)
393 for (
const auto& pSet : pSetsEncapDisks)
397 for (
const auto& windows : windowss)
398 for (
const auto&
window : windows)
405 set<double> encoding;
406 for (
int bend = 0; bend <
window + 1; bend++)
408 encodings.emplace_back(encoding.begin(), encoding.end());
414 vector<vector<DTCELinkId>> dtcELinkIds(
numDTCs_);
415 for (vector<DTCELinkId>& dtcELinkId : dtcELinkIds)
422 const int dtcId =
region * numDTCsPerRegion_ + dtcBoard;
423 for (
const DTCELinkId& dtcLinkId : dtcELinkIds[dtcId]) {
428 encodingLayerId.insert(layerId);
434 exception <<
"Cabling map connects more than " <<
hybridNumLayers_ <<
" layers to a DTC.";
465 sensorModules_.emplace_back(*
this, detId, dtcId, dtcModules.size());
470 dtcModules.push_back(sensorModule);
472 for (vector<SensorModule*>&
dtcModules : dtcModules_) {
477 exception <<
"Cabling map connects more than " <<
numModulesPerDTC_ <<
" modules to a DTC.";
511 const int baseShiftR =
ceil(log2(rangeR / baseRgen /
pow(2.,
widthR_)));
524 const double hybridRangeR =
526 const double hybridRangePhi =
baseRegion_ + hybridRangeR * hybridRangeQoverPt / 2.;
556 const double maxRangeQoverPt =
max(rangeQoverPt, hybridRangeQoverPt);
622 if (frame.first.isNull())
624 TTBV bv(frame.second);
626 const DetId& detId = frame.first->getDetId();
634 if (barrel && psModule)
636 if (barrel && !psModule)
638 if (!barrel && psModule)
640 if (!barrel && !psModule)
652 double phi = (bv.
val(widthPhi, 0,
true) + .5) *
basePhi;
654 double z = (bv.
val(widthZ, 0,
true) + .5) *
baseZ;
656 double r = (bv.
val(widthR, 0, barrel) + .5) *
baseR;
690 const MeasurementPoint& mp = ttStubRef->clusterRef(0)->findAverageLocalCoordinatesCentered();
698 exception.
addContext(
"trackerDTC::Setup::checkDTCId");
699 exception <<
"Used DTC Id (" << dtcId <<
") "
709 exception.
addContext(
"trackerDTC::Setup::checkTKLayoutId");
710 exception <<
"Used TKLayout Id (" << tkLayoutId <<
") "
718 const bool oorRegion = tfpRegion >=
numRegions_ || tfpRegion < 0;
719 const bool oorChannel = tfpChannel >=
numDTCsPerTFP_ || tfpChannel < 0;
720 if (oorRegion || oorChannel) {
722 exception.
addContext(
"trackerDTC::Setup::checkTFPIdentifier");
724 exception <<
"Requested Processing Region "
725 <<
"(" << tfpRegion <<
") "
726 <<
"is out of range 0 to " <<
numRegions_ - 1 <<
".";
728 exception <<
"Requested TFP Channel "
729 <<
"(" << tfpChannel <<
") "
Class for "official" algorithm to be used in TTStubBuilder.
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
void checkMagneticField()
constexpr int32_t ceil(float num)
std::vector< std::vector< double > > windowSizeEndcapDisksRings_
std::vector< int > hybridNumsUnusedBits_
std::string dumpDiff(const edm::ParameterSet &pSetHistory, const edm::ParameterSet &pSetProcess) const
const std::vector< double > & encodingBend(int windowSize, bool psModule) const
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
std::string phGeometryConfiguration_
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
std::vector< std::vector< double > > disk2SRs_
std::vector< int > hybridWidthsR_
const TrackerTopology * trackerTopology_
bool side(int dtcId) const
Bit vector used by Track Trigger emulators. Mainly used to convert integers into arbitrary (within ma...
edm::ParameterSetID pSetIdGeometryConfiguration_
std::string dump(unsigned int indent=0) const
static PFTauRenderPlugin instance
std::vector< edm::ParameterSet > hybridDisk2SRsSet_
double hybridChosenRofPhi_
const DetIdContainer & detIds() const override
Returm a vector of all GeomDet DetIds (including those of GeomDetUnits)
int tkLayoutId(int dtcId) const
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
std::vector< int > hybridWidthsZ_
std::vector< double > boundariesEta_
float degradeBend(bool psModule, int window, int bend) const
ParameterSet const & getParameterSet(ParameterSetID const &id)
std::vector< double > hybridLayerRs_
Global3DPoint GlobalPoint
std::vector< std::vector< SensorModule * > > dtcModules_
std::vector< double > hybridDiskZs_
bool exists(std::string const ¶meterName) const
checks if a parameter exists
std::string phTTStubAlgorithm_
unsigned int tidWheel(const DetId &id) const
std::unordered_map< DTCELinkId, uint32_t >::const_iterator dtcELinkIdToDetId(DTCELinkId const &) const
Resolves the raw DetId of the detector connected to the eLink identified by a DTCELinkId.
std::unordered_map< DetId, SensorModule * > detIdToSensorModule_
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
void encodeBend(std::vector< std::vector< double >> &, bool) const
std::vector< double > hybridRangesAlpha_
std::vector< DTCELinkId > getKnownDTCELinkIds() const
Returns a vector containing all elink DTCELinkId nown to the map.
std::vector< int > hybridWidthsPhi_
const StubAlgorithmOfficial * stubAlgorithm_
const TrackerDetToDTCELinkCablingMap * cablingMap_
double deltaPhi(double lhs, double rhs=0.)
GlobalPoint stubPos(bool hybrid, const TTDTC::Frame &frame, int tfpRegion, int tfpChannel) const
bool isLower(const DetId &id) const
std::vector< std::string > sgXMLVersions_
int slot(int dtcId) const
std::vector< std::vector< double > > encodingsBendPS_
const std::vector< int > & encodingLayerId(int tfpChannel) const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
Abs< T >::type abs(const T &t)
void checkTFPIdentifier(int tfpRegion, int tfpChannel) const
bool getMapped(key_type const &k, value_type &result) const
void checkTKLayoutId(int tkLayoutId) const
int numOverlappingRegions_
const edm::ParameterSet * pSetGC_
static constexpr auto TOB
std::vector< int > hybridWidthsAlpha_
const MagneticField * magneticField_
std::vector< double > hybridBasesAlpha_
int dtcId(int tklId) const
void consumeStubAlgorithm()
bool configurationSupported_
std::vector< int > hybridWidthsBend_
std::vector< double > hybridBasesZ_
std::pair< TTStubRef, BV > Frame
std::vector< double > hybridRangesR_
std::vector< SensorModule > sensorModules_
ParameterSet const & getParameterSet(std::string const &) const
bool psModule(int dtcId) const
SensorModule * sensorModule(const DetId &detId) const
void produceSensorModules()
std::vector< std::vector< int > > encodingsLayerId_
T getParameter(std::string const &) const
std::vector< double > hybridBasesPhi_
void addContext(std::string const &context)
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...
std::vector< double > windowSizeBarrelLayers_
std::vector< double > numTiltedLayerRings_
void checkDTCId(int dtcId) const
unsigned int layer(const DetId &id) const
deadvectors[0] push_back({0.0175431, 0.538005, 6.80997, 13.29})
std::vector< double > hybridBasesR_
std::vector< std::vector< double > > windowSizeTiltedLayerRings_
std::vector< std::vector< double > > encodingsBend2S_
const edm::ParameterSet * pSetSA_
std::vector< double > hybridRangesZ_
const std::vector< SensorModule * > & dtcModules(int dtcId) const
edm::ParameterSetID pSetIdTTStubAlgorithm_
int dtcNumModulesPerRoutingBlock_
Log< level::Warning, false > LogWarning
void checkHistory(const edm::ProcessHistory &processHistory) const
Power< A, B >::type pow(const A &a, const B &b)
void calculateConstants()
const TrackerGeometry * trackerGeometry_