12 #ifndef ROOT_TParallelCoordVar 
   13 #define ROOT_TParallelCoordVar 
   20 class TParallelCoordSelect;
 
   21 class TParallelCoordRange;
 
   24 class TParallelCoordVar : 
public TNamed, 
public TAttLine, 
public TAttFill {
 
   29       kShowBarHisto  = BIT(16)
 
   48    Double_t          fHistoHeight;  
 
   51    TParallelCoord   *fParallel;     
 
   56    TParallelCoordVar(Double_t *val, 
const char* title,Int_t 
id, TParallelCoord* gram);
 
   57    virtual ~TParallelCoordVar();
 
   59    void           AddRange(TParallelCoordRange* range);
 
   60    void           AddRange() {AddRange(NULL);} 
 
   61    void           DeleteVariable(); 
 
   62    virtual Int_t  DistancetoPrimitive(Int_t px, Int_t py);
 
   63    virtual void   Draw(Option_t *option=
"");
 
   64    Bool_t         Eval(Long64_t evtidx, TParallelCoordSelect *select); 
 
   65    virtual void   ExecuteEvent(Int_t entry, Int_t px, Int_t py);
 
   66    Bool_t         GetBarHisto() {
return TestBit(kShowBarHisto);}
 
   67    Bool_t         GetBoxPlot() {
return TestBit(kShowBox);}
 
   69    Int_t          GetId() {
return fId;}
 
   70    Bool_t         GetLogScale()
 const {
return TestBit (kLogScale);}
 
   71    Int_t          GetHistBinning()
 const {
return fNbins;}
 
   72    Double_t       GetCurrentMin()
 const {
return fMinCurrent;}
 
   73    Double_t       GetCurrentMax()
 const {
return fMaxCurrent;}
 
   74    Double_t       GetCurrentAverage()
 const {
return fMean;}
 
   75    void           GetEntryXY(Long64_t n, Double_t & x, Double_t & y);
 
   76    Int_t          GetEntryWeight(Long64_t evtidx);
 
   77    Double_t       GetHistHeight() {
return fHistoHeight;}
 
   78    Int_t          GetHistLineWidth() {
return fHistoLW;}
 
   81    Double_t       GetX() {
return fX1;}
 
   82    Double_t       GetY() {
return fY1;}
 
   83    Int_t          GetNbins() {
return fNbins;}
 
   84    Long64_t       GetNentries()
 const {
return fNentries;}
 
   85    virtual char  *GetObjectInfo(Int_t px, Int_t py) 
const;
 
   86    TParallelCoord* GetParallel() {
return fParallel;}
 
   87    TList         *GetRanges() {
return fRanges;}
 
   88    Double_t      *GetValues() {
return fVal;}
 
   89    Double_t       GetValuefromXY(Double_t x,Double_t y);
 
   90    Bool_t         GetVert() {
return fX1 == fX2;} 
 
   91    void           GetXYfromValue(Double_t value, Double_t & x, Double_t & y);
 
   93    virtual void   Paint(Option_t* option=
"");
 
   95    void           PaintHistogram();
 
   97    virtual void   Print(Option_t* option=
"") 
const; 
 
   98    void           SavePrimitive(std::ostream & out, Option_t *options);
 
   99    void           SetBoxPlot(Bool_t box); 
 
  100    void           SetBarHisto(Bool_t h) {SetBit(kShowBarHisto,h);} 
 
  101    void           SetHistogramLineWidth(Int_t lw=2) {fHistoLW = lw;} 
 
  102    void           SetHistogramHeight(Double_t h=0); 
 
  103    void           SetHistogramBinning(Int_t n=100); 
 
  104    void           SetCurrentLimits(Double_t min, Double_t max); 
 
  105    void           SetCurrentMin(Double_t min);
 
  106    void           SetCurrentMax(Double_t max);
 
  107    void           SetInitMin(Double_t min) {fMinInit = min;}
 
  108    void           SetInitMax(Double_t max) {fMaxInit = max;}
 
  109    void           SetLiveRangesUpdate(Bool_t on);
 
  110    void           SetLogScale(Bool_t log); 
 
  111    void           SetTitle(
const char* ) {} 
 
  112    void           SetValues(Long64_t length, Double_t* val);
 
  113    void           SetX(Double_t x, Bool_t gl);    
 
  114    void           SetY(Double_t y, Bool_t gl);    
 
  115    void           Unzoom() {SetCurrentLimits(fMinInit,fMaxInit);} 
 
  117    ClassDef(TParallelCoordVar,1);