GEAR  1.9.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Friends Pages
TPCParameters.h
1 // -*- C++ -*-
2 #ifndef GEAR_TPCPARAMETERS_H
3 #define GEAR_TPCPARAMETERS_H 1
4 
5 #include <vector>
6 
7 #include "gear/GearParameters.h"
8 #include "gear/PadRowLayout2D.h"
9 #include "gearimpl/GlobalPadIndex.h"
10 
11 namespace gear {
12 
13 class TPCModule;
14 
24 class TPCParameters : virtual public GearParameters {
25 
26 public:
28  virtual ~TPCParameters() { /* nop */; }
29 
35  virtual const TPCModule & getModule(int ID) const = 0;
36 
39  virtual int getNModules() const = 0;
40 
47  virtual const TPCModule & getNearestModule(double c0, double c1) const = 0;
48 
53  virtual const TPCModule & getNearestModule(double c0, double c1, double z) const = 0;
54 
57  virtual double getMaxDriftLength() const = 0;
58 
66  virtual bool isInsideModule(double c0, double c1) const = 0;
67 
72  virtual bool isInsideModule(double c0, double c1, double z) const = 0;
73 
78  virtual bool isInsidePad(double c0, double c1) const = 0;
79 
84  virtual bool isInsidePad(double c0, double c1, double z) const = 0;
85 
92  virtual GlobalPadIndex getNearestPad(double c0, double c1) const = 0;
93 
98  virtual GlobalPadIndex getNearestPad(double c0, double c1, double z) const = 0;
99 
105  virtual const std::vector<double> & getPlaneExtent() const = 0;
106 
110  virtual int getCoordinateType() const = 0;
111 
114  virtual const std::vector<TPCModule *> & getModules() const = 0;
115 
125  virtual const PadRowLayout2D & getPadLayout() const = 0;
126 
132  virtual double getDriftVelocity() const = 0;
133 
141  virtual double getReadoutFrequency() const = 0;
142 }; // class
143 } // namespace gear
144 #endif /* ifndef GEAR_TPCPARAMETERS_H */
virtual bool isInsideModule(double c0, double c1) const =0
True if coordinate (c0,c1) is within any module.
virtual int getCoordinateType() const =0
Returns coordinate type as an int (see PadRowLayout2D::CARTESIAN, PadRowLayout2D::POLAR) ...
virtual const TPCModule & getModule(int ID) const =0
Returns module with given moduleID.
virtual ~TPCParameters()
Destructor.
Definition: TPCParameters.h:28
Abstract description of a planar subdetector with pads (cells) that are positioned in rows (circular ...
Proposal for an abstract interface that defines the geometry properties of a TPC like detector needed...
Definition: TPCParameters.h:24
virtual GlobalPadIndex getNearestPad(double c0, double c1) const =0
Returns globalPadindex Object for nearest pad to given coordinates (2D).
virtual double getDriftVelocity() const =0
The electron drift velocity in the TPC in mm/s.
virtual bool isInsidePad(double c0, double c1) const =0
True if coordinate (c0,c1) is within any pad, on any module.
virtual const std::vector< TPCModule * > & getModules() const =0
Returns vector of all modules in this TPC (endplate).
Abstract interface for a set of parameters that can be used to describe the geometrical properties of...
Global pad index implimentation .
virtual const TPCModule & getNearestModule(double c0, double c1) const =0
Returns nearest module to given coordinates (2D).
virtual const PadRowLayout2D & getPadLayout() const =0
Kept for backward compatibility.
virtual double getMaxDriftLength() const =0
The maximum drift length in the TPC in mm.
virtual const std::vector< double > & getPlaneExtent() const =0
Extent of the sensitive plane - [xmin,xmax,ymin,ymax] CARTESIAN or [rmin,rmax,phimin,phimax] POLAR.
virtual int getNModules() const =0
Returns number of modules in this TPC (endplate).
virtual double getReadoutFrequency() const =0
Kept for backward compatibility.
A wrapper Class for PadRowLayout2D which converts between the actual pad layouts local coodinate syst...
Definition: TPCModule.h:41