29 for (
int i = 1;
i != 7;
i++) {
34 for (
int j = off;
j !=
end; ++
j) {
46 int BIG_PIX_PER_ROC_X = ptp.
vpars[2];
47 int BIG_PIX_PER_ROC_Y = ptp.
vpars[3];
53 std::vector<const GeometricDet*>
comp;
61 std::vector<GeometricDet::GDEnumType> gdsubdetmap(
65 LogDebug(
"SubDetectorGeometricDetType") <<
"GeometriDet enumerator values of the subdetectors";
66 for (
unsigned int i = 0;
i < subdetgd.size(); ++
i) {
67 assert(subdetgd[
i]->geographicalId().subdetId() > 0 && subdetgd[
i]->geographicalId().subdetId() < 7);
68 gdsubdetmap[subdetgd[
i]->geographicalId().subdetId() - 1] = subdetgd[
i]->type();
69 LogTrace(
"SubDetectorGeometricDetType")
70 <<
"subdet " <<
i <<
" type " << subdetgd[
i]->type() <<
" detid " << subdetgd[
i]->geographicalId().rawId()
71 <<
" subdetid " << subdetgd[
i]->geographicalId().subdetId();
74 std::vector<const GeometricDet*> dets[6];
75 std::vector<const GeometricDet*>& pixB = dets[0];
76 pixB.reserve(
comp.size());
77 std::vector<const GeometricDet*>& pixF = dets[1];
78 pixF.reserve(
comp.size());
79 std::vector<const GeometricDet*>& tib = dets[2];
80 tib.reserve(
comp.size());
81 std::vector<const GeometricDet*>& tid = dets[3];
82 tid.reserve(
comp.size());
83 std::vector<const GeometricDet*>& tob = dets[4];
84 tob.reserve(
comp.size());
85 std::vector<const GeometricDet*>& tec = dets[5];
86 tec.reserve(
comp.size());
89 dets[
i->geographicalID().subdetId() - 1].emplace_back(
i);
95 for (
unsigned int i = 0;
i < 6; ++
i) {
119 for (
unsigned int i = 0;
i < 6; ++
i) {
130 for (
unsigned int i = 0;
i < 6; ++
i) {
134 <<
"Subdetector " <<
i + 1 <<
" is unknown but it is not empty: " << dets[
i].size();
147 std::vector<const GeometricDet*>
const& gdv,
150 bool upgradeGeometry,
151 int BIG_PIX_PER_ROC_X,
152 int BIG_PIX_PER_ROC_Y)
154 LogDebug(
"BuildingGeomDetUnits") <<
" Pixel type. Size of vector: " << gdv.size()
155 <<
" GeomDetType subdetector: " << det
157 <<
" big pix per ROC x: " << BIG_PIX_PER_ROC_X <<
" y: " << BIG_PIX_PER_ROC_Y
158 <<
" is upgrade: " << upgradeGeometry;
165 std::unique_ptr<const Bounds> bounds(
i->bounds());
184 tracker->addDetUnitId(
i->geographicalID());
193 LogDebug(
"BuildingGeomDetUnits") <<
" Strip type. Size of vector: " << gdv.size()
194 <<
" GeomDetType subdetector: " << det
203 std::unique_ptr<const Bounds> bounds(
i->bounds());
215 tracker->addDetUnitId(
i->geographicalID());
222 auto const& gdu =
tracker->detUnits();
223 auto const& gduId =
tracker->detUnitIds();
225 for (u_int32_t
i = 0;
i < gdu.size();
i++) {
228 string gduTypeName = gdu[
i]->type().name();
231 if ((gduTypeName.find(
"Ster") != std::string::npos || gduTypeName.find(
"Lower") != std::string::npos) &&
233 int partner_pos = -1;
234 for (u_int32_t
jj = 0;
jj < gduId.size();
jj++) {
240 if (partner_pos == -1) {
241 throw cms::Exception(
"Configuration") <<
"Module Type is Stereo or Lower but no partner detector found \n"
242 <<
"There is a problem on Tracker geometry configuration\n";
247 std::vector<const GeomDetUnit*> composed(2);
251 if (gduTypeName.find(
"Ster") != std::string::npos) {
256 tracker->addDetId(composedDetId);
258 }
else if (gduTypeName.find(
"Lower") != std::string::npos) {
264 tracker->addDetId(composedDetId);