Universita' di GenovaINFN Sezione di Genova  
AIRWATCH / EUSO Genova

Photomultiplier

#include "Photomultiplier.hh"

Photomultiplier


class description - source file - inheritance tree (.pdf)

class Photomultiplier : public EsafConfigurable, public EsafMsgSource

Inheritance Chart:
EsafConfigurable
EsafMsgSource
<-
Photomultiplier
<-
R7600M64Photomultiplier
R8900M36Photomultiplier
SiliconPhotomultiplier

    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 static Double_t GetDarkNoiseRate() 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 fgDarkNoiseRate darknoise [microsec^-1] static Double_t fgGtuLength gtu length in ns

Class Description


Photomultiplier(Int_t id, PmtGeometry* g ): fId(id), fFrontEnd(NULL), fGeometry(g), fCell(NULL), fEC(NULL)
 Constructor


~Photomultiplier()
 Destructor


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


                const char* ClassType() const
                const char* ClassName() const
                   Double_t GetQuantum()
                   Double_t GetGain()
                   Double_t GetGainSigma()
                   Double_t GetWidth()
                   Double_t GetGtuLength()
                   Double_t GetDarkNoiseRate()
                      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)
About Us | EUSO Official Website | Web pages created by Roberto Pesce and Alessandro Thea - Last Update Wed Nov 16 16:18:37 2005