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&)
