Hello Axel,
This is a stripped down version of the header file. The error message I
posted earlier is misleading. Apparently, pilot error. The header file
below has all references to STL's vector removed and this works for me.
If I remove the comments and do
rootcint -f AFit.Dict.cxx -c AFit.h
I get an abort. Phillipe Canal apparently has no problems with getting it
through rootcint and compiling the dictionaries.
I am going to work around it by using ROOT's collection classes instead of
the STL containers. It's painful since I am familiar with the STL and I
find ROOT containers missing the basic object support like copy and
assign.
I will try in my spare time to chase down the difference between
Phillipe's setup and mine. If you get it to go, I'd like to know as well.
Thanks! Ken
/* AFit.h - Apr 2003, Ken Teh
*/
#ifndef _AFit_h
#define _AFit_h
//#include <vector>
#include "TVector.h"
#include "TH1.h"
class AFit {
private:
struct Triplet {
Axis_t xl;
Axis_t xu;
Axis_t w;
Triplet(Axis_t a1=0, Axis_t a2=0, Axis_t a3=0) :
xl(a1), xu(a2), w(a3) {}
~Triplet() {}
};
Int_t fverbose;
// std::vector<Double_t> fla;
// std::vector<Double_t> fpa;
// std::vector<Double_t> fwa;
TVector fresult;
AFit(const AFit&) {}
AFit& operator=(const AFit&) {}
// std::vector<AFit::Triplet> arrayranges(const Char_t*);
// std::vector<Double_t> arraylines(const Char_t*);
Int_t dofit(const Int_t);
public:
AFit(Int_t printlevel=-1) : fverbose(printlevel),
// fla(20), fpa(20), fwa(20), fresult(1) {
fresult(1) {
fla.clear(); fpa.clear(); fwa.clear();
fresult.Zero();
}
~AFit() { delete fg; }
Int_t calibrate(TH1 *h, const Char_t *ranges,
const Char_t *lines, UInt_t ord=2);
Int_t operator()(TH1 *h, const Char_t *ranges,
const Char_t *lines, UInt_t ord=2) {
return calibrate(h, ranges, lines, ord);
}
TVector getresult() const { return fresult; }
ClassDef(AFit, 0)
};
#endif
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:11 MET