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

#include "TS800ImTrack.h"
#include "TS800.h"
#include "nrutil.h"

#include <iostream>
#include <math.h>

#include <TNamed.h>
#include <TList.h>

ClassImp(TS800ImTrack);

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TS800ImTrack                                                         //
//                                                                      //
//                                                                      //
//////////////////////////////////////////////////////////////////////////


//______________________________________________________________________________
TS800ImTrack::TS800ImTrack(const TS800ImTrack & imTrack) : TObject(imTrack)
{
  // -- Copy Constructor.
  ((TS800ImTrack&)imTrack).Copy(*this);
}


//______________________________________________________________________________
Int_t TS800ImTrack::Calculate(Long64_t entry)
{
  // --
  //

  Clear();
    
  aim = atan((parent->tppac2.x - parent->tppac1.x)/gap)*1000;
  bim = atan((parent->tppac2.y - parent->tppac1.y)/gap)*1000;
  
  xim = parent->tppac1.x + zim*tan(aim/1000);
  yim = parent->tppac1.y + zim*tan(bim/1000);
  
  // cout << "Calculated IM Tracking." << endl;
  return 1;
}


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

//   b_aim->Reset();
//   b_bim->Reset();
//   b_xim->Reset();
//   b_yim->Reset();

//   for(Long64_t i=0; i<fChain->GetEntriesFast(); i++){
//     Clear();
//     parent->tppac1.b_x->GetEntry(i);
//     parent->tppac1.b_y->GetEntry(i);
//     parent->tppac2.b_x->GetEntry(i);
//     parent->tppac2.b_y->GetEntry(i);

//     aim = atan((parent->tppac2.x - parent->tppac1.x)/gap)*1000;
//     bim = atan((parent->tppac2.y - parent->tppac1.y)/gap)*1000;
    
//     xim = parent->tppac1.x + zim*tan(aim/1000);
//     yim = parent->tppac1.y + zim*tan(bim/1000);

//     b_aim->Fill();
//     b_bim->Fill();
//     b_xim->Fill();
//     b_yim->Fill();
//   }
  
//   cout << "Calculated IM Tracking." << endl;
// }


//______________________________________________________________________________
void TS800ImTrack::Copy(TObject &imTrack) const
{
  // -- Copy this method.
  TObject::Copy((TObject&)imTrack);
  ((TS800ImTrack&)imTrack).zim  = zim;
  ((TS800ImTrack&)imTrack).gap  = gap;
  ((TS800ImTrack&)imTrack).name = name;
  
  //Clear();

}


//______________________________________________________________________________
void TS800ImTrack::InitClass(TString iname, TS800 *iparent) 
{
  // --
  name = iname;
  parent  = iparent;
  
  zim    = 0;
  gap    = 700.0;  // mm
}


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

  fChain   = tree;
  fCurrent = -1;
  //  TNamed *aState = (TNamed*)fChain->GetUserInfo()->FindObject("Analysis State");
  #ifdef TESTING
  fChain->SetMakeClass(1);
  #endif

//   fChain->SetBranchAddress(name+".xim",&xim,&b_xim);
//   fChain->SetBranchAddress(name+".aim",&aim,&b_aim);
//   fChain->SetBranchAddress(name+".yim",&yim,&b_yim);
//   fChain->SetBranchAddress(name+".bim",&bim,&b_bim);
//   fChain->SetBranchAddress(name+".ata",&ata,&b_ata);
//   fChain->SetBranchAddress(name+".yta",&yta,&b_yta);
//   fChain->SetBranchAddress(name+".bta",&bta,&b_bta);
//   fChain->SetBranchAddress(name+".dta",&dta,&b_dta);
//  if(      strcmp(aState->GetName(),"0")){
    b_xim = fChain->GetBranch(name+".xim");
    b_aim = fChain->GetBranch(name+".aim");
    b_yim = fChain->GetBranch(name+".yim");
    b_bim = fChain->GetBranch(name+".bim");
    b_ata = fChain->GetBranch(name+".ata");
    b_yta = fChain->GetBranch(name+".yta");
    b_bta = fChain->GetBranch(name+".bta");
    b_dta = fChain->GetBranch(name+".dta");
//   }else if(strcmp(aState->GetName(),"1")){
//     b_xim = fChain->GetBranch(name+".xim");
//     b_aim = fChain->GetBranch(name+".aim");
//     b_yim = fChain->GetBranch(name+".yim");
//     b_bim = fChain->GetBranch(name+".bim");
//     b_ata = fChain->GetBranch(name+".ata");
//     b_yta = fChain->GetBranch(name+".yta");
//     b_bta = fChain->GetBranch(name+".bta");
//     b_dta = fChain->GetBranch(name+".dta");
//   }else if(strcmp(aState->GetName(),"2")){
//     fChain->SetBranchAddress("E02023Cal."+name+".xim",&xim,&b_xim);
//     fChain->SetBranchAddress("E02023Cal."+name+".aim",&aim,&b_aim);
//     fChain->SetBranchAddress("E02023Cal."+name+".yim",&yim,&b_yim);
//     fChain->SetBranchAddress("E02023Cal."+name+".bim",&bim,&b_bim);
//     fChain->SetBranchAddress("E02023Cal."+name+".ata",&ata,&b_ata);
//     fChain->SetBranchAddress("E02023Cal."+name+".yta",&yta,&b_yta);
//     fChain->SetBranchAddress("E02023Cal."+name+".bta",&bta,&b_bta);
//     fChain->SetBranchAddress("E02023Cal."+name+".dta",&dta,&b_dta);
//   }
}


//______________________________________________________________________________
void TS800ImTrack::GetEntry(int i) 
{
  // --
// 	tppac1.GetEntry(i);
// 	tppac2.GetEntry(i);
}


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

  xim = sqrt(-1.0);
  aim = sqrt(-1.0);
  yim = sqrt(-1.0);
  bim = sqrt(-1.0);
  ata = sqrt(-1.0);
  yta = sqrt(-1.0);
  bta = sqrt(-1.0);
  dta = sqrt(-1.0);

  incoming = sqrt(-1.0);
}

Last change: Sun Dec 21 12:38:55 2008
Last generated: 2008-12-21 12:38

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.