#include "TVectorD.h"
#include "TMath.h"
#include "TObjArray.h"
#include "AliESDresolParams.h"
ClassImp(AliESDresolParams)
AliESDresolParams* AliESDresolParams::fgInstance = 0x0;
AliESDresolParams::AliESDresolParams() :
TObject(),
fResolDCAyy(0),
fResolDCAzz(0),
fResolDCAphi(0),
fResolDCAth(0),
fResolDCA1pt(0),
fResolCyy(0),
fResolCzz(0),
fResolCphi(0),
fResolCth(0),
fResolC1pt(0)
{
}
Double_t AliESDresolParams::GetResolPrimFast(Int_t param, Float_t onept, Float_t tanth) const {
if (!fResolDCAyy) return 0;
TVectorD * pvec = fResolDCAyy;
if (param==1) pvec = fResolDCAzz;
if (param==2) pvec = fResolDCAphi;
if (param==3) pvec = fResolDCAth;
if (param==4) pvec = fResolDCA1pt;
TVectorD &vec = *pvec;
Float_t val = vec[0];
val+= vec[1]*TMath::Abs(onept);
val+= vec[2]*TMath::Abs(onept*onept);
val+= vec[3]*TMath::Abs(tanth);
val+= vec[4]*TMath::Abs(tanth*tanth);
val+= vec[5]*TMath::Abs(onept*tanth);
Float_t shift1pt=0;
if (param==0 || param==1) shift1pt=0.2;
if (param==2 || param==3) shift1pt=0.1;
if (param==4) shift1pt=1.;
val*= (onept+shift1pt);
if (param==4) val*=(onept+shift1pt);
return val;
}
Double_t AliESDresolParams::GetResolRFast(Int_t param, Float_t onept, Float_t radius) const {
if (!fResolCyy) return 0;
TVectorD * pvec = fResolCyy;
if (param==1) pvec = fResolCzz;
if (param==2) pvec = fResolCphi;
if (param==3) pvec = fResolCth;
if (param==4) pvec = fResolC1pt;
TVectorD &vec = *pvec;
Float_t val = vec[0];
val+= vec[1]*TMath::Abs(onept);
val+= vec[2]*TMath::Abs(radius);
val+= vec[3]*TMath::Abs(onept*onept);
val+= vec[4]*TMath::Abs(radius*radius);
val+= vec[5]*TMath::Abs(radius*onept);
val+= vec[6]*TMath::Abs(radius*radius*onept);
val*=val;
return val;
}
void AliESDresolParams::SetResolPrimFast(TObjArray* array){
if (!array) return;
if (array->At(0))
fResolDCAyy = new TVectorD(*((TVectorD*)array->At(0)));
if (array->At(1))
fResolDCAzz = new TVectorD(*((TVectorD*)array->At(1)));
if (array->At(2))
fResolDCAphi = new TVectorD(*((TVectorD*)array->At(2)));
if (array->At(3))
fResolDCAth = new TVectorD(*((TVectorD*)array->At(3)));
if (array->At(4))
fResolDCA1pt = new TVectorD(*((TVectorD*)array->At(4)));
}
void AliESDresolParams::SetResolRFast(TObjArray* array){
if (!array) return;
if (array->At(0))
fResolCyy = new TVectorD(*((TVectorD*)array->At(0)));
if (array->At(1))
fResolCzz = new TVectorD(*((TVectorD*)array->At(1)));
if (array->At(2))
fResolCphi = new TVectorD(*((TVectorD*)array->At(2)));
if (array->At(3))
fResolCth = new TVectorD(*((TVectorD*)array->At(3)));
if (array->At(4))
fResolC1pt = new TVectorD(*((TVectorD*)array->At(4)));
}
AliESDresolParams.cxx:100 AliESDresolParams.cxx:101 AliESDresolParams.cxx:102 AliESDresolParams.cxx:103 AliESDresolParams.cxx:104 AliESDresolParams.cxx:105 AliESDresolParams.cxx:106 AliESDresolParams.cxx:107 AliESDresolParams.cxx:108 AliESDresolParams.cxx:109 AliESDresolParams.cxx:110 AliESDresolParams.cxx:111 AliESDresolParams.cxx:112 AliESDresolParams.cxx:113 AliESDresolParams.cxx:114 AliESDresolParams.cxx:115 AliESDresolParams.cxx:116 AliESDresolParams.cxx:117 AliESDresolParams.cxx:118 AliESDresolParams.cxx:119 AliESDresolParams.cxx:120 AliESDresolParams.cxx:121 AliESDresolParams.cxx:122 AliESDresolParams.cxx:123 AliESDresolParams.cxx:124 AliESDresolParams.cxx:125 AliESDresolParams.cxx:126 AliESDresolParams.cxx:127 AliESDresolParams.cxx:128 AliESDresolParams.cxx:129 AliESDresolParams.cxx:130 AliESDresolParams.cxx:131 AliESDresolParams.cxx:132 AliESDresolParams.cxx:133 AliESDresolParams.cxx:134 AliESDresolParams.cxx:135 AliESDresolParams.cxx:136 AliESDresolParams.cxx:137 AliESDresolParams.cxx:138 AliESDresolParams.cxx:139 AliESDresolParams.cxx:140 AliESDresolParams.cxx:141 AliESDresolParams.cxx:142 AliESDresolParams.cxx:143 AliESDresolParams.cxx:144 AliESDresolParams.cxx:145 AliESDresolParams.cxx:146 AliESDresolParams.cxx:147 AliESDresolParams.cxx:148 AliESDresolParams.cxx:149 AliESDresolParams.cxx:150 AliESDresolParams.cxx:151 AliESDresolParams.cxx:152 AliESDresolParams.cxx:153 AliESDresolParams.cxx:154 AliESDresolParams.cxx:155 AliESDresolParams.cxx:156 AliESDresolParams.cxx:157 AliESDresolParams.cxx:158 AliESDresolParams.cxx:159 AliESDresolParams.cxx:160 AliESDresolParams.cxx:161 AliESDresolParams.cxx:162 AliESDresolParams.cxx:163 AliESDresolParams.cxx:164 AliESDresolParams.cxx:165 AliESDresolParams.cxx:166 AliESDresolParams.cxx:167 AliESDresolParams.cxx:168 AliESDresolParams.cxx:169 AliESDresolParams.cxx:170 AliESDresolParams.cxx:171 AliESDresolParams.cxx:172 AliESDresolParams.cxx:173 AliESDresolParams.cxx:174