MeasureWF


class description - source file - inheritance tree

class MeasureWF : public TObject

    private:
void ReadTCTForm(TString, Int_t, Float_t = -1111, Float_t = -1111, Int_t = 0) public:
MeasureWF(Char_t*, Int_t = 5001, Float_t = 0) MeasureWF(Int_t, Char_t*, Float_t = 0) MeasureWF(const MeasureWF&) MeasureWF(Int_t = 60) virtual ~MeasureWF() void AddHisto(Float_t, TH1F*) void AddHisto(Int_t, Float_t, TH1F*) TGraph* CCE(Float_t = -1111, Float_t = -1111, Int_t = 0, Int_t = 1) TGraph* CCEE(Elec*, Float_t = -1111, Int_t = 0, Int_t = 1) TGraph* CCEFit(Float_t = -1111, Float_t = -1111, Float_t = 1, Float_t = 200, Int_t = 0, Int_t = 1) TH1F* ChargeShape(Float_t) static TClass* Class() void CompareHisto(TH1F*, Float_t) void CorrectBaseLine(Int_t = 0) void Draw(Float_t Volt, Option_t* opt, Float_t low = -1111, Float_t high = -1111) void Draw(Int_t, Option_t*, Float_t = -1111, Float_t = -1111) TGraph* DrawIV(Int_t = 0) void DrawMulti(Float_t = -1111., Float_t = -1111., Int_t = -1, Int_t = -1, Int_t = 1, Int_t = 0, Int_t = -1111) void DrawTest(int) TGraph* DrawTV(Int_t = 0) void EffTau(Int_t, Int_t, Float_t, Float_t, Int_t, Float_t, Float_t = 0.03) void EffTau(Int_t, Int_t, Float_t*, Float_t*, Int_t, Float_t, Float_t = 0.03) void EffTauComplex(Int_t, Int_t, Float_t, Float_t, Int_t, Float_t, Float_t = 0.03) void EffTauComplex(Int_t, Int_t, Float_t*, Float_t*, Int_t, Float_t, Float_t = 0.03) void EffTauSave(Int_t, Int_t, Float_t*, Float_t*, Int_t, Float_t*, Int_t, Float_t = 0.03) TH1F* ElField(Int_t, Float_t, Float_t, Float_t, Int_t = -1, Int_t = 2, Int_t = 0) TH1F* EShaping(Elec* el, Float_t Volt) TH1F* EShaping(Elec*, Int_t) Float_t GetAnnealTime() Float_t GetCurrent(Int_t index) Float_t GetCurrent(Float_t Volt) Int_t GetEntries() Float_t GetFDV(Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Int_t = 0, Int_t = 0) Float_t GetFDV(Elec*, Float_t, Float_t, Float_t, Float_t, Int_t = 0, Int_t = 0) TH1F* GetHA(Float_t voltage) void GetHistogram(Int_t number, TH1F* his) void GetHistogram(Float_t voltage, TH1F* his) Int_t GetIndex(Float_t Volt) void GetIntegral(Float_t*, Float_t*, Float_t = 1, Float_t = -1111, Float_t = -1111) void GetIntegral(Float_t*, Float_t = 1, Float_t = -1111, Float_t = -1111) Float_t GetT(Int_t index) Float_t GetT(Float_t Volt) Float_t GetT() Float_t GetTime(Float_t = 3600) Float_t GetVoltage(Int_t index) void Info() Int_t int2ascii(Char_t* v, Float_t, Int_t = 1) Float_t Integral(Int_t, Float_t = -1111, Float_t = -1111) Float_t Integral(Float_t, Float_t = -1111, Float_t = -1111) virtual TClass* IsA() const void Legend(TH1*, Int_t, Int_t, Int_t = 1, Int_t = 0) Double_t Mobility(Float_t, Float_t, Float_t, Double_t, Int_t = 0) void NormArray(Int_t, Float_t*) TH1F* operator()(Float_t voltage) TH1F* operator()(Int_t index) TGraph* PosTime(Float_t = -1111., Float_t = -1111., Int_t = -1, Int_t = -1, Int_t = 1, Int_t = 0, Int_t = -1111) void PrintVoltages() TGraph* RiseTime(Float_t = -1111., Float_t = -1111., Int_t = -1, Int_t = -1, Int_t = 1, Int_t = 0, Int_t = -1111) void ScaleHisto(Int_t number, Float_t fac) void SetAnnealTime(Float_t x) void SetCapacitance(Double_t x) void SetHistoTime(int ind, Float_t start) void SetHistoTime(int num, Float_t* start) void SetTemperatures(Float_t T) void SetVoltage(Int_t index, Float_t voltage) void SetVoltages(Float_t* voltages) void SetVoltages(Int_t num, Float_t svol, Float_t step) void SetVoltages(Float_t svol, Float_t step) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) TGraph* Tau(Float_t, Int_t, Int_t, Float_t = 0, Float_t = 50, Int_t = 0, Int_t = 0, TArrayI = 0) TGraph* Tau(Float_t, Int_t, Int_t, Float_t*, Float_t*, Int_t = 0, Int_t = 0, TArrayI = 0) TGraph* Tau(Elec*, Float_t, Int_t, Int_t, Float_t = 0, Float_t = 50, Int_t = 0, Int_t = 0, TArrayI = 0) TGraph* TauVolt(Float_t, Float_t, Int_t, Int_t, Float_t = 0, Float_t = 50, Int_t = 1, Int_t = 0) TGraph* VoltTau(Float_t, Float_t, Int_t, Int_t, Float_t = 0, Float_t = 50, Int_t = 0, Int_t = 0, Int_t = 1, TArrayI = 0)

Data Members

    private:
Int_t Multiple Number of Voltages Float_t Frequency Frequency of trigger TClonesArray* histo -> TArrayF Voltages Array of Voltages TArrayF Current Array of Currents TArrayF Temperature Array of Temperatures TArrayF Date Date of the Measurement (or simulation) TArrayF Frequencies Array of Frequnecies Float_t AnnealTime public:
TPaveText* pt ! Double_t CAP ! Capacitance of the diode TString Header Header of the file bool DrawMode Char_t suffix[10] Char_t prefix[10]

Class Description

 MeassureWF
                                                             
 This class handels the voltage scans produced with TCT Labview software (".tct" files)!
 Waveform vectors are stored in the histograms on which the data manipultaion rutines work

MeasureWF(Int_t num)
 Constructor
 		Int_t num    ; Number of aqusitions

MeasureWF(Int_t NumOfFiles,Char_t *FileName,Float_t offset)
 Int_t  NumOfFiles; number of files to be read
 Char_t *FileName; file name without serial number and extension. The files are supposed to end with .txt
 Float_t offset; offset in time. In order to use CorrectBaseLine function it is recomended that signal starts at t=0 ns

MeasureWF(Char_t *FileName,Int_t Bins,Float_t Start)
 Constructor
 		Char_t *FileName ; File Name
 		Int_t bins       ; Number of bins per waveform
 		Int_t Start       ; Shift in time (Start time)

void ReadTCTForm(TString FileName, Int_t Bins, Float_t StartBin, Float_t EndBin, Int_t show)
 Reads TCT Form File (internaly used by constructor)!
 	      TString FileName ;  file name
 	      Int_t Bins       ;  number of bins
 	      Float_t StartBin ;  StartBin of the histogram (values are multiplied with 1e9 - scale in ns
 	      Float_t EndBin   ;  EndBin of the histogram
 	      Int_t Show       ;  verbose reading

~MeasureWF()
 Destructor

void AddHisto(Int_t index,Float_t voltage,TH1F *hisin)
 Add histogram (waveform)
 		Int_t Index     ;  Index of the waveform
 		Float_t Voltage ;  Voltage at Index
 		TH1F*           ;  pointer to histogram of the waveform
 This function is internally used for reading the measurement files

void AddHisto(Float_t voltage,TH1F *hisin)
 Add histogram (waveform)
 	        Float_t Voltage ;  Voltage at Index
 		TH1F*           ;  pointer to histogram of the waveform
 This function is internally used for reading the measurement files.
 It is assumed that the array of waveforms is already initialized
 with voltages specified

void CompareHisto(TH1F *his,Float_t voltage)
  Compares measured histogram to any other histogram!
  Measured histogram is scaled to the input histogram!
                   TH1F *his       ;  input histogram
 		     Float_t voltage ;  histogram at voltage

void DrawTest(Int_t number)

void Draw(Int_t number,Option_t *option,Float_t low,Float_t high)
  Draw waveform
           Int_t number     ;  index of waveform
           Option_t *option ;  graphic option (see TH1F)
 	     Float_t low      ;  Time window
 	     Float_t high     ;

TGraph* RiseTime(Float_t low,Float_t high,Int_t Start,Int_t End,Int_t Step,Int_t model,Int_t indsub)
  Draws multiple waveform on the same plot with legend
           Float_t low      ; Time window
           Float_t high     ;
 	     Int_t Start      ; start index
 	     Int_t End        ; end index
	     Int_t Step       ; step (default=1)
         Int_t model      ; positive scale in volts=2, deconvoluted pulse=1
 One of the most used functions

TGraph* PosTime(Float_t low,Float_t high,Int_t Start,Int_t End,Int_t Step,Int_t model,Int_t indsub)
  Draws multiple waveform on the same plot with legend
           Float_t low      ; Time window
           Float_t high     ;
 	     Int_t Start      ; start index
 	     Int_t End        ; end index
	     Int_t Step       ; step (default=1)
         Int_t model      ; positive scale in volts=2, deconvoluted pulse=1
 One of the most used functions

void DrawMulti(Float_t low,Float_t high,Int_t Start,Int_t End,Int_t Step,Int_t model,Int_t indsub)
  Draws multiple waveform on the same plot with legend
           Float_t low      ; Time window
           Float_t high     ;
 	     Int_t Start      ; start index
 	     Int_t End        ; end index
	     Int_t Step       ; step (default=1)
         Int_t model      ; positive scale in volts=2, deconvoluted pulse=1
 One of the most used functions

Float_t Integral(Int_t i,Float_t mint, Float_t maxt)
 Get waveform integral in time window
 	Int_t i      ; index
      Float_t mint ; Time window
      Float_t maxt ;
 One of the most used functions

Float_t Integral(Float_t y,Float_t mint, Float_t maxt)
 Get waveform integral in time window (uses voltage insted of index)

void GetIntegral(Float_t *x,Float_t *y,Float_t scale,Float_t mint, Float_t maxt)
 Gets integrals in certain time window
 		Float_t  *x  ;  array of voltages
 		Float_t  *y  ;  array of integrals
 		Float_t  scale ;  scaling factor
 		Float_t mint;   Time window
 		Float_t maxt;

void GetIntegral(Float_t *y,Float_t scale,Float_t mint, Float_t maxt)
 Get Integral values only

TGraph* CCE(Float_t mint, Float_t maxt,Int_t model,Int_t Show)
 Get integral (charge) plot
                Float_t mint  ; Time Window
                Float_t maxt  ;
		    Int_t model   ; lin-lin=0  scale  sqrt-lin=1 abs(lin)-lin=2
		    Int_t Show    ; show graph

TGraph* CCEFit(Float_t mint, Float_t maxt,Float_t U1,Float_t U2,Int_t model,Int_t Show)
 Get integral (charge) plot
                Float_t mint  ; Time Window
                Float_t maxt  ;
		    Int_t model   ; lin-lin=0  scale  sqrt-lin=1 abs(lin)-lin=2
		    Int_t Show    ; show graph

void Legend(TH1 *ch, Int_t start, Int_t end, Int_t Step,Int_t model)
 Draw Legen (DrawMulti)
	       TH1F *ch    ; histogam
	       Int_t start ; start index
	       Int_t end   ; end index
	       Int_t model ; positive scale in volts=2

Float_t GetFDV(Elec *el,Float_t x0,Float_t x1,Float_t x2, Float_t x3,Int_t model,Int_t show)
	Calculates FDV using CCE plot
		     Elec *el   ;  electronics used (See Elec)
		     See GetFDV(Float_t, Float_t .... ), for the rest of information

Float_t GetFDV(Float_t low, Float_t hi,Float_t x0,Float_t x1,Float_t x2, Float_t x3,Int_t model,Int_t show)
	Calculates FDV using integral of current
		     Float_t low;  Time window
		     Float_t hi ;
		     Float_t x0 ;  first point of the first line
		     Float_t x1 ;  second point of the first line
		     Float_t x2 ;  first point of the second line
		     Float_t x3 ;  second point of the second line
		     Int_t model;  the model for FDV calculation (see CCE)
		     Int_t show ;  show plot

TGraph* Tau(Elec *el,Float_t tau,Int_t start, Int_t end,Float_t mintime, Float_t maxtime,Int_t Show,Int_t model,TArrayI exlist)
 Calcultaes rendered integrals above FDV with the trapping time ; waveform is deconvoluted first
			Elec *el        ;  electronics
			Float_t tau     ;  trapping time constant
			Int_t start     ;  start index
			Int_t end       ;  end index
			Float_t mintime ;  Time window
			Float_t maxtime ; Time window
			Int_t Show      ; show graph
			Int_t model     ;
                    TArrayI exlist  ; list of excluded points = 0

TGraph* Tau(Float_t tau,Int_t start, Int_t end,Float_t *mint, Float_t *maxt,Int_t Show,Int_t model, TArrayI exlist)
 Calcultaes rendered integrals above FDV with the trapping time
			Float_t tau     ;  trapping time constant
			Int_t start     ;  start index
			Int_t end       ;  end index
			Float_t *mint   ; Time windows for each separate measurement
			Float_t *maxt   ;
			Int_t Show      ; show graph
			Int_t model     ; graphs with positive voltages =1
                    TArrayI exlist  ; list of excluded points = 0

TGraph* Tau(Float_t tau,Int_t start, Int_t end,Float_t mint, Float_t maxt,Int_t Show,Int_t model,TArrayI exlist)
 Calcultaes rendered integrals above FDV with the trapping time
			Float_t tau     ;  trapping time constant
			Int_t start     ;  start index
			Int_t end       ;  end index
			Float_t mint    ; Time window
			Float_t maxt    ;
			Int_t Show      ; show graph
			Int_t model     ; positive voltage scale graph=2
                    TArrayI exlist  ; list of excluded points = 0

TGraph* TauVolt(Float_t taus, Float_t taue, Int_t start, Int_t end,Float_t mint, Float_t maxt,Int_t res,Int_t model)
 Calcultaes rendered integrals above FDV with the trapping time. The output is plot Integral vs voltage @ diff. tau.
			Float_t taus    ; Time interval
			Float_t taue    ;
			Int_t start     ;  start index
			Int_t end       ;  end index
			Float_t mint    ; Time window
			Float_t maxt    ;
			Int_t res       ; how many steps per nsh
			Int_t model     ; see VoltTau

TGraph* VoltTau(Float_t taus, Float_t taue, Int_t start, Int_t end,Float_t mint, Float_t maxt,Int_t Show,Int_t model,Int_t res, TArrayI exlist)
 Calcultaes rendered integrals above FDV with the trapping time. It scan throug and finds trapping time at which the integral doesn't depend on voltage
			Float_t taus    ; Time interval
			Float_t taue    ;
			Int_t start     ;  start index
			Int_t end       ;  end index
			Float_t mint    ; Time window
			Float_t maxt    ;
			Int_t Show      ; show graph
			Int_t model     ; if model >= 0 as measured
					  if model < 0 deconvoluted
					  Abs(model) - 0 negative voltage
					               > positive voltage
                    Int_t res;        resolution; number of points per ns - default = 1
                    TArrayI exlist  ; list of excluded points = 0

void EffTau(Int_t start, Int_t end, Float_t mint, Float_t maxt,Int_t eh,Float_t Vdep,Float_t D)
 Same as EffTau, with the array of minimal and maximal fit times given

void EffTauComplex(Int_t start, Int_t end, Float_t mint, Float_t maxt,Int_t eh,Float_t Vdep,Float_t D)
 Same as EffTauComplex, with  the array of minimal and maximal fit times given

void EffTauSave(Int_t start, Int_t end, Float_t *mint, Float_t *maxt,Int_t eh,Float_t *dt,Int_t startV,Float_t D)
 Determination of the tau with exponential fit to the tail of the measured waveform
 		Int_t start  ;  start index
		Int_t end    ;  end index
		Float_t mint ;  Time window
		Float_t maxt ;
		Int_t eh     ; electrons=0 , holes=1
		Float_t D    ; detector thickness in um
		Float_t *dt  ; carrier drift tume
		Int_t startV ; index of the start voltage

void EffTau(Int_t start, Int_t end, Float_t *mint, Float_t *maxt,Int_t eh,Float_t Vdep,Float_t D)
 Determination of the tau with exponential fit to the tail of the measured waveform
 		Int_t start  ;  start index
		Int_t end    ;  end index
		Float_t mint ;  Time window
		Float_t maxt ;
		Int_t eh     ; electrons=0 , holes=1
		Float_t Vdep ; full depletion voltage
		Float_t D    ; detector thickness in um

void EffTauComplex(Int_t start, Int_t end, Float_t *mint, Float_t *maxt,Int_t eh,Float_t Vdep,Float_t D)
 Determination of the tau with exponential fit to the tail of the measured waveform
 		Int_t start  ;  start index
		Int_t end    ;  end index
		Float_t mint ;  Time window
		Float_t maxt ;
		Int_t eh     ; electrons=0 , holes=1
		Float_t Vdep ; full depletion voltage
		Float_t D    ; detector thickness in um

TH1F* ElField(Int_t hisnum,Float_t tau,Float_t ts,Float_t te, Int_t nab,Int_t what, Int_t MobMod)
extraction of the electric field from the measurements
 		Int_t hisnum ; number of histogram
		Float_t tau  ; effective trapping time
		Float_t ts   ; low edge of the time window (drift)
		Float_t te   ; high edge of the time window (drift)
		Int_t nab    ; charge of the carrier (=1 hole, =-1 electron)
            Int_t what   ; what kind of output  histogram
		Int_t MobMod ; Mobility Model (see EField Class)

TH1F* ChargeShape(Float_t Volt)
 Calcultes the charge (current integral) as a function of time
				Float_t Volt; voltage

void CorrectBaseLine(Int_t method)
 Corrects the base line from [-oo,0]. It is a shift in y -axis!
	Int_t method   ;   =0 all plots are averaged , =1 separate waveforms are used

void Info()
 shows information about measurements

Float_t GetTime(Float_t scale)
 Calculates the time of measurement
		Float_t scale ; scale (3600 = 1h)

TGraph* DrawIV(Int_t model)
 Draws IV for the given measurement

TGraph* DrawTV(Int_t model)
 Draws TV for the given measurement
 Int_t model ; model=0 as measured , model=1  change the sign of both axes

TH1F* EShaping(Elec *el,Int_t index)
 The waveform is shaped with electronics
		Int_t index; index of the plot

void NormArray(Int_t num,Float_t *array)
 array normalization

TGraph* CCEE(Elec *el,Float_t normalize,Int_t model,Int_t Show)
 Same as CCE but electronics is used for shaping (peak of the shaped pulse is used)!
			Elec *el          ;  electronics
			Float_t normalize ;  normalization to certain number
	                Int_t model       ;  lin-lin=0  scale  sqrt-lin=1 abs(lin)-lin=2
			Int_t Show        ;  show plots

Double_t Mobility(Float_t E,Float_t T,Float_t Charg,Double_t Neff, Int_t which)

Int_t int2ascii(Char_t v[],Float_t vol,Int_t sign)
 int to ascii with signs (same as in MeasureWF)

void SetHistoTime(int ind,Float_t *start)

void SetHistoTime(int ind,Float_t start)



Inline Functions


               void SetAnnealTime(Float_t x)
            Float_t GetAnnealTime()
               void SetVoltages(Float_t* voltages)
               void SetVoltage(Int_t index, Float_t voltage)
            Float_t GetVoltage(Int_t index)
              Int_t GetIndex(Float_t Volt)
            Float_t GetCurrent(Int_t index)
            Float_t GetCurrent(Float_t Volt)
               void SetVoltages(Float_t svol, Float_t step)
               void SetVoltages(Int_t num, Float_t svol, Float_t step)
               void SetTemperatures(Float_t T)
               void SetCapacitance(Double_t x)
               void PrintVoltages()
               void Draw(Int_t, Option_t*, Float_t = -1111, Float_t = -1111)
               void GetHistogram(Int_t number, TH1F* his)
               void GetHistogram(Float_t voltage, TH1F* his)
              TH1F* GetHA(Float_t voltage)
              TH1F* operator()(Float_t voltage)
              TH1F* operator()(Int_t index)
               void ScaleHisto(Int_t number, Float_t fac)
              TH1F* EShaping(Elec* el, Float_t Volt)
              Int_t GetEntries()
            Float_t GetT()
            Float_t GetT(Float_t Volt)
            Float_t GetT(Int_t index)
            TClass* Class()
            TClass* IsA() const
               void ShowMembers(TMemberInspector& insp, char* parent)
               void Streamer(TBuffer& b)
               void StreamerNVirtual(TBuffer& b)
          MeasureWF MeasureWF(const MeasureWF&)


Last update: Tue Jul 28 11:30:19 2009


ROOT page - Class index - 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.