#ifndef ALICALORAWANALYZERSTANDARD_H
#define ALICALORAWANALYZERSTANDARD_H
/**************************************************************************
* This file is property of and copyright by *
* the Relativistic Heavy Ion Group (RHIG), Yale University, US, 2009 *
* *
* Primary Author: Per Thomas Hille
*
* *
* Contributors are mentioned in the code where appropriate. *
* Please report bugs to p.t.hille@fys.uio.no *
* *
* Permission to use, copy, modify and distribute this software and its *
* documentation strictly for non-commercial purposes is hereby granted *
* without fee, provided that the above copyright notice appears in all *
* copies and that both the copyright notice and this permission notice *
* appear in the supporting documentation. The authors make no claims *
* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
// Extraction of amplitude and peak position
// FRom CALO raw data using
// Chi square fit
#include "AliCaloRawAnalyzerFitter.h"
#include "AliCaloConstants.h"
//using namespace ALTRO;
//using namespace EMCAL;
//class TF1;
class TGraph;
class AliCaloRawAnalyzerKStandard : public AliCaloRawAnalyzerFitter
{
friend class AliCaloRawAnalyzerFactory;
public:
//AliCaloRawAnalyzerKStandard();
virtual ~AliCaloRawAnalyzerKStandard();
virtual AliCaloFitResults Evaluate( const std::vector &bunchvector, const UInt_t altrocfg1, const UInt_t altrocfg2 );
// void PrintFitResult(const TF1 *f) const;
static Double_t RawResponseFunction(Double_t *x, Double_t *par);
void FitRaw(const Int_t firstTimeBin, const Int_t lastTimeBin, Float_t & amp, Float_t & time,
Float_t & chi2, Bool_t & fitDone) const ;
void FitParabola(const TGraph *gSig, Float_t & amp) const ;
// shaper tau value, in time-bins, and flag for keeping tau fixed
// Float_t GetTau() const { return fTau;};
// void SetTau(Float_t f) { fTau = f; };
// Bool_t GetFixTau() const { return fFixTau; };
// void SetFixTau(Bool_t b) { fFixTau = b; };
// virtual void InitFormula( TF1*);
// extra interfaces
// TF1 * GetFit() const { return fTf1; };
private:
AliCaloRawAnalyzerKStandard();
AliCaloRawAnalyzerKStandard(const AliCaloRawAnalyzerKStandard & );
AliCaloRawAnalyzerKStandard & operator = (const AliCaloRawAnalyzerKStandard &);
// double fXaxis[ALTROMAXSAMPLES]; //Axis if time bins, ( used by TGraph )
// const double fkEulerSquared; //e^2 = 7.389056098930650227
//TF1 *fTf1; // Analytical formula of the Semi Gaussian to be fitted
// Float_t fTau; // shaper tau, in time bins
// Bool_t fFixTau; // flag if tau should be fix
ClassDef(AliCaloRawAnalyzerKStandard, 2)
};
#endif