// @(#)root/html:$Name:  $:$Id: THtml.cxx,v 1.124 2006/11/24 16:01:02 $
// Author: Mathieu Benoit <mailto:mbenoit@umontreal.ca>
/*************************************************************************
 * . Class CTDR_Event					                 *
 *   Written by : Mathieu Benoit                                         *
 *   m.benoit@umontreal.ca						 *
 *************************************************************************/
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include "CTDR_Event.h"
using namespace std;

ClassImp(CTDR_Event);

//______________________________________________________________________________
CTDR_Event::CTDR_Event(){
// Default constructor for an Event		
	can=new TCanvas();
	this->N_canaux=1;

		};

//______________________________________________________________________________
CTDR_Event::CTDR_Event(TString nomdufichier,int N_canaux,int Npas){
// Constructor for an event reading a data file generated by CTDR_detecteur during simulation

	this->N_canaux=N_canaux;
	t=new double[Npas];
	double **signalx=new double*[2*N_canaux+1];
	double **signaly=new double*[2*N_canaux+1];
	for(int canal=0;canal<=2*N_canaux;canal++){
		signalx[canal]=new double[Npas];
		signaly[canal]=new double[Npas];
	};
	ifstream fichier(nomdufichier,ios::in);
	for(int i=0;i<Npas;i++){
		fichier >> t[i];
		for(int canal=0;canal<=2*N_canaux;canal++){
			fichier >> signalx[canal][i];
			fichier >> signaly[canal][i];
		};
	};

	signaux=new CTDR_Signal[2*N_canaux+1];

	for(int canal=0;canal<=2*N_canaux;canal++){
		CTDR_Signal temp(t,signalx[canal],signaly[canal],Npas,canal);
		signaux[canal]=temp;
		};
};

//______________________________________________________________________________
void CTDR_Event::Trace(){
// This method is used to visualize the data of the event

	can=new TCanvas();
	can->Draw();
	can->SetWindowSize(800,600);
	can->cd();
	can->Divide(2,2*N_canaux+1);
	for(int canal=0;canal<=2*N_canaux;canal++){
		can->cd(canal*2+1);
		signaux[canal].GetGraphX()->Draw("AL");
		can->cd(2*canal+2);
		signaux[canal].GetGraphY()->Draw("AL");
	};
};

//______________________________________________________________________________
void CTDR_Event::operator+=(CTDR_Event another){
// This operator implements the addition of two events channel by channel

	for(int canal=0;canal<=2*N_canaux;canal++){
		signaux[canal]+=another.GetSignal(canal);
	};
	t=signaux[0].Gett();
};

//______________________________________________________________________________
CTDR_Signal CTDR_Event::GetSignal(int canal){
// This is the access method to the signals stored in the CTDR_Event

	return signaux[canal];
};



ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.