Hi I need to make the integral for a surface selected from a TProfile histogram. Can someone suggest me some tutorials or examples for this?

Many thanks

Sorro

more details, please?

Rene

Dear Rene

I have a TProfile histogram, and I would like to get the are of just the tail of the histogram. I suppose on must use the Integral, but I do not find any example on how to use this.

Many thanks

Sorro

just do

```
myprofile.Integral(binmin,binmax);
```

where ninmin and binmax are the first and last bin numbers where you want to compute the integral.

Rene

Dear Rene

here is my code

```
Float_t a = sighistoS4.Integral(110,140);
Float_t b = sighistoS4.Integral(0,250);
sighistoRatio->Fill(i, a/b);
```

I was following your indication…send yesterday. SOmehow it doesn’t work, I have the following error message:

Warning:wrong member access operator '.'

Error:operator ‘/’ divided by zero…

Any idea? many thanks

sorro

Could you send the shortest possible (but RUNNING) script reproducing the problem?

Rene

TProfile *sighistoS4 = new TProfile(“sighistoS4”,“run1918, S4”,150, 50.,200.,0.,1000.);

TH1F *sighistoRatio = new TH1F(“ratio”,“run1918, ratio20/tot”,1000,0,100000);

for(event=0;event<entries;event++){

t->GetEntry(event);

for (Int_t i=0; i<282;i++) {

if(CHFOSC[3] == 1) {

float bin4a =(((float)(DATAOSC[i+282*3])*5/127)+5-(float)POSOSC[3]/1000)*(float)SCALEOSC[3];

float bin4b =(((float)(PED_MEAN_OSC[3])*5/127)+5-(float)POSOSC[3]/1000)*(float)SCALEOSC[3];

sighistoS4->Fill((i+18.3),(-1)*(bin4a-bin4b),1);

}

} //end 282 points

```
Float_t a = sighistoS4.Integral(110.,140.);
Float_t b = sighistoS4.Integral(10.,250.);
sighistoRatio->Fill(i, a/b);
```

}//end event

TCanvas *c104 = new TCanvas(“c104”,“c104”);

sighistoRatio->Draw();

}

but the data file is big. Hopethis works.

I cannot use this. Post a RUNNING script.

Rene