19 std::cout <<
"matrixHCALIds::Add " << ieta <<
" rows and " << iphi <<
" columns of cells for " << dets.size()
20 <<
" cells" << std::endl;
24 std::vector<DetId> vdetN =
spr::newHCALIdNS(dets, 0, topology,
true, ieta, iphi, debug);
25 std::vector<DetId> vdetS =
spr::newHCALIdNS(dets, 0, topology,
false, ieta, iphi, debug);
26 for (
unsigned int i1 = 0;
i1 < vdetS.size();
i1++) {
27 if (
std::count(vdetN.begin(), vdetN.end(), vdetS[
i1]) == 0)
28 vdetN.push_back(vdetS[
i1]);
35 std::cout <<
"matrixHCALIds::Total number of cells found is " << vdetS.size() << std::endl;
51 std::vector<DetId> dets, vdetx;
53 int ietaphi = (
int)(dR / 15.0) + 1;
54 std::vector<DetId> vdets =
spr::matrixHCALIds(dets, topology, ietaphi, ietaphi, includeHO, debug);
55 for (
unsigned int i = 0;
i < vdets.size(); ++
i) {
59 vdetx.push_back(vdets[i]);
65 std::cout <<
"matrixHCALIds::Final List of cells for dR " << dR <<
" is with " << vdetx.size()
66 <<
" from original list of " << vdets.size() <<
" cells" << std::endl;
83 std::cout <<
"matrixHCALIds::Add " << ietaE <<
"|" << ietaW <<
" rows and " << iphiN <<
"|" << iphiS
84 <<
" columns of cells for " << dets.size() <<
" cells" << std::endl;
88 std::vector<DetId> vdetN =
spr::newHCALIdNS(dets, 0, topology,
true, ietaE, ietaW, iphiN, iphiS, debug);
89 std::vector<DetId> vdetS =
spr::newHCALIdNS(dets, 0, topology,
false, ietaE, ietaW, iphiN, iphiS, debug);
90 for (
unsigned int i1 = 0;
i1 < vdetS.size();
i1++) {
91 if (
std::count(vdetN.begin(), vdetN.end(), vdetS[
i1]) == 0)
92 vdetN.push_back(vdetS[
i1]);
99 std::cout <<
"matrixHCALIds::Total number of cells found is " << vdetS.size() << std::endl;
115 std::cout <<
"newHCALIdNS::Add " << iphi <<
" columns of cells along " << shiftNorth <<
" for " 116 << (dets.size() -
last) <<
" cells" << std::endl;
120 std::vector<DetId> vdets;
121 vdets.insert(vdets.end(), dets.begin(), dets.end());
122 std::vector<DetId> vdetE, vdetW;
126 for (
unsigned int i1 = 0;
i1 < vdetW.size();
i1++) {
127 if (
std::count(vdets.begin(), vdets.end(), vdetW[
i1]) == 0)
128 vdets.push_back(vdetW[
i1]);
130 for (
unsigned int i1 = 0;
i1 < vdetE.size();
i1++) {
131 if (
std::count(vdets.begin(), vdets.end(), vdetE[
i1]) == 0)
132 vdets.push_back(vdetE[
i1]);
136 std::cout <<
"newHCALIdNS::With Added cells along E/W results a set of " << (vdets.size() - dets.size())
137 <<
" new cells" << std::endl;
142 unsigned int last0 = vdets.size();
144 std::vector<DetId> vdetnew;
145 for (
unsigned int i1 = last;
i1 < dets.size();
i1++) {
146 std::vector<DetId> vdet;
148 vdet = topology->
north(dets[
i1]);
150 vdet = topology->
south(dets[i1]);
151 for (
unsigned int i2 = 0;
i2 < vdet.size();
i2++) {
152 if (
std::count(vdets.begin(), vdets.end(), vdet[
i2]) == 0)
153 vdetnew.push_back(vdet[
i2]);
159 for (
unsigned int i2 = 0;
i2 < vdetW.size();
i2++) {
160 if (
std::count(vdets.begin(), vdets.end(), vdetW[
i2]) == 0 &&
161 std::count(vdetnew.begin(), vdetnew.end(), vdetW[
i2]) == 0)
162 vdets.push_back(vdetW[
i2]);
164 for (
unsigned int i2 = 0;
i2 < vdetE.size();
i2++) {
165 if (
std::count(vdets.begin(), vdets.end(), vdetE[
i2]) == 0 &&
166 std::count(vdetnew.begin(), vdetnew.end(), vdetE[
i2]) == 0)
167 vdets.push_back(vdetE[
i2]);
170 vdets.insert(vdets.end(), vdetnew.begin(), vdetnew.end());
173 std::cout <<
"newHCALIdNS::Addition results a set of " << (vdets.size() - last0) <<
" new cells" << std::endl;
182 return spr::newHCALIdNS(vdets, last, topology, shiftNorth, ieta, iphi, debug);
186 std::cout <<
"newHCALIdNS::Final list consists of " << vdets.size() <<
" cells" << std::endl;
205 std::cout <<
"newHCALIdNS::Add " << iphiN <<
"|" << iphiS <<
" columns of cells along " << shiftNorth <<
" for " 206 << (dets.size() -
last) <<
" cells" << std::endl;
210 std::vector<DetId> vdets;
211 vdets.insert(vdets.end(), dets.begin(), dets.end());
212 std::vector<DetId> vdetE, vdetW;
216 for (
unsigned int i1 = 0;
i1 < vdetW.size();
i1++) {
217 if (
std::count(vdets.begin(), vdets.end(), vdetW[
i1]) == 0)
218 vdets.push_back(vdetW[
i1]);
220 for (
unsigned int i1 = 0;
i1 < vdetE.size();
i1++) {
221 if (
std::count(vdets.begin(), vdets.end(), vdetE[
i1]) == 0)
222 vdets.push_back(vdetE[
i1]);
226 std::cout <<
"newHCALIdNS::With Added cells along E/W results a set of " << (vdets.size() - dets.size())
227 <<
" new cells" << std::endl;
232 unsigned int last0 = vdets.size();
237 std::vector<DetId> vdetnew;
238 for (
unsigned int i1 = last;
i1 < dets.size();
i1++) {
239 std::vector<DetId> vdet;
241 vdet = topology->
north(dets[
i1]);
243 vdet = topology->
south(dets[i1]);
244 for (
unsigned int i2 = 0;
i2 < vdet.size();
i2++) {
245 if (
std::count(vdets.begin(), vdets.end(), vdet[
i2]) == 0)
246 vdetnew.push_back(vdet[
i2]);
252 for (
unsigned int i2 = 0;
i2 < vdetW.size();
i2++) {
253 if (
std::count(vdets.begin(), vdets.end(), vdetW[
i2]) == 0 &&
254 std::count(vdetnew.begin(), vdetnew.end(), vdetW[
i2]) == 0)
255 vdets.push_back(vdetW[
i2]);
257 for (
unsigned int i2 = 0;
i2 < vdetE.size();
i2++) {
258 if (
std::count(vdets.begin(), vdets.end(), vdetE[
i2]) == 0 &&
259 std::count(vdetnew.begin(), vdetnew.end(), vdetE[
i2]) == 0)
260 vdets.push_back(vdetE[
i2]);
263 vdets.insert(vdets.end(), vdetnew.begin(), vdetnew.end());
266 std::cout <<
"newHCALIdNS::Addition results a set of " << (vdets.size() - last0) <<
" new cells" << std::endl;
279 return spr::newHCALIdNS(vdets, last, topology, shiftNorth, ietaE, ietaW, iphiN, iphiS, debug);
283 std::cout <<
"newHCALIdNS::Final list consists of " << vdets.size() <<
" cells" << std::endl;
295 std::cout <<
"newHCALIdEW::Add " << ieta <<
" rows of cells along " << shiftEast <<
" for " 296 << (dets.size() -
last) <<
" cells" << std::endl;
300 std::vector<DetId> vdets;
301 vdets.insert(vdets.end(), dets.begin(), dets.end());
303 for (
unsigned int i1 = last;
i1 < dets.size();
i1++) {
304 std::vector<DetId> vdet;
306 vdet = topology->
east(dets[
i1]);
308 vdet = topology->
west(dets[i1]);
309 for (
unsigned int i2 = 0;
i2 < vdet.size();
i2++) {
310 if (
std::count(vdets.begin(), vdets.end(), vdet[
i2]) == 0)
311 vdets.push_back(vdet[
i2]);
319 std::cout <<
"newHCALIdEW::Addition results a set of " << (vdets.size() - dets.size()) <<
" new cells" 330 std::cout <<
"newHCALIdEW::Final list (EW) consists of " << vdets.size() <<
" cells" << std::endl;
347 std::cout <<
"newHCALIdEW::Add " << ietaE <<
"|" << ietaW <<
" rows of cells along " << shiftEast <<
" for " 348 << (dets.size() -
last) <<
" cells" << std::endl;
355 std::vector<DetId> vdets;
356 vdets.insert(vdets.end(), dets.begin(), dets.end());
358 for (
unsigned int i1 = last;
i1 < dets.size();
i1++) {
359 std::vector<DetId> vdet;
361 vdet = topology->
east(dets[
i1]);
363 vdet = topology->
west(dets[i1]);
364 for (
unsigned int i2 = 0;
i2 < vdet.size();
i2++) {
365 if (
std::count(vdets.begin(), vdets.end(), vdet[
i2]) == 0)
366 vdets.push_back(vdet[
i2]);
378 std::cout <<
"newHCALIdEW::Addition results a set of " << (vdets.size() - dets.size()) <<
" new cells" 385 return spr::newHCALIdEW(vdets, last, topology, shiftEast, ietaE, ietaW, debug);
389 std::cout <<
"newHCALIdEW::Final list (EW) consists of " << vdets.size() <<
" cells" << std::endl;
408 std::cout <<
"matrixHCALIdsDepth::Add cells with higher depths with HO" 409 <<
"Flag set to " << includeHO <<
" to existing " << dets.size() <<
" cells" << std::endl;
413 std::vector<DetId> vdets(dets);
414 for (
unsigned int i1 = 0;
i1 < dets.size();
i1++) {
416 for (
int idepth = 0; idepth < 3; idepth++) {
417 std::vector<DetId> vUpDetId = topology->
up(vdet);
418 if (!vUpDetId.empty()) {
419 if (includeHO || vUpDetId[0].subdetId() != (
int)(
HcalOuter)) {
420 int n =
std::count(vdets.begin(), vdets.end(), vUpDetId[0]);
424 std::cout <<
"matrixHCALIdsDepth:: Depth " << idepth <<
" " << vdet <<
" " << (
HcalDetId)vUpDetId[0]
427 vdets.push_back(vUpDetId[0]);
437 std::cout <<
"matrixHCALIdsDepth::Final list contains " << vdets.size() <<
" cells" << std::endl;
std::vector< DetId > newHCALIdNS(std::vector< DetId > &dets, unsigned int last, const HcalTopology *topology, bool shiftNorth, int ieta, int iphi, bool debug=false)
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
double getDistInPlaneTrackDir(const GlobalPoint &caloPoint, const GlobalVector &caloVector, const GlobalPoint &rechitPoint, bool debug=false)
CaloTopology const * topology(0)
std::vector< DetId > up(const DetId &id) const override
void debugHcalDets(unsigned int, std::vector< DetId > &)
std::vector< DetId > south(const DetId &id) const override
std::vector< DetId > matrixHCALIdsDepth(std::vector< DetId > &dets, const HcalTopology *topology, bool includeHO=false, bool debug=false)
std::vector< DetId > west(const DetId &id) const override
std::vector< DetId > north(const DetId &id) const override
std::vector< DetId > matrixHCALIds(std::vector< DetId > &dets, const HcalTopology *topology, int ieta, int iphi, bool includeHO=false, bool debug=false)
std::vector< DetId > east(const DetId &id) const override
std::vector< DetId > newHCALIdEW(std::vector< DetId > &dets, unsigned int last, const HcalTopology *topology, bool shiftEast, int ieta, bool debug=false)