121 edm::LogError(
"SectorBuilder") <<
"TrackerTreeFile not found";
124 TTree* tkTree(
nullptr);
125 tkTreeFile->GetObject(
"TrackerTreeGenerator/TrackerTree/TrackerTree", tkTree);
129 edm::LogError(
"SectorBuilder") <<
"TrackerTree not found in file";
133 unsigned int rawId(999), subdetId(999),
layer(999), side(999), half(999), rod(999),
ring(999), petal(999), blade(999),
134 panel(999), outerInner(999), module(999),
nStrips(999);
135 bool isDoubleSide(
false), isRPhi(
false), isStereo(
false);
136 int uDirection(999), vDirection(999), wDirection(999);
137 float posR(999.
F), posPhi(999.
F), posEta(999.
F),
posX(999.
F),
posY(999.
F), posZ(999.
F);
139 tkTree->SetBranchAddress(
"RawId", &rawId);
140 tkTree->SetBranchAddress(
"SubdetId", &subdetId);
141 tkTree->SetBranchAddress(
"Layer", &
layer);
142 tkTree->SetBranchAddress(
"Side", &side);
143 tkTree->SetBranchAddress(
"Half", &half);
144 tkTree->SetBranchAddress(
"Rod", &rod);
145 tkTree->SetBranchAddress(
"Ring", &
ring);
146 tkTree->SetBranchAddress(
"Petal", &petal);
147 tkTree->SetBranchAddress(
"Blade", &blade);
148 tkTree->SetBranchAddress(
"Panel", &panel);
149 tkTree->SetBranchAddress(
"OuterInner", &outerInner);
150 tkTree->SetBranchAddress(
"Module", &module);
151 tkTree->SetBranchAddress(
"NStrips", &
nStrips);
152 tkTree->SetBranchAddress(
"IsDoubleSide", &isDoubleSide);
153 tkTree->SetBranchAddress(
"IsRPhi", &isRPhi);
154 tkTree->SetBranchAddress(
"IsStereo", &isStereo);
155 tkTree->SetBranchAddress(
"UDirection", &uDirection);
156 tkTree->SetBranchAddress(
"VDirection", &vDirection);
157 tkTree->SetBranchAddress(
"WDirection", &wDirection);
158 tkTree->SetBranchAddress(
"PosR", &posR);
159 tkTree->SetBranchAddress(
"PosPhi", &posPhi);
160 tkTree->SetBranchAddress(
"PosEta", &posEta);
161 tkTree->SetBranchAddress(
"PosX", &
posX);
162 tkTree->SetBranchAddress(
"PosY", &
posY);
163 tkTree->SetBranchAddress(
"PosZ", &posZ);
165 int nModules(tkTree->GetEntries());
169 unsigned int sectorCounter(0);
170 std::vector<edm::ParameterSet> v_sectorDef(
sectors_);
171 edm::LogInfo(
"SectorBuilder") <<
"There are " << v_sectorDef.size() <<
" Sectors defined";
173 for (
auto const& parSet : v_sectorDef) {
176 std::vector<unsigned int> v_rawId(parSet.getParameter<std::vector<unsigned int>>(
"rawId")),
177 v_subdetId(parSet.getParameter<std::vector<unsigned int>>(
"subdetId")),
178 v_layer(parSet.getParameter<std::vector<unsigned int>>(
"layer")),
179 v_side(parSet.getParameter<std::vector<unsigned int>>(
"side")),
180 v_half(parSet.getParameter<std::vector<unsigned int>>(
"half")),
181 v_rod(parSet.getParameter<std::vector<unsigned int>>(
"rod")),
182 v_ring(parSet.getParameter<std::vector<unsigned int>>(
"ring")),
183 v_petal(parSet.getParameter<std::vector<unsigned int>>(
"petal")),
184 v_blade(parSet.getParameter<std::vector<unsigned int>>(
"blade")),
185 v_panel(parSet.getParameter<std::vector<unsigned int>>(
"panel")),
186 v_outerInner(parSet.getParameter<std::vector<unsigned int>>(
"outerInner")),
187 v_module(parSet.getParameter<std::vector<unsigned int>>(
"module")),
188 v_nStrips(parSet.getParameter<std::vector<unsigned int>>(
"nStrips")),
189 v_isDoubleSide(parSet.getParameter<std::vector<unsigned int>>(
"isDoubleSide")),
190 v_isRPhi(parSet.getParameter<std::vector<unsigned int>>(
"isRPhi")),
191 v_isStereo(parSet.getParameter<std::vector<unsigned int>>(
"isStereo"));
192 std::vector<int> v_uDirection(parSet.getParameter<std::vector<int>>(
"uDirection")),
193 v_vDirection(parSet.getParameter<std::vector<int>>(
"vDirection")),
194 v_wDirection(parSet.getParameter<std::vector<int>>(
"wDirection"));
195 std::vector<double> v_posR(parSet.getParameter<std::vector<double>>(
"posR")),
196 v_posPhi(parSet.getParameter<std::vector<double>>(
"posPhi")),
197 v_posEta(parSet.getParameter<std::vector<double>>(
"posEta")),
198 v_posX(parSet.getParameter<std::vector<double>>(
"posX")),
199 v_posY(parSet.getParameter<std::vector<double>>(
"posY")),
200 v_posZ(parSet.getParameter<std::vector<double>>(
"posZ"));
212 tkSector.
name = sectorName;
217 for (
int module = 0; module < nModules; ++module) {
218 tkTree->GetEntry(module);
220 if (sectorCounter == 1) {
280 tkSector.
v_rawId.push_back(rawId);
281 bool moduleSelected(
false);
282 for (
auto const& i_rawId : allSectors.v_rawId) {
283 if (rawId == i_rawId)
284 moduleSelected =
true;
287 allSectors.v_rawId.push_back(rawId);
293 for (
auto const& i_rawId : tkSector.
v_rawId) {
310 <<
"Incorrect Sector Definition: there are pixel and strip modules within one sector"
311 <<
"\n... sector selection is not applied, sector " << sectorCounter <<
" is not built";
317 edm::LogInfo(
"SectorBuilder") <<
"There are " << tkSector.
v_rawId.size() <<
" Modules in Sector " << sectorCounter;