26 double xyz1[3] = {0.};
27 double xyz2[3] = {0.};
28 double local[3] = {0.};
33 if(xyz1[1] < xyz2[1])
return true;
36 if(xyz1[1] == xyz2[1] && xyz1[2] < xyz2[2])
return true;
39 if(xyz1[2] == xyz2[2] && xyz1[1] == xyz2[1] && xyz1[0] < xyz2[0])
return true;
53 double xyz1[3] = {0.};
54 double xyz2[3] = {0.};
55 double local[3] = {0.};
60 if(xyz1[1] < xyz2[1])
return true;
63 if(xyz1[1] == xyz2[1] && xyz1[2] < xyz2[2])
return true;
66 if(xyz1[2] == xyz2[2] && xyz1[1] == xyz2[1] && xyz1[0] < xyz2[0])
return true;
78 double xyz1[3] = {0.}, xyz2[3] = {0.};
79 double local[3] = {0.};
83 return xyz1[0] < xyz2[0];
91 double xyz1[3] = {0.};
92 double xyz2[3] = {0.};
93 double local[3] = {0.};
102 if(xyz1[2] < xyz2[2])
return true;
105 if(xyz1[2] == xyz2[2] && xyz1[1] < xyz2[1])
return true;
108 if(xyz1[2] == xyz2[2] && xyz1[1] == xyz2[1] && xyz1[0] < xyz2[0])
return true;
120 double xyz1[3] = {0.};
121 double xyz2[3] = {0.};
122 double local[3] = {0.};
126 return xyz1[0] > xyz2[0];
132 double xyz1[3] = {0.};
133 double xyz2[3] = {0.};
142 if( xyz1[1]>0 && xyz1[1] > xyz2[1] )
return true;
145 if( xyz1[1]<0 && xyz1[1] < xyz2[1] )
return true;
148 if( xyz1[1] == xyz2[1] && xyz1[2] < xyz2[2] )
return true;
180 std::sort(tgeo.begin(), tgeo.end(),
sortTPCAPA);
193 throw cet::exception(
"TPCGeo") <<
"Drift direction is unknown, can't sort the planes\n";
GeoObjectSorterAPA(fhicl::ParameterSet const &p)
Geometry description of a TPC wireThe wire is a single straight segment on a wire plane...
Drift direction is unknown.
void LocalToWorld(const double *auxdet, double *world) const
Transform point from local auxiliary detector frame to world frame.
Encapsulate the construction of a single cyostat.
static bool sortAuxDetAPA(const AuxDetGeo &ad1, const AuxDetGeo &ad2)
Geometry information for a single TPC.
Interface to algorithm class for standard sorting of geo::XXXGeo objects.
Drift towards negative X values.
Geometry information for a single cryostat.
void SortTPCs(std::vector< geo::TPCGeo > &tgeo) const
void SortAuxDetSensitive(std::vector< geo::AuxDetSensitiveGeo > &adgeo) const
enum geo::driftdir DriftDirection_t
Drift direction: positive or negative.
void SortOpDets(std::vector< geo::OpDetGeo > &opdet) const
static bool sortPlaneAPA(const PlaneGeo &p1, const PlaneGeo &p2)
Geometry information for a single wire plane.The plane is represented in the geometry by a solid whic...
bool sortorderOpDet(const OpDetGeo &t1, const OpDetGeo &t2)
Encapsulate the geometry of an auxiliary detector.
void SortAuxDets(std::vector< geo::AuxDetGeo > &adgeo) const
void SortCryostats(std::vector< geo::CryostatGeo > &cgeo) const
Encapsulate the geometry of a wire.
static bool sortAuxDetSensitiveAPA(const AuxDetSensitiveGeo &ad1, const AuxDetSensitiveGeo &ad2)
void LocalToWorld(const double *cryo, double *world) const
Transform point from local cryostat frame to world frame.
static bool sortTPCAPA(const TPCGeo &t1, const TPCGeo &t2)
void SortPlanes(std::vector< geo::PlaneGeo > &pgeo, geo::DriftDirection_t driftDir) const
Drift towards positive X values.
Encapsulate the construction of a single detector plane.
static bool sortCryoAPA(const CryostatGeo &c1, const CryostatGeo &c2)
bool sortWireAPA(WireGeo &w1, WireGeo &w2)
void GetCenter(double *xyz, double localz=0.0) const
Fills the world coordinate of a point on the wire.
void LocalToWorld(const double *auxdet, double *world) const
Transform point from local auxiliary detector frame to world frame.
LArSoft geometry interface.
void SortWires(std::vector< geo::WireGeo > &wgeo) const
void LocalToWorld(const double *tpc, double *world) const
Transform point from local TPC frame to world frame.
void LocalToWorld(const double *plane, double *world) const
Transform point from local plane frame to world frame.
cet::coded_exception< error, detail::translate > exception
Encapsulate the construction of a single detector plane.