Hello all,
My code is crashing when I introduce the following line?
h_logLisum[Q2binning][xBbinning]->Fill(xBj,QSq,flogli[Q2binning][xBbinning]->Eval(xBj,QSq));
flogli[Q2binning][xBbinning]->Eval(xBj,QSq)
this is the problem I catched.Could you help me to figure out this?
Here is my snippet.
Double_t LogxBQSq(Double_t *val,Double_t *par){
Float_t x = val[0];
Float_t y = val[1];
Double_t result=0;
Double_t func=0;
func= TMath::Power(x,par[0]) * TMath::Power((1-x),par[1])* TMath::Power((1+ (y*y)/ par[2]),-par[3]);
result+=-log(func);
return result;
}
void logsum{
TH1F *Q2bins = new TH1F("Q2bins","Q2bins",4,Q2LowBinEdge);
TH1F *xBbins = new TH1F("xBbins","xBbins",3,0,3);
int nQ2=4;
int nx=3;
TF2 *flogli[nQ2][nx];
TH2F *h_logLisum[nQ2][nx];
for (int iQ2=0; iQ2<nQ2; iQ2++) {
for (int ixB=0; ixB<nx; ixB++) {
sprintf(nameTF2,"flogli_Q2%03d_xB%03d",iQ2,ixB);
flogli[iQ2][ixB] = new TF2(nameTF2,LogxBQSq,0.0,1.0,0.,10.0);
flogli[iQ2][ixB]->SetParameters(0,0.5);
flogli[iQ2][ixB]->SetParameters(1,3.0);
flogli[iQ2][ixB]->SetParameters(2,1.0);
flogli[iQ2][ixB]->SetParameters(3,2.0);
sprintf(histName_1,"h_logLisum_Q2%03d_xB%03d",iQ2,ixB);
h_logLisum[iQ2][ixB]=new TH2F(histName_1,"Q2 vs xB",300,0.,1.,300,0.,10.0);
}
}
QSq=-q4vec.M2();
xBj=QSq/(2*target.Dot(q4vec));
int xBbinning = xBbins->GetXaxis()->FindBin(ix)-1;
int Q2binning = Q2bins->GetXaxis()->FindBin(QSq)-1;
if(xBbinning>-1 && xBbinning<nx && Q2binning>-1 && Q2binning<nQ2){
h_logLisum[Q2binning][xBbinning]->Fill(xBj,QSq,flogli[Q2binning][xBbinning]->Eval(xBj,QSq)); //This line cause for crashing
}
}
Thanks
Dil