PmtGeometry
#include "PmtGeometry.hh" |
PmtGeometry
class description - source file - inheritance tree (.pdf)
class PmtGeometry : public EsafConfigurable
Inheritance Chart: | |||||||||
|
private:
static TVector3& Corner(Int_t r, Int_t c) TVector3 LocalCoord(const TVector3&) const Int_t Pad(const TVector3&) const static void SetPmtGeometry() public:
PmtGeometry(TVector3, TVector3, TVector3) PmtGeometry(const PmtGeometry&) virtual ~PmtGeometry() TVector3 Center() const static TClass* Class() virtual const char* ClassName() const virtual const char* ClassType() const static Double_t DeadBorder() static Double_t DeadInnerStrip() Int_t GetChannel(ChannelUniqueId id) const ChannelUniqueId GetLastUniqueId() const OpticalAdaptor* GetOA() const ChannelUniqueId GetStartUniqueId() const ChannelUniqueId GetUniqueId(Int_t ch) const const TVector3& GetX() const const TVector3& GetY() const const TVector3& GetZ() const void InsertOA(OpticalAdaptor* oa) virtual TClass* IsA() const Double_t IsHit(const Photon&) const Bool_t IsInside(const Photon&) const const PmtGeometry* Nearest(OAFace) const const TVector3& Normal() const static Int_t NumPads() PmtGeometry& operator=(const PmtGeometry&) Int_t Pad(const Photon&) const static Double_t PadSide() Double_t PhiFOV(Int_t nch) const Photomultiplier* Pmt() const const TVector3& Position() const TVector3 Position(Int_t, Int_t) const TVector3 Position(Int_t) const static void ResetClass() static Int_t Rows() void SetNearest(PmtGeometry*, PmtGeometry*, PmtGeometry*, PmtGeometry*) void SetOA(OpticalAdaptor* oa) void SetPmt(Photomultiplier* pm) void SetStartUniqueId(ChannelUniqueId start) virtual void ShowMembers(TMemberInspector& insp, char* parent) static Double_t Side() virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) Double_t ThetaFOV(Int_t nch) const
Data Members
private:
static Int_t fgNumPads number of active pads static Int_t fgNumRows number of rows and columns static Double_t fgSide physical total width of the pmt static Double_t fgDeadBorder thickness of external dead space static Double_t fgDeadInner thickness of internal space static Double_t fgPadSide width of one pad static TVector3* fgCorners[10][10] map of 3D points with the corner of TVector3 fPosition local coordinate origin position TVector3 fZAxis normal to the phocal surface TVector3 fYAxis y axis in global coordinate TVector3 fXAxis x axis in global coordinate OpticalAdaptor* pOA PmtGeometry* fRight PmtGeometry* fLeft PmtGeometry* fFront PmtGeometry* fBack Photomultiplier* pPmt ChannelUniqueId fStartUniqueId
Class Description
Photomultiplier Geometry ======================== Geometry descriptor of a PMT this object can be attached to any Photomultiplier object In the constructor it retrieves the relevant parameters from the Config object and store them in class variables Local Coordinates: x,y,z z is normal to the Photocathode (0,0,0) is the upper left corner of the pmt photocathode surface up is defined by the y axis right is defined by the x axis direction left is -x
void ResetClass()
Reset static data members
void SetNearest(PmtGeometry* r, PmtGeometry* l, PmtGeometry* f, PmtGeometry* b)
Set pointers to nearest neighbors
void InsertOA( OpticalAdaptor* oa )
Insert oa in front of the pmt and displace geometry of oa->GetHeight()
void SetPmtGeometry()
Set local geometry infos and global parameters only once
Bool_t IsInside( const Photon& ph ) const
check whether a Photon is inside the geometrical acceptance of this pmt it returns true when the Photon is within the external side and its distance from the surface is less than PMT_TOLERANCE
Double_t IsHit( const Photon& ph ) const
check whether a Photon
TVector3 Center() const
Return the position of the center of the pmt
TVector3 LocalCoord( const TVector3& pos) const
Int_t Pad( const Photon& ph ) const
Int_t Pad( const TVector3& x) const
const PmtGeometry* Nearest( OAFace side ) const
Nearest neighbor
TVector3 Position(Int_t r, Int_t c) const
Return the position in EUSO coordinate of the center of a pad r and c are not checked
TVector3 Position(Int_t ch) const
return the position in EUSO coordinate of the center of a pad ch is the channel number defined as ch = r*n+c
Double_t ThetaFOV(Int_t ch) const
Theta in field of view (FOV) corresponding to the center of this pad
Double_t PhiFOV(Int_t ch) const
Theta in field of view (FOV) corresponding to the center of this pad
Int_t GetChannel( ChannelUniqueId chid ) const
Returns channel associated to unique id
Inline Functions
void ~PmtGeometry() PmtGeometry PmtGeometry(TVector3, TVector3, TVector3) const char* ClassType() const const char* ClassName() const Int_t NumPads() Int_t Rows() Double_t Side() Double_t PadSide() Double_t DeadBorder() Double_t DeadInnerStrip() void SetPmt(Photomultiplier* pm) Photomultiplier* Pmt() const void SetOA(OpticalAdaptor* oa) OpticalAdaptor* GetOA() const TVector3 Position(Int_t) const const TVector3& Normal() const const TVector3& GetX() const const TVector3& GetY() const const TVector3& GetZ() const void SetStartUniqueId(ChannelUniqueId start) ChannelUniqueId GetUniqueId(Int_t ch) const ChannelUniqueId GetStartUniqueId() const ChannelUniqueId GetLastUniqueId() const TVector3& Corner(Int_t r, Int_t c) TClass* Class() TClass* IsA() const void ShowMembers(TMemberInspector& insp, char* parent) void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) PmtGeometry PmtGeometry(const PmtGeometry&) PmtGeometry& operator=(const PmtGeometry&)