Hi Rene, Phillipe,
I’m trying to take my code a step further to read in my data file with an arbitrary number of columns (in this example the data file has 100 columns). The code looks like this:
[quote] TString dir = gSystem->UnixPathName(gInterpreter->GetCurrentMacroName());
dir.ReplaceAll(“test1.C”,"");
dir.ReplaceAll("/./","/");
//pencil beam classic
Float_t pc_bin,pc_Body_d,pc_Body_v,pc_Spine_d,pc_Spine_v;
Float_t pc_LungL_d,pc_LungL_v,pc_LungL2_d,pc_LungL2_v;
Float_t pc_LungR_d,pc_LungR_v;
Float_t pc_LungR2_d,pc_LungR2_v,pc_Heart_d,pc_Heart_v;
Float_t pc_Oesophagus_d,pc_Oesophagus_v,pc_RLungGTV_d,pc_RLungGTV_v;
Float_t pc_RLungITV_d,pc_RLungITV_v,pc_RLungPTV_d,pc_RLungPTV_v;
Float_t pc_RLungPTV2cm_d,pc_RLungPTV2cm_v;
//pencil beam enhanced
Float_t pe_bin,pe_Body_d,pe_Body_v,pe_Spine_d,pe_Spine_v;
Float_t pe_LungL_d,pe_LungL_v,pe_LungL2_d,pe_LungL2_v;
Float_t pe_LungR_d,pe_LungR_v;
Float_t pe_LungR2_d,pe_LungR2_v,pe_Heart_d,pe_Heart_v;
Float_t pe_Oesophagus_d,pe_Oesophagus_v,pe_RLungGTV_d,pe_RLungGTV_v;
Float_t pe_RLungITV_d,pe_RLungITV_v,pe_RLungPTV_d,pe_RLungPTV_v;
Float_t pe_RLungPTV2cm_d,pe_RLungPTV2cm_v;
//collapsed cone classic
Float_t cc_bin,cc_Body_d,cc_Body_v,cc_Spine_d,cc_Spine_v;
Float_t cc_LungL_d,cc_LungL_v,cc_LungL2_d,cc_LungL2_v;
Float_t cc_LungR_d,cc_LungR_v;
Float_t cc_LungR2_d,cc_LungR2_v,cc_Heart_d,cc_Heart_v;
Float_t cc_Oesophagus_d,cc_Oesophagus_v,cc_RLungGTV_d,cc_RLungGTV_v;
Float_t cc_RLungITV_d,cc_RLungITV_v,cc_RLungPTV_d,cc_RLungPTV_v;
Float_t cc_RLungPTV2cm_d,cc_RLungPTV2cm_v;
//collapsed cone enhanced
Float_t ce_bin,ce_Body_d,ce_Body_v,ce_Spine_d,ce_Spine_v;
Float_t ce_LungL_d,ce_LungL_v,ce_LungL2_d,ce_LungL2_v;
Float_t ce_LungR_d,ce_LungR_v;
Float_t ce_LungR2_d,ce_LungR2_v,ce_Heart_d,ce_Heart_v;
Float_t ce_Oesophagus_d,ce_Oesophagus_v,ce_RLungGTV_d,ce_RLungGTV_v;
Float_t ce_RLungITV_d,ce_RLungITV_v,ce_RLungPTV_d,ce_RLungPTV_v;
Float_t ce_RLungPTV2cm_d,ce_RLungPTV2cm_v;
// Int_t nlines = 0;
TFile *f = new TFile(“sbrt.root”,“RECREATE”);
// TH1F *h1 = new TH1F(“h1”,“x distribution”,100,0,400);
TNtuple *ntuple = new TNtuple(“sbrt”,“sbrt dose data”,
“pc_bin:pc_Body_d:pc_Body_v:pc_Spine_d:pc_Spine_v:
pc_LungL_d:pc_LungL_v:pc_LungL2_d:pc_LungL2_v:pc_LungR_d:
pc_LungR_v:pc_LungR2_d:pc_LungR2_v:pc_Heart_d:pc_Heart_v:
pc_Oesophagus_d:pc_Oesophagus_v:pc_RLungGTV_d:pc_RLungGTV_v:
pc_RLungITV_d:pc_RLungITV_v:pc_RLungPTV_d:pc_RLungPTV_v:
pc_RLungPTV2cm_d:pc_RLungPTV2cm_v:pe_bin:pe_Body_d:pe_Body_v:
pe_Spine_d:pe_Spine_v:pe_LungL_d:pe_LungL_v:pe_LungL2_d:
pe_LungL2_v:pe_LungR_d:pe_LungR_v:pe_LungR2_d:pe_LungR2_v:
pe_Heart_d:pe_Heart_v:pe_Oesophagus_d:pe_Oesophagus_v:
pe_RLungGTV_d:pe_RLungGTV_v:pe_RLungITV_d:pe_RLungITV_v:
pe_RLungPTV_d:pe_RLungPTV_v:pe_RLungPTV2cm_d:pe_RLungPTV2cm_v:
cc_bin:cc_Body_d:cc_Body_v:cc_Spine_d:cc_Spine_v:cc_LungL_d:
cc_LungL_v:cc_LungL2_d:cc_LungL2_v:cc_LungR_d:cc_LungR_v:
cc_LungR2_d:cc_LungR2_v:cc_Heart_d:cc_Heart_v:cc_Oesophagus_d:
cc_Oesophagus_v:cc_RLungGTV_d:cc_RLungGTV_v:cc_RLungITV_d:
cc_RLungITV_v:cc_RLungPTV_d:cc_RLungPTV_v:cc_RLungPTV2cm_d:
cc_RLungPTV2cm_v:ce_bin:ce_Body_d:ce_Body_v:ce_Spine_d:
ce_Spine_v:ce_LungL_d:ce_LungL_v:ce_LungL2_d:ce_LungL2_v:
ce_LungR_d:ce_LungR_v:ce_LungR2_d:ce_LungR2_v:ce_Heart_d:
ce_Heart_v:ce_Oesophagus_d:ce_Oesophagus_v:ce_RLungGTV_d:
ce_RLungGTV_v:ce_RLungITV_d:ce_RLungITV_v:ce_RLungPTV_d:
ce_RLungPTV_v:ce_RLungPTV2cm_d:ce_RLungPTV2cm_v”);
ntuple->ReadFile(“sbrt.dat”);
f->Write();
}[/quote]
but when I try to compile it, I get the error message;
[quote]Limitation: Statement is too long… (Statement being TNtuple *ntuple = new TNtuple(“name”,“title”, “pc_bin: … :ce_RLungPTV2cm_v”);)
cint: Security mode 0x7:0x2 *** Fatal error in interpreter… restarting interpreter ***[/quote]
How can I solve this problem?
thanks.