void CDiagramEntity::Copy( CDiagramEntity* obj ) /* ============================================================ Function : CDiagramEntity::Copy Description : Copy the information in obj to this object. Return : void Parameters : CDiagramEntity* obj - The object to copy from. Usage : Copies basic information. from obj to this. GetType can be used to check for the correct object type in overridden versions. ============================================================*/ { Clear(); SetMarkerSize( obj->GetMarkerSize() ); SetConstraints( obj->GetMinimumSize(), obj->GetMaximumSize() ); Select( obj->IsSelected() ); SetParent( obj->GetParent() ); SetType( obj->GetType() ); SetTitle( obj->GetTitle() ); SetName( obj->GetName() ); Freeze( obj->IsFreezed()); SetVisible(obj->IsVisible()); SetRect( obj->GetLeft(), obj->GetTop(), obj->GetRight(), obj->GetBottom() ); }
// histograms filled and drawn in a loop void hsum() { // // To see the output of this macro, click begin_html <a href="gif/hsum.gif" >here</a> end_html // Simple example illustrating how to use the C++ interpreter // to fill histograms in a loop and show the graphics results //Author: Rene Brun TCanvas *c1 = new TCanvas("c1","The HSUM example",200,10,600,400); c1->SetGrid(); gBenchmark->Start("hsum"); // Create some histograms. auto total = new TH1F("total","This is the total distribution",100,-4,4); auto main = new TH1F("main","Main contributor",100,-4,4); auto s1 = new TH1F("s1","This is the first signal",100,-4,4); auto s2 = new TH1F("s2","This is the second signal",100,-4,4); total->Sumw2(); // store the sum of squares of weights total->SetMarkerStyle(21); total->SetMarkerSize(0.7); main->SetFillColor(16); s1->SetFillColor(42); s2->SetFillColor(46); TSlider *slider = 0; // Fill histograms randomly gRandom->SetSeed(); const Int_t kUPDATE = 500; Float_t xs1, xs2, xmain; for ( Int_t i=0; i<10000; i++) { xmain = gRandom->Gaus(-1,1.5); xs1 = gRandom->Gaus(-0.5,0.5); xs2 = gRandom->Landau(1,0.15); main->Fill(xmain); s1->Fill(xs1,0.3); s2->Fill(xs2,0.2); total->Fill(xmain); total->Fill(xs1,0.3); total->Fill(xs2,0.2); if (i && (i%kUPDATE) == 0) { if (i == kUPDATE) { total->Draw("e1p"); main->Draw("same"); s1->Draw("same"); s2->Draw("same"); c1->Update(); slider = new TSlider("slider", "test",4.2,0,4.6,total->GetMaximum(),38); slider->SetFillColor(46); } if (slider) slider->SetRange(0,Float_t(i)/10000.); c1->Modified(); c1->Update(); } } slider->SetRange(0,1); total->Draw("sameaxis"); // to redraw axis hidden by the fill area c1->Modified(); gBenchmark->Show("hsum"); }
void CDiagramEntity::Clear() /* ============================================================ Function : CDiagramEntity::Clear Description : Zero all properties of this object. Return : void Parameters : none Usage : Call to initialize the object. ============================================================*/ { SetParent( NULL ); SetRect( 0.0, 0.0, 0.0, 0.0 ); SetMarkerSize( CSize( 4, 4 ) ); SetConstraints( CSize( 1, 1 ), CSize( -1, -1 ) ); Select( FALSE ); SetName( _T( "" ) ); Freeze( FALSE ); SetVisible( TRUE ); }
MarkerDetectorImpl::MarkerDetectorImpl() { SetMarkerSize(); SetOptions(); labeling = NULL; }
// Result here is rounded down to zero for the data set items int CXYChart::InterpretDataSetPopupMenuItem( int whichDataSet, int result ) { int dataID = m_DataID[whichDataSet]; // result is chart type if( result >= kMenuChartType && result < kMenuLineSize ) { // These correlate perfectly SetChartType( dataID, result - kMenuChartType ); return kPopupUpdate; } // result is line size if( result - kMenuLineSize >= 0 && result < kMenuLineSize + nLineSizes ) { SetDataLineSize( dataID, result - kMenuLineSize + 1 ); return kPopupUpdate; } // result is line style if( result - kMenuLineStyle >= 0 && result < kMenuLineStyle + 5 ) { SetDataLineStyle( dataID, result - kMenuLineStyle ); return kPopupUpdate; } // result is marker type if( result - kMenuMarker >= 0 && result - kMenuMarker < kMarkerTypeCount ) { SetMarkerType( dataID, result - kMenuMarker ); return kPopupUpdate; } // marker fill item if( result - kMenuMarker == kMenuMarkerFill ) { SetMarkerFillState( dataID, !GetMarkerFillState(dataID) ); return kPopupUpdate; } // marker size popup if( result - kMenuMarker >= kMenuMarkerSize && result - kMenuMarker < kMenuMarkerSize+nMarkerSizes ) { SetMarkerSize( dataID, 10 * (result - (kMenuMarkerFill + kMenuMarker)) ); return kPopupUpdate; } // marker frequency if( result - kMenuMarker >= kMenuMarkerFrequency && result - kMenuMarker < kMenuMarkerFrequency + 3 ) { int tempResult = result - kMenuMarkerFrequency - kMenuMarker; int freq = abs(GetMarkerFrequency(dataID)); if( freq == 1 ) freq = 10; switch( tempResult ) { case 0: SetMarkerFrequency( dataID, 1 ); break; case 1: SetMarkerFrequency( dataID, freq ); break; case 2: SetMarkerFrequency( dataID, -freq ); break; default: break; } return kPopupUpdate; } return kPopupNoAction; }