Any help?

Dear Root experts,
Hi !
Can anyone suggest me that why I am always getting ‘n12 = 1.00’ in the present script ??
Please suggest how can I get the correct value of ‘n12’.

cylab123

[code]{
//
TString f12U = “test.root”; TString h12U = “UG12”;
//
float X_min,X_max;
float G12bgL1,G12bgL2,G12bgR1,G12bgR2,G12Pk1,G12Pk2,;

//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Double_t n12 = ((G12Pk2-G12Pk1+1)/(G12bgL2-G12bgL1+1));

//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

TCanvas C1 = new TCanvas(“C1”,“Fitting canvas”,10,10,1400,1200);
//
TFile
f1 = TFile::Open( f12U.Data(), “READ” );
TH2F hxy = (TH2F)f1->FindObjectAny(h12U.Data());
//
TH1D *px = hxy->ProjectionX();
px->Draw();
px->SetLineWidth(2.0);
//
printf(“Select display range\n”); // <-----------
//
TMarker mrk1 = (TMarker)gPad->WaitPrimitive(“TMarker”,“Marker”);
cout<<" position1=’"<< mrk1->GetX()<<"’"<<endl;
X_min = mrk1->GetX();
mrk1->Delete();
//
TMarker mrk2 = (TMarker)gPad->WaitPrimitive(“TMarker”,“Marker”);
cout<<" position2=’"<< mrk2->GetX()<<"’"<<endl;
X_max = mrk2->GetX();
mrk2->Delete();
//
px->GetXaxis()->SetRangeUser(X_min,X_max);
gPad->Update();
//
printf(“Select Peak markers\n”); // <------------------
//
TMarker mPk1 = (TMarker)gPad->WaitPrimitive(“TMarker”,“Marker”);
cout<<" position3=’"<< mPk1->GetX()<<"’"<<endl;
G12Pk1 = mPk1->GetX();
mPk1->Delete();
//
TMarker mPk2 = (TMarker)gPad->WaitPrimitive(“TMarker”,“Marker”);
cout<<" position4=’"<< mPk2->GetX()<<"’"<<endl;
G12Pk2 = mPk2->GetX();
mPk2->Delete();
//
printf(“Select Left Background markers\n”); // <------------------
//
TMarker mBgL1 = (TMarker)gPad->WaitPrimitive(“TMarker”,“Marker”);
cout<<" position5=’"<< mBgL1->GetX()<<"’"<<endl;
G12bgL1 = mBgL1->GetX();
mBgL1->Delete();
//
TMarker mBgL2 = (TMarker)gPad->WaitPrimitive(“TMarker”,“Marker”);
cout<<" position6=’"<< mBgL2->GetX()<<"’"<<endl;
G12bgL2 = mBgL2->GetX();
mBgL2->Delete();
//
printf(" \n");
printf(" n12 = %f pk1 = %f pk2 = %f L1 = %f L2 = %f\n",n12,G12Pk1,G12Pk2,G12bgL1,G12bgL2);

}
[/code]

You forgot to add the data file “test.root”, so we cannot test anything.
However, your scriot starts with

float G12bgL1,G12bgL2,G12bgR1,G12bgR2,G12Pk1,G12Pk2,; Double_t n12 = ((G12Pk2-G12Pk1+1)/(G12bgL2-G12bgL1+1));

Where are you setting these variables?

Rene

HI !
The root file was bigger in size (~ 3 MB) than the usual maximum limit for upload on Root Talk forum (2MB), so it did not attach. However by looking at the question raised by you in the last line of your mail, I got the clue and now the problem is rectified. In fact I was trying to get ‘nr’ values using other variables defined later in the script.
Thanks & regards,
cylab123