// 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); }