4 #include <det/Detector.h>
5 #include <utl/ErrorLogger.h>
6 #include <utl/AugerException.h>
41 VZone(
const std::string& zoneId,
const std::string& name,
42 const double northing,
const double easting) :
58 template<
typename Slice>
61 const std::string& database,
62 const std::string& property,
63 const std::string& zone,
69 slices =
new std::vector<const Slice*>;
71 std::vector<std::string> propertyIdVec;
72 const std::string propertyId =
property +
"_id";
74 const auto stat = manager.
GetData(propertyIdVec, property, propertyId, zoneSelect);
77 std::ostringstream err;
78 err <<
"Did not find requested data, "
79 "header table: " << database <<
", "
80 "slice table name: " <<
property <<
", "
86 for (
const auto& pId : propertyIdVec) {
87 std::string zoneSlicesId;
89 manager.
GetData(zoneSlicesId, property,
"zone_slices_id", idSelect);
94 manager.
GetData(minHeight,
"zone_slices",
"min_height", zoneSlicesSelect);
97 manager.
GetData(maxHeight,
"zone_slices",
"max_height", zoneSlicesSelect);
99 slices->push_back(
new Slice(database, zoneSlicesId, zone, minHeight, maxHeight));
const std::string & GetName() const
Zone name.
Base class for exceptions trying to access non-existing components.
Interface for detector managers.
virtual Status GetData(double &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
Base class for Aerosol, Molecula, Overall Quality and Lidar atmosphere zones.
VZone(const std::string &zoneId, const std::string &name, const double northing, const double easting)
std::map< std::string, std::string > IndexMap
double GetNorthing() const
Northing for the zone.
double GetEasting() const
Easting for the zone.
#define ERROR(message)
Macro for logging error messages.
std::string fZoneIdString
void CacheSlices(std::vector< const Slice * > *&slices, const std::string &database, const std::string &property, const std::string &zone, const det::VManager &manager) const