00001 00002 // $Id: PulserGainPin.h,v 1.5 2005/10/27 09:37:34 cpw1 Exp $ 00003 // 00004 // PulserGainPin.h 00005 // 00006 // Dbi object for raw gain curve info 00007 // 00008 // Author: Phil Adamson 7/2003 00009 // 00010 // $Log: PulserGainPin.h,v $ 00011 // Revision 1.5 2005/10/27 09:37:34 cpw1 00012 // Add methods ZCMean and ZCError 00013 // 00014 // Revision 1.4 2004/10/25 20:04:54 murgia 00015 // Include expected number of points in AddPoint. 00016 // 00017 // Revision 1.3 2004/09/17 16:58:38 phil.adamson 00018 // Try to fix aggregate number and stripend missing bugs 00019 // 00020 // Revision 1.2 2004/09/14 22:01:47 phil.adamson 00021 // 00022 // 00023 // A couple of minor fixes 00024 // 00025 // Revision 1.1 2004/09/08 21:50:51 pa 00026 // Checkin of new PulserCalibration version. MIght even work 00027 // 00028 // 00030 00031 #ifndef PULSERGAINPIN_H 00032 #define PULSERGAINPIN_H 00033 00034 #include "Rtypes.h" 00035 #include "DatabaseInterface/DbiTableRow.h" 00036 #include "PulserCalibration/PulserSummary.h" 00037 00038 class DbiValidityRec; 00039 00040 class PulserGainPin: public DbiTableRow 00041 { 00042 public: 00043 PulserGainPin(); 00044 // PulserGainPin(Int_t aggNo, Int_t seid, Float_t *mean, Float_t *error, 00045 // Float_t *num_entries); 00046 virtual ~PulserGainPin() {}; 00047 00048 00049 bool AddPoint(Int_t point, const PulserSummary &ps, int aggNo, int expectedPoints); 00050 bool Add(const PulserGainPin &pg); 00051 00052 Int_t GetAggregateNo() const { return fAggregateNo; } 00053 UInt_t GetIndex(UInt_t /* defIndex */) const { return fPlexPinDiodeId.GetEncoded(); } 00054 PlexPinDiodeId GetStripEnd() const {return fPlexPinDiodeId;} 00055 PlexPinDiodeId GetPinDiodeId() const {return fPlexPinDiodeId;} 00056 Int_t GetNumPoints() const {return fNumPoints;} 00057 Int_t GetFirstPoint() const {return fFirstPoint;} 00058 Int_t GetLastPoint() const {return fLastPoint;} 00059 const Float_t *GetMean() const {return fMean;} 00060 const Float_t *GetError() const {return fError;} 00061 const Float_t *GetNumEntries() const {return fNumEntries;} 00062 const Float_t *GetNumTriggers() const {return fNumTriggers;} 00063 Float_t ZCMean(Int_t i); 00064 Float_t ZCError(Int_t i); 00065 00066 00067 virtual DbiTableRow* CreateTableRow() const { return new PulserGainPin;} 00068 00069 00070 virtual void Fill(DbiResultSet& rs, 00071 const DbiValidityRec* vrec); 00072 virtual void Store(DbiOutRowStream& ors, 00073 const DbiValidityRec* vrec) const; 00074 00075 private: 00076 Int_t fAggregateNo; 00077 PlexPinDiodeId fPlexPinDiodeId; 00078 Int_t fNumPoints; 00079 Int_t fFirstPoint; // First point that we have in a partial gc 00080 Int_t fLastPoint; // last point that we have in a partial 00081 // note that if we have say 1-4 and 7-10, they'll be 00082 // 2 different partials till we merge when we have the 00083 // middle bit 00084 Float_t fMean[40]; 00085 Float_t fError[40]; 00086 Float_t fNumEntries[40]; 00087 Float_t fNumTriggers[40]; 00088 00089 ClassDef(PulserGainPin,0) 00090 }; 00091 #endif // PULSERGAINPIN_H
1.3.9.1