FairRoot/PandaRoot
Functions
drawdal.C File Reference

Go to the source code of this file.

Functions

Double_t simin (Int_t i, Double_t m0, Double_t m1, Double_t m2, Double_t m3)
 
Double_t simax (Int_t i, Double_t m0, Double_t m1, Double_t m2, Double_t m3)
 
Double_t lambda (Double_t x, Double_t y, Double_t z)
 
Double_t s2min (Double_t s1, Double_t m0, Double_t m1, Double_t m2, Double_t m3)
 
Double_t s2max (Double_t s1, Double_t m0, Double_t m1, Double_t m2, Double_t m3)
 
void CreateGraph (TGraph *g, Int_t n, Double_t m, Double_t m1, Double_t m2, Double_t m3)
 
 drawdal (double m0, double m1, double m2, double m3, TString opt="Lsame", int n=200)
 

Function Documentation

void CreateGraph ( TGraph *  g,
Int_t  n,
Double_t  m,
Double_t  m1,
Double_t  m2,
Double_t  m3 
)

Definition at line 74 of file drawdal.C.

References Double_t, i, n, s2max(), s2min(), simax(), simin(), and x.

Referenced by drawdal().

75 {
76  Double_t s1minl = simin(1, m, m1, m2, m3);
77  Double_t s1maxl = simax(1, m, m1, m2, m3);
78 
79  Double_t binw = (s1maxl-s1minl)/(Double_t)(n);
80 
81  Int_t i=0;
82 
83  Double_t ymin,ymax,x;
84 
85  for (i=0; i<n; i++)
86  {
87  x = i*binw + s1minl;
88  if (x<=s1minl) x=s1minl+binw/20;
89  if (x>=s1maxl) x=s1maxl-binw/20;
90 
91  ymin = s2min(x, m, m1, m2, m3);
92  ymax = s2max(x, m, m1, m2, m3);
93 
94  g->SetPoint(i,x,ymin);
95  g->SetPoint(n*2-i,x,ymax);
96  }
97 
98  g->SetPoint(n,s1maxl,s2min(s1maxl-binw/20,m,m1,m2,m3));
99  g->GetPoint(0,x,ymin);
100  g->SetPoint(n*2,x,ymin);
101 
102 }
Double_t s2min(Double_t s1, Double_t m0, Double_t m1, Double_t m2, Double_t m3)
Definition: drawdal.C:53
Int_t i
Definition: run_full.C:25
__m128 m
Definition: P4_F32vec4.h:28
Double_t s2max(Double_t s1, Double_t m0, Double_t m1, Double_t m2, Double_t m3)
Definition: drawdal.C:63
int n
TFile * g
TString m2(TString pts, TString exts="e px py pz")
Definition: invexp.C:117
Double_t
Double_t simax(Int_t i, Double_t m0, Double_t m1, Double_t m2, Double_t m3)
Definition: drawdal.C:32
Double_t x
Double_t simin(Int_t i, Double_t m0, Double_t m1, Double_t m2, Double_t m3)
Definition: drawdal.C:16
drawdal ( double  m0,
double  m1,
double  m2,
double  m3,
TString  opt = "Lsame",
int  n = 200 
)

Definition at line 104 of file drawdal.C.

References CreateGraph(), g, and n.

105 {
106  TGraph *g=new TGraph(n);
107  g->SetLineColor(2);
108  g->SetLineStyle(2);
109  g->SetLineWidth(2);
110  CreateGraph(g,n,m0,m1,m2,m3);
111  g->Draw(opt);
112 }
int n
TFile * g
void CreateGraph(TGraph *g, Int_t n, Double_t m, Double_t m1, Double_t m2, Double_t m3)
Definition: drawdal.C:74
TString m2(TString pts, TString exts="e px py pz")
Definition: invexp.C:117
Double_t lambda ( Double_t  x,
Double_t  y,
Double_t  z 
)
Double_t s2max ( Double_t  s1,
Double_t  m0,
Double_t  m1,
Double_t  m2,
Double_t  m3 
)

Definition at line 63 of file drawdal.C.

References Double_t, lambda(), s, and sqrt().

Referenced by CreateGraph().

64 {
65  Double_t s = m0*m0;
66  Double_t lamterm = sqrt( lambda(s1,s,m1*m1) ) * sqrt( lambda(s1, m2*m2, m3*m3) );
67 
68  Double_t result = m1*m1 + m3*m3 + ( (s-s1-m1*m1)*(s1-m2*m2+m3*m3) + lamterm )/(2.*s1);
69 
70  return result;
71 }
Double_t lambda(Double_t x, Double_t y, Double_t z)
Definition: drawdal.C:48
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
TLorentzVector s
Definition: Pnd2DStar.C:50
TString m2(TString pts, TString exts="e px py pz")
Definition: invexp.C:117
Double_t
Double_t s2min ( Double_t  s1,
Double_t  m0,
Double_t  m1,
Double_t  m2,
Double_t  m3 
)

Definition at line 53 of file drawdal.C.

References Double_t, lambda(), s, and sqrt().

Referenced by CreateGraph().

54 {
55  Double_t s = m0*m0;
56  Double_t lamterm = sqrt( lambda(s1,s,m1*m1) ) * sqrt( lambda(s1, m2*m2, m3*m3) );
57 
58  Double_t result = m1*m1 + m3*m3 + ( (s-s1-m1*m1)*(s1-m2*m2+m3*m3) - lamterm )/(2.*s1);
59 
60  return result;
61 }
Double_t lambda(Double_t x, Double_t y, Double_t z)
Definition: drawdal.C:48
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
TLorentzVector s
Definition: Pnd2DStar.C:50
TString m2(TString pts, TString exts="e px py pz")
Definition: invexp.C:117
Double_t
Double_t simax ( Int_t  i,
Double_t  m0,
Double_t  m1,
Double_t  m2,
Double_t  m3 
)

Definition at line 32 of file drawdal.C.

References Double_t, and m2().

Referenced by CreateGraph().

33 {
34  Double_t result = 0.;
35 
36  switch (i)
37  {
38  case 1: result = (m0-m1)*(m0-m1);
39  break;
40  case 2: result = (m0-m2)*(m0-m2);
41  break;
42  case 3: result = (m0-m3)*(m0-m3);
43  break;
44  }
45  return result;
46 }
Int_t i
Definition: run_full.C:25
TString m2(TString pts, TString exts="e px py pz")
Definition: invexp.C:117
Double_t
Double_t simin ( Int_t  i,
Double_t  m0,
Double_t  m1,
Double_t  m2,
Double_t  m3 
)

Definition at line 16 of file drawdal.C.

References Double_t, and m2().

Referenced by CreateGraph().

17 {
18  Double_t result = 0.;
19 
20  switch (i)
21  {
22  case 1: result = (m2+m3)*(m2+m3);
23  break;
24  case 2: result = (m1+m3)*(m1+m3);
25  break;
26  case 3: result = (m1+m2)*(m1+m2);
27  break;
28  }
29  return result;
30 }
Int_t i
Definition: run_full.C:25
TString m2(TString pts, TString exts="e px py pz")
Definition: invexp.C:117
Double_t