00001
00002
00003
00004
00005
00006
00007
00008
00010
00011 #ifndef CALSTRIPATTEN_H
00012 #define CALSTRIPATTEN_H
00013
00014 #include "DatabaseInterface/DbiTableRow.h"
00015 #include "DatabaseInterface/DbiValidityRec.h"
00016 #include "LeakChecker/Lea.h"
00017 #include "Plex/PlexStripEndId.h"
00018
00019 class DbiValidityRec;
00020
00021 class CalStripAtten : public DbiTableRow
00022 {
00023
00024 public:
00025
00026
00027 CalStripAtten() { LEA_CTOR; }
00028
00029 CalStripAtten( const PlexStripEndId& seid,
00030 Float_t lambda1, Float_t lambda2, Float_t frac1,
00031 Float_t lambda1err, Float_t lambda2err, Float_t frac1err )
00032 : fSEIdEncoded(seid.GetEncoded()),
00033 fLambda1(lambda1), fLambda2(lambda2), fFrac1(frac1),
00034 fLambda1Err(lambda1err), fLambda2Err(lambda2err), fFrac1Err(frac1err),
00035 fSEIdKey(seid.BuildPlnStripEndKey())
00036 { LEA_CTOR; }
00037
00038 CalStripAtten( Int_t seid_enc,
00039 Float_t lambda1, Float_t lambda2, Float_t frac1,
00040 Float_t lambda1err, Float_t lambda2err, Float_t frac1err )
00041 : fSEIdEncoded(seid_enc),
00042 fLambda1(lambda1), fLambda2(lambda2), fFrac1(frac1),
00043 fLambda1Err(lambda1err), fLambda2Err(lambda2err), fFrac1Err(frac1err),
00044 fSEIdKey(PlexStripEndId(seid_enc).BuildPlnStripEndKey())
00045 { LEA_CTOR; }
00046
00047 virtual ~CalStripAtten(){ LEA_DTOR; };
00048
00049
00050 Bool_t CanL2Cache() const { return kTRUE; }
00051 UInt_t GetIndex(UInt_t) const { return fSEIdKey; }
00052 PlexStripEndId GetStripEndId() const { return PlexStripEndId(fSEIdEncoded); }
00053 UInt_t GetSEIDkey() const { return fSEIdKey; }
00054 Float_t GetLambda1() const { return fLambda1; };
00055 Float_t GetLambda2() const { return fLambda2; };
00056 Float_t GetFrac1() const { return fFrac1; };
00057 Float_t GetFrac2() const { return 1.0-fFrac1; };
00058 Float_t GetLambda1Err() const { return fLambda1Err; };
00059 Float_t GetLambda2Err() const { return fLambda2Err; };
00060 Float_t GetFrac1Err() const { return fFrac1Err; };
00061
00062 virtual DbiTableRow* CreateTableRow() const { return new CalStripAtten; }
00063
00064
00065 virtual void Fill(DbiResultSet& rs,
00066 const DbiValidityRec* vrec);
00067 virtual void Store(DbiOutRowStream& ors,
00068 const DbiValidityRec* vrec) const;
00069
00070
00071 Float_t GetAttenuation(const Float_t wlsLen) const;
00072 Float_t GetAttenuation(const Float_t wlsLen, const Float_t* sigma_err) const;
00073
00074 private:
00075
00076 CalStripAtten(const CalStripAtten& from)
00077 : DbiTableRow(from) { LEA_CTOR; *this = from; }
00078
00079
00080 Int_t fSEIdEncoded;
00081 Float_t fLambda1;
00082 Float_t fLambda2;
00083 Float_t fFrac1;
00084 Float_t fLambda1Err;
00085 Float_t fLambda2Err;
00086 Float_t fFrac1Err;
00087
00088
00089 UInt_t fSEIdKey;
00090 ClassDef(CalStripAtten,0)
00091 };
00092
00093
00094 #endif // CALSTRIPATTEN_H
00095
00096
00097
00098
00099