////////////////////////////////////////////////////////////////////////
// $Id: StripAttenCalScheme.h,v 1.2 2005/03/22 12:50:43 tagg Exp $
//
// StripAtten Calibrator class
//
// Responsible for correcting light output from center of strip
// to position along strip.
//
// Nathaniel Tagg
// n.tagg1@physics.ox.ac.uk
////////////////////////////////////////////////////////////////////////
#ifndef STRIPATTENCALSCHEME_H
#define STRIPATTENCALSCHEME_H

#include "Calibrator/CalScheme.h"
#include "DatabaseInterface/DbiResultPtr.h"
#include "Calibrator/CalStripAtten.h"
#include "Plex/PlexStripEndId.h"
#include "UgliGeometry/UgliStripHandle.h"
#include "Validity/VldContext.h"

class CalibrationSmearer;

class StripAttenCalScheme : public CalScheme
{
public:
  StripAttenCalScheme();
  virtual ~StripAttenCalScheme();
  
  virtual void DoReset( const VldContext& context );
  virtual void ConfigModified();
  virtual void PrintConfig( std::ostream& os ) const;


  virtual FloatErr  GetAttenCorrected(FloatErr sigcorr, FloatErr stripX, const PlexStripEndId& seid) const;
  virtual FloatErr  DecalAttenCorrected(FloatErr sigmap, FloatErr stripX, const PlexStripEndId& seid) const;


private:
   DbiResultPtr<CalStripAtten>   fResPtr;
   Int_t                         fTask;
   CalStripAtten*                fDefaultAtten;

  ClassDef(StripAttenCalScheme,0);
};

#endif                                      // STRIPATTENCALIBRATOR_H
