using namespace std;
#include<iostream>
#include<fstream>
#include"hmdctrackgcorrections.h"
#include<math.h>
ClassImp(HMdcTrackGCorrections)
   
HMdcTrackGCorrections::HMdcTrackGCorrections(const Char_t* name, const Char_t* title):
      TNamed(name,title)
{
   for(Int_t i=0; i<34; i++)
      tetaI[i]=18+2*i;
   for(Int_t i=0; i<16; i++)
      phiI[i]=60+2*i;
}

HMdcTrackGCorrections::HMdcTrackGCorrections(HMdcTrackGCorrections &corr)
{
   for(Int_t i=0; i<16; i++)
      {
	phiI[i]=corr.getPhiI(i);
      }
   for(Int_t i=0; i<34; i++)
      {
	 tetaI[i]=corr.getThetaI(i);
      }
   
   for(Int_t i=0; i<60; i++)
      {
	 precI[i]=corr.getPrecI(i);
      }
   
   for(Int_t i=0; i<34; i++)
      for(Int_t j=0; j<16; j++)
	 for(Int_t k=0; k<60; k++)
	    {
	       corrE[i][j][k]=corr.getCorrE(i,j,k);
	       corrP[i][j][k]=corr.getCorrP(i,j,k);
	       corrE1[i][j][k]=corr.getCorrE1(i,j,k);
	       corrP1[i][j][k]=corr.getCorrP1(i,j,k);
	    }
}


HMdcTrackGCorrections::~HMdcTrackGCorrections()
{
   ;
}
void HMdcTrackGCorrections::clear()
{
}
void HMdcTrackGCorrections::init(TString infile1, TString infile2,TString infile3,TString infile4)
{
   //infile1 electrons 4 chamber mode
   //infile2 positrons 4 chamber mode
   //infile3 electrons 3 chamber mode
   //infile4 positrons 3 chamber mode
   Double_t pp1,pp2,pp3;
   ifstream input1, input2,input3,input4;
   
   input1.open(infile1.Data(),ios::in);
   input2.open(infile2.Data(),ios::in);
   input3.open(infile3.Data(),ios::in);
   input4.open(infile4.Data(),ios::in);
   
   for(Int_t i=0; i<60; i++)
      {
	 input1>>precI[i];
	 input2>>pp1;  
	 input3>>pp2;
	 input4>>pp3;
      }
   for (Int_t k=0; k<34; k++)
      for (Int_t i=0; i<16; i++)
	 for(Int_t j=0; j<60; j++)
	    {
	       input1>>corrE[k][i][j];
	       input2>>corrP[k][i][j];
	       input3>>corrE1[k][i][j];
	       input4>>corrP1[k][i][j];
      }  
   input1.close();
   input2.close();
   input3.close();
   input4.close();   
}

void HMdcTrackGCorrections::Streamer(TBuffer &R__b)
{
   // Stream an object of class HMdcTrackGCorrections.

   UInt_t R__s, R__c;
   if (R__b.IsReading()) {
      Version_t R__v = R__b.ReadVersion(&R__s, &R__c); if (R__v) { }
      TNamed::Streamer(R__b);
      R__b.ReadStaticArray(phiI);
      R__b.ReadStaticArray(tetaI);
      R__b.ReadStaticArray(precI);
      R__b.ReadStaticArray((Double_t*)corrE);
      R__b.ReadStaticArray((Double_t*)corrP);
     
      if(R__v==2)
      {
      R__b.ReadStaticArray((Double_t*)corrE1);
      R__b.ReadStaticArray((Double_t*)corrP1);
      }
     
     
      else 
      if(R__v<=1)
      {
         for (Int_t k=0; k<34; k++)
	  for (Int_t i=0; i<16; i++)
	   for(Int_t j=0; j<60; j++)
	    {
	     corrE1[k][i][j]=corrE[k][i][j];
	     corrP1[k][i][j]=corrP[k][i][j];
	    }
	}
	
	
	
	
       R__b.CheckByteCount(R__s, R__c, HMdcTrackGCorrections::IsA());
       }
   else {
      R__c = R__b.WriteVersion(HMdcTrackGCorrections::IsA(), kTRUE);
      TNamed::Streamer(R__b);
      R__b.WriteArray(phiI, 16);
      R__b.WriteArray(tetaI, 34);
      R__b.WriteArray(precI, 60);
      R__b.WriteArray((Double_t*)corrE, 32640);
      R__b.WriteArray((Double_t*)corrP, 32640);
      R__b.WriteArray((Double_t*)corrE1, 32640);
      R__b.WriteArray((Double_t*)corrP1, 32640);
      
      R__b.SetByteCount(R__c, kTRUE);
	 }
   }






Last change: Sat May 22 13:04:04 2010
Last generated: 2010-05-22 13:04

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.