Bands and Slices maintained together. More...
#include <XeAnalysis.h>
Public Member Functions | |
void | compute (S1S2Data *reference) |
Define the bands, given a reference data set. | |
void | cumulate (S1S2Bands *original) |
Fill with the cumulated (intgrated) content of an original S1S2Bands. | |
void | dispatchS1InEqualBands (double s1, double w) |
Fill all bands equally for a given S1. | |
void | draw (int zMode) |
Draw it (it's drawable in a S1S2 plot). | |
void | draw () |
Draw it (it's drawable in a S1S2 plot). | |
void | drawBandContent (int zMode) |
Draw full band content. | |
void | drawBandContentFrame (int zMode) |
Draw the frame for full band drawing. | |
void | drawBandContentWithFrame (int zMode) |
Draw full band content with fra,e. | |
void | drawBands () |
Draw it band by band. | |
void | drawCellContent (int zMode) |
Draw cell by cell. | |
void | drawCellContentFrame (int zMode) |
Draw the frame for cell by cell drawing. | |
void | drawCellContentWithFrame (int zMode) |
Draw cell by cell, with a frame. | |
void | drawSlices () |
Draw it slice by slice. | |
void | drawTheFrame () |
method to override drawFrame | |
void | extendS1Range (double s1Min, double s1Max) |
Extend the S1 range of. | |
void | fill (double s1, int s, int b, double w=1.) |
Fill an entry, (actually fill twice: one slice and one band). | |
void | fill (int s, int b, double w=1.) |
Fill an entry, (actually fill twice: one slice and one band). | |
void | fillAccordingToS1Dist (vector< double > &weights, double *dist) |
fill all bands according to the same S1 distribution | |
void | fillExponential (vector< double > &weights, double slope) |
Fill all bands with density exponentially decreasing in S1 with variable weight. | |
void | fillUniformly (vector< double > &weights) |
Fill all bands with density constant in S1, with variable weight. | |
double | getArea () |
return Total area in delta S1 * delta log(s2/s1) | |
S2Band * | getBand (int b) |
Return a given band. | |
double | getBandContent (int b) |
return count in a given band | |
double | getContent (int s, int b) |
Return getContent of a cell. | |
double | getContentBelowS1 (double s1) |
return total count below a given s1 | |
double | getCumulatedBandContent (int b) |
Return the cumulated band count, from band 0 to (including) the specified one. | |
double | getMaxBandContent () |
return max count in a band | |
double | getMaxCount () |
return max count in a cell | |
double | getMinBandContent () |
return min count in a band | |
double | getMinBandContentButZero () |
Return the smallest overall non zero band count. | |
double | getMinCount () |
return min count in a cell | |
double | getMinCountButZero () |
Return the smallest overall non zero cell count. | |
int | getNBands () |
Return number of bands. | |
int | getNSlices () |
Return number of Slices. | |
XeRun * | getRun () |
Return the run. | |
XeBins * | getS1Bins () |
Return the S1 bin description. | |
double | getS1Center (int s) |
return S1 central value in a given slice | |
double | getS1Density (double s1) |
Density of projected S1 (in 1/p.e. | |
double | getS1LowerEdge (int s) |
return S1 min in a given slice | |
double | getS1LowerEdge () |
return overall S1 min | |
double * | getS1LowerEdges () |
return list of S1 lower edges, for all slices | |
double | getS1UpperEdge (int s) |
return S1 max in a given slice * | |
double | getS1UpperEdge () |
return overall S1 max | |
double * | getS1UpperEdges () |
return list of S1 upper edges, for all slices | |
double | getS1Width (int s) |
return s1 bin width of a given slice (usesul if slices not equidistant!) | |
double | getS1Width () |
return total S1 range width | |
double | getS2overS1LowerEdge (int b, int s) |
return lower S1/S1 in a given cell | |
double | getS2overS1LowerEdge (int b) |
return overall lower S1/S1 in a given band | |
double * | getS2overS1LowerEdges (int b) |
return list of overall lower S1/S1 in a given band | |
double | getS2overS1UpperEdge (int b, int s) |
return upper S1/S1 in a given cell | |
double | getS2overS1UpperEdge (int b) |
return overall upper S1/S1 in a given band | |
double * | getS2overS1UpperEdges (int b) |
return list of overall upper S1/S1 in a given band | |
S1Slice * | getSlice (int s) |
Return a given slice given its index. | |
S1Slice * | getTheSlice (double s1) |
Return a given slice for a given S1. | |
double | getTotalContent () |
return total count | |
virtual bool | isDrawable (int mode) |
Is such an object drawable in a given S1S2 Display mode ? | |
double | maxX () |
return max X = S1 max (this method must be implemented) | |
double | maxY () |
return min count in a band return max Y = S2/S1 max (this method must be implemented) | |
double | minX () |
return min X = S1 min (this method must be implemented) | |
double | minY () |
return min Y = S2/S1 min (this method must be implemented) | |
TH2F * | new2DHistogram (int plot=NONE) |
create a 2d histogram whose content is follows slices and bands | |
TabulatedDist * | newBandXeDist () |
create a distribution of Band content | |
XeSpectrum * | newBandXeSpectrum () |
create a spectrum of Band content, | |
TH1F * | newHistogramOfBandDistribution (int plot=NONE) |
Create an histogram of the distribution(spectrum norm. | |
TH1F * | newHistogramOfBandSpectrum (int plot=NONE) |
Create an histogram of the spectrum of Band content. | |
TH1F * | newHistogramOfS1Distribution (int band=ALL, int plot=NONE, int nb=AUTO, double s1Min=AUTOMATIC, double s1Max=AUTOMATIC) |
Create an histogram of the distribution(spectrum norm. | |
TH1F * | newHistogramOfS1Spectrum (int band=ALL, int plot=NONE, int nb=AUTO, double s1Min=AUTOMATIC, double s1Max=AUTOMATIC) |
Create an histogram of the spectrum of S1 values. | |
TH1F * | newHistogramOfSliceDistribution (int band=ALL, int plot=NONE) |
Create an histogram of the distribution(spectrum norm. | |
TH1F * | newHistogramOfSliceSpectrum (int band=ALL, int plot=NONE) |
Create an histogram of the spectrum of Slice content. | |
XeMultiGraph * | newMultiGraphOfSliceDistribution (int plot=NONE) |
get a multigraph of Slice Distribution (normalized to 1. | |
XeMultiGraph * | newMultiGraphOfSliceSpectrum (int plot=NONE) |
create a multigraph of Slice Spectrum | |
TabulatedDist * | newS1XeDist (int band=ALL, int nb=AUTO, double s1Min=AUTOMATIC, double s1Max=AUTOMATIC) |
create a distribution of S1 values | |
XeSpectrum * | newS1XeSpectrum (int band=ALL, int nb=AUTO, double s1Min=AUTOMATIC, double S1Max=AUTOMATIC) |
create a spectrum of S1 values , | |
TabulatedDist * | newSliceXeDist (int band=ALL) |
create a distribution of Slice content | |
XeSpectrum * | newSliceXeSpectrum (int band=ALL) |
create a spectrum of Slice content, | |
void | normalize (double ratio) |
Multiply everything by a constant factor. | |
void | normalizeToEvents (double events) |
normalize the overall content to "events" | |
void | printBands (int level=1) |
Print it band by band. | |
bool | printIt (int level=1) |
Print. | |
void | printS1InBands (int maxEntries=0) |
Print a few S1 values in each band. | |
void | printSlices (int level=1) |
Print it slice by slice. | |
void | produceGraphicOverview () |
produce a summary page | |
void | reset () |
Reset all contents. | |
S1S2Bands (string name, S1S2Bands *bands, bool copyContent=false) | |
Constructor copying from another S1S2Bands. | |
S1S2Bands (string n, XeRun *run, int nBands, XeBins *s1Bins) | |
Constructor giving description of s1 slices. | |
S1S2Bands (string n, XeRun *run, int nBands, int nS1, double s1Mi, double s1Ma) | |
Constructor with equidistant S1 slices. | |
S1S2Bands (string nam, XeRun *run, int nBands, S1S2Data *s1s2, int nS1) | |
Constructor with equicontent S1 slices. | |
pair< int, int > | whichSliceAndBand (double s1, double s2) |
Return band and slice numbers for a given s1,s2. | |
Protected Member Functions | |
string | bandName (int band) |
return the name of a given (or all) bands | |
void | copyBandsToSlices () |
Fill slices after bands were filled. | |
void | establishPointersToCounts () |
Establish the table of pointers to band counts vector. | |
void | instantiateBandsAndSlices (string name, int nBands) |
Internal method: instantiate bands and slices. | |
XeMultiGraph * | newMultiGraphOfSlice (string name, TabulatedDist **dists, int plot=NONE) |
Internal method: create a multigraph from nBands distributions. | |
XeMultiGraph * | newMultiGraphOfSlice (string name, XeSpectrum **spectra, int plot=NONE) |
Internal method: create a multigraph from nBands spectra. | |
void | reweightTheBands (double *weights) |
reweights the whole bands and contents inside slices | |
void | setNames (string name) |
Internal method: name the bands and the slices. | |
pair< int, int > | whichBands (int band) |
Check that band number either is valid or is equal to 'ALL'. | |
Static Protected Member Functions | |
static string | getTheName (int nBands, int nSlices) |
Return a default name. | |
Protected Attributes | |
vector< S2Band * > | bands |
vector< vector< double > * > | counts |
int | nBands |
int | nSlices |
XeRun * | run |
XeBins * | s1Bins |
vector< S1Slice * > | slices |
Bands and Slices maintained together.
Constructor with equicontent S1 slices.
nam | name of the object | |
run | run (actually XeRun) where it's taken from | |
nBands | number of bands | |
s1s2 | original S1S2data | |
nS1 | nimber of slices in S1 |
S1S2Bands::S1S2Bands | ( | string | n, | |
XeRun * | run, | |||
int | nBands, | |||
int | nS1, | |||
double | s1Mi, | |||
double | s1Ma | |||
) |
Constructor with equidistant S1 slices.
n | name of the object | |
run | run (actually XeRun) where it's taken from | |
nBands | number of bands | |
nS1 | number of slices in S1 | |
s1Mi | minimum S1 | |
s1Ma | maximum S1 |
S1S2Bands::S1S2Bands | ( | string | name, | |
S1S2Bands * | bands, | |||
bool | copyContent = false | |||
) |
string S1S2Bands::bandName | ( | int | band | ) | [protected] |
return the name of a given (or all) bands
band | index to be checked, or ALL |
void S1S2Bands::compute | ( | S1S2Data * | reference | ) |
Define the bands, given a reference data set.
reference | pointer to reference S1S2Data data set |
void S1S2Bands::cumulate | ( | S1S2Bands * | original | ) |
Fill with the cumulated (intgrated) content of an original S1S2Bands.
original | The original one |
void S1S2Bands::dispatchS1InEqualBands | ( | double | s1, | |
double | w | |||
) |
Fill all bands equally for a given S1.
s1 | Value at which it's filled | |
w | total weight(i.e. the weight in each band is w/nBands) |
void S1S2Bands::draw | ( | int | zMode | ) |
Draw it (it's drawable in a S1S2 plot).
zMode | either LINEAR or LOG |
void S1S2Bands::drawBandContent | ( | int | zMode | ) |
Draw full band content.
zMode | either LINEAR or LOG |
void S1S2Bands::drawBandContentFrame | ( | int | zMode | ) |
Draw the frame for full band drawing.
zMode | either LINEAR or LOG |
void S1S2Bands::drawBandContentWithFrame | ( | int | zMode | ) |
Draw full band content with fra,e.
zMode | either LINEAR or LOG |
void S1S2Bands::drawCellContent | ( | int | zMode | ) |
Draw cell by cell.
zMode | either LINEAR or LOG |
void S1S2Bands::drawCellContentFrame | ( | int | zMode | ) |
Draw the frame for cell by cell drawing.
zMode | either LINEAR or LOG |
void S1S2Bands::drawCellContentWithFrame | ( | int | zMode | ) |
Draw cell by cell, with a frame.
zMode | either LINEAR or LOG |
void S1S2Bands::extendS1Range | ( | double | s1Min, | |
double | s1Max | |||
) |
Extend the S1 range of.
s1Min | new and smaller lower S1 bound | |
s1Max | new and larger upper S1 bound |
void S1S2Bands::fill | ( | double | s1, | |
int | s, | |||
int | b, | |||
double | w = 1. | |||
) |
Fill an entry, (actually fill twice: one slice and one band).
Also fills the table of S1 in the proper band
s1 | S1 Value at which it's filled | |
s | slice number | |
b | band number | |
w | weight |
void S1S2Bands::fill | ( | int | s, | |
int | b, | |||
double | w = 1. | |||
) |
Fill an entry, (actually fill twice: one slice and one band).
s | slice number | |
b | band number | |
w | weight |
void S1S2Bands::fillAccordingToS1Dist | ( | vector< double > & | weights, | |
double * | dist | |||
) |
fill all bands according to the same S1 distribution
weights | weight in each of the bands | |
dist | pointer to table of distributions |
void S1S2Bands::fillExponential | ( | vector< double > & | weights, | |
double | slope | |||
) |
Fill all bands with density exponentially decreasing in S1 with variable weight.
weights | weight in each of the bands | |
slope | parameter of the slope |
void S1S2Bands::fillUniformly | ( | vector< double > & | weights | ) |
Fill all bands with density constant in S1, with variable weight.
weights | weight in each of the bands |
S2Band* S1S2Bands::getBand | ( | int | b | ) |
double S1S2Bands::getBandContent | ( | int | b | ) |
return count in a given band
b | band number (counted from 0) |
double S1S2Bands::getContent | ( | int | s, | |
int | b | |||
) |
Return getContent of a cell.
s | slice number (counted from 0) | |
b | band number (counted from 0) |
double S1S2Bands::getContentBelowS1 | ( | double | s1 | ) |
return total count below a given s1
s1 | upper limit |
double S1S2Bands::getCumulatedBandContent | ( | int | b | ) |
Return the cumulated band count, from band 0 to (including) the specified one.
band | index, couting from zero |
XeBins* S1S2Bands::getS1Bins | ( | ) |
double S1S2Bands::getS1Center | ( | int | s | ) |
return S1 central value in a given slice
s | slice number, counted from zero |
double S1S2Bands::getS1Density | ( | double | s1 | ) |
Density of projected S1 (in 1/p.e.
)
s1 | value at which it is evaluated |
double S1S2Bands::getS1LowerEdge | ( | int | s | ) |
return S1 min in a given slice
s | slice number, counted from zero |
double* S1S2Bands::getS1LowerEdges | ( | ) |
return list of S1 lower edges, for all slices
double S1S2Bands::getS1UpperEdge | ( | int | s | ) |
return S1 max in a given slice *
s | slice number, counted from zero |
double* S1S2Bands::getS1UpperEdges | ( | ) |
return list of S1 upper edges, for all slices
double S1S2Bands::getS1Width | ( | int | s | ) |
return s1 bin width of a given slice (usesul if slices not equidistant!)
s | slice number, counted from zero |
double S1S2Bands::getS2overS1LowerEdge | ( | int | b, | |
int | s | |||
) |
return lower S1/S1 in a given cell
b | band number counted from zero * | |
s | slice number, counted from zero |
double S1S2Bands::getS2overS1LowerEdge | ( | int | b | ) |
return overall lower S1/S1 in a given band
b | band number counted from zero |
double* S1S2Bands::getS2overS1LowerEdges | ( | int | b | ) |
return list of overall lower S1/S1 in a given band
b | band number counted from zero |
double S1S2Bands::getS2overS1UpperEdge | ( | int | b, | |
int | s | |||
) |
return upper S1/S1 in a given cell
b | band number counted from zero | |
s | slice number, counted from zero |
double S1S2Bands::getS2overS1UpperEdge | ( | int | b | ) |
return overall upper S1/S1 in a given band
b | band number counted from zero |
double* S1S2Bands::getS2overS1UpperEdges | ( | int | b | ) |
return list of overall upper S1/S1 in a given band
b | band number counted from zero |
S1Slice* S1S2Bands::getSlice | ( | int | s | ) |
S1Slice* S1S2Bands::getTheSlice | ( | double | s1 | ) |
void S1S2Bands::instantiateBandsAndSlices | ( | string | name, | |
int | nBands | |||
) | [protected] |
Internal method: instantiate bands and slices.
Assume that the s1Bins XeBins object already exists
name | Name to be passed | |
nBands | Number of bands |
virtual bool S1S2Bands::isDrawable | ( | int | mode | ) | [virtual] |
Is such an object drawable in a given S1S2 Display mode ?
mode | S2_VS_S1, S2_OVER_S1_VS_S1, FLATTENED_S2_VS_S1 ,BAND_VS_SLICE |
Reimplemented from S1S2Object.
TH2F* S1S2Bands::new2DHistogram | ( | int | plot = NONE |
) |
create a 2d histogram whose content is follows slices and bands
plot | Do we want to plot the content? can be NONE,LINEAR,LOG |
TabulatedDist* S1S2Bands::newBandXeDist | ( | ) |
create a distribution of Band content
band | band index, starting at 0; default: ALL= cumulated |
XeSpectrum* S1S2Bands::newBandXeSpectrum | ( | ) |
create a spectrum of Band content,
band | band index, starting at 0; default: ALL= cumulated |
TH1F* S1S2Bands::newHistogramOfBandDistribution | ( | int | plot = NONE |
) |
Create an histogram of the distribution(spectrum norm.
to 1) of Band content
band | band index, starting at 0; default: ALL= cumulated | |
plot | Do we want to plot the content? can be NONE,LINEAR,LOG |
TH1F* S1S2Bands::newHistogramOfBandSpectrum | ( | int | plot = NONE |
) |
Create an histogram of the spectrum of Band content.
band | band index, starting at 0; default: ALL= cumulated | |
plot | Do we want to plot the content? can be NONE,LINEAR,LOG |
TH1F* S1S2Bands::newHistogramOfS1Distribution | ( | int | band = ALL , |
|
int | plot = NONE , |
|||
int | nb = AUTO , |
|||
double | s1Min = AUTOMATIC , |
|||
double | s1Max = AUTOMATIC | |||
) |
Create an histogram of the distribution(spectrum norm.
to 1) of S1 values
band | band index, starting at 0; default: ALL= cumulated | |
plot | Do we want to plot the content? can be NONE,LINEAR,LOG | |
nb | number of bins (default: automatic) | |
s1Min | lower bound of S1 (default: automatic) | |
s1Max | upper bound of S1 (default: automatic) |
TH1F* S1S2Bands::newHistogramOfS1Spectrum | ( | int | band = ALL , |
|
int | plot = NONE , |
|||
int | nb = AUTO , |
|||
double | s1Min = AUTOMATIC , |
|||
double | s1Max = AUTOMATIC | |||
) |
Create an histogram of the spectrum of S1 values.
band | band index, starting at 0; default: ALL= cumulated | |
plot | Do we want to plot the content? can be NONE,LINEAR,LOG | |
nb | number of bins (default: automatic) | |
s1Min | lower bound of S1 (default: automatic) | |
s1Max | upper bound of S1 (default: automatic) |
TH1F* S1S2Bands::newHistogramOfSliceDistribution | ( | int | band = ALL , |
|
int | plot = NONE | |||
) |
Create an histogram of the distribution(spectrum norm.
to 1) of Slice content
band | band index, starting at 0; default: ALL= cumulated | |
plot | Do we want to plot the content? can be NONE,LINEAR,LOG |
TH1F* S1S2Bands::newHistogramOfSliceSpectrum | ( | int | band = ALL , |
|
int | plot = NONE | |||
) |
Create an histogram of the spectrum of Slice content.
band | band index, starting at 0; default: ALL= cumulated | |
plot | Do we want to plot the content? can be NONE,LINEAR,LOG |
XeMultiGraph* S1S2Bands::newMultiGraphOfSlice | ( | string | name, | |
TabulatedDist ** | dists, | |||
int | plot = NONE | |||
) | [protected] |
Internal method: create a multigraph from nBands distributions.
name | name of the multigraph to be created | |
dists | pointer to pointers of disitribution | |
plot | either NONE, AUTO, LINEAR, or LOG |
XeMultiGraph* S1S2Bands::newMultiGraphOfSlice | ( | string | name, | |
XeSpectrum ** | spectra, | |||
int | plot = NONE | |||
) | [protected] |
Internal method: create a multigraph from nBands spectra.
name | name of the multigraph to be created | |
spectra | pointer to pointers of spectra | |
plot | either NONE, AUTO, LINEAR, or LOG |
XeMultiGraph* S1S2Bands::newMultiGraphOfSliceDistribution | ( | int | plot = NONE |
) |
get a multigraph of Slice Distribution (normalized to 1.
in each band)
plot | either NONE, AUTO, LINEAR, or LOG |
XeMultiGraph* S1S2Bands::newMultiGraphOfSliceSpectrum | ( | int | plot = NONE |
) |
create a multigraph of Slice Spectrum
plot | either NONE, AUTO, LINEAR, or LOG |
TabulatedDist* S1S2Bands::newS1XeDist | ( | int | band = ALL , |
|
int | nb = AUTO , |
|||
double | s1Min = AUTOMATIC , |
|||
double | s1Max = AUTOMATIC | |||
) |
create a distribution of S1 values
band | band index, starting at 0; default: ALL= cumulated | |
nb | number of bins (default: automatic) | |
s1Min | lower bound of S1 (default: automatic) | |
s1Max | upper bound of S1 (default: automatic) |
XeSpectrum* S1S2Bands::newS1XeSpectrum | ( | int | band = ALL , |
|
int | nb = AUTO , |
|||
double | s1Min = AUTOMATIC , |
|||
double | S1Max = AUTOMATIC | |||
) |
create a spectrum of S1 values ,
band | band index, starting at 0; default: ALL= cumulated | |
nb | number of bins (default: automatic) | |
s1Min | lower bound of S1 (default: automatic) | |
s1Max | upper bound of S1 (default: automatic) |
TabulatedDist* S1S2Bands::newSliceXeDist | ( | int | band = ALL |
) |
create a distribution of Slice content
band | band index, starting at 0; default: ALL= cumulated |
XeSpectrum* S1S2Bands::newSliceXeSpectrum | ( | int | band = ALL |
) |
create a spectrum of Slice content,
band | band index, starting at 0; default: ALL= cumulated |
void S1S2Bands::normalize | ( | double | ratio | ) |
Multiply everything by a constant factor.
ratio | multiplication factor |
void S1S2Bands::normalizeToEvents | ( | double | events | ) |
normalize the overall content to "events"
events | the total sum in the bands after normalization |
void S1S2Bands::printBands | ( | int | level = 1 |
) |
Print it band by band.
level | verbosity |
bool S1S2Bands::printIt | ( | int | level = 1 |
) | [virtual] |
void S1S2Bands::printS1InBands | ( | int | maxEntries = 0 |
) |
Print a few S1 values in each band.
maxEntries | how many entries per band |
void S1S2Bands::printSlices | ( | int | level = 1 |
) |
Print it slice by slice.
level | verbosity |
void S1S2Bands::reweightTheBands | ( | double * | weights | ) | [protected] |
reweights the whole bands and contents inside slices
weights | relative weight of each band (sum[weights]=1); |
void S1S2Bands::setNames | ( | string | name | ) | [protected] |
Internal method: name the bands and the slices.
name | Name to be passed |
pair<int,int> S1S2Bands::whichBands | ( | int | band | ) | [protected] |
Check that band number either is valid or is equal to 'ALL'.
band | index to be checked, or ALL |
pair<int,int> S1S2Bands::whichSliceAndBand | ( | double | s1, | |
double | s2 | |||
) |
Return band and slice numbers for a given s1,s2.
s1 | value of S1 | |
s2 | value of S2 |
vector<S2Band*> S1S2Bands::bands [protected] |
pointer to the bands
vector<vector<double>*> S1S2Bands::counts [protected] |
pointers to counts in each band
int S1S2Bands::nBands [protected] |
number of bands
int S1S2Bands::nSlices [protected] |
number of slices
XeRun* S1S2Bands::run [protected] |
XeBins* S1S2Bands::s1Bins [protected] |
pointer to description of the S1 bins
vector<S1Slice*> S1S2Bands::slices [protected] |
pointer to the strips