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 pSetSG_(iConfig.getParameter<
ParameterSet>(
"SupportedGeometry")),
40 sgXMLLabel_(pSetSG_.getParameter<
string>(
"XMLLabel")),
41 sgXMLPath_(pSetSG_.getParameter<
string>(
"XMLPath")),
42 sgXMLFile_(pSetSG_.getParameter<
string>(
"XMLFile")),
43 sgXMLVersions_(pSetSG_.getParameter<
vector<
string>>(
"XMLVersions")),
45 pSetPH_(iConfig.getParameter<
ParameterSet>(
"ProcessHistory")),
46 phGeometryConfiguration_(pSetPH_.getParameter<
string>(
"GeometryConfiguration")),
47 phTTStubAlgorithm_(pSetPH_.getParameter<
string>(
"TTStubAlgorithm")),
49 pSetTF_(iConfig.getParameter<
ParameterSet>(
"TrackFinding")),
50 beamWindowZ_(pSetTF_.getParameter<double>(
"BeamWindowZ")),
51 matchedLayers_(pSetTF_.getParameter<int>(
"MatchedLayers")),
52 matchedLayersPS_(pSetTF_.getParameter<int>(
"MatchedLayersPS")),
53 unMatchedStubs_(pSetTF_.getParameter<int>(
"UnMatchedStubs")),
54 unMatchedStubsPS_(pSetTF_.getParameter<int>(
"UnMatchedStubsPS")),
57 minPt_(pSetTMTT_.getParameter<double>(
"MinPt")),
58 maxEta_(pSetTMTT_.getParameter<double>(
"MaxEta")),
59 chosenRofPhi_(pSetTMTT_.getParameter<double>(
"ChosenRofPhi")),
60 numLayers_(pSetTMTT_.getParameter<int>(
"NumLayers")),
61 widthR_(pSetTMTT_.getParameter<int>(
"WidthR")),
62 widthPhi_(pSetTMTT_.getParameter<int>(
"WidthPhi")),
63 widthZ_(pSetTMTT_.getParameter<int>(
"WidthZ")),
65 pSetHybrid_(iConfig.getParameter<
ParameterSet>(
"Hybrid")),
66 hybridMinPt_(pSetHybrid_.getParameter<double>(
"MinPt")),
67 hybridMaxEta_(pSetHybrid_.getParameter<double>(
"MaxEta")),
68 hybridChosenRofPhi_(pSetHybrid_.getParameter<double>(
"ChosenRofPhi")),
69 hybridNumLayers_(pSetHybrid_.getParameter<int>(
"NumLayers")),
70 hybridNumRingsPS_(pSetHybrid_.getParameter<
vector<int>>(
"NumRingsPS")),
71 hybridWidthsR_(pSetHybrid_.getParameter<
vector<int>>(
"WidthsR")),
72 hybridWidthsZ_(pSetHybrid_.getParameter<
vector<int>>(
"WidthsZ")),
73 hybridWidthsPhi_(pSetHybrid_.getParameter<
vector<int>>(
"WidthsPhi")),
74 hybridWidthsAlpha_(pSetHybrid_.getParameter<
vector<int>>(
"WidthsAlpha")),
75 hybridWidthsBend_(pSetHybrid_.getParameter<
vector<int>>(
"WidthsBend")),
76 hybridRangesR_(pSetHybrid_.getParameter<
vector<double>>(
"RangesR")),
77 hybridRangesZ_(pSetHybrid_.getParameter<
vector<double>>(
"RangesZ")),
78 hybridRangesAlpha_(pSetHybrid_.getParameter<
vector<double>>(
"RangesAlpha")),
79 hybridLayerRs_(pSetHybrid_.getParameter<
vector<double>>(
"LayerRs")),
80 hybridDiskZs_(pSetHybrid_.getParameter<
vector<double>>(
"DiskZs")),
83 pSetTP_(iConfig.getParameter<
ParameterSet>(
"TrackingParticle")),
84 tpMaxEta_(pSetTP_.getParameter<double>(
"MaxEta")),
85 tpMaxVertR_(pSetTP_.getParameter<double>(
"MaxVertR")),
86 tpMaxVertZ_(pSetTP_.getParameter<double>(
"MaxVertZ")),
87 tpMaxD0_(pSetTP_.getParameter<double>(
"MaxD0")),
88 tpMinLayers_(pSetTP_.getParameter<int>(
"MinLayers")),
89 tpMinLayersPS_(pSetTP_.getParameter<int>(
"MinLayersPS")),
92 numFramesInfra_(pSetFW_.getParameter<int>(
"NumFramesInfra")),
93 freqLHC_(pSetFW_.getParameter<double>(
"FreqLHC")),
94 freqBE_(pSetFW_.getParameter<double>(
"FreqBE")),
95 tmpFE_(pSetFW_.getParameter<int>(
"TMP_FE")),
96 tmpTFP_(pSetFW_.getParameter<int>(
"TMP_TFP")),
97 speedOfLight_(pSetFW_.getParameter<double>(
"SpeedOfLight")),
98 bField_(pSetFW_.getParameter<double>(
"BField")),
99 bFieldError_(pSetFW_.getParameter<double>(
"BFieldError")),
100 outerRadius_(pSetFW_.getParameter<double>(
"OuterRadius")),
101 innerRadius_(pSetFW_.getParameter<double>(
"InnerRadius")),
102 halfLength_(pSetFW_.getParameter<double>(
"HalfLength")),
103 maxPitch_(pSetFW_.getParameter<double>(
"MaxPitch")),
105 pSetFE_(iConfig.getParameter<
ParameterSet>(
"FrontEnd")),
106 widthBend_(pSetFE_.getParameter<int>(
"WidthBend")),
107 widthCol_(pSetFE_.getParameter<int>(
"WidthCol")),
108 widthRow_(pSetFE_.getParameter<int>(
"WidthRow")),
109 baseBend_(pSetFE_.getParameter<double>(
"BaseBend")),
110 baseCol_(pSetFE_.getParameter<double>(
"BaseCol")),
111 baseRow_(pSetFE_.getParameter<double>(
"BaseRow")),
112 baseWindowSize_(pSetFE_.getParameter<double>(
"BaseWindowSize")),
113 bendCut_(pSetFE_.getParameter<double>(
"BendCut")),
116 numRegions_(pSetDTC_.getParameter<int>(
"NumRegions")),
117 numOverlappingRegions_(pSetDTC_.getParameter<int>(
"NumOverlappingRegions")),
118 numATCASlots_(pSetDTC_.getParameter<int>(
"NumATCASlots")),
119 numDTCsPerRegion_(pSetDTC_.getParameter<int>(
"NumDTCsPerRegion")),
120 numModulesPerDTC_(pSetDTC_.getParameter<int>(
"NumModulesPerDTC")),
121 dtcNumRoutingBlocks_(pSetDTC_.getParameter<int>(
"NumRoutingBlocks")),
122 dtcDepthMemory_(pSetDTC_.getParameter<int>(
"DepthMemory")),
123 dtcWidthRowLUT_(pSetDTC_.getParameter<int>(
"WidthRowLUT")),
124 dtcWidthQoverPt_(pSetDTC_.getParameter<int>(
"WidthQoverPt")),
125 offsetDetIdDSV_(pSetDTC_.getParameter<int>(
"OffsetDetIdDSV")),
126 offsetDetIdTP_(pSetDTC_.getParameter<int>(
"OffsetDetIdTP")),
127 offsetLayerDisks_(pSetDTC_.getParameter<int>(
"OffsetLayerDisks")),
128 offsetLayerId_(pSetDTC_.getParameter<int>(
"OffsetLayerId")),
130 pSetGP_(iConfig.getParameter<
ParameterSet>(
"GeometricProcessor")),
131 numSectorsPhi_(pSetGP_.getParameter<int>(
"NumSectorsPhi")),
132 chosenRofZ_(pSetGP_.getParameter<double>(
"ChosenRofZ")),
133 neededRangeChiZ_(pSetGP_.getParameter<double>(
"RangeChiZ")),
134 gpDepthMemory_(pSetGP_.getParameter<int>(
"DepthMemory")),
135 boundariesEta_(pSetGP_.getParameter<
vector<double>>(
"BoundariesEta")),
137 pSetHT_(iConfig.getParameter<
ParameterSet>(
"HoughTransform")),
138 htNumBinsQoverPt_(pSetHT_.getParameter<int>(
"NumBinsQoverPt")),
139 htNumBinsPhiT_(pSetHT_.getParameter<int>(
"NumBinsPhiT")),
140 htMinLayers_(pSetHT_.getParameter<int>(
"MinLayers")),
141 htDepthMemory_(pSetHT_.getParameter<int>(
"DepthMemory")),
143 pSetMHT_(iConfig.getParameter<
ParameterSet>(
"MiniHoughTransform")),
144 mhtNumBinsQoverPt_(pSetMHT_.getParameter<int>(
"NumBinsQoverPt")),
145 mhtNumBinsPhiT_(pSetMHT_.getParameter<int>(
"NumBinsPhiT")),
146 mhtNumDLB_(pSetMHT_.getParameter<int>(
"NumDLB")),
147 mhtMinLayers_(pSetMHT_.getParameter<int>(
"MinLayers")),
149 pSetSF_(iConfig.getParameter<
ParameterSet>(
"SeedFilter")),
150 sfPowerBaseCot_(pSetSF_.getParameter<int>(
"PowerBaseCot")),
151 sfBaseDiffZ_(pSetSF_.getParameter<int>(
"BaseDiffZ")),
152 sfMinLayers_(pSetSF_.getParameter<int>(
"MinLayers")),
154 pSetKF_(iConfig.getParameter<
ParameterSet>(
"KalmanFilter")),
155 kfWidthLutInvPhi_(pSetKF_.getParameter<int>(
"WidthLutInvPhi")),
156 kfWidthLutInvZ_(pSetKF_.getParameter<int>(
"WidthLutInvZ")),
157 kfNumTracks_(pSetKF_.getParameter<int>(
"NumTracks")),
158 kfMinLayers_(pSetKF_.getParameter<int>(
"MinLayers")),
159 kfMaxLayers_(pSetKF_.getParameter<int>(
"MaxLayers")),
160 kfMaxStubsPerLayer_(pSetKF_.getParameter<int>(
"MaxStubsPerLayer")),
161 kfMaxSkippedLayers_(pSetKF_.getParameter<int>(
"MaxSkippedLayers")),
162 kfBaseShiftr0_(pSetKF_.getParameter<int>(
"BaseShiftr0")),
163 kfBaseShiftr02_(pSetKF_.getParameter<int>(
"BaseShiftr02")),
164 kfBaseShiftv0_(pSetKF_.getParameter<int>(
"BaseShiftv0")),
165 kfBaseShiftS00_(pSetKF_.getParameter<int>(
"BaseShiftS00")),
166 kfBaseShiftS01_(pSetKF_.getParameter<int>(
"BaseShiftS01")),
167 kfBaseShiftK00_(pSetKF_.getParameter<int>(
"BaseShiftK00")),
168 kfBaseShiftK10_(pSetKF_.getParameter<int>(
"BaseShiftK10")),
169 kfBaseShiftR00_(pSetKF_.getParameter<int>(
"BaseShiftR00")),
170 kfBaseShiftInvR00_(pSetKF_.getParameter<int>(
"BaseShiftInvR00")),
171 kfBaseShiftChi20_(pSetKF_.getParameter<int>(
"BaseShiftChi20")),
172 kfBaseShiftC00_(pSetKF_.getParameter<int>(
"BaseShiftC00")),
173 kfBaseShiftC01_(pSetKF_.getParameter<int>(
"BaseShiftC01")),
174 kfBaseShiftC11_(pSetKF_.getParameter<int>(
"BaseShiftC11")),
175 kfBaseShiftr1_(pSetKF_.getParameter<int>(
"BaseShiftr1")),
176 kfBaseShiftr12_(pSetKF_.getParameter<int>(
"BaseShiftr12")),
177 kfBaseShiftv1_(pSetKF_.getParameter<int>(
"BaseShiftv1")),
178 kfBaseShiftS12_(pSetKF_.getParameter<int>(
"BaseShiftS12")),
179 kfBaseShiftS13_(pSetKF_.getParameter<int>(
"BaseShiftS13")),
180 kfBaseShiftK21_(pSetKF_.getParameter<int>(
"BaseShiftK21")),
181 kfBaseShiftK31_(pSetKF_.getParameter<int>(
"BaseShiftK31")),
182 kfBaseShiftR11_(pSetKF_.getParameter<int>(
"BaseShiftR11")),
183 kfBaseShiftInvR11_(pSetKF_.getParameter<int>(
"BaseShiftInvR11")),
184 kfBaseShiftChi21_(pSetKF_.getParameter<int>(
"BaseShiftChi21")),
185 kfBaseShiftC22_(pSetKF_.getParameter<int>(
"BaseShiftC22")),
186 kfBaseShiftC23_(pSetKF_.getParameter<int>(
"BaseShiftC23")),
187 kfBaseShiftC33_(pSetKF_.getParameter<int>(
"BaseShiftC33")),
188 kfBaseShiftChi2_(pSetKF_.getParameter<int>(
"BaseShiftChi2")),
190 pSetDR_(iConfig.getParameter<
ParameterSet>(
"DuplicateRemoval")),
191 drDepthMemory_(pSetDR_.getParameter<int>(
"DepthMemory")),
192 drWidthPhi0_(pSetDR_.getParameter<int>(
"WidthPhi0")),
193 drWidthQoverPt_(pSetDR_.getParameter<int>(
"WidthQoverPt")),
194 drWidthCot_(pSetDR_.getParameter<int>(
"WidthCot")),
195 drWidthZ0_(pSetDR_.getParameter<int>(
"WidthZ0")) {
233 vector<pair<string, ParameterSet>> pSets;
234 pSets.reserve(ph.
size());
237 if (pSet && pSet->
exists(label))
242 exception << label <<
" not found in process history.";
243 exception.addContext(
"tt::Setup::checkHistory");
246 auto consistent = [&pSetId](
const pair<string, ParameterSet>&
p) {
return p.second.id() == pSetId; };
247 if (!all_of(pSets.begin(), pSets.end(), consistent)) {
250 exception.addContext(
"tt::Setup::checkHistory");
251 exception << label <<
" inconsistent with History." << endl;
252 exception <<
"Current Configuration:" << endl << pSetProcess.
dump() << endl;
253 for (
const pair<string, ParameterSet>&
p : pSets)
255 exception <<
"Process " <<
p.first <<
" Configuration:" << endl <<
dumpDiff(
p.second, pSetProcess) << endl;
262 stringstream ssHistory, ssProcess,
ss;
263 ssHistory << pSetHistory.
dump();
264 ssProcess << pSetProcess.
dump();
265 string lineHistory, lineProcess;
266 for (; getline(ssHistory, lineHistory) && getline(ssProcess, lineProcess);)
267 ss << (lineHistory != lineProcess ?
"\033[1;31m" :
"") << lineHistory <<
"\033[0m" << endl;
274 const int tkId = tkLayoutId - 1;
295 const int dtcRegion = tfpRegion - dtcChannel >= 0 ? tfpRegion - dtcChannel : tfpRegion - dtcChannel +
numRegions_;
325 exception <<
"Unknown DetId used.";
326 exception.
addContext(
"tt::Setup::sensorModule");
335 return encodingsBend.at(windowSize);
350 <<
"Magnetic Field from EventSetup (" << bFieldES <<
") differs more then " <<
bFieldError_
351 <<
" from supported value (" <<
bField_ <<
"). ";
359 for (
const string& geomXMLFile : geomXMLFiles) {
362 if (
begin != string::npos &&
end != string::npos)
365 if (version.empty()) {
368 exception.
addContext(
"tt::Setup::checkGeometry");
374 <<
"Geometry Configuration " <<
sgXMLPath_ << version <<
"/" <<
sgXMLFile_ <<
" is not supported. ";
382 const auto& pSetsTiltedLayer =
pSetSA_->
getParameter<vector<ParameterSet>>(
"TiltedBarrelCutSet");
385 for (
const auto& pSet : pSetsTiltedLayer)
388 for (
const auto& pSet : pSetsEncapDisks)
392 for (
const auto& windows : windowss)
393 for (
const auto&
window : windows)
400 set<double> encoding;
401 for (
int bend = 0; bend <
window + 1; bend++)
403 encodings.emplace_back(encoding.begin(), encoding.end());
409 vector<vector<DTCELinkId>> dtcELinkIds(
numDTCs_);
410 for (vector<DTCELinkId>& dtcELinkId : dtcELinkIds)
413 dtcELinkIds[
dtcId(dtcLinkId.dtc_id())].push_back(dtcLinkId);
417 const int dtcId =
region * numDTCsPerRegion_ + dtcBoard;
418 for (
const DTCELinkId& dtcLinkId : dtcELinkIds[dtcId]) {
423 encodingLayerId.insert(layerId);
429 exception <<
"Cabling map connects more than " <<
hybridNumLayers_ <<
" layers to a DTC.";
460 sensorModules_.emplace_back(*
this, detId, dtcId, dtcModules.size());
465 dtcModules.push_back(sensorModule);
467 for (vector<SensorModule*>&
dtcModules : dtcModules_) {
472 exception <<
"Cabling map connects more than " <<
numModulesPerDTC_ <<
" modules to a DTC.";
506 const int baseShiftR =
ceil(log2(rangeR / baseRgen /
pow(2.,
widthR_)));
519 const double hybridRangeR =
521 const double hybridRangePhi =
baseRegion_ + hybridRangeR * hybridRangeQoverPt / 2.;
551 const double maxRangeQoverPt =
max(rangeQoverPt, hybridRangeQoverPt);
617 if (frame.first.isNull())
619 TTBV bv(frame.second);
621 const DetId& detId = frame.first->getDetId();
629 if (barrel && psModule)
631 if (barrel && !psModule)
633 if (!barrel && psModule)
635 if (!barrel && !psModule)
647 double phi = (bv.
val(widthPhi, 0,
true) + .5) *
basePhi;
649 double z = (bv.
val(widthZ, 0,
true) + .5) *
baseZ;
651 double r = (bv.
val(widthR, 0, barrel) + .5) *
baseR;
685 const MeasurementPoint& mp = ttStubRef->clusterRef(0)->findAverageLocalCoordinatesCentered();
693 exception.
addContext(
"trackerDTC::Setup::checkDTCId");
694 exception <<
"Used DTC Id (" << dtcId <<
") "
704 exception.
addContext(
"trackerDTC::Setup::checkTKLayoutId");
705 exception <<
"Used TKLayout Id (" << tkLayoutId <<
") "
713 const bool oorRegion = tfpRegion >=
numRegions_ || tfpRegion < 0;
714 const bool oorChannel = tfpChannel >=
numDTCsPerTFP_ || tfpChannel < 0;
715 if (oorRegion || oorChannel) {
717 exception.
addContext(
"trackerDTC::Setup::checkTFPIdentifier");
719 exception <<
"Requested Processing Region "
720 <<
"(" << tfpRegion <<
") "
721 <<
"is out of range 0 to " <<
numRegions_ - 1 <<
".";
723 exception <<
"Requested TFP Channel "
724 <<
"(" << 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
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_