10 #include "Math/Interpolator.h" 
   23         fFunction->SetParameter(parName.Data(), parValue);
 
   31         if (
fFunction->GetParameter(
"constantcurrent") <= 0){
 
   32                 Error(
"PndSdsFE::GetTotFromCharge",
"const. current is less or equal zero -> now set to 60 e/ns");
 
   33                 fFunction->SetParameter(
"constantcurrent",60);
 
   36         if (
fFunction->GetParameter(
"chargetime")<= 0){
 
   37                 Error(
"PndSdsFE::GetTotFromCharge",
"charge time is less than zero -> now set to 100 ns");
 
   38                 fFunction->SetParameter(
"chargetime",100);
 
   42                 Error(
"PndSdsFE::GetTotFromCharge",
"Threshold is less than zero -> now set to 0 e");
 
   47                 Warning(
"PndSdsFE::GetTotFromCharge",
"charge is equal or less than threshold -> zero TOT");
 
   66         return   inter->Eval(tot);
 
  125                                 printf(
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%d \n",
i );
 
  142         int size_x = charge.size();
 
  143         int size_y = tot.size();
 
  145         TVectorD charge_root(size_x);
 
  146         TVectorD tot_root(size_y);
 
  148         for(
int bx=0; bx < size_x;bx++)
 
  150                 charge_root[bx] = charge.at(bx);
 
  153         for(
int by=0; by < size_x;by++)
 
  155                 tot_root[by] = tot.at(by);
 
  165         TFile 
f1(s,
"RECREATE");
 
  167         TGraph* graph = 
new TGraph(charge.size(), &charge.at(0),&tot.at(0));
 
  171         charge_root.Write(
"charge");
 
  172         tot_root.Write(
"tot");
 
  181          TFile *fInFile = 
new TFile(s,
"read");
 
  183          if(fInFile->IsZombie()) {
 
  184                  std::cout << 
"No interpolator list to load, create one... " << std::endl;
 
  191                  std::cout << 
"Loading Interpolator List " << std::endl;
 
  203          TFile *fInFile = 
new TFile(dd);
 
  205          if(fInFile->IsZombie()) {
 
  206                  std::cout << 
"PndSdsFE::LoadInterpolatorList(): error loading root file " << std::endl;
 
  212                  std::cout << 
"PndSdsFE::LoadInterpolatorList(): Loading list done " << std::endl;
 
  216          TVectorD *charge = (TVectorD*)fInFile->Get(
"charge");
 
  217          TVectorD *tot = (TVectorD*)fInFile->Get(
"tot");
 
  219          int size_charge = charge->GetNoElements();
 
  220          int size_tot = tot->GetNoElements();
 
  225                 for(
int bxx=0; bxx < size_charge;bxx++)
 
  232                 for(
int byy=0; byy < size_tot;byy++)
 
void CreateInterpolatorList()
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
virtual double GetTimeStamp(double eventtime, double tof, double charge)
virtual double GetChargeFromTot(double tot)
virtual double GetTotFromCharge(Double_t charge)
virtual double GetTimeWalkFromCharge(double charge)
std::vector< double > fCharge_list
virtual void SetParameter(TString parName, double parValue)
ROOT::Math::Interpolator * inter
virtual double GetTimeBackToBaseline(double charge)
void LoadInterpolatorList()
std::vector< double > fTot_list
void GetInterpolatorList()
void SaveInterpolatorList(std::vector< double > charge, std::vector< double > tot)
virtual double GetTimeWalkFromTot(double tot)
double DigitizeTime(double time)
PndSdsFEAmpModelSimple * fFrontEndModel
int fNumberOfSupportPoints