Photomultiplier
#include "Photomultiplier.hh" |
Photomultiplier
class description - source file - inheritance tree (.pdf)
class Photomultiplier : public EsafConfigurable, public EsafMsgSource
Inheritance Chart: | |||||||||||||||||||||
|
protected:
Photomultiplier(Int_t, PmtGeometry*) virtual void AddTest(Double_t, Int_t) virtual void BuildFrontEndMap(Int_t, Int_t) void SetState(PmtState val) public:
virtual ~Photomultiplier() virtual Bool_t Add(Photon&) MacroCell* Cell() static TClass* Class() virtual const char* ClassName() const virtual const char* ClassType() const ElementaryCell* ElemCell() Int_t FEChannel(Int_t n) FrontEndChip* FrontEnd() virtual PmtGeometry* Geometry() const Int_t GetChannel(ChannelUniqueId id) const Double_t GetEndTime() const static Double_t GetGain() static Double_t GetGainSigma() static Double_t GetGtuLength() ChannelUniqueId GetLastUniqueId() const static Double_t GetQuantum() Double_t GetStartTime() const ChannelUniqueId GetStartUniqueId() const ChannelUniqueId GetUniqueId(Int_t ch) const static Double_t GetWidth() Int_t Id() const virtual TClass* IsA() const Bool_t IsEmpty() const virtual Bool_t isValid(Int_t n) const virtual Int_t NumChan() const virtual void Reset() static void ResetClass() void SetCell(MacroCell* c) void SetElemCell(ElementaryCell* p) void SetEmpty(Bool_t val) void SetFrontEnd(FrontEndChip*, Int_t, Int_t) void SetStartUniqueId(ChannelUniqueId start) virtual void ShowMembers(TMemberInspector& insp, char* parent) vector<PmtSignal*>& Signals(Int_t ch) void Simulate() PmtState Status() const virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)
Data Members
protected:
PmtState fState state of the PMT Int_t fId this pmt id number ChannelUniqueId fStartUniqueId unique id of first channel map<Int_t,Int_t> fFeMap mapping between pmt and front end channels FrontEndChip* fFrontEnd pointer to its front end chip PmtGeometry* fGeometry pointer to the geometry object MacroCell* fCell pointer to the macrocell ElementaryCell* fEC pointer to the elementary cell map<Int_t,vector<PmtSignal*>*> fPmtHits Bool_t fEmpty Double_t fStartTime Double_t fEndTime static Double_t fgQuantum quantum efficiency static Double_t fgGain nominal gain static Double_t fgGainSigma gain spread static Double_t fgWidth time width static Double_t fgGtuLength gtu length in ns
Class Description
void ResetClass()
Reset static members of the class
Int_t FEChannel(Int_t n)
Returns front end channel number corresponding to pmt channel n
ChannelUniqueId GetUniqueId(Int_t ch) const
Returns channel unique id if the channel belongs to this pmt
void SetFrontEnd( FrontEndChip* fe, Int_t row, Int_t col )
Re-assign a new front end chip to this pmt
void BuildFrontEndMap( Int_t row, Int_t col)
Connection between PMT channels and Front-End channels this is non trivial where a single front end chip reads more than one PMT the other possibility (pmt channels exceeding fe channels) is not implemented
void Reset()
Reset pmt and get ready for next event list are deleted PmtSignal objects are deleted by Front End
void AddTest(Double_t tm, Int_t ch)
Add method for testing purpose only private; only ElecTestDetTransManager can call it
Bool_t Add(Photon& ph)
add a photon hit to be simulated
void Simulate()
Add PmtHits to the Front-End chip the Photomultipliers job ends here. The Front End simulation and MacroCell simulation is assumed to be handled by some one else.
Inline Functions
void ~Photomultiplier() Photomultiplier Photomultiplier(Int_t, PmtGeometry*) const char* ClassType() const const char* ClassName() const Double_t GetQuantum() Double_t GetGain() Double_t GetGainSigma() Double_t GetWidth() Double_t GetGtuLength() Int_t Id() const void SetStartUniqueId(ChannelUniqueId start) ChannelUniqueId GetStartUniqueId() const ChannelUniqueId GetLastUniqueId() const Int_t GetChannel(ChannelUniqueId id) const PmtState Status() const Int_t NumChan() const Bool_t isValid(Int_t n) const FrontEndChip* FrontEnd() PmtGeometry* Geometry() const void SetCell(MacroCell* c) MacroCell* Cell() void SetElemCell(ElementaryCell* p) ElementaryCell* ElemCell() Bool_t IsEmpty() const void SetEmpty(Bool_t val) Double_t GetStartTime() const Double_t GetEndTime() const vector<PmtSignal*>& Signals(Int_t ch) void SetState(PmtState val) TClass* Class() TClass* IsA() const void ShowMembers(TMemberInspector& insp, char* parent) void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)