KaliVeda  1.12/06
Heavy-Ion Analysis Toolkit
KVImpactParameter.h
Go to the documentation of this file.
1 
4 #ifndef __KVIMPACTPARAMETER_H
5 #define __KVIMPACTPARAMETER_H
6 #include "KVBase.h"
7 #include "TH1.h"
8 #include "TString.h"
9 #include "TGraph.h"
10 #include "TF1.h"
11 #include "KVHistoManipulator.h"
12 #include <vector>
13 
49 class KVImpactParameter : public KVBase {
59 
60  void make_scale(Int_t npoints);
61 
62 public:
63  KVImpactParameter(TH1*, Option_t* evol = "D");
64  virtual ~KVImpactParameter();
65 
66  void MakeScale(Int_t npoints = 100, Double_t bmax = 1.0);
67  void MakeAbsoluteScale(Int_t npoints = 100, Double_t bmax = 1.0);
68  TGraph* GetScale() const
69  {
73  return fIPScale;
74  };
76  {
80  return fXSecScale;
81  };
84  TF1* GetTransFunc() const
85  {
87  return fObsTransform;
88  };
90  {
92  return fObsTransformXSec;
93  };
95  {
97  return fObsTransform->Eval(obs);
98  };
100  {
102  return fObsTransformXSec->Eval(obs);
103  };
105  {
107  return fObsTransform->GetX(b);
108  };
110  {
112  return fObsTransformXSec->GetX(sigma);
113  };
114  TH1* GetIPDistribution(TH1* obs, Int_t nbinx = 100, Option_t* norm = "");
115  TGraph* GetIPEvolution(TH2* obscor, TString moment, TString axis = "Y");
116  TH1* GetXSecDistribution(TH1* obs, Int_t nbinx = 100, Option_t* norm = "");
117  TGraph* GetXSecEvolution(TH2* obscor, TString moment, TString axis = "Y");
118 
120  {
123  return 10.*TMath::Pi() * pow(bmax, 2);
124  }
126  {
129  return pow(xsec / 10. / TMath::Pi(), 0.5);
130  }
131  std::vector<Double_t> SliceXSec(Int_t nslices, Double_t totXsec);
132 
133  ClassDef(KVImpactParameter, 2) //Impact parameter analysis tools
134 };
135 
136 #endif
int Int_t
#define b(i)
double Double_t
const char Option_t
#define ClassDef(name, id)
double pow(double, double)
Base class for KaliVeda framework.
Definition: KVBase.h:135
Toolkit for various operations on histograms & graphs not provided by ROOT.
Impact parameter analysis tools.
KVImpactParameter(TH1 *, Option_t *evol="D")
TH1 * fData
histogram containing distribution of ip-related observable
static Double_t GetXSecFromIP(Double_t bmax)
Double_t XTransform(Double_t *, Double_t *)
Double_t BTransform(Double_t *, Double_t *)
static Double_t GetIPFromXSec(Double_t xsec)
TF1 * GetXSecTransFunc() const
TGraph * GetXSecScale() const
TString fEvol
how the observable evolves with b
Double_t Smax
maximum of cross-section scale
Double_t GetCrossSection(Double_t obs)
std::vector< Double_t > SliceXSec(Int_t nslices, Double_t totXsec)
TF1 * fObsTransformXSec
function for transforming observable into cross-section
TGraph * GetIPEvolution(TH2 *obscor, TString moment, TString axis="Y")
TF1 * fObsTransform
function for transforming observable into impact parameter
void make_scale(Int_t npoints)
void MakeAbsoluteScale(Int_t npoints=100, Double_t bmax=1.0)
Double_t GetObservable(Double_t b)
TH1 * GetIPDistribution(TH1 *obs, Int_t nbinx=100, Option_t *norm="")
Double_t Bmax
maximum of ip scale
TGraph * fIPScale
derived relation between observable and impact-parameter
Double_t GetObservableXSec(Double_t sigma)
KVHistoManipulator HM
TGraph * fXSecScale
derived relation between observable and cross-section
TGraph * GetXSecEvolution(TH2 *obscor, TString moment, TString axis="Y")
TF1 * GetTransFunc() const
void MakeScale(Int_t npoints=100, Double_t bmax=1.0)
TGraph * GetScale() const
TH1 * GetXSecDistribution(TH1 *obs, Int_t nbinx=100, Option_t *norm="")
virtual ~KVImpactParameter()
Destructor.
Double_t GetImpactParameter(Double_t obs)
virtual Double_t GetX(Double_t y, Double_t xmin=0, Double_t xmax=0, Double_t epsilon=1.E-10, Int_t maxiter=100, Bool_t logx=false) const
virtual Double_t Eval(Double_t x, Double_t y=0, Double_t z=0, Double_t t=0) const
const Double_t sigma
constexpr Double_t Pi()