#ifndef _CVIV #define _CVIV ////////////////////////////////////////////////////////////////////////// // // // CVIV // // // // Mananging Measured CV-IV curves // // // ////////////////////////////////////////////////////////////////////////// #include "TObject.h" #include "TH1.h" #include "TMath.h" #include "TArray.h" #include "TArrayI.h" #include "TArrayF.h" #include "TGraph.h" #include #include #include "TClonesArray.h" #include "TPaveText.h" #include "TText.h" class CVIV : public TObject { private: Int_t Steps; //Number of Steps Int_t NumFreq; //Frequency of trigger TArrayF Freq; //Power of laser TArrayF Cap; //Array of Capacitance Arrays[NumFreq] TArrayF Res; //Array of Resistance Arrays[NumFreq] TArrayF Voltages; //Array of Voltages TArrayF Current; //Array of Currents TArrayF Temperature; //Array of Temperatures TArrayF Date; //Date of the Measurement (or simulation) Float_t GetFreq(Char_t *); Int_t i2a(Char_t *,Float_t ); void Legend(TGraph *, Int_t , Int_t ); public: TPaveText pt; Float_t Offset; Float_t Scale; CVIV(Char_t *,Int_t=7,Int_t=-1111); CVIV(FILE *in, Int_t=7,Int_t=-1111); ~CVIV(); void Read(FILE *,Int_t,Int_t =0); TGraph *DrawIV(Int_t=1); TGraph *DrawCV(Int_t=2,Int_t=1,Int_t = -1111, Int_t = -1111,Int_t=1); TGraph *DrawTV(); Float_t GetFDV(Float_t, Float_t, Float_t , Float_t , Int_t=2, Int_t=1,Int_t=1); inline Float_t *V() {return(Voltages.GetArray());}; inline Float_t *I() {return(Current.GetArray());}; inline Float_t *T() {return(Temperature.GetArray());}; inline Float_t *freq() {return(Freq.GetArray());} Float_t GetCurrent(Float_t); void DrawMulti(Int_t=2,Int_t=0,Int_t=-1111,Int_t = -1111, Int_t = -1111); void Info(Int_t=1); Float_t GetTime(Float_t=3600); ClassDef(CVIV,1) }; #endif