#include "CVIVScan.h"

ClassImp(CVIVScan)

 CVIVScan::CVIVScan(Char_t *FileName,Int_t x)
{
FILE *in;
Num=x;
//filenames = new TClonesArray("TString",Num);
meas =new TClonesArray("CVIV",Num);
if((in=fopen((const Char_t *)FileName,"r+"))==NULL) {printf("n Error opening file for readingn"); return;}
Read(in);
fclose(in);
}

 CVIVScan::~CVIVScan()
{
delete meas;

}

 void CVIVScan::Read(FILE *in)
{
Num=0;
printf("Number of measurements read :");
while(!feof(in)) 
  {
    AddCVIV(in,Num);
    Num++;
    if(Num%10==0) printf("%d,",Num);
  }
printf("n");
}

 void CVIVScan::AddCVIV(FILE *in,Int_t index)
{
  TClonesArray &entryp = *meas;
  new(entryp[index]) CVIV(in);
}

 TGraph *CVIVScan::FDV(Float_t x0, Float_t x1, Float_t x2, Float_t x3, Int_t index, Int_t option)
{
Float_t *fdv=new Float_t[Num];
Float_t *x=new Float_t[Num];
Float_t StartTime=Get(0)->GetTime();
for(Int_t i=0;i<Num;i++)
  {
    fdv[i]=Get(i)->GetFDV(x0,x1,x2,x3,index,option,0);
    x[i]=Get(i)->GetTime()-StartTime;     
  }
TGraph *it=new TGraph(Num,x,fdv);
 it->SetLineWidth(4);
 it->SetMarkerStyle(21);

Char_t v[6];  i2a(v,(Get(0)->freq())[index]); 
TString title="FDV vs. Time @ f="; title=title+v; title=title+" kHz";

it->SetTitle((const char *)title);
it->Draw("APL");
it->GetHistogram()->SetXTitle("time[h]");
it->GetHistogram()->SetYTitle("FDV [V]");
it->GetHistogram()->Draw();
 it->Draw("APL");
return(it);
}

 TGraph *CVIVScan::It(Float_t Volt,Float_t Scale)
{
Float_t *i=new Float_t[Num];
Float_t *t=new Float_t[Num];
Float_t StartTime=Get(0)->GetTime();
for(Int_t j=0;j<Num;j++)
  {
    i[j]=Get(j)->GetCurrent(Volt)*1e6*Scale;
    t[j]=Get(j)->GetTime()-StartTime;     
  }
TGraph *it=new TGraph(Num,t,i);
 it->SetLineWidth(4);
 it->SetMarkerStyle(21);

Char_t v[6]; 
 i2a(&v[1],TMath::Abs(Volt)); if(Volt<0) v[0]=45; else v[0]=32;
TString title="Current vs. Time @ U="; title=title+v; title=title+" V";
it->SetTitle((const char *)title);

it->Draw("APL");
it->GetHistogram()->SetXTitle("time[h]");
it->GetHistogram()->SetYTitle("I [uA]");
it->GetHistogram()->Draw();
 it->Draw("APL");
return(it);
}

 TGraph *CVIVScan::It(Float_t *Volt,Float_t Scale)
{
Float_t *i=new Float_t[Num];
Float_t *t=new Float_t[Num];
Float_t StartTime=Get(0)->GetTime();
for(Int_t j=0;j<Num;j++)
  {
    i[j]=Get(j)->GetCurrent(Volt[j])*1e6*Scale;
    t[j]=Get(j)->GetTime()-StartTime;     
  }
TGraph *it=new TGraph(Num,t,i);
 it->SetLineWidth(4);
 it->SetMarkerStyle(21);

it->SetTitle("Current vs. Time @ U=FDV");

it->Draw("APL");
it->GetHistogram()->SetXTitle("time[h]");
it->GetHistogram()->SetYTitle("I [uA]");
it->GetHistogram()->Draw();
 it->Draw("APL");
return(it);
}


 Int_t CVIVScan::i2a(Char_t *v,Float_t freq)
{
Int_t k=0,ok=0;
Int_t vol=(Int_t) freq;           
       if((Int_t) vol/1000!=0 || ok) {v[k++]=(Char_t)(vol/1000)+48; vol=vol%1000; ok=1;}
       if((Int_t) vol/100!=0 || ok) {v[k++]=(Char_t)(vol/100)+48;   vol=vol%100; ok=1;}
       if((Int_t) vol/10!=0 || ok) {v[k++]=(Char_t)(vol/10)+48;   vol=vol%10; ok=1;}
       v[k++]=(Char_t)((Int_t) vol)+48;
       v[k++]='0';
       return k-1;
}







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.