2008-06-06 09:24:20 +00:00

104 lines
2.3 KiB
C++

/***************************************************************************
TLondon1D.h
Author: Bastian M. Wojek
e-mail: bastian.wojek@psi.ch
2008/06/06
***************************************************************************/
#ifndef _TLondon1D_H_
#define _TLondon1D_H_
#include "PUserFcnBase.h"
#include "TPofTCalc.h"
class TLondon1D : public PUserFcnBase {
public:
// default conctructor only for the ROOT dictionary - DO NOT USE IT OTHERWISE!
TLondon1D() : fCalcNeeded(true) {}
virtual ~TLondon1D();
virtual double operator()(double, const vector<double>&) const = 0;
protected:
mutable vector<double> fPar;
TTrimSPData *fImpProfile;
TPofTCalc *fPofT;
mutable bool fCalcNeeded;
mutable vector<double> fParForPofT;
mutable vector<double> fParForBofZ;
mutable vector<double> fParForPofB;
string fWisdom;
unsigned int fNSteps;
ClassDef(TLondon1D,1)
};
class TLondon1D1L : public TLondon1D {
public:
// default conctructor only for the ROOT dictionary - DO NOT USE IT OTHERWISE!
TLondon1D1L() {}
TLondon1D1L(const vector<double>&);
~TLondon1D1L() {}
double operator()(double, const vector<double>&) const;
ClassDef(TLondon1D1L,1)
};
class TLondon1D2L : public TLondon1D {
public:
// default conctructor only for the ROOT dictionary - DO NOT USE IT OTHERWISE!
TLondon1D2L() : fLastTwoChanged(true) {}
TLondon1D2L(const vector<double>&);
~TLondon1D2L() {}
double operator()(double, const vector<double>&) const;
private:
mutable bool fLastTwoChanged;
ClassDef(TLondon1D2L,1)
};
class TLondon1D3L : public TLondon1D {
public:
// default conctructor only for the ROOT dictionary - DO NOT USE IT OTHERWISE!
TLondon1D3L() : fLastThreeChanged(true) {}
TLondon1D3L(const vector<double>&);
~TLondon1D3L() {}
double operator()(double, const vector<double>&) const;
private:
mutable bool fLastThreeChanged;
ClassDef(TLondon1D3L,1)
};
class TLondon1D3LS : public TLondon1D {
public:
// default conctructor only for the ROOT dictionary - DO NOT USE IT OTHERWISE!
TLondon1D3LS() : fLastThreeChanged(true) {}
TLondon1D3LS(const vector<double>&);
~TLondon1D3LS() {}
double operator()(double, const vector<double>&) const;
private:
mutable bool fLastThreeChanged;
ClassDef(TLondon1D3LS,1)
};
#endif //_TLondon1D_H_