#include "hpiontrackerbeampar.h"
#include "hparamlist.h"
#include "TObjString.h"
#include "TObjArray.h"
#include <iostream>
#include <iomanip>
#include <vector>
#include <fstream>
using namespace std;
ClassImp (HPionTrackerBeamPar)
HPionTrackerBeamPar::HPionTrackerBeamPar(const Char_t * name, const Char_t * title, const Char_t * context)
: HParCond (name, title, context)
{
clear();
}
void HPionTrackerBeamPar::clear()
{
}
void HPionTrackerBeamPar::putParams(HParamList * l)
{
if (!l) return;
vector<HBeamElement>& elements = beam.getElements();
TString all_elements="";
for(UInt_t i=0;i<elements.size();i++){
all_elements+=elements[i].fName;
if(i<elements.size()-1)all_elements+="," ;
}
l->add ("elements", (Text_t*)all_elements.Data());
l->add ("targetElementNum", ftargetElementNum);
for(UInt_t i=0;i<elements.size();i++){
TArrayD all;
elements[i].toLinearArray(all);
l->add (Form("%s",elements[i].fName.Data()), all);
}
}
Bool_t HPionTrackerBeamPar::getParams(HParamList * l)
{
if (!l) return kFALSE;
Char_t line[1000];
if (!l->fill ("elements" , (Text_t*)line,1000)) return kFALSE;
TString all_elements=line;
if (!l->fill ("targetElementNum", &ftargetElementNum)) return kFALSE;
vector<HBeamElement>& elements = beam.getElements();
elements.clear();
beam.setTargetElementOnly(ftargetElementNum);
TObjArray* ar = all_elements.Tokenize(",");
if(ar) {
for(Int_t i=0; i<ar->GetEntries();i++){
TString name = ((TObjString*)ar->At(i))->GetString();
TArrayD all;
if (!l->fill (name.Data(), &all)) return kFALSE;
HBeamElement e;
e.fromLinearArray(all);
e.fName = name;
elements.push_back(e);
}
}
if(ar) {
ar->Delete() ;
delete ar;
}
return kTRUE;
}
Bool_t HPionTrackerBeamPar::initBeamLine(TString filename,Int_t targetElementNum,Bool_t debug)
{
ftargetElementNum = targetElementNum;
return beam.initBeamLine(filename,targetElementNum,debug);
}
void HPionTrackerBeamPar::createAsciiFile(TString filename)
{
ofstream fout;
fout.open(filename.Data());
fout<<"##############################################################################"<<endl;
fout<<"# Class: HPionTrackerBeamPar "<<endl;
fout<<"# Context: PionTrackerBeamParProduction "<<endl;
fout<<"#"<<endl;
fout<<"##############################################################################"<<endl;
fout<<"[PionTrackerBeamPar]"<<endl;
fout<<"//----------------------------------------------------------------------------"<<endl;
vector<HBeamElement>& elements = beam.getElements();
TString all_elements="";
for(UInt_t i=0;i<elements.size();i++){
all_elements+=elements[i].fName;
if(i<elements.size()-1)all_elements+="," ;
}
fout<<"elements: Text_t "<<all_elements.Data()<<endl;
fout<<"targetElementNum: Int_t "<<ftargetElementNum<<endl;
for(UInt_t i=0;i<elements.size();i++){
TArrayD all;
elements[i].toLinearArray(all);
fout<<Form("%s: Double_t \\",elements[i].fName.Data())<<endl;
Int_t ct=0;
for(Int_t j=0;j<all.GetSize();j++){
if(ct==10){
fout<<" \\"<<endl;
ct=0;
}
ct++;
fout<<" "<<setw(10)<<all[j];
}
fout<<endl;
}
fout<<"##############################################################################"<<endl;
fout.close();
}
void HPionTrackerBeamPar::printParam()
{
cout<<"##############################################################################"<<endl;
cout<<"# Class: HPionTrackerBeamPar "<<endl;
cout<<"#"<<endl;
cout<<"##############################################################################"<<endl;
beam.printBeamLine(kTRUE);
}
hpiontrackerbeampar.cc:10 hpiontrackerbeampar.cc:11 hpiontrackerbeampar.cc:12 hpiontrackerbeampar.cc:13 hpiontrackerbeampar.cc:14 hpiontrackerbeampar.cc:15 hpiontrackerbeampar.cc:16 hpiontrackerbeampar.cc:17 hpiontrackerbeampar.cc:18 hpiontrackerbeampar.cc:19 hpiontrackerbeampar.cc:20 hpiontrackerbeampar.cc:21 hpiontrackerbeampar.cc:22 hpiontrackerbeampar.cc:23 hpiontrackerbeampar.cc:24 hpiontrackerbeampar.cc:25 hpiontrackerbeampar.cc:26 hpiontrackerbeampar.cc:27 hpiontrackerbeampar.cc:28 hpiontrackerbeampar.cc:29 hpiontrackerbeampar.cc:30 hpiontrackerbeampar.cc:31 hpiontrackerbeampar.cc:32 hpiontrackerbeampar.cc:33 hpiontrackerbeampar.cc:34 hpiontrackerbeampar.cc:35 hpiontrackerbeampar.cc:36 hpiontrackerbeampar.cc:37 hpiontrackerbeampar.cc:38 hpiontrackerbeampar.cc:39 hpiontrackerbeampar.cc:40 hpiontrackerbeampar.cc:41 hpiontrackerbeampar.cc:42 hpiontrackerbeampar.cc:43 hpiontrackerbeampar.cc:44 hpiontrackerbeampar.cc:45 hpiontrackerbeampar.cc:46 hpiontrackerbeampar.cc:47 hpiontrackerbeampar.cc:48 hpiontrackerbeampar.cc:49 hpiontrackerbeampar.cc:50 hpiontrackerbeampar.cc:51 hpiontrackerbeampar.cc:52 hpiontrackerbeampar.cc:53 hpiontrackerbeampar.cc:54 hpiontrackerbeampar.cc:55 hpiontrackerbeampar.cc:56 hpiontrackerbeampar.cc:57 hpiontrackerbeampar.cc:58 hpiontrackerbeampar.cc:59 hpiontrackerbeampar.cc:60 hpiontrackerbeampar.cc:61 hpiontrackerbeampar.cc:62 hpiontrackerbeampar.cc:63 hpiontrackerbeampar.cc:64 hpiontrackerbeampar.cc:65 hpiontrackerbeampar.cc:66 hpiontrackerbeampar.cc:67 hpiontrackerbeampar.cc:68 hpiontrackerbeampar.cc:69 hpiontrackerbeampar.cc:70 hpiontrackerbeampar.cc:71 hpiontrackerbeampar.cc:72 hpiontrackerbeampar.cc:73 hpiontrackerbeampar.cc:74 hpiontrackerbeampar.cc:75 hpiontrackerbeampar.cc:76 hpiontrackerbeampar.cc:77 hpiontrackerbeampar.cc:78 hpiontrackerbeampar.cc:79 hpiontrackerbeampar.cc:80 hpiontrackerbeampar.cc:81 hpiontrackerbeampar.cc:82 hpiontrackerbeampar.cc:83 hpiontrackerbeampar.cc:84 hpiontrackerbeampar.cc:85 hpiontrackerbeampar.cc:86 hpiontrackerbeampar.cc:87 hpiontrackerbeampar.cc:88 hpiontrackerbeampar.cc:89 hpiontrackerbeampar.cc:90 hpiontrackerbeampar.cc:91 hpiontrackerbeampar.cc:92 hpiontrackerbeampar.cc:93 hpiontrackerbeampar.cc:94 hpiontrackerbeampar.cc:95 hpiontrackerbeampar.cc:96 hpiontrackerbeampar.cc:97 hpiontrackerbeampar.cc:98 hpiontrackerbeampar.cc:99 hpiontrackerbeampar.cc:100 hpiontrackerbeampar.cc:101 hpiontrackerbeampar.cc:102 hpiontrackerbeampar.cc:103 hpiontrackerbeampar.cc:104 hpiontrackerbeampar.cc:105 hpiontrackerbeampar.cc:106 hpiontrackerbeampar.cc:107 hpiontrackerbeampar.cc:108 hpiontrackerbeampar.cc:109 hpiontrackerbeampar.cc:110 hpiontrackerbeampar.cc:111 hpiontrackerbeampar.cc:112 hpiontrackerbeampar.cc:113 hpiontrackerbeampar.cc:114 hpiontrackerbeampar.cc:115 hpiontrackerbeampar.cc:116 hpiontrackerbeampar.cc:117 hpiontrackerbeampar.cc:118 hpiontrackerbeampar.cc:119 hpiontrackerbeampar.cc:120 hpiontrackerbeampar.cc:121 hpiontrackerbeampar.cc:122 hpiontrackerbeampar.cc:123 hpiontrackerbeampar.cc:124 hpiontrackerbeampar.cc:125 hpiontrackerbeampar.cc:126 hpiontrackerbeampar.cc:127 hpiontrackerbeampar.cc:128 hpiontrackerbeampar.cc:129 hpiontrackerbeampar.cc:130 hpiontrackerbeampar.cc:131 hpiontrackerbeampar.cc:132 hpiontrackerbeampar.cc:133 hpiontrackerbeampar.cc:134 hpiontrackerbeampar.cc:135 hpiontrackerbeampar.cc:136 hpiontrackerbeampar.cc:137 hpiontrackerbeampar.cc:138 hpiontrackerbeampar.cc:139 hpiontrackerbeampar.cc:140 hpiontrackerbeampar.cc:141 hpiontrackerbeampar.cc:142 hpiontrackerbeampar.cc:143 hpiontrackerbeampar.cc:144 hpiontrackerbeampar.cc:145 hpiontrackerbeampar.cc:146 hpiontrackerbeampar.cc:147 hpiontrackerbeampar.cc:148 hpiontrackerbeampar.cc:149 hpiontrackerbeampar.cc:150