IslBrecoilUser rf-060602 contains a class, recoilDSys, which computes the weights to be applied to modify the B->Dlnu and D->X branching fractions. The compilation and linking should be ok now, although you have to make sure that you have loaded libNtuples.so in your job (Alessio, also the ntuplesLinkDef.h had changed did you get it?). Here is a description of what it does and how to use it. It has two constructors and two weight functions, one for each kind of systematics The assumed values for the DECAY.dec and PDG branching fractions are in http://babar.roma1.infn.it/~faccini/Dsys_plots.html a) B->Dlnu BF The constructor to be called is the one with only one argument, the random seed: recoilDSys::recoilDSys( int seed) if the seed is 0, the weights are just the ratio of the PDG over the DECAY.dec. Otherwise random numbers are thrown (once for the whole just, pay attention not to istantiate the same class for each event) with the supplied seed and the PDG numbers are varied according to their resolution the weight function float recoilDSys::weight(int bmode) is to be called each event and requires the bmode, i.e.: 0 not vcb +/- 1 (Dlnu) +/- 2 (D*lnu) +/- 4 (D1*lnu) +/- 5 (D2*lnu) otherwise (D**lnu non-res) +/- stands for B0(+) or Bch (-) b) D->X the constructor requires two arguments recoilDSys::recoilDSys(const char *name, int seed) the name of the file that contains the list of BF one wants to consider in the format # name #Pi #K #K0 #pi0 Br(decay.dec) Br(PDG) sigmaBr(PDG) For istance the D0->K+p- looks like Kpi 1 1 0 0 0.0387 0.0383 0.0009 seed needs to be 0 if you just want to rescale to PDG The weight function, that assumes that only one D in the recoil float recoilDSys::weight(int npi,int nk, int nk0, int npi0, int nlep,int & mode) requires as inputs the number of pions, kaons etc etc in the decay and returns the weight and the "mode" of the D decay, in case one wants to use this classification. hope this helps, please report problems ciao ric