GEAR  1.9.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Friends Pages
Public Member Functions | List of all members
gear::TPCParameters Class Referenceabstract

Proposal for an abstract interface that defines the geometry properties of a TPC like detector needed for reconstruction code. More...

#include <TPCParameters.h>

Inheritance diagram for gear::TPCParameters:
gear::GearParameters gear::TPCParametersImpl

Public Member Functions

virtual ~TPCParameters ()
 Destructor.
 
virtual const TPCModulegetModule (int ID) const =0
 Returns module with given moduleID. More...
 
virtual int getNModules () const =0
 Returns number of modules in this TPC (endplate).
 
virtual const TPCModulegetNearestModule (double c0, double c1) const =0
 Returns nearest module to given coordinates (2D). More...
 
virtual const TPCModulegetNearestModule (double c0, double c1, double z) const =0
 Returns nearest module to given coordinates (3D). More...
 
virtual double getMaxDriftLength () const =0
 The maximum drift length in the TPC in mm.
 
virtual bool isInsideModule (double c0, double c1) const =0
 True if coordinate (c0,c1) is within any module. More...
 
virtual bool isInsideModule (double c0, double c1, double z) const =0
 First determines the correct end plate from the z coordinate and then calls the same function as the 2D version on the modules from the correct end cap.
 
virtual bool isInsidePad (double c0, double c1) const =0
 True if coordinate (c0,c1) is within any pad, on any module. More...
 
virtual bool isInsidePad (double c0, double c1, double z) const =0
 First determines the correct end plate from the z coordinate and then calls the same function as the 2D version on the modules from the correct end cap.
 
virtual GlobalPadIndex getNearestPad (double c0, double c1) const =0
 Returns globalPadindex Object for nearest pad to given coordinates (2D). More...
 
virtual GlobalPadIndex getNearestPad (double c0, double c1, double z) const =0
 Returns globalPadindex Object for nearest pad to given coordinates (3D). More...
 
virtual const std::vector
< double > & 
getPlaneExtent () const =0
 Extent of the sensitive plane - [xmin,xmax,ymin,ymax] CARTESIAN or [rmin,rmax,phimin,phimax] POLAR. More...
 
virtual int getCoordinateType () const =0
 Returns coordinate type as an int (see PadRowLayout2D::CARTESIAN, PadRowLayout2D::POLAR)
 
virtual const std::vector
< TPCModule * > & 
getModules () const =0
 Returns vector of all modules in this TPC (endplate).
 
virtual const PadRowLayout2DgetPadLayout () const =0
 Kept for backward compatibility. More...
 
virtual double getDriftVelocity () const =0
 The electron drift velocity in the TPC in mm/s. More...
 
virtual double getReadoutFrequency () const =0
 Kept for backward compatibility. More...
 
- Public Member Functions inherited from gear::GearParameters
virtual ~GearParameters ()
 Destructor.
 
virtual int getIntVal (const std::string &key) const =0
 Integer value for key. More...
 
virtual double getDoubleVal (const std::string &key) const =0
 Double value for key. More...
 
virtual const std::string & getStringVal (const std::string &key) const =0
 String value for key. More...
 
virtual const std::vector< int > & getIntVals (const std::string &key) const =0
 Integer values for key. More...
 
virtual const std::vector
< double > & 
getDoubleVals (const std::string &key) const =0
 Double values for key. More...
 
virtual const std::vector
< std::string > & 
getStringVals (const std::string &key) const =0
 String values for key. More...
 
virtual const std::vector
< std::string > & 
getIntKeys () const =0
 All keys of int variables. More...
 
virtual const std::vector
< std::string > & 
getDoubleKeys () const =0
 All keys of double variables. More...
 
virtual const std::vector
< std::string > & 
getStringKeys () const =0
 All keys of string variables. More...
 
virtual const std::vector
< std::string > & 
getIntVecKeys () const =0
 All keys of IntVec variables. More...
 
virtual const std::vector
< std::string > & 
getDoubleVecKeys () const =0
 All keys of DoubleVec variables. More...
 
virtual const std::vector
< std::string > & 
getStringVecKeys () const =0
 All keys of StringVec variables. More...
 

Detailed Description

Proposal for an abstract interface that defines the geometry properties of a TPC like detector needed for reconstruction code.


This object contains one or more modules, these modules define the sensitive region
The original TPCParameters class was based on ideas by Dean Karlen.

Author
F. Gaede (DESY), M. Killenberg (Bonn) S. Turnbull (Saclay/Carleton)
Version
$Id$

Definition at line 24 of file TPCParameters.h.

Member Function Documentation

virtual double gear::TPCParameters::getDriftVelocity ( ) const
pure virtual

The electron drift velocity in the TPC in mm/s.

Kept for backwards compatibility.

Deprecated:
{This should come from conditions data.}

Implemented in gear::TPCParametersImpl.

Referenced by gear::TPCParametersXML::toXML().

virtual const TPCModule& gear::TPCParameters::getModule ( int  ID) const
pure virtual

Returns module with given moduleID.

ModuleID is NOT the position within the modules vector and may be larger than (nModules-1)! It is the global ID (potentially across several end plates), stored as CellID1 in the lcio data classes.

Implemented in gear::TPCParametersImpl.

virtual const TPCModule& gear::TPCParameters::getNearestModule ( double  c0,
double  c1 
) const
pure virtual

Returns nearest module to given coordinates (2D).

In case of a full TPC with two end caps the first matching module is returned, although a module from the other end plate might be closer in 3D. Use the 3D version of getNearestModule in this case to get the module from the correct half TPC.

Implemented in gear::TPCParametersImpl.

virtual const TPCModule& gear::TPCParameters::getNearestModule ( double  c0,
double  c1,
double  z 
) const
pure virtual

Returns nearest module to given coordinates (3D).

The z coordinate is only used to determine whether the positive or negative half TPC is to be used.

Implemented in gear::TPCParametersImpl.

virtual GlobalPadIndex gear::TPCParameters::getNearestPad ( double  c0,
double  c1 
) const
pure virtual

Returns globalPadindex Object for nearest pad to given coordinates (2D).

In case of a full TPC with two end caps the first matching module ID is returned, although a module from the other end plate might be closer in 3D. Use the 3D version of getNearestPad in this case to get the pad from a module from the correct half TPC.

Implemented in gear::TPCParametersImpl.

virtual GlobalPadIndex gear::TPCParameters::getNearestPad ( double  c0,
double  c1,
double  z 
) const
pure virtual

Returns globalPadindex Object for nearest pad to given coordinates (3D).

The z coordinate is only used to determine whether the positive or negative half TPC is to be used.

Implemented in gear::TPCParametersImpl.

virtual const PadRowLayout2D& gear::TPCParameters::getPadLayout ( ) const
pure virtual

Kept for backward compatibility.

In case there is only one module, which has no angle and no offset wrt. the gobal coordinate systen, it gives back the PadRowLayout2D of this module. Otherwise it throws a gear::Exception.

Deprecated:
{Please use getModule(moduleID) instead. The TPCModule is an implementation of PadRowLayout2D}

Implemented in gear::TPCParametersImpl.

virtual const std::vector<double>& gear::TPCParameters::getPlaneExtent ( ) const
pure virtual

Extent of the sensitive plane - [xmin,xmax,ymin,ymax] CARTESIAN or [rmin,rmax,phimin,phimax] POLAR.

These are the outermost coordinates in the respective coordinate system. It does not mean that the complete plane is sensitive as there might be dead space between the modules.

Implemented in gear::TPCParametersImpl.

virtual double gear::TPCParameters::getReadoutFrequency ( ) const
pure virtual

Kept for backward compatibility.

In case there is only one module it gives back the redaout frequency of this module. Otherwise it throws a gear::Exception.

Deprecated:
{Use TPCModule::getReadoutFrequency() instead.}

Implemented in gear::TPCParametersImpl.

virtual bool gear::TPCParameters::isInsideModule ( double  c0,
double  c1 
) const
pure virtual

True if coordinate (c0,c1) is within any module.

This may or may not be on a pad, since with resitive films being on the film is enough to generate signal on pads (see TPCModule::getBorderWidth() ). This is the 2D version. Use isInsideModule(double c0, double c1, double z) to limit to correct end plate in case there are two.

Implemented in gear::TPCParametersImpl.

virtual bool gear::TPCParameters::isInsidePad ( double  c0,
double  c1 
) const
pure virtual

True if coordinate (c0,c1) is within any pad, on any module.

This is the 2D version. Use isInsideModule(double c0, double c1, double z) to limit to correct end plate in case there are two.

Implemented in gear::TPCParametersImpl.


The documentation for this class was generated from the following file: