boost::python::list sin_2D_Ham(double x, double y, boost::python::list params_){ // sin_2D hamiltonian in diabatic representation MATRIX H(2,2); MATRIX dH1(2,2); MATRIX d2H1(2,2); MATRIX dH2(2,2); MATRIX d2H2(2,2); int sz = boost::python::len(params_); vector<double> params(sz,0.0); for(int i=0;i<sz;i++){ params[i] = boost::python::extract<double>(params_[i]); } sin_2D_Ham(x,y,&H,&dH1,&d2H1,&dH2,&d2H2,params); boost::python::list res; res.append(x); res.append(H); res.append(dH1); res.append(d2H1); res.append(dH2); res.append(d2H2); return res; }
void Plugin::H1(double val,const char * name, const char * title, int count, double from, double to) { TH1D *hist=0; gDirectory->GetObject(name,hist); // this could be skipped, but it's faster this way if (!hist) hist=dH1(name,title,count,from,to); hist->Fill(val); }