18 typedef std::map<TString, std::vector<double> >
VarCutMap;
19 typedef std::map<TString, std::vector<double> >::iterator
VarCutMapIt;
30 TObjArray *tok = s.Tokenize(delim);
31 int N = tok->GetEntries();
35 TString token = ((TObjString*)tok->At(
i))->String();
36 token.ReplaceAll(
"\t",
"");
37 token = token.Strip(TString::kBoth);
38 toks.push_back(token);
45 ifstream
file(fname.Data());
46 if (!
file.is_open())
return false;
60 file.getline(line,1499);
64 sline.ReplaceAll(
"\t",
"");
66 if (sline.Contains(
"#")) sline = sline(0,sline.Index(
"#")-1);
68 sline = sline.Strip(TString::kBoth);
70 if (sline==
"")
continue;
74 int cmode = (sar1[0].Atoi())%1000;
75 double sqs = (sar1[0].Atof())/100000.;
76 sqs = int(sqs*100)/100.;
78 if (cmode != mode)
continue;
84 for (
int i=0;
i<sar2.size();++
i)
87 cut.ReplaceAll(
"=",
"");
88 double gecut=-99999., lecut=-99999.;
90 if (sar2[
i].Contains(
">"))
92 var=sar2[
i](0,sar2[
i].Index(
">"));
93 gecut =
TString(
cut(cut.Index(
">")+1,1000)).Atof();
96 else if (sar2[
i].Contains(
"<"))
98 var=sar2[
i](0,sar2[
i].Index(
"<"));
99 lecut =
TString(
cut(cut.Index(
"<")+1,1000)).Atof();
108 std::vector<double>
t;
113 if (lecut>-99999) {
lecutmap[var].push_back(sqs);
lecutmap[var].push_back(lecut);}
114 if (gecut>-99999) {
gecutmap[var].push_back(sqs);
gecutmap[var].push_back(gecut);}
125 TString path=
"/data.local1/kgoetzen/data/softrig/fsim/merge4/shr/";
127 TChain
n(TString::Format(
"n%3d",mode));
128 n.Add(TString::Format(
"%sM*_n%3d_*root",path.Data(),
mode));
130 TCanvas *
c1=
new TCanvas(
"c1",
"c1",10,10,800,600);
134 cout <<
"vars("<<mode<<
")"<<endl;
149 cout <<var<<
""<<endl;
151 double min = n.GetMinimum(var),
max = n.GetMaximum(var),
d=
max-
min;
156 TH2F *
h=
new TH2F(
"h",var+
" (mode "+TString::Format(
"%d",mode)+
")",360,2.2,5.8,200,min,
max);
158 h->SetXTitle(
"E_{cm} [GeV]");
161 n.Draw(var+
":mode/1e8-0.13+recmode*0.01>>h",
"xmct");
162 n.Draw(var+
":mode/1e5+0.05>>+h",
"mode%1000==900");
163 n.Draw(var+
":mode/1e5+0.03>>+h",
"mode%1000==900");
164 n.Draw(var+
":mode/1e5+0.04>>+h",
"mode%1000==900");
165 n.Draw(var+
":mode/1e5+0.06>>+h",
"mode%1000==900");
170 for (
int j=0;j<
lecutmap[var].size();j+=2)
173 printf(
" sqs=%4.2f : %s<%f\n", sqs, var.Data(),
val);
174 l1.DrawLine(sqs-0.15, val, sqs+0.15, val);
175 ar1.DrawArrow(sqs,val,sqs,val-
d*0.05,0.015,
"|>");
178 for (
int j=0;j<
gecutmap[var].size();j+=2)
181 printf(
" sqs=%4.2f : %s>%f\n", sqs, var.Data(),
val);
182 l1.DrawLine(sqs-0.15, val, sqs+0.15, val);
183 ar1.DrawArrow(sqs,val,sqs,val+
d*0.05,0.015,
"|>");
197 c1->SaveAs(TString::Format(
"fig/mode%d_%s.gif",mode,var.Data()));
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
Double_t val[nBoxes][nFEBox]
std::map< TString, int > VarHash
bool readConfig(TString fname, int mode)
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
std::map< TString, std::vector< double > >::iterator VarCutMapIt
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
int SplitString(TString s, TString delim, StrVec &toks)
std::map< TString, std::vector< double > > VarCutMap
int inspectmode(int mode, TString opt="cont", TString selcfg="../../softrig/selection_fsim_dec2014.cfg")
std::vector< TString > StrArr