/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package org.jlab.groot.matrix;
import java.util.ArrayList;
import java.util.List;
import org.jlab.groot.math.Axis;
/**
*
* @author gavalian
*/
public class SparseGridBuilder {
private List gridAxis = new ArrayList();
private int vectorSize = 1;
public SparseGridBuilder(){
}
public SparseGridBuilder(int vsize){
this.vectorSize = vsize;
}
public SparseGridBuilder axis(String name, int bins, double min, double max){
Axis a = new Axis(bins,min,max);
a.setTitle(name);
gridAxis.add(a);
return this;
}
public SparseGridBuilder axis(Axis a){
gridAxis.add(a);
return this;
}
public SparseGridBuilder axis(String name, double[] binLimits){
Axis a = new Axis(binLimits);
a.setTitle(name);
gridAxis.add(a);
return this;
}
public SparseGridBuilder vectorSize(int vsize){
this.vectorSize = vsize;
return this;
}
public SparseVectorGrid build(){
int[] bins = new int[this.gridAxis.size()];
for(int i = 0; i < bins.length; i++){
bins[i] = gridAxis.get(i).getNBins();
}
SparseVectorGrid grid = new SparseVectorGrid(this.vectorSize,bins);
for(int dim = 0; dim < bins.length; dim++){
grid.getAxis(dim).set(this.gridAxis.get(dim).getLimits());
grid.getAxis(dim).setTitle(this.gridAxis.get(dim).getTitle());
}
return grid;
}
}
Ads help maintain this website.