1 #ifndef __JDETECTOR__JDETECTORSUBSET__ 
    2 #define __JDETECTOR__JDETECTORSUBSET__ 
   21 namespace JDETECTOR {}
 
   22 namespace JPP { 
using namespace JDETECTOR; }
 
   55                       const double     Rmax = std::numeric_limits<double>::max(),
 
   62       for (JDetector::const_iterator i = detector.begin(); i != detector.end(); ++i) {
 
   66         pos.
transform(transformation.getRotation(), transformation.getPosition());
 
   68         if (Z(pos.getZ()) && pos.getX() <= Rmax) {
 
   72           module.transform(transformation);
 
   74           this->push_back(module);
 
   93                       const double     Dmax = std::numeric_limits<double>::max()) 
 
   95       for (JDetector::const_iterator i = detector.begin(); i != detector.end(); ++i) {
 
  101         if (pos.getLength() <= Dmax) {
 
  105           module.
sub(position);
 
  107           this->push_back(module);
 
  117   template<
class JComparator_t>
 
  133                  const_iterator 
end) :
 
  139       inline const_iterator 
end()
   const { 
return __end; }     
 
  163                     const JComparator_t& comparator,
 
  164                     const double         Rmax = std::numeric_limits<double>::max(),
 
  169       std::sort(this->begin(), this->end(), 
compare);
 
  186                     const double         Rmax = std::numeric_limits<double>::max(), 
 
  191       std::sort(this->begin(), this->end(), 
compare);
 
  208                     const JComparator_t& comparator,
 
  209                     const double         Dmax = std::numeric_limits<double>::max()) :
 
  213       std::sort(this->begin(), this->end(), 
compare);      
 
  229                     const double         Dmax = std::numeric_limits<double>::max()) :
 
  233       std::sort(this->begin(), this->end(), 
compare);      
 
  256       return std::lower_bound(this->begin(), this->end(), value, 
compare);
 
  268                         const double xmax)
 const 
JDetectorSubset_t(const JDetector &detector, const JVector3D &position, const double Dmax=std::numeric_limits< double >::max())
Constructor. 
 
Data structure for direction in three dimensions. 
 
const_iterator lower_bound(const double value) const 
Find first module after given value according specified comparator. 
 
Data structure for a composite optical module. 
 
JDetectorSubset_t(const JDetector &detector, const JAxis3D &track, const double Rmax=std::numeric_limits< double >::max(), const JRangeZ Z=JRangeZ())
Constructor. 
 
Auxiliary classes to compare modules. 
 
const JDirection3D & getDirection() const 
Get direction. 
 
Data structure for detector geometry and calibration. 
 
void transform(const JRotation3D &R, const JVector3D &pos)
Transform position. 
 
JDetectorSubset(const JDetector &detector, const JVector3D &position, const double Dmax=std::numeric_limits< double >::max())
Constructor. 
 
Auxiliary class for range of iterators. 
 
JModule & sub(const JVector3D &pos)
Subtract position. 
 
JDetectorSubset(const JDetector &detector, const JAxis3D &track, const double Rmax=std::numeric_limits< double >::max(), const JRangeZ Z=JRangeZ())
Constructor. 
 
JTOOLS::JRange< double > JRangeZ
Type definition of range along z-axis. 
 
JVector3D & sub(const JVector3D &vector)
Subtract vector. 
 
Data structure for vector in three dimensions. 
 
const JComparator_t & getComparator() const 
Get comparator. 
 
range_type getRange(const double xmin, const double xmax) const 
Get range of modules between given values according specified comparator. 
 
JDetectorSubset(const JDetector &detector, const JVector3D &position, const JComparator_t &comparator, const double Dmax=std::numeric_limits< double >::max())
Constructor. 
 
range_type(const_iterator begin, const_iterator end)
Constructor. 
 
const JPosition3D & getPosition() const 
Get position. 
 
Detector subset with binary search functionality. 
 
Detector subset without binary search functionality. 
 
JDetectorSubset(const JDetector &detector, const JAxis3D &track, const JComparator_t &comparator, const double Rmax=std::numeric_limits< double >::max(), const JRangeZ Z=JRangeZ())
Constructor. 
 
const JComparator_t compare
 
Data structure for position in three dimensions. 
 
const_iterator begin() const 
begin of iteration 
 
const_iterator end() const 
end of iteration 
 
bool empty() const 
check emptyness