Hello, I am trying to expand on the results of this publication, in short, I have a bunch particles from which I get 2 values, **p** and **delta**, I want to plot this two variables together in very specific ranges, then I want the average of each bin (**|p|**), then I want to add all the averages in the same range of **delta** but different ranges of **p** (**S|p|**), and finally I want to put those results in a TH2 histogram of **delta** and **S|p|**.

The thing is, I’m not sure if I can Fill a TProfile directly, since I need to specify the ranges of both X and Y, and no constructor of TProfile seems to allow that, there is no:

TProfile::TProfile ( const char * name, const char * title, Int_t nbins, const Double_t*xbins,

Double_tybins, Option_t * option = “” )

So I created a TH2D, filled it, it looks good, but I’m not sure how to get the averages I need, so I decided to convert my TH2D into a TProfile…

```
TProfile* profile_pTdelta = TH2::ProfileY("hist_pTdelta",1, 9);
```

but I get a weird compilation error

myjets.cc: In function ‘int main()’:

myjets.cc:210: error: cannot call member function ‘TProfile* TH2::ProfileY(const char*, Int_t, Int_t, const Option_t*) const’ without object

make: *** [myjets] Error 1

And I get the same if I put a “new” after the equal sign.

I asked a teacher and he told to not even bother, that the error bars are too big when using TProfile.

I read that there is a way to change the default error from RMS/sqrt(N) to RMS… but that’s in the constructor, which I’m not using.

My teacher suggested me to create a histogram for each interval of **delta**, get the mean of those, and then add them up… it would be a mess that I could hide in a function, but I want to be sure there’s no easier way before going that way.

So I finally decided to ask for help, I need another perspective.

Here is how I’m currently declaring the TH2D:

```
double delta_edges[] = { 0.0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.5, 1.6, 1.8, 3.6 };
double pT_edges[] = { 0.5, 1, 2, 4, 8, 300 };
TH2D* hist_pTdelta = new TH2D("hist_pTdelta", "The momentum of particles in each Delta Ring", 5, pT_edges, 10, delta_edges );
```

and here is how I’m using it (I’m using also a library called FastJet, that’s were PesudoJet comes from):

```
for (int n = 0; n <= event.size(); ++n)
{
PseudoJet particle = event[n];
delta = sqrt(pow(particle.eta()-axis.eta(),2)+pow(particle.phi()-axis.phi(),2));
if (delta>3.6 || particle.perp()>300) continue;
pTll = -particle.perp()*cos( particle.phi()-axis.phi() );
hist_pTdelta->Fill(pTll,delta); //we fill the histogram in the same order that we declared it, first pT and then delta
}
```

Thanks a lot