// Author: Andrew M. Rogers, NSCL 07/01/2006
//* Copyright (C) 2006-2008 Andrew M. Rogers

#include <stdio.h>
#include <TObject.h>

#include "TEpics.h"


ClassImp(TEpics);


//______________________________________________________________________________
void TEpics::Calculate()
{
  // --
  //

}


//______________________________________________________________________________
void TEpics::Calibrate()
{
  // --
  //

}

//______________________________________________________________________________
void TEpics::Clear(Option_t*)
{
  // --
  //

  HIRA_Tower0_I   = 0;
  HIRA_Tower0_Reg = 0;
  HIRA_Tower1_I   = 0;       
  HIRA_Tower1_Reg = 0;       
  HIRA_Tower2_I   = 0;       
  HIRA_Tower2_Reg = 0;       
  HIRA_Tower3_I   = 0;       
  HIRA_Tower3_Reg = 0;       
  HIRA_Tower4_I   = 0;       
  HIRA_Tower4_Reg = 0;       
  HIRA_Tower5_I   = 0;       
  HIRA_Tower5_Reg = 0;       
  I252IG          = 0;
  memset(HIRA_Tower0_TC,'\0',sizeof(HIRA_Tower0_TC));
  memset(HIRA_Tower1_TC,'\0',sizeof(HIRA_Tower1_TC));
  memset(HIRA_Tower2_TC,'\0',sizeof(HIRA_Tower2_TC));
  memset(HIRA_Tower3_TC,'\0',sizeof(HIRA_Tower3_TC));
  memset(HIRA_Tower4_TC,'\0',sizeof(HIRA_Tower4_TC));
  memset(HIRA_Tower5_TC,'\0',sizeof(HIRA_Tower5_TC));

  HIRA_Tower0_I_Up   = 0;       
  HIRA_Tower0_Reg_Up = 0;       
  HIRA_Tower1_I_Up   = 0;       
  HIRA_Tower1_Reg_Up = 0;       
  HIRA_Tower2_I_Up   = 0;       
  HIRA_Tower2_Reg_Up = 0;       
  HIRA_Tower3_I_Up   = 0;       
  HIRA_Tower3_Reg_Up = 0;       
  HIRA_Tower4_I_Up   = 0;       
  HIRA_Tower4_Reg_Up = 0;       
  HIRA_Tower5_I_Up   = 0;       
  HIRA_Tower5_Reg_Up = 0;       
  I252IG_Up          = 0;
  memset(HIRA_Tower0_TC_Up,'\0',sizeof(HIRA_Tower0_TC_Up));
  memset(HIRA_Tower1_TC_Up,'\0',sizeof(HIRA_Tower1_TC_Up));
  memset(HIRA_Tower2_TC_Up,'\0',sizeof(HIRA_Tower2_TC_Up));
  memset(HIRA_Tower3_TC_Up,'\0',sizeof(HIRA_Tower3_TC_Up));
  memset(HIRA_Tower4_TC_Up,'\0',sizeof(HIRA_Tower4_TC_Up));
  memset(HIRA_Tower5_TC_Up,'\0',sizeof(HIRA_Tower5_TC_Up));
}


//______________________________________________________________________________
void TEpics::InitBranch(TTree *tree)
{
  // --
  // 

}

//______________________________________________________________________________
void TEpics::InitClass()
{
  // --
  //

  SetNameTitle("epics","EPICS System");
  
  Clear();
}

//______________________________________________________________________________
void TEpics::InitTree(TTree *tree)
{
  // --
  //

  fChain = tree;
  fCurrent = -1;
  fChain->SetMakeClass(1);
  
  fChain->SetBranchAddress("HIRA_Tower0_I",&HIRA_Tower0_I,&b_HIRA_Tower0_I);
  fChain->SetBranchAddress("HIRA_Tower0_Reg",&HIRA_Tower0_Reg,&b_HIRA_Tower0_Reg);
  fChain->SetBranchAddress("HIRA_Tower0_TC[5]",&HIRA_Tower0_TC,&b_HIRA_Tower0_TC);

  fChain->SetBranchAddress("HIRA_Tower1_I",&HIRA_Tower1_I,&b_HIRA_Tower1_I);
  fChain->SetBranchAddress("HIRA_Tower1_Reg",&HIRA_Tower1_Reg,&b_HIRA_Tower1_Reg);
  fChain->SetBranchAddress("HIRA_Tower1_TC[5]",&HIRA_Tower1_TC,&b_HIRA_Tower1_TC);

  fChain->SetBranchAddress("HIRA_Tower2_I",&HIRA_Tower2_I,&b_HIRA_Tower2_I);
  fChain->SetBranchAddress("HIRA_Tower2_Reg",&HIRA_Tower2_Reg,&b_HIRA_Tower2_Reg);
  fChain->SetBranchAddress("HIRA_Tower2_TC[5]",&HIRA_Tower2_TC,&b_HIRA_Tower2_TC);

  fChain->SetBranchAddress("HIRA_Tower3_I",&HIRA_Tower3_I,&b_HIRA_Tower3_I);
  fChain->SetBranchAddress("HIRA_Tower3_Reg",&HIRA_Tower3_Reg,&b_HIRA_Tower3_Reg);
  fChain->SetBranchAddress("HIRA_Tower3_TC[5]",&HIRA_Tower3_TC,&b_HIRA_Tower3_TC);

  fChain->SetBranchAddress("HIRA_Tower4_I",&HIRA_Tower4_I,&b_HIRA_Tower4_I);
  fChain->SetBranchAddress("HIRA_Tower4_Reg",&HIRA_Tower4_Reg,&b_HIRA_Tower4_Reg);
  fChain->SetBranchAddress("HIRA_Tower4_TC[5]",&HIRA_Tower4_TC,&b_HIRA_Tower4_TC);

  fChain->SetBranchAddress("I252IG",&I252IG,&b_I252IG);

  fChain->SetBranchAddress("HIRA_Tower0_I_Up",&HIRA_Tower0_I_Up,&b_HIRA_Tower0_I_Up);
  fChain->SetBranchAddress("HIRA_Tower0_Reg_Up",&HIRA_Tower0_Reg_Up,&b_HIRA_Tower0_Reg_Up);
  fChain->SetBranchAddress("HIRA_Tower0_TC_Up[5]",&HIRA_Tower0_TC_Up,&b_HIRA_Tower0_TC_Up);

  fChain->SetBranchAddress("HIRA_Tower1_I_Up",&HIRA_Tower1_I_Up,&b_HIRA_Tower1_I_Up);
  fChain->SetBranchAddress("HIRA_Tower1_Reg_Up",&HIRA_Tower1_Reg_Up,&b_HIRA_Tower1_Reg_Up);
  fChain->SetBranchAddress("HIRA_Tower1_TC_Up[5]",&HIRA_Tower1_TC_Up,&b_HIRA_Tower1_TC_Up);

  fChain->SetBranchAddress("HIRA_Tower2_I_Up",&HIRA_Tower2_I_Up,&b_HIRA_Tower2_I_Up);
  fChain->SetBranchAddress("HIRA_Tower2_Reg_Up",&HIRA_Tower2_Reg_Up,&b_HIRA_Tower2_Reg_Up);
  fChain->SetBranchAddress("HIRA_Tower2_TC_Up[5]",&HIRA_Tower2_TC_Up,&b_HIRA_Tower2_TC_Up);

  fChain->SetBranchAddress("HIRA_Tower3_I_Up",&HIRA_Tower3_I_Up,&b_HIRA_Tower3_I_Up);
  fChain->SetBranchAddress("HIRA_Tower3_Reg_Up",&HIRA_Tower3_Reg_Up,&b_HIRA_Tower3_Reg_Up);
  fChain->SetBranchAddress("HIRA_Tower3_TC_Up[5]",&HIRA_Tower3_TC_Up,&b_HIRA_Tower3_TC_Up);

  fChain->SetBranchAddress("HIRA_Tower4_I_Up",&HIRA_Tower4_I_Up,&b_HIRA_Tower4_I_Up);
  fChain->SetBranchAddress("HIRA_Tower4_Reg_Up",&HIRA_Tower4_Reg_Up,&b_HIRA_Tower4_Reg_Up);
  fChain->SetBranchAddress("HIRA_Tower4_TC_Up[5]",&HIRA_Tower4_TC_Up,&b_HIRA_Tower4_TC_Up);

  fChain->SetBranchAddress("I252IG_Up",&I252IG_Up,&b_I252IG_Up);
}

//______________________________________________________________________________
void TEpics::SetName(const Char_t *name)
{
  // -- Change (i.e. set) the name of the TEpics.
  //

  fName = name;
}

//______________________________________________________________________________
void TEpics::SetNameTitle(const Char_t *name, const Char_t *title)
{
  // -- Change (i.e. set) all the TEpics parameters (name and title).
  //

  fName  = name;
  fTitle = title;
}

//______________________________________________________________________________
void TEpics::SetTitle(const Char_t *title)
{
  // -- Change (i.e. set) the title of the TEpics.
  //

  fTitle = title;
}

//______________________________________________________________________________
UShort_t* TEpics::Unpack(UShort_t *pEvent)
{
  // --
  //

  UShort_t nItems;
  Char_t   itemString[1000];
  Char_t   type[200];
  Char_t   itemName[200];
  Char_t   valueName[200];
  Float_t  value;

  // Get the number of Scalers read, its nEntities, and advance the pointer
  // to the end time offset.
  nItems = *pEvent;

  for(Int_t j=0; j<10; j++) *pEvent++;

  for(Int_t i=0; i<nItems; i++){
    memset(itemString,'\0',1000);

    for(Int_t j=0; j<8192; j = j+2){
      itemString[j]   = (Char_t)(*pEvent&0x00ff);
      itemString[j+1] = (Char_t)(*pEvent>>8);
      pEvent++;
      if(itemString[j+1] == '\0') break;
    }
    //    printf("%s\n",itemString);

    sscanf(itemString,"%*s %*[A-Z]_%[A-Z0-9](%[A-Z0-9_]) %*c%s",type,itemName,valueName);
    value = (Float_t)atof(valueName);
    //    printf("%s %s %f\n",type,itemName,value);
  
    if(strcmp(type,"DATA")==0){
      if(strcmp(itemName,"HIRA_TOW0_I")==0)   HIRA_Tower0_I     = value;
      if(strcmp(itemName,"HIRA_TOW0_REG")==0) HIRA_Tower0_Reg  = value;
      if(strcmp(itemName,"HIRA_TOW0_TC0")==0) HIRA_Tower0_TC[0] = value;
      if(strcmp(itemName,"HIRA_TOW0_TC1")==0) HIRA_Tower0_TC[1] = value;
      if(strcmp(itemName,"HIRA_TOW0_TC2")==0) HIRA_Tower0_TC[2] = value;
      if(strcmp(itemName,"HIRA_TOW0_TC3")==0) HIRA_Tower0_TC[3] = value;
      if(strcmp(itemName,"HIRA_TOW0_TC4")==0) HIRA_Tower0_TC[4] = value;
      if(strcmp(itemName,"HIRA_TOW1_I")==0)   HIRA_Tower1_I     = value;
      if(strcmp(itemName,"HIRA_TOW1_REG")==0) HIRA_Tower1_Reg   = value;
      if(strcmp(itemName,"HIRA_TOW1_TC0")==0) HIRA_Tower1_TC[0] = value;
      if(strcmp(itemName,"HIRA_TOW1_TC1")==0) HIRA_Tower1_TC[1] = value;
      if(strcmp(itemName,"HIRA_TOW1_TC2")==0) HIRA_Tower1_TC[2] = value;
      if(strcmp(itemName,"HIRA_TOW1_TC3")==0) HIRA_Tower1_TC[3] = value;
      if(strcmp(itemName,"HIRA_TOW1_TC4")==0) HIRA_Tower1_TC[4] = value;
      if(strcmp(itemName,"HIRA_TOW2_I")==0)   HIRA_Tower2_I     = value;
      if(strcmp(itemName,"HIRA_TOW2_REG")==0) HIRA_Tower2_Reg   = value;
      if(strcmp(itemName,"HIRA_TOW2_TC0")==0) HIRA_Tower2_TC[0] = value;
      if(strcmp(itemName,"HIRA_TOW2_TC1")==0) HIRA_Tower2_TC[1] = value;
      if(strcmp(itemName,"HIRA_TOW2_TC2")==0) HIRA_Tower2_TC[2] = value;
      if(strcmp(itemName,"HIRA_TOW2_TC3")==0) HIRA_Tower2_TC[3] = value;
      if(strcmp(itemName,"HIRA_TOW2_TC4")==0) HIRA_Tower2_TC[4] = value;
      if(strcmp(itemName,"HIRA_TOW3_I")==0)   HIRA_Tower3_I     = value;
      if(strcmp(itemName,"HIRA_TOW3_REG")==0) HIRA_Tower3_Reg   = value;
      if(strcmp(itemName,"HIRA_TOW3_TC0")==0) HIRA_Tower3_TC[0] = value;
      if(strcmp(itemName,"HIRA_TOW3_TC1")==0) HIRA_Tower3_TC[1] = value;
      if(strcmp(itemName,"HIRA_TOW3_TC2")==0) HIRA_Tower3_TC[2] = value;
      if(strcmp(itemName,"HIRA_TOW3_TC3")==0) HIRA_Tower3_TC[3] = value;
      if(strcmp(itemName,"HIRA_TOW3_TC4")==0) HIRA_Tower3_TC[4] = value;
      if(strcmp(itemName,"HIRA_TOW4_I")==0)   HIRA_Tower4_I     = value;
      if(strcmp(itemName,"HIRA_TOW4_REG")==0) HIRA_Tower4_Reg   = value;
      if(strcmp(itemName,"HIRA_TOW4_TC0")==0) HIRA_Tower4_TC[0] = value;
      if(strcmp(itemName,"HIRA_TOW4_TC1")==0) HIRA_Tower4_TC[1] = value;
      if(strcmp(itemName,"HIRA_TOW4_TC2")==0) HIRA_Tower4_TC[2] = value;
      if(strcmp(itemName,"HIRA_TOW4_TC3")==0) HIRA_Tower4_TC[3] = value;
      if(strcmp(itemName,"HIRA_TOW4_TC4")==0) HIRA_Tower4_TC[4] = value;
      if(strcmp(itemName,"HIRA_TOW5_I")==0)   HIRA_Tower5_I     = value;
      if(strcmp(itemName,"HIRA_TOW5_REG")==0) HIRA_Tower5_Reg   = value;
      if(strcmp(itemName,"HIRA_TOW5_TC0")==0) HIRA_Tower5_TC[0] = value;
      if(strcmp(itemName,"HIRA_TOW5_TC1")==0) HIRA_Tower5_TC[1] = value;
      if(strcmp(itemName,"HIRA_TOW5_TC2")==0) HIRA_Tower5_TC[2] = value;
      if(strcmp(itemName,"HIRA_TOW5_TC3")==0) HIRA_Tower5_TC[3] = value;
      if(strcmp(itemName,"HIRA_TOW5_TC4")==0) HIRA_Tower5_TC[4] = value;
      if(strcmp(itemName,"I252IG")==0)        I252IG            = value;
    }
 
//     if(strcmp(type,"UPDATED")==0){
//       if(strcmp(itemName,"HIRA_TOW0_I")==0)   HIRA_Tower0_I_Up    = value;
//       if(strcmp(itemName,"HIRA_TOW0_REG")==0) HIRA_Tower0_Reg_Up  = value;
//       if(strcmp(itemName,"HIRA_TOW0_TC0")==0) HIRA_Tower0_TC_Up[0] = value;
//       if(strcmp(itemName,"HIRA_TOW0_TC1")==0) HIRA_Tower0_TC_Up[1] = value;
//       if(strcmp(itemName,"HIRA_TOW0_TC2")==0) HIRA_Tower0_TC_Up[2] = value;
//       if(strcmp(itemName,"HIRA_TOW0_TC3")==0) HIRA_Tower0_TC_Up[3] = value;
//       if(strcmp(itemName,"HIRA_TOW0_TC4")==0) HIRA_Tower0_TC_Up[4] = value;
//       if(strcmp(itemName,"HIRA_TOW1_I")==0)   HIRA_Tower1_I_Up    = value;
//       if(strcmp(itemName,"HIRA_TOW1_REG")==0) HIRA_Tower1_Reg_Up  = value;
//       if(strcmp(itemName,"HIRA_TOW1_TC0")==0) HIRA_Tower1_TC_Up[0] = value;
//       if(strcmp(itemName,"HIRA_TOW1_TC1")==0) HIRA_Tower1_TC_Up[1] = value;
//       if(strcmp(itemName,"HIRA_TOW1_TC2")==0) HIRA_Tower1_TC_Up[2] = value;
//       if(strcmp(itemName,"HIRA_TOW1_TC3")==0) HIRA_Tower1_TC_Up[3] = value;
//       if(strcmp(itemName,"HIRA_TOW1_TC4")==0) HIRA_Tower1_TC_Up[4] = value;
//       if(strcmp(itemName,"HIRA_TOW2_I")==0)   HIRA_Tower2_I_Up    = value;
//       if(strcmp(itemName,"HIRA_TOW2_REG")==0) HIRA_Tower2_Reg_Up  = value;
//       if(strcmp(itemName,"HIRA_TOW2_TC0")==0) HIRA_Tower2_TC_Up[0] = value;
//       if(strcmp(itemName,"HIRA_TOW2_TC1")==0) HIRA_Tower2_TC_Up[1] = value;
//       if(strcmp(itemName,"HIRA_TOW2_TC2")==0) HIRA_Tower2_TC_Up[2] = value;
//       if(strcmp(itemName,"HIRA_TOW2_TC3")==0) HIRA_Tower2_TC_Up[3] = value;
//       if(strcmp(itemName,"HIRA_TOW2_TC4")==0) HIRA_Tower2_TC_Up[4] = value;
//       if(strcmp(itemName,"HIRA_TOW3_I")==0)   HIRA_Tower3_I_Up    = value;
//       if(strcmp(itemName,"HIRA_TOW3_REG")==0) HIRA_Tower3_Reg_Up  = value;
//       if(strcmp(itemName,"HIRA_TOW3_TC0")==0) HIRA_Tower3_TC_Up[0] = value;
//       if(strcmp(itemName,"HIRA_TOW3_TC1")==0) HIRA_Tower3_TC_Up[1] = value;
//       if(strcmp(itemName,"HIRA_TOW3_TC2")==0) HIRA_Tower3_TC_Up[2] = value;
//       if(strcmp(itemName,"HIRA_TOW3_TC3")==0) HIRA_Tower3_TC_Up[3] = value;
//       if(strcmp(itemName,"HIRA_TOW3_TC4")==0) HIRA_Tower3_TC_Up[4] = value;
//       if(strcmp(itemName,"HIRA_TOW4_I")==0)   HIRA_Tower4_I_Up    = value;
//       if(strcmp(itemName,"HIRA_TOW4_REG")==0) HIRA_Tower4_Reg_Up  = value;
//       if(strcmp(itemName,"HIRA_TOW4_TC0")==0) HIRA_Tower4_TC_Up[0] = value;
//       if(strcmp(itemName,"HIRA_TOW4_TC1")==0) HIRA_Tower4_TC_Up[1] = value;
//       if(strcmp(itemName,"HIRA_TOW4_TC2")==0) HIRA_Tower4_TC_Up[2] = value;
//       if(strcmp(itemName,"HIRA_TOW4_TC3")==0) HIRA_Tower4_TC_Up[3] = value;
//       if(strcmp(itemName,"HIRA_TOW4_TC4")==0) HIRA_Tower4_TC_Up[4] = value;
//       if(strcmp(itemName,"HIRA_TOW5_I")==0)   HIRA_Tower5_I_Up     = value;
//       if(strcmp(itemName,"HIRA_TOW5_REG")==0) HIRA_Tower5_Reg_Up  = value;
//       if(strcmp(itemName,"HIRA_TOW5_TC0")==0) HIRA_Tower5_TC_Up[0] = value;
//       if(strcmp(itemName,"HIRA_TOW5_TC1")==0) HIRA_Tower5_TC_Up[1] = value;
//       if(strcmp(itemName,"HIRA_TOW5_TC2")==0) HIRA_Tower5_TC_Up[2] = value;
//       if(strcmp(itemName,"HIRA_TOW5_TC3")==0) HIRA_Tower5_TC_Up[3] = value;
//       if(strcmp(itemName,"HIRA_TOW5_TC4")==0) HIRA_Tower5_TC_Up[4] = value;
//     }
    
  }       

  return pEvent;
}

Last change: Tue Dec 16 22:01:05 2008
Last generated: 2008-12-16 22:01

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.