| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

VolumeIntersectionIntervals.h File Reference

a collection of useful technical methods for manipulation of 'Intersection' and 'Intervals' More...

#include <algorithm>
#include <functional>
#include <numeric>
#include "GaudiKernel/Kernel.h"
#include "GaudiKernel/StatusCode.h"
#include "DetDesc/DetDesc.h"
#include "DetDesc/ISolid.h"
#include "DetDesc/ILVolume.h"
#include "DetDesc/IPVolume.h"
#include "DetDesc/Material.h"
#include "DetDesc/Compare.h"
#include "DetDesc/IntersectionErrors.h"

Include dependency graph for VolumeIntersectionIntervals.h:

Go to the source code of this file.


Namespaces

namespace  VolumeIntersectionIntervals

Classes

class  VolumeIntersectionIntervals::AccumulateIntervals
 accumulation utility to accumulate the total length of intervals More...
class  VolumeIntersectionIntervals::AccumulateIntersections
 accumulation utility to accumulate the total length of intersections More...
class  VolumeIntersectionIntervals::CompareIntersections
 "very specific" comparison for intersections!!! More...

Functions

bool operator< (const ILVolume::Interval &Int, double Length)
 boolean operation for intervals
bool operator== (const ILVolume::Interval &Int, double Length)
 boolean operation for intervals
bool operator> (const ILVolume::Interval &Int, double Length)
 boolean operation for intervals
bool operator<= (const ILVolume::Interval &Int, double Length)
 boolean operation for intervals
bool operator>= (const ILVolume::Interval &Int, double Length)
 boolean operation for intervals
bool operator!= (const ILVolume::Interval &Int, double Length)
 boolean operation for intervals
bool operator< (const ILVolume::Intersection &Int, double RadLength)
 boolean operations for Intersections
bool operator<= (const ILVolume::Intersection &Int, double RadLength)
 boolean operations for Intersections
bool operator> (const ILVolume::Intersection &Int, double RadLength)
 boolean operations for Intersections
bool operator>= (const ILVolume::Intersection &Int, double RadLength)
 boolean operations for Intersections
bool operator== (const ILVolume::Intersection &Int, double RadLength)
 boolean operations for Intersections
int VolumeIntersectionIntervals::intersect (const ILVolume::Interval &i1, const ILVolume::Interval &i2)
 check the intersection
int VolumeIntersectionIntervals::intersect (const ILVolume::Intersection &i1, const ILVolume::Intersection &i2)
 check the intersection
template<class OUTPUTTYPE>
unsigned int VolumeIntersectionIntervals::TicksToIntervals (const ISolid::Ticks &ticks, OUTPUTTYPE out)
 helpful method to decode the ticks sequence into sequence of intervals return the number of intervals
template<class OUTPUTTYPE>
StatusCode VolumeIntersectionIntervals::MergeOwnAndChildContainers (const ILVolume::Intersections &own, const ILVolume::Intersections &child, OUTPUTTYPE out, const ILVolume *, const double)
 helpful method of merging 2 containers
template<class OUTPUTTYPE>
StatusCode VolumeIntersectionIntervals::MergeOwnAndChildContainers2 (const ILVolume::Intersections &own, const ILVolume::Intersections &child, OUTPUTTYPE out, const ILVolume *volume, const double length)
 helpful method of merging 2 containers
int VolumeIntersectionIntervals::correct (const ILVolume *volume, ILVolume::Intersections &cnt, const double tick, unsigned int index=0)
 try to validate&correct the intersections

Detailed Description

a collection of useful technical methods for manipulation of 'Intersection' and 'Intervals'

See also:
ILVolume
Author:
Vanya Belyaev Ivan.Belyaev@itep.ru

Sebastien Ponce

Definition in file VolumeIntersectionIntervals.h.


Function Documentation

bool operator< ( const ILVolume::Interval Int,
double  Length 
) [inline]

boolean operation for intervals

Definition at line 38 of file VolumeIntersectionIntervals.h.

00039 { return ( Int.second - Int.first ) <  Length ; }  

bool operator== ( const ILVolume::Interval Int,
double  Length 
) [inline]

boolean operation for intervals

Definition at line 41 of file VolumeIntersectionIntervals.h.

00042 { return ( Int.second - Int.first ) == Length ; }

bool operator> ( const ILVolume::Interval Int,
double  Length 
) [inline]

boolean operation for intervals

Definition at line 44 of file VolumeIntersectionIntervals.h.

00045 { return ( Int.second - Int.first ) >  Length ; }  

bool operator<= ( const ILVolume::Interval Int,
double  Length 
) [inline]

boolean operation for intervals

Definition at line 47 of file VolumeIntersectionIntervals.h.

00048 { return ( Int.second - Int.first ) <= Length ; }  

bool operator>= ( const ILVolume::Interval Int,
double  Length 
) [inline]

boolean operation for intervals

Definition at line 50 of file VolumeIntersectionIntervals.h.

00051 { return ( Int.second - Int.first ) >= Length ; }  

bool operator!= ( const ILVolume::Interval Int,
double  Length 
) [inline]

boolean operation for intervals

Definition at line 53 of file VolumeIntersectionIntervals.h.

00054 { return ( Int.second - Int.first ) != Length ; }  

bool operator< ( const ILVolume::Intersection Int,
double  RadLength 
) [inline]

boolean operations for Intersections

Definition at line 58 of file VolumeIntersectionIntervals.h.

00059 { return ( ( 0 == Int.second ) ? true  :  
00060            Int.first <  RadLength * ( Int.second->radiationLength() ) ) ; } 

bool operator<= ( const ILVolume::Intersection Int,
double  RadLength 
) [inline]

boolean operations for Intersections

Definition at line 63 of file VolumeIntersectionIntervals.h.

00064 { return ( ( 0 == Int.second ) ? true  :  
00065            Int.first <= RadLength * ( Int.second->radiationLength() ) ) ; } 

bool operator> ( const ILVolume::Intersection Int,
double  RadLength 
) [inline]

boolean operations for Intersections

Definition at line 68 of file VolumeIntersectionIntervals.h.

00069 { return ( ( 0 == Int.second ) ? false :  
00070            Int.first >  RadLength * ( Int.second->radiationLength() ) ) ; } 

bool operator>= ( const ILVolume::Intersection Int,
double  RadLength 
) [inline]

boolean operations for Intersections

Definition at line 73 of file VolumeIntersectionIntervals.h.

00074 { return ( ( 0 == Int.second ) ? false :  
00075            Int.first >= RadLength * ( Int.second->radiationLength() ) ) ; } 

bool operator== ( const ILVolume::Intersection Int,
double  RadLength 
) [inline]

boolean operations for Intersections

Definition at line 78 of file VolumeIntersectionIntervals.h.

00079 { return ( ( 0 == Int.second ) ? ( ( 0 == RadLength ) ? true : false )  :  
00080            Int.first >= RadLength * ( Int.second->radiationLength() ) ) ; }

| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:00:17 2011 for DetDesc by doxygen 1.4.7