CalStripAtten Class Reference

#include <CalStripAtten.h>

Inheritance diagram for CalStripAtten:
DbiTableRow

List of all members.

Public Member Functions

 CalStripAtten ()
 CalStripAtten (const PlexStripEndId &seid, Float_t lambda1, Float_t lambda2, Float_t frac1, Float_t lambda1err, Float_t lambda2err, Float_t frac1err)
 CalStripAtten (Int_t seid_enc, Float_t lambda1, Float_t lambda2, Float_t frac1, Float_t lambda1err, Float_t lambda2err, Float_t frac1err)
virtual ~CalStripAtten ()
Bool_t CanL2Cache () const
UInt_t GetIndex (UInt_t) const
PlexStripEndId GetStripEndId () const
UInt_t GetSEIDkey () const
Float_t GetLambda1 () const
Float_t GetLambda2 () const
Float_t GetFrac1 () const
Float_t GetFrac2 () const
Float_t GetLambda1Err () const
Float_t GetLambda2Err () const
Float_t GetFrac1Err () const
virtual DbiTableRowCreateTableRow () const
virtual void Fill (DbiResultSet &rs, const DbiValidityRec *vrec)
virtual void Store (DbiOutRowStream &ors, const DbiValidityRec *vrec) const
Float_t GetAttenuation (const Float_t wlsLen) const
Float_t GetAttenuation (const Float_t wlsLen, const Float_t *sigma_err) const

Private Member Functions

 CalStripAtten (const CalStripAtten &from)

Private Attributes

Int_t fSEIdEncoded
Float_t fLambda1
Float_t fLambda2
Float_t fFrac1
Float_t fLambda1Err
Float_t fLambda2Err
Float_t fFrac1Err
UInt_t fSEIdKey

Detailed Description

Definition at line 21 of file CalStripAtten.h.


Constructor & Destructor Documentation

CalStripAtten::CalStripAtten (  )  [inline]

Definition at line 27 of file CalStripAtten.h.

References LEA_CTOR.

00027 { LEA_CTOR; }

CalStripAtten::CalStripAtten ( const PlexStripEndId seid,
Float_t  lambda1,
Float_t  lambda2,
Float_t  frac1,
Float_t  lambda1err,
Float_t  lambda2err,
Float_t  frac1err 
) [inline]

Definition at line 29 of file CalStripAtten.h.

References LEA_CTOR.

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; }

CalStripAtten::CalStripAtten ( Int_t  seid_enc,
Float_t  lambda1,
Float_t  lambda2,
Float_t  frac1,
Float_t  lambda1err,
Float_t  lambda2err,
Float_t  frac1err 
) [inline]

Definition at line 38 of file CalStripAtten.h.

References LEA_CTOR.

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; }

virtual CalStripAtten::~CalStripAtten (  )  [inline, virtual]

Definition at line 47 of file CalStripAtten.h.

References LEA_DTOR.

00047 { LEA_DTOR; };

CalStripAtten::CalStripAtten ( const CalStripAtten from  )  [inline, private]

Definition at line 76 of file CalStripAtten.h.

References LEA_CTOR.

00077     : DbiTableRow(from) { LEA_CTOR; *this = from; }


Member Function Documentation

Bool_t CalStripAtten::CanL2Cache (  )  const [inline, virtual]

Reimplemented from DbiTableRow.

Definition at line 50 of file CalStripAtten.h.

00050 { return kTRUE; }

virtual DbiTableRow* CalStripAtten::CreateTableRow (  )  const [inline, virtual]

Implements DbiTableRow.

Definition at line 62 of file CalStripAtten.h.

00062 { return new CalStripAtten; }

void CalStripAtten::Fill ( DbiResultSet rs,
const DbiValidityRec vrec 
) [virtual]

Implements DbiTableRow.

Definition at line 41 of file CalStripAtten.cxx.

References DbiRowStream::CurColName(), fFrac1, fFrac1Err, fLambda1, fLambda1Err, fLambda2, fLambda2Err, fSEIdEncoded, fSEIdKey, DbiRowStream::HasRowCounter(), DbiRowStream::IncrementCurCol(), Msg::kDebug, MSG, DbiRowStream::NumCols(), and DbiRowStream::TableName().

00042                                                                 {
00043 
00044 //
00045 //
00046 //  Purpose:  Fill object from Result Set
00047 //
00048 //  Arguments: 
00049 //    rs           in    Result Set used to fill object
00050 //    vrec         in    Associated validity record (or 0 if filling
00051 //                                                    DbiValidityRec)
00052 //
00053 //  o Fill object from current row of Result Set.
00054 
00055 //  Program Notes:-
00056 //  =============
00057 
00058 //  This method demonstrates both the "dumb" fill method (just
00059 //  load the data as it comes) and the smart method (check column
00060 //  name and load according to column order). 
00061 
00062    if ( rs.TableName() == "CALSTRIPATTEN" ) {
00063       // Dumb method.
00064      rs  >> fSEIdEncoded >> fLambda1 >> fLambda2 >> fFrac1 >> fLambda1Err >> fLambda2Err >> fFrac1Err; 
00065      fSEIdKey = PlexStripEndId(fSEIdEncoded).BuildPlnStripEndKey();
00066    }
00067 
00068    else {
00069       
00070       // Smart method
00071       Int_t numCol = rs.NumCols();
00072       //  The first column (SeqNo) has already been processed.
00073       for (Int_t curCol = rs.HasRowCounter() ? 3 : 2; curCol <= numCol; ++curCol) {
00074          string colName = rs.CurColName();
00075          if ( colName == "SEIDENCODED" ) {
00076            rs >> fSEIdEncoded; 
00077            fSEIdKey =  PlexStripEndId(fSEIdEncoded).BuildPlnStripEndKey();       
00078          }
00079          else if( colName == "LAMBDA1" )     rs >> fLambda1;
00080          else if( colName == "LAMBDA2" )     rs >> fLambda2;
00081          else if( colName == "FRAC1"   )     rs >> fFrac1;
00082          else if( colName == "LAMBDA1ERR" )     rs >> fLambda1Err;
00083          else if( colName == "LAMBDA2ERR" )     rs >> fLambda2Err;
00084          else if( colName == "FRAC1ERR"   )     rs >> fFrac1Err;
00085 
00086          else {
00087            MSG("Dbi",Msg::kDebug) << "Ignoring column " << curCol 
00088                                   << "(" << colName << ")"
00089                                   << "; not part of CalStripAtten" 
00090                                   << endl;
00091            rs.IncrementCurCol();
00092          }
00093       }
00094    }
00095    
00096    
00097 }

Float_t CalStripAtten::GetAttenuation ( const Float_t  wlsLen,
const Float_t *  sigma_err 
) const

To be used by the Monte Carlo. This routine de-calibrates a strip by going from Energy in SigMap to quantity of light in SigCorr This variant also applies a user-supplied offset to vary the response by sigma_err standard deviations on each of three parameters.

Definition at line 133 of file CalStripAtten.cxx.

References fFrac1, fFrac1Err, fLambda1, fLambda1Err, fLambda2, and fLambda2Err.

00135 {
00141 
00142   if(wlsLen<0) return 1;
00143 
00144   Float_t frac = fFrac1 + fFrac1Err*sigma_err[0];
00145   Float_t l1  = fLambda1 + fLambda1Err*sigma_err[1];
00146   Float_t l2  = fLambda2 + fLambda2Err*sigma_err[2];
00147 
00148   Float_t atten =  frac  * exp(-wlsLen/l1) // Short atten length
00149             + (1.0-frac) * exp(-wlsLen/l2); // Long atten length
00150 
00151   return atten;
00152 
00153 
00154 }

Float_t CalStripAtten::GetAttenuation ( const Float_t  wlsLen  )  const

This routine returns the fraction of light left after going wlsLen distance through the strip's green fibre.

Definition at line 119 of file CalStripAtten.cxx.

References fFrac1, fLambda1, and fLambda2.

Referenced by StripAttenCalScheme::DecalAttenCorrected(), and StripAttenCalScheme::GetAttenCorrected().

00120 {
00123 
00124   if(wlsLen<0) return 1; // Disallow nonphysical queries.
00125 
00126   Float_t atten =  fFrac1  * exp(-wlsLen/fLambda1) // Short atten length
00127             + (1.0-fFrac1) * exp(-wlsLen/fLambda2); // Long atten length
00128 
00129   return  atten;
00130 }

Float_t CalStripAtten::GetFrac1 (  )  const [inline]

Definition at line 56 of file CalStripAtten.h.

References fFrac1.

Referenced by LIPlexMaps::DumpCalStripAtten(), StripAttenCalScheme::PrintConfig(), and LIPlexMaps::ReadDbCalStripAtten().

00056 { return fFrac1; };

Float_t CalStripAtten::GetFrac1Err (  )  const [inline]

Definition at line 60 of file CalStripAtten.h.

References fFrac1Err.

Referenced by LIPlexMaps::DumpCalStripAtten().

00060 { return fFrac1Err; };

Float_t CalStripAtten::GetFrac2 (  )  const [inline]

Definition at line 57 of file CalStripAtten.h.

References fFrac1.

00057 { return 1.0-fFrac1; };

UInt_t CalStripAtten::GetIndex ( UInt_t   )  const [inline, virtual]

Reimplemented from DbiTableRow.

Definition at line 51 of file CalStripAtten.h.

References fSEIdKey.

00051 { return fSEIdKey; }

Float_t CalStripAtten::GetLambda1 (  )  const [inline]

Definition at line 54 of file CalStripAtten.h.

References fLambda1.

Referenced by LIPlexMaps::DumpCalStripAtten(), StripAttenCalScheme::PrintConfig(), and LIPlexMaps::ReadDbCalStripAtten().

00054 { return fLambda1; };

Float_t CalStripAtten::GetLambda1Err (  )  const [inline]

Definition at line 58 of file CalStripAtten.h.

References fLambda1Err.

Referenced by LIPlexMaps::DumpCalStripAtten().

00058 { return fLambda1Err; };

Float_t CalStripAtten::GetLambda2 (  )  const [inline]

Definition at line 55 of file CalStripAtten.h.

References fLambda2.

Referenced by LIPlexMaps::DumpCalStripAtten(), StripAttenCalScheme::PrintConfig(), and LIPlexMaps::ReadDbCalStripAtten().

00055 { return fLambda2; };

Float_t CalStripAtten::GetLambda2Err (  )  const [inline]

Definition at line 59 of file CalStripAtten.h.

References fLambda2Err.

Referenced by LIPlexMaps::DumpCalStripAtten().

00059 { return fLambda2Err; };

UInt_t CalStripAtten::GetSEIDkey (  )  const [inline]

Definition at line 53 of file CalStripAtten.h.

References fSEIdKey.

Referenced by LIPlexMaps::DumpCalStripAtten().

00053 { return fSEIdKey; }

PlexStripEndId CalStripAtten::GetStripEndId (  )  const [inline]

Definition at line 52 of file CalStripAtten.h.

References fSEIdEncoded.

Referenced by LIPlexMaps::DumpCalStripAtten(), and LIPlexMaps::ReadDbCalStripAtten().

00052 { return PlexStripEndId(fSEIdEncoded); }

void CalStripAtten::Store ( DbiOutRowStream ors,
const DbiValidityRec vrec 
) const [virtual]

Reimplemented from DbiTableRow.

Definition at line 101 of file CalStripAtten.cxx.

References fFrac1, fFrac1Err, fLambda1, fLambda1Err, fLambda2, fLambda2Err, and fSEIdEncoded.

00102                                                                        {
00103   //
00104   //
00105   //  Purpose:  Stream object to output row stream
00106   //
00107   //  Arguments: 
00108   //    ors          in     Output row stream.
00109   //    vrec         in    Associated validity record (or 0 if filling
00110   
00111   ors << fSEIdEncoded  << fLambda1 << fLambda2 << fFrac1
00112       << fLambda1Err << fLambda2Err << fFrac1Err; 
00113 }


Member Data Documentation

Float_t CalStripAtten::fFrac1 [private]

Definition at line 83 of file CalStripAtten.h.

Referenced by Fill(), GetAttenuation(), GetFrac1(), GetFrac2(), and Store().

Float_t CalStripAtten::fFrac1Err [private]

Definition at line 86 of file CalStripAtten.h.

Referenced by Fill(), GetAttenuation(), GetFrac1Err(), and Store().

Float_t CalStripAtten::fLambda1 [private]

Definition at line 81 of file CalStripAtten.h.

Referenced by Fill(), GetAttenuation(), GetLambda1(), and Store().

Float_t CalStripAtten::fLambda1Err [private]

Definition at line 84 of file CalStripAtten.h.

Referenced by Fill(), GetAttenuation(), GetLambda1Err(), and Store().

Float_t CalStripAtten::fLambda2 [private]

Definition at line 82 of file CalStripAtten.h.

Referenced by Fill(), GetAttenuation(), GetLambda2(), and Store().

Float_t CalStripAtten::fLambda2Err [private]

Definition at line 85 of file CalStripAtten.h.

Referenced by Fill(), GetAttenuation(), GetLambda2Err(), and Store().

Int_t CalStripAtten::fSEIdEncoded [private]

Definition at line 80 of file CalStripAtten.h.

Referenced by Fill(), GetStripEndId(), and Store().

UInt_t CalStripAtten::fSEIdKey [private]

Definition at line 89 of file CalStripAtten.h.

Referenced by Fill(), GetIndex(), and GetSEIDkey().


The documentation for this class was generated from the following files:

Generated on 2 Nov 2017 for loon by  doxygen 1.6.1