4 TF1 *sipi = 0, *sie = 0, *sip = 0, *siK = 0, *sid = 0, *sit = 0, *sihe3 = 0;
6 Double_t sifunc(Double_t *x,Double_t *par) {
7 Double_t pove = pow(10.,x[0]);
8 Double_t ppion = pove*0.13956995;
9 Double_t poverm = ppion/par[0];
16 return TMath::Log(charge2*BetheBloch::Sirrf(poverm,60,k==3)/BetheBloch::Sirrf(pove,60,0));
19 Double_t bichsel70(Double_t *x,Double_t *par) {
20 Double_t pove = pow(10.,x[0]);
21 Double_t ppion = pove*0.13956995;
22 Double_t poverm = ppion/par[0];
29 Double_t val1 = m_Bichsel->GetI70(TMath::Log10(poverm),1.);
30 Double_t val2 = m_Bichsel->GetI70(TMath::Log10(pove),1.);
32 if (val1 > 0 && val2 > 0) val = TMath::Log(val1/val2);
38 void Bichsel70(
const Char_t *tag =
"") {
40 if (gClassTable->GetID(
"StBichsel")) {
41 gSystem->Load(
"libTable");
42 gSystem->Load(
"St_base");
43 gSystem->Load(
"StarClassLibrary");
44 gSystem->Load(
"StBichsel");
47 if (!m_Bichsel) m_Bichsel = Bichsel::Instance();
48 TLegend *leg =
new TLegend(0.72,0.7,0.9,0.9,
"");
49 sipi =
new TF1(Form(
"%sbipi",tag),bichsel70,-1.,4.0,2);
50 sipi->SetParameter(0,0.13956995);
51 sipi->SetParameter(1,0);
52 sie =
new TF1(Form(
"%sbie",tag),bichsel70,-1.,4.0,2);
53 sie->SetParameter(0,0.51099907e-3);
54 sie->SetParameter(1,3);
56 leg->AddEntry(sie,
"e-#pi",
"L");
61 sip =
new TF1(Form(
"%sbip",tag),bichsel70,-1.,4.0,2);
62 sip->SetParameter(0,0.93827231);
63 sip->SetParameter(1,0);
65 leg->AddEntry(sip,
"p-#pi",
"L");
66 sim =
new TF1(Form(
"%sbim",tag),bichsel70,-1.,4.0,2);
67 sim->SetParameter(0,0.1056584);
68 sim->SetParameter(1,0);
70 leg->AddEntry(sim,
"#mu-#pi",
"L");
71 siK =
new TF1(Form(
"%sbiK",tag),bichsel70,-1.,4.0,2);
72 siK->SetParameter(0,0.493677);
73 siK->SetParameter(1,0);
75 leg->AddEntry(siK,
"K-#pi",
"L");
76 sid =
new TF1(Form(
"%sbid",tag),bichsel70,-1.,4.0,2);
77 sid->SetParameter(0,0.1876E+01);
78 sid->SetParameter(1,0);
80 leg->AddEntry(sid,
"d-#pi",
"L");
81 TF1 *sit =
new TF1(Form(
"%sbit",tag),bichsel70,-1.,4.0,2);
82 sit->SetParameter(0,0.2809E+01);
83 sit->SetParameter(1,0);
85 leg->AddEntry(sit,
"t-#pi",
"L");
103 Double_t Divation(Double_t *x,Double_t *par) {
107 f = (TF1 *) gROOT->GetListOfFunctions()->FindObject(
"bie");
if (f) val[1] = f->Eval(x);
108 f = (TF1 *) gROOT->GetListOfFunctions()->FindObject(
"biK");
if (f) val[2] = f->Eval(x);
109 f = (TF1 *) gROOT->GetListOfFunctions()->FindObject(
"bip");
if (f) val[3] = f->Eval(x);
110 f = (TF1 *) gROOT->GetListOfFunctions()->FindObject(
"bid");
if (f) val[4] = f->Eval(x);
111 f = (TF1 *) gROOT->GetListOfFunctions()->FindObject(
"bit");
if (f) val[5] = f->Eval(x);
112 f = (TF1 *) gROOT->GetListOfFunctions()->FindObject(
"bihe3");
if (f) val[6] = f->Eval(x);
113 Double_t min = 9999.;
114 for (
int i = 1; i <7; i++) {
115 Double_t dev = TMath::Abs(val[i]);
116 if (dev < min) min = dev;