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() );
}
Example #2
0
// 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 );
}
Example #4
0
	MarkerDetectorImpl::MarkerDetectorImpl() {
		SetMarkerSize();
		SetOptions();
		labeling = NULL;
	}
Example #5
0
// 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;
}