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)
