104   strlcpy(myopt,opt,128);
 
  249   l = strstr(opt,
"CANDLE");
 
  253      char direction = 
' ';
 
  258      if (
l[6] >= 
'A' && 
l[6] <= 
'Z') direction = 
l[6];
 
  259      if (
l[6] >= 
'1' && 
l[6] <= 
'9') preset = 
l[6];
 
  260      if (
l[7] >= 
'A' && 
l[7] <= 
'Z' && preset != 
' ') direction = 
l[7];
 
  261      if (
l[7] >= 
'1' && 
l[7] <= 
'9' && direction != 
' ') preset = 
l[7];
 
  263      if (direction == 
'X' || direction == 
'V') {  }
 
  267      else if (preset == 
'2') 
 
  269      else if (preset == 
'3')  
 
  271      else if (preset == 
'4')  
 
  273      else if (preset == 
'5')  
 
  275      else if (preset == 
'6')  
 
  277      else if (preset != 
' ') 
 
  280      if (preset != 
' ' && direction != 
' ')
 
  282      else if (preset != 
' ' || direction != 
' ')
 
  287      Bool_t useIndivOption = 
false;
 
  289      if (direction == 
' ') direction = 
'X';
 
  291         char *brOpen = strstr(opt,
"(");
 
  292         char *brClose = strstr(opt,
")");
 
  293         char indivOption[32];
 
  294         if (brOpen && brClose) {
 
  295            useIndivOption = 
true;
 
  297            strlcpy(indivOption, brOpen, brClose-brOpen+2); 
 
  298            sscanf(indivOption,
"(%d)", (
int*) &
fOption);
 
  300            memcpy(brOpen,
"                ",brClose-brOpen+1); 
 
  308         sprintf(
fOptionStr,
"CANDLE%c%c",direction,preset);
 
  311      if (!useIndivOption && !
fOption ) {
 
  317   l = strstr(opt,
"VIOLIN");
 
  321      char direction = 
' ';
 
  324      if (
l[6] >= 
'A' && 
l[6] <= 
'Z') direction = 
l[6];
 
  325      if (
l[6] >= 
'1' && 
l[6] <= 
'9') preset = 
l[6];
 
  326      if (
l[7] >= 
'A' && 
l[7] <= 
'Z' && preset != 
' ') direction = 
l[7];
 
  327      if (
l[7] >= 
'1' && 
l[7] <= 
'9' && direction != 
' ') preset = 
l[7];
 
  329      if (direction == 
'X' || direction == 
'V') {  }
 
  333      else if (preset == 
'2') 
 
  335      else if (preset != 
' ') 
 
  338      if (preset != 
' ' && direction != 
' ')
 
  340      else if (preset != 
' ' || direction != 
' ')
 
  345      Bool_t useIndivOption = 
false;
 
  347      if (direction == 
' ') direction = 
'X';
 
  349         char *brOpen = strstr(opt,
"(");
 
  350         char *brClose = strstr(opt,
")");
 
  351         char indivOption[32];
 
  352         if (brOpen && brClose) {
 
  353            useIndivOption = 
true;
 
  355            strlcpy(indivOption, brOpen, brClose-brOpen +2); 
 
  356            sscanf(indivOption,
"(%d)", (
int*) &
fOption);
 
  358            memcpy(brOpen,
"                ",brClose-brOpen+1); 
 
  367         sprintf(
fOptionStr,
"VIOLIN%c%c",direction,preset);
 
  370      if (!useIndivOption && !
fOption ) {
 
  422   quantiles[0]=0.; quantiles[1]=0.; quantiles[2] = 0.; quantiles[3] = 0.; quantiles[4] = 0.;
 
  439   if (quantiles[0] >= quantiles[4] ||
 
  440       quantiles[1] >= quantiles[3]) {
 
  511               if (scaledBinContent >0 && scaledBinContent < 1) scaledBinContent = 1; 
 
  512               for (
int j=0; j < (
int)scaledBinContent; j++) {
 
  519                     if ((
int)scaledBinContent == 1) 
 
  542               Error (
"PaintCandlePlot",
"Not possible to draw all outliers.");
 
  549            myScale = nOutliers/(maxOutliers/2.);
 
  557            if (!(i % (
int) myScale == 0 )) 
continue; 
 
  585                  Error (
"PaintCandlePlotRaw",
"Not possible to draw all outliers.");
 
  596            fProj = 
new TH1D(
"hpa",
"hpa",100,min,max+0.0001*(max-min));
 
  630            if (myBinValue > 0) myBinValue = 
TMath::Log10(myBinValue); 
else myBinValue = 0;
 
  730                         dimRight, dimRight-
fCandleWidth/3., dimRight, dimRight, dimLeft};
 
  735         Double_t x[] = {dimLeft, dimLeft, dimRight, dimRight, dimLeft};
 
  763      Double_t myMedianX[1], myMedianY[1];
 
  774         if (myMedianX[0] > 0) myMedianX[0] = 
TMath::Log10(myMedianX[0]); 
else isValid = 
false;
 
  777         if (myMedianY[0] > 0) myMedianY[0] = 
TMath::Log10(myMedianY[0]); 
else isValid = 
false;
 
  783      if (isValid) 
gPad->PaintPolyMarker(1,myMedianX,myMedianY); 
 
  802         if (myMeanX[0] > 0) myMeanX[0] = 
TMath::Log10(myMeanX[0]); 
else isValid = 
false;
 
  805         if (myMeanY[0] > 0) myMeanY[0] = 
TMath::Log10(myMeanY[0]); 
else isValid = 
false;
 
  811      if (isValid) 
gPad->PaintPolyMarker(1,myMeanX,myMeanY); 
 
  853   for (pos = 0; pos < 16; pos++) {
 
  854      if (myOpt > opt) 
break;
 
  860   return ((thisOpt * myOpt) == opt);
 
  871      for (
int i=0; i<nPoints; i++) {
 
  877      for (
int i=0; i<nPoints; i++) {
 
  883      gPad->PaintFillArea(nPoints, 
x, 
y);
 
  884      gPad->PaintPolyLine(nPoints, 
x, 
y);
 
  886      gPad->PaintFillArea(nPoints, 
y, 
x);
 
  887      gPad->PaintPolyLine(nPoints, 
y, 
x);
 
  916void TCandle::Streamer(
TBuffer &R__b)
 
  945   fMean        = axisMinCoord + ((
fMean-
a)/
b)*(axisMaxCoord-axisMinCoord);
 
  948   fBoxUp       = axisMinCoord + ((
fBoxUp-
a)/
b)*(axisMaxCoord-axisMinCoord);
 
static const double x2[5]
 
static const double x1[5]
 
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
 
Fill Area Attributes class.
 
virtual Color_t GetFillColor() const
Return the fill area color.
 
virtual Style_t GetFillStyle() const
Return the fill area style.
 
virtual void Modify()
Change current fill area attributes if necessary.
 
virtual Color_t GetLineColor() const
Return the line color.
 
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
 
virtual void SetLineColor(Color_t lcolor)
Set the line color.
 
virtual Style_t GetLineStyle() const
Return the line style.
 
virtual void Modify()
Change current line attributes if necessary.
 
virtual void Modify()
Change current marker attributes if necessary.
 
virtual Style_t GetMarkerStyle() const
Return the marker style.
 
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
 
Buffer base class used for serializing objects.
 
virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onfile_class=0)=0
 
virtual Version_t ReadVersion(UInt_t *start=0, UInt_t *bcnt=0, const TClass *cl=0)=0
 
virtual Int_t WriteClassBuffer(const TClass *cl, void *pointer)=0
 
The candle plot painter class.
 
Double_t fMedian
Position of the median.
 
static Double_t fBoxRange
The fraction which is covered by the box (0 < x < 1), default 0.5.
 
@ kHorizontal
If this bit is not set it is vertical.
 
static void SetScaledViolin(const Bool_t vScale=true)
Static function to set scaling between violin-withs.
 
bool fIsRaw
0: for TH1 projection, 1: using raw data
 
static Double_t fWhiskerRange
The fraction which is covered by the whiskers (0 < x < 1), default 1.
 
CandleOption fOption
Setting the style of the candle.
 
Double_t fAxisMax
The Maximum which is visible by the axis (used by zero indicator)
 
int fLogZ
make the candle appear logz-like
 
bool IsOption(CandleOption opt)
Return true is this option is activated in fOption.
 
Double_t fPosCandleAxis
x-pos for a vertical candle
 
Double_t fMean
Position of the mean.
 
Double_t fWhiskerDown
Position of the lower whisker end.
 
Long64_t fNDrawPoints
max number of outliers or other point to be shown
 
virtual void Paint(Option_t *option="")
Paint one candle with its current attributes.
 
Double_t fAxisMin
The Minimum which is visible by the axis (used by zero indicator)
 
void ConvertToPadCoords(Double_t minAxis, Double_t maxAxis, Double_t axisMinCoord, Double_t axisMaxCoord)
The coordinates in the TParallelCoordVar-class are in Pad-Coordinates, so we need to convert them.
 
Double_t fDrawPointsY[kNMAXPOINTS]
y-coord for every outlier, ..
 
Long64_t fNDatapoints
Number of Datapoints within this candle.
 
Double_t fHistoPointsY[kNMAXPOINTS]
y-coord for the polyline of the histo
 
Double_t fHistoPointsX[kNMAXPOINTS]
x-coord for the polyline of the histo
 
static void SetScaledCandle(const Bool_t cScale=true)
Static function to set scaling between candles-withs.
 
Double_t * fDatapoints
position of all Datapoints within this candle
 
int ParseOption(char *optin)
Parsing of the option-string.
 
bool fDismiss
True if the candle cannot be painted.
 
Double_t fWhiskerUp
Position of the upper whisker end.
 
static void SetBoxRange(const Double_t bRange)
Static function to set fBoxRange, by setting whisker-range, one can force the box of the candle-chart...
 
static Bool_t fScaledViolin
shall the violin or histos be scaled to each other by the maximum height?
 
int fLogY
make the candle appear logy-like
 
Double_t fMedianErr
The size of the notch.
 
void PaintBox(Int_t nPoints, Double_t *x, Double_t *y, Bool_t swapXY)
Paint a box for candle.
 
Double_t fBoxUp
Position of the upper box end.
 
virtual ~TCandle()
TCandle default destructor.
 
int fLogX
make the candle appear logx-like
 
Double_t fDrawPointsX[kNMAXPOINTS]
x-coord for every outlier, ..
 
TCandle()
TCandle default constructor.
 
Double_t fBoxDown
Position of the lower box end.
 
void Calculate()
Calculates all values needed by the candle definition depending on the candle options.
 
void PaintLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Bool_t swapXY)
Paint a line for candle.
 
Double_t fHistoWidth
The histo width (the height of the max bin)
 
int GetCandleOption(const int pos)
 
static void SetWhiskerRange(const Double_t wRange)
Static function to set fWhiskerRange, by setting whisker-range, one can force the whiskers to cover t...
 
static Bool_t fScaledCandle
shall the box-width be scaled to each other by the integral of a box?
 
char fOptionStr[128]
String to draw the candle.
 
Double_t fCandleWidth
The candle width.
 
1-D histogram with a double per channel (see TH1 documentation)}
 
virtual Double_t GetBinCenter(Int_t bin) const
Return bin center for 1D histogram.
 
virtual Int_t GetQuantiles(Int_t nprobSum, Double_t *q, const Double_t *probSum=0)
Compute Quantiles for this histogram Quantile x_q of a probability distribution Function F is defined...
 
virtual Double_t GetMean(Int_t axis=1) const
For axis = 1,2 or 3 returns the mean value of the histogram along X,Y or Z axis.
 
TAxis * GetXaxis()
Get the behaviour adopted by the object about the statoverflows. See EStatOverflows for more informat...
 
virtual Double_t GetMaximum(Double_t maxval=FLT_MAX) const
Return maximum value smaller than maxval of bins in the range, unless the value has been overridden b...
 
virtual Int_t GetNbinsX() const
 
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
 
virtual TH1 * RebinX(Int_t ngroup=2, const char *newname="")
 
virtual Double_t GetBinLowEdge(Int_t bin) const
Return bin lower edge for 1D histogram.
 
virtual Double_t GetEntries() const
Return the current number of entries.
 
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
 
virtual Double_t GetBinWidth(Int_t bin) const
Return bin width for 1D histogram.
 
virtual Int_t FindBin(Double_t x, Double_t y=0, Double_t z=0)
Return Global bin number corresponding to x,y,z.
 
Random number generator class based on the maximally quidistributed combined Tausworthe generator by ...
 
virtual Double_t Rndm()
TausWorth generator from L'Ecuyer, uses as seed 3x32bits integers Use a mask of 0xffffffffUL to make ...
 
void Quantiles(Int_t n, Int_t nprob, Double_t *x, Double_t *quantiles, Double_t *prob, Bool_t isSorted=kTRUE, Int_t *index=0, Int_t type=7)
Computes sample quantiles, corresponding to the given probabilities.
 
Double_t Log10(Double_t x)