//#TT TODO: There seem to be a strange swap happening
// between T QQ and L QQ...
if(pol==longitudinal and fock==QQ){
hist4D=tableQQ_T.at(quark);
}
else if(pol==transverse and fock==QQ){
hist4D=tableQQ_L.at(quark);
}
else if(fock==QQG){
hist4D=tableQQG.at(quark);
}
else{
cout<<"InclusiveDiffractionCrossSectionsFromTables::interpolate(double beta, double Q2, double W2, double z, GammaPolarization pol, FockState fock, int quark): There is nothing to interpolate, ending"<<endl;
exit(2);
}
int nDims = hist4D->GetNdimensions();
-// PR(nDims);
-
vector <double>MinRange(nDims); //beta, Q2,W2, z
vector <double>MaxRange(nDims); //beta, Q2,W2, z
vector <int>Bins(nDims); //beta, Q2,W2, z
for (int dim = 0; dim < 4; dim++) {
TAxis* axis = hist4D->GetAxis(dim); // Get the axis for this dimension
if (!axis) {
std::cerr << "Error: Cannot retrieve axis for dimension " << dim << std::endl;
continue;
}
// Get the number of bins and range
int nBins = axis->GetNbins();
double minRange = axis->GetXmin();
double maxRange = axis->GetXmax();
Bins[dim]= nBins;
MinRange[dim]= minRange;
MaxRange[dim]= maxRange;
}
// construct the grid in each dimension.
// note that we will pass in a sequence of iterators pointing to the beginning of each grid