void test_TTreeFormulaAfterFill() { TTree * t_new = new TTree("t_new", "Create new tree"); TTreeFormula * tf_new = new TTreeFormula("tf_new", "var1/var2", t_new); float var1; float var2; t_new->Branch("var1", &var1, "var1/F"); t_new->Branch("var2", &var2, "var2/F"); TRandom * rand = new TRandom; for (int ievt=0; ievt<100; ievt++) { var1 = rand->Rndm(); var2 = rand->Gaus(); printf("Before filling: "); printf(" var1: %f var2: %f \n", var1, var2); t_new->Fill(); t_new->GetEntry(ievt); tf_new = new TTreeFormula("tf_new", "var1/var2", t_new); //I have to define tf_new per entry printf("var1/var2 from formular: %10.3f <=>%10.3f\n\n", (float)tf_new->EvalInstance(), (float)var1/var2); delete tf_new; } // //I have to wait until the tree was filled and re-define a TTreeFormular. // tf_new = new TTreeFormula("tf_new", "var1/var2", t_new); //comment this line, tf_new->EvalInstance(ievt) return 0. // for (int ievt=0; ievtGetEntries(); ievt++) { // t_new->GetEntry(ievt); // //printf("After filling: var1/var2 from formular: %10.3f <=>%10.3f\n\n", (float)tf_new->EvalInstance(ievt), (float)var1/var2); // } }