Re-connect QA
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALRecParam.cxx
CommitLineData
3a8be91c 1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
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 **************************************************************************/
15
16/* $Id$ */
17// --- AliRoot header files ---
feedcab9 18#include "TObjArray.h"
19#include "AliCDBManager.h"
20#include "AliCDBEntry.h"
3a8be91c 21#include "AliEMCALRecParam.h"
22#include "AliLog.h"
23
24ClassImp(AliEMCALRecParam)
25
feedcab9 26TObjArray* AliEMCALRecParam::fgkMaps =0; //ALTRO mappings
27
3a8be91c 28//-----------------------------------------------------------------------------
29// Container of EMCAL reconstruction parameters
30// The purpose of this object is to store it to OCDB
31// and retrieve it in AliEMCALClusterizerv1
32// Author: Yuri Kharlov
33//-----------------------------------------------------------------------------
34
35AliEMCALRecParam::AliEMCALRecParam():
225cd96d 36 fClusteringThreshold(0.5),fW0(4.5),fMinECut(0.45), fUnfold(kFALSE), fLocMaxCut(0.03), //clustering
8ba062b1 37 fTrkCutX(6.0), fTrkCutY(6.0), fTrkCutZ(6.0), fTrkCutR(10.0),//track matching
b4133f05 38 fTrkCutAlphaMin(-50.0), fTrkCutAlphaMax(50.0), fTrkCutAngle(10000.0), //track matching
39 fHighLowGainFactor(16.0), fOrderParameter(2), fTau(2.35), fNoiseThreshold(3), fNPedSamples(5) //raw signal
c47157cd 40{
41 // default reco values
8ba062b1 42
43 //PID parameters (Guenole)
44
45 // as a first step, all array elements are initialized to 0.0
46 Int_t i, j;
47 for (i = 0; i < 6; i++) {
48 for (j = 0; j < 6; j++) {
49 fGamma[i][j] = fHadron[i][j] = fPiZero5to10[i][j] = fPiZero10to60[i][j] = 0.;
50 }
51 }
52
53 // then, only the ones which must be not zero are initialized
54 // while the others will remain to the value 0.0
55
56 fGamma[0][0] = 0.038022;
57 fGamma[0][1] = -0.0001883;
58 fGamma[0][2] = 5.449e-06;
59
60 fGamma[1][0] = 0.207313;
61 fGamma[1][1] = -0.000978;
62 fGamma[1][2] = 0.00001634;
63
64 fGamma[2][0] = 0.043364;
65 fGamma[2][1] = -0.0002048;
66 fGamma[2][2] = 8.661e-06;
67 fGamma[2][3] = -1.353e-07;
68
69 fGamma[3][0] = 0.265004;
70 fGamma[3][1] = 0.061298;
71 fGamma[3][2] = -0.003203;
72 fGamma[3][3] = 4.73e-05;
73
74 fGamma[4][0] = 0.243579;
75 fGamma[4][1] = -1.614e-05;
76
77 fGamma[5][0] = 0.002942;
78 fGamma[5][1] = -3.976e-05;
79
80 fHadron[0][0] = 0.011945 / 3.;
81 fHadron[0][1] = 0.000386 / 3.;
82 fHadron[0][2] = -0.000014 / 3.;
83 fHadron[0][3] = 1.336e-07 / 3.;
84
85 fHadron[1][0] = 0.496544;
86 fHadron[1][1] = -0.003226;
87 fHadron[1][2] = 0.00001678;
88
89 fHadron[2][0] = 0.144838;
90 fHadron[2][1] = -0.002954;
91 fHadron[2][2] = 0.00008754;
92 fHadron[2][3] = -7.587e-07;
93
94 fHadron[3][0] = 1.264461 / 7.;
95 fHadron[3][1] = 0.002097 / 7.;
96
97 fHadron[4][0] = 0.261950;
98 fHadron[4][1] = -0.001078;
99 fHadron[4][2] = 0.00003237;
100 fHadron[4][3] = -3.241e-07;
101 fHadron[4][4] = 0.;
102 fHadron[4][5] = 0.;
103 fHadron[5][0] = 0.010317;
104 fHadron[5][1] = 0.;
105 fHadron[5][2] = 0.;
106 fHadron[5][3] = 0.;
107 fHadron[5][4] = 0.;
108 fHadron[5][5] = 0.;
109
110 fPiZero5to10[0][0] = 0.009138;
111 fPiZero5to10[0][1] = 0.0006377;
112
113 fPiZero5to10[1][0] = 0.08;
114
115 fPiZero5to10[2][0] = -0.061119;
116 fPiZero5to10[2][1] = 0.019013;
117
118 fPiZero5to10[3][0] = 0.2;
119
120 fPiZero5to10[4][0] = 0.252044;
121 fPiZero5to10[4][1] = -0.002315;
122
123 fPiZero5to10[5][0] = 0.002942;
124 fPiZero5to10[5][1] = -3.976e-05;
125
126 fPiZero10to60[0][0] = 0.009138;
127 fPiZero10to60[0][1] = 0.0006377;
128
129 fPiZero10to60[1][0] = 1.272837;
130 fPiZero10to60[1][1] = -0.069708;
131 fPiZero10to60[1][2] = 0.001568;
132 fPiZero10to60[1][3] = -1.162e-05;
133
134 fPiZero10to60[2][0] = 0.139703;
135 fPiZero10to60[2][1] = 0.003687;
136 fPiZero10to60[2][2] = -0.000568;
137 fPiZero10to60[2][3] = 1.498e-05;
138 fPiZero10to60[2][4] = -1.174e-07;
139
140 fPiZero10to60[3][0] = -0.826367;
141 fPiZero10to60[3][1] = 0.096951;
142 fPiZero10to60[3][2] = -0.002215;
143 fPiZero10to60[3][3] = 2.523e-05;
144
145 fPiZero10to60[4][0] = 0.249890;
146 fPiZero10to60[4][1] = -0.000063;
147
148 fPiZero10to60[5][0] = 0.002942;
149 fPiZero10to60[5][1] = -3.976e-05;
150
c47157cd 151}
3a8be91c 152
153//-----------------------------------------------------------------------------
154void AliEMCALRecParam::Print(Option_t *) const
155{
156 printf("AliEMCALRecParam::Print()\n");
157 // Print reconstruction parameters to stdout
225cd96d 158 AliInfo(Form("Clusterization parameters :\n fClusteringThreshold=%.3f,\n fW0=%.3f,\n fMinECut=%.3f,\n fUnfold=%d,\n fLocMaxCut=%.3f \n",
159 fClusteringThreshold,fW0,fMinECut,fUnfold,fLocMaxCut));
3a8be91c 160
8ba062b1 161 AliInfo(Form("Track-matching cuts :\n x %f, y %f, z %f, R %f \n alphaMin %f, alphaMax %f, Angle %f\n", fTrkCutX, fTrkCutY, fTrkCutZ, fTrkCutR,fTrkCutAlphaMin,fTrkCutAlphaMax, fTrkCutAngle));
162
163 AliInfo(Form("PID parameters, Gamma :\n"));
164 for(Int_t i = 0; i < 6; i++){
165 for(Int_t j = 0; j < 6; j++){
166 printf(" %f, ", fGamma[i][j]);
167 }
168 printf("\n");
169 }
170
171 printf("\n");
172
173 AliInfo(Form("PID parameters, Hadron :\n"));
174 for(Int_t i = 0; i < 6; i++){
175 for(Int_t j = 0; j < 6; j++){
176 printf(" %f, ", fHadron[i][j]);
177 }
178 printf("\n");
179 }
180
181 printf("\n");
182
183 AliInfo(Form("PID parameters, Pi0zero5to10 :\n"));
184 for(Int_t i = 0; i < 6; i++){
185 for(Int_t j = 0; j < 6; j++){
186 printf(" %f, ", fPiZero5to10[i][j]);
187 }
188 printf("\n");
189 }
190
191 printf("\n");
192
193 AliInfo(Form("PID parameters, Pi0zero10to60 :\n"));
194 for(Int_t i = 0; i < 6; i++){
195 for(Int_t j = 0; j < 6; j++){
196 printf(" %f, ", fPiZero10to60[i][j]);
197 }
198 printf("\n");
199 }
200
201 printf("\n");
202
b4133f05 203 AliInfo(Form("Raw signal parameters: \n gain factor=%f, order=%d, tau=%f, noise threshold=%d, nped samples=%d \n",
204 fHighLowGainFactor,fOrderParameter,fTau,fNoiseThreshold,fNPedSamples));
205
3a8be91c 206}
8ba062b1 207
feedcab9 208//-----------------------------------------------------------------------------
209const TObjArray* AliEMCALRecParam::GetMappings()
210{
211 //Returns array of AliAltroMappings for RCU0..RCUX.
212 //If not found, read it from OCDB.
213
214 //Quick check as follows:
215 // root [0]
216 //AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
217 // root [1] AliCDBManager::Instance()->SetRun(1);
218 // root [2] TObjArray* maps = AliEMCALRecParam::GetMappings();
219 // root [3] maps->Print();
220
221 if(fgkMaps) return fgkMaps;
222
223 AliCDBEntry* entry = AliCDBManager::Instance()->Get("EMCAL/Calib/Mapping");
224 if(entry)
225 fgkMaps = (TObjArray*)entry->GetObject();
226
227 return fgkMaps;
228
229}
230