// ESAF : Euso Simulation and Analysis Framework // class PmtSignal // $Id: PmtSignal.hh,v 1.6 2005/02/24 11:00:26 pesce Exp $ // M.Pallavicini - created #ifndef __PMTSIGNAL_H_ #define __PMTSIGNAL_H_ //#include "global.hh" #include "TObject.h" // class PmtSignal // a signal is a gaussian shaped negative current class PmtSignal { public: // ctor PmtSignal(Double_t t0,Double_t c,Double_t width,Int_t pmt, Int_t ch); // dtor virtual ~PmtSignal(); // unique identifier (signal counter) inline Int_t Id() {return fId;} // pmt and pmt chan inline Int_t Pmt() {return fPmt;} inline Int_t Ch() {return fCh;} // current peak time inline Double_t Time() const {return fTime;} // total charge inline Double_t Charge() const {return fCharge;} // time standard deviation inline Double_t Sigma() const {return fWidth;} // current at time t Double_t Current(Double_t t) const; // voltage over a resistor R Double_t Voltage(Double_t t, Double_t R) const; virtual void Dump() const; // flags inline Bool_t MadeCount() const { return fMadeCount;} inline void SetMadeCount(Bool_t val) { fMadeCount=val;} inline Bool_t MadeFastOR() const { return fMadeFastOR;} inline void SetMadeFastOR(Bool_t val) { fMadeFastOR=val;} private: Double_t fTime; // time (leading edge) Double_t fCharge; // total charge Double_t fWidth; // time width Int_t fId; // identifier Int_t fPmt; // pmt number Int_t fCh; // channel number Bool_t fMadeCount; // true if the signal made a digital count in DFEE Bool_t fMadeFastOR; // true if the signal gave a fast or count in MC static Int_t gSigCounter; // signal counter ClassDef(PmtSignal,0) }; Bool_t operator < ( PmtSignal& s1, PmtSignal& s2 ); ostream& operator << (ostream&, PmtSignal&); #endif