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]