Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CalStripAtten.h

Go to the documentation of this file.
00001 
00002 // $Id: CalStripAtten.h,v 1.3 2005/02/18 16:27:10 tagg Exp $
00003 // CalStripAtten
00004 //
00005 // DB Row class corresponding to a single attenuation curve along a strip.
00006 //
00007 //
00008 // Nathaniel Tagg n.tagg1@physics.ox.ac.uk
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    // Constructors and destructors.
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    // State testing member functions
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    // State changing member functions
00065    virtual void Fill(DbiResultSet& rs,
00066                     const DbiValidityRec* vrec);
00067    virtual void Store(DbiOutRowStream& ors,
00068                      const DbiValidityRec* vrec) const;
00069 
00070    // Compute the attenuation factor for wlsLen of green fibre:
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    // Data members
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    // Derived data members:
00089    UInt_t fSEIdKey;
00090    ClassDef(CalStripAtten,0)    // Example of non-aggregated datadata type. 
00091 };
00092 
00093 
00094 #endif  // CALSTRIPATTEN_H
00095 
00096 
00097 
00098 
00099 

Generated on Mon Feb 15 11:06:27 2010 for loon by  doxygen 1.3.9.1