31 std::vector<Polygon<double>> polygons;
34 for (
auto& p : contour.getPolygons()) {
35 polygons.push_back(p);
44 std::vector<std::vector<int>> dualSampaPads;
47 std::vector<int> pads;
49 double x = seg.padPositionX(catPadIndex);
50 double y = seg.padPositionY(catPadIndex);
51 double dx = seg.padSizeX(catPadIndex) / 2.0;
52 double dy = seg.padSizeY(catPadIndex) / 2.0;
54 pads.emplace_back(seg.padDualSampaChannel(catPadIndex));
56 dualSampaPads.push_back(pads);
64 std::vector<Polygon<double>> pads;
72 {
x - dx,
y - dy}, {
x + dx,
y - dy}, {
x + dx,
y + dy}, {
x - dx,
y + dy}, {
x - dx,
y - dy}});
79 std::vector<std::vector<Polygon<double>>> dualSampaPads;
96 std::vector<o2::mch::contour::Contour<double>> contours;
o2::mch::mapping::CathodeSegmentation seg
A CathodeSegmentation lets you find pads on a given plane (cathode) of a detection element and then i...
int dualSampaId(int dualSampaIndex) const
double padSizeY(int catPadIndex) const
double padSizeX(int catPadIndex) const
void forEachPadInDualSampa(int dualSampaId, CALLABLE &&func) const
int nofDualSampas() const
double padPositionY(int catPadIndex) const
double padPositionX(int catPadIndex) const
Contour< T > createContour(const std::vector< Polygon< T > > &polygons)
std::vector< o2::mch::contour::Contour< double > > getDualSampaContours(const CathodeSegmentation &seg)
o2::mch::contour::BBox< double > getBBox(const CathodeSegmentation &seg)
o2::mch::contour::Contour< double > getDualSampaContour(const CathodeSegmentation &seg, int dualSampaId)
std::vector< std::vector< o2::mch::contour::Polygon< double > > > getPadPolygons(const CathodeSegmentation &seg)
std::vector< std::vector< int > > getPadChannels(const CathodeSegmentation &seg)
o2::mch::contour::Contour< double > getEnvelop(const CathodeSegmentation &seg)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...