1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 //************************************************************************
18 // ESD track and V0 resolution parameterization
21 // Origin: Marian Ivanov marian.ivanov@cern.ch
22 //-------------------------------------------------------------------------
33 #include "TObjArray.h"
34 #include "AliESDresolParams.h"
37 ClassImp(AliESDresolParams)
40 AliESDresolParams* AliESDresolParams::fgInstance = 0; //! Instance of this class (singleton implementation)
43 AliESDresolParams::AliESDresolParams() :
45 fResolDCAyy(0), // resolution Y parameterization
46 fResolDCAzz(0), // resolution Z parameterization
47 fResolDCAphi(0), // resolution phi parameterization - pt-theta
48 fResolDCAth(0), // resolution theta parameterization -pt-theta
49 fResolDCA1pt(0), // resolution 1/pt parameterization - pt-theta
51 fResolCyy(0), // DCA resolution Y parameterization - r-pt
52 fResolCzz(0), // DCA resolution Z parameterization - r-pt
53 fResolCphi(0), // DCA resolution phi parameterization - r-pt
54 fResolCth(0), // DCA resolution theta parameterization - r-pt
55 fResolC1pt(0) // DCA resolution 1/pt parameterization - r-pt
58 // Default constructor
62 Double_t AliESDresolParams::GetResolPrim(Int_t param, Float_t onept, Float_t tanth) const {
64 // Resolution at primary vertex
65 // simple Resolution parameterization
66 // polynom of second order in 2D
68 if (!fResolDCAyy) return 0;
69 TVectorD * pvec = fResolDCAyy;
70 if (param==1) pvec = fResolDCAzz;
71 if (param==2) pvec = fResolDCAphi;
72 if (param==3) pvec = fResolDCAth;
73 if (param==4) pvec = fResolDCA1pt;
74 TVectorD &vec = *pvec;
77 val+= vec[1]*TMath::Abs(onept);
78 val+= vec[2]*TMath::Abs(onept*onept);
79 val+= vec[3]*TMath::Abs(tanth);
80 val+= vec[4]*TMath::Abs(tanth*tanth);
81 val+= vec[5]*TMath::Abs(onept*tanth);
86 Double_t AliESDresolParams::GetResolR(Int_t param, Float_t onept, Float_t radius) const {
88 // simple DCA resolution parameterization
89 // polynom of second order in 2D
91 if (!fResolCyy) return 0;
92 TVectorD * pvec = fResolCyy;
93 if (param==1) pvec = fResolCzz;
94 if (param==2) pvec = fResolCphi;
95 if (param==3) pvec = fResolCth;
96 if (param==4) pvec = fResolC1pt;
97 TVectorD &vec = *pvec;
100 val+= vec[1]*TMath::Abs(onept);
101 val+= vec[2]*TMath::Abs(radius);
102 val+= vec[3]*TMath::Abs(onept*onept);
103 val+= vec[4]*TMath::Abs(radius*radius);
104 val+= vec[5]*TMath::Abs(radius*onept);
105 val+= vec[6]*TMath::Abs(radius*radius*onept);
110 void AliESDresolParams::SetResolPrim(TObjArray* array){
112 // Set parameters - resolution at prim vertex
116 fResolDCAyy = new TVectorD(*((TVectorD*)array->At(0)));
118 fResolDCAzz = new TVectorD(*((TVectorD*)array->At(1)));
120 fResolDCAphi = new TVectorD(*((TVectorD*)array->At(2)));
122 fResolDCAth = new TVectorD(*((TVectorD*)array->At(3)));
124 fResolDCA1pt = new TVectorD(*((TVectorD*)array->At(4)));
127 void AliESDresolParams::SetResolR(TObjArray* array){
129 // Set parameters - resolution at prim vertex
133 fResolCyy = new TVectorD(*((TVectorD*)array->At(0)));
135 fResolCzz = new TVectorD(*((TVectorD*)array->At(1)));
137 fResolCphi = new TVectorD(*((TVectorD*)array->At(2)));
139 fResolCth = new TVectorD(*((TVectorD*)array->At(3)));
141 fResolC1pt = new TVectorD(*((TVectorD*)array->At(4)));