]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/AliEMCALRecParam.cxx
In case of test setup use configuration data from the $DAQDA_TEST_DIR
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALRecParam.cxx
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 ---
18 #include "TObjArray.h"
19 #include "AliCDBManager.h"
20 #include "AliCDBEntry.h"
21 #include "AliEMCALRecParam.h"
22 #include "AliLog.h"
23
24 ClassImp(AliEMCALRecParam)
25
26 TObjArray* AliEMCALRecParam::fgkMaps =0; //ALTRO mappings 
27
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
35 AliEMCALRecParam::AliEMCALRecParam():
36   fClusteringThreshold(0.5),fW0(4.5),fMinECut(0.45), //clustering
37   fTrkCutX(6.0), fTrkCutY(6.0), fTrkCutZ(6.0),  fTrkCutR(10.0),//track matching
38   fTrkCutAlphaMin(-50.0), fTrkCutAlphaMax(50.0), fTrkCutAngle(10000.0) //track matching
39 {
40   // default reco values
41
42   //PID parameters (Guenole)
43
44   // as a first step, all array elements are initialized to 0.0
45   Int_t i, j;
46   for (i = 0; i < 6; i++) {
47     for (j = 0; j < 6; j++) {
48       fGamma[i][j] = fHadron[i][j] = fPiZero5to10[i][j] = fPiZero10to60[i][j] = 0.;
49     }
50   }
51
52   // then, only the ones which must be not zero are initialized
53   // while the others will remain to the value 0.0
54
55   fGamma[0][0] =  0.038022;
56   fGamma[0][1] = -0.0001883;
57   fGamma[0][2] =  5.449e-06;
58
59   fGamma[1][0] =  0.207313;
60   fGamma[1][1] = -0.000978;
61   fGamma[1][2] =  0.00001634;
62
63   fGamma[2][0] =  0.043364;
64   fGamma[2][1] = -0.0002048;
65   fGamma[2][2] =  8.661e-06;
66   fGamma[2][3] = -1.353e-07;
67
68   fGamma[3][0] =  0.265004;
69   fGamma[3][1] =  0.061298;
70   fGamma[3][2] = -0.003203;
71   fGamma[3][3] =  4.73e-05;
72
73   fGamma[4][0] =  0.243579;
74   fGamma[4][1] = -1.614e-05;
75
76   fGamma[5][0] =  0.002942;
77   fGamma[5][1] = -3.976e-05;
78
79   fHadron[0][0] =  0.011945 / 3.;
80   fHadron[0][1] =  0.000386 / 3.;
81   fHadron[0][2] = -0.000014 / 3.;
82   fHadron[0][3] =  1.336e-07 / 3.;
83
84   fHadron[1][0] =  0.496544;
85   fHadron[1][1] = -0.003226;
86   fHadron[1][2] =  0.00001678;
87
88   fHadron[2][0] =  0.144838;
89   fHadron[2][1] = -0.002954;
90   fHadron[2][2] =  0.00008754;
91   fHadron[2][3] = -7.587e-07;
92
93   fHadron[3][0] =  1.264461 / 7.;
94   fHadron[3][1] =  0.002097 / 7.;
95
96   fHadron[4][0] =  0.261950;
97   fHadron[4][1] = -0.001078;
98   fHadron[4][2] =  0.00003237;
99   fHadron[4][3] = -3.241e-07;
100   fHadron[4][4] =  0.;
101   fHadron[4][5] =  0.;
102   fHadron[5][0] =  0.010317;
103   fHadron[5][1] =  0.;
104   fHadron[5][2] =  0.;
105   fHadron[5][3] =  0.;
106   fHadron[5][4] =  0.;
107   fHadron[5][5] =  0.;
108
109   fPiZero5to10[0][0] = 0.009138;
110   fPiZero5to10[0][1] = 0.0006377;
111
112   fPiZero5to10[1][0] = 0.08;
113
114   fPiZero5to10[2][0] = -0.061119;
115   fPiZero5to10[2][1] =  0.019013;
116
117   fPiZero5to10[3][0] =  0.2;
118
119   fPiZero5to10[4][0] =  0.252044;
120   fPiZero5to10[4][1] = -0.002315;
121
122   fPiZero5to10[5][0] =  0.002942;
123   fPiZero5to10[5][1] = -3.976e-05;
124   
125   fPiZero10to60[0][0] =  0.009138;
126   fPiZero10to60[0][1] =  0.0006377;
127
128   fPiZero10to60[1][0] =  1.272837;
129   fPiZero10to60[1][1] = -0.069708;
130   fPiZero10to60[1][2] =  0.001568;
131   fPiZero10to60[1][3] = -1.162e-05;
132
133   fPiZero10to60[2][0] =  0.139703;
134   fPiZero10to60[2][1] =  0.003687;
135   fPiZero10to60[2][2] = -0.000568;
136   fPiZero10to60[2][3] =  1.498e-05;
137   fPiZero10to60[2][4] = -1.174e-07;
138
139   fPiZero10to60[3][0] = -0.826367;
140   fPiZero10to60[3][1] =  0.096951;
141   fPiZero10to60[3][2] = -0.002215;
142   fPiZero10to60[3][3] =  2.523e-05;
143
144   fPiZero10to60[4][0] =  0.249890;
145   fPiZero10to60[4][1] = -0.000063;
146
147   fPiZero10to60[5][0] =  0.002942;
148   fPiZero10to60[5][1] = -3.976e-05;
149
150   //track matching
151
152
153
154 }
155
156 //-----------------------------------------------------------------------------
157 void AliEMCALRecParam::Print(Option_t *) const
158 {
159   printf("AliEMCALRecParam::Print()\n");
160   // Print reconstruction parameters to stdout
161   AliInfo(Form("Clusterization parameters :\n fClusteringThreshold=%.3f,\n fW0=%.3f,\n fMinECut=%.3f\n",
162                fClusteringThreshold,fW0,fMinECut));
163
164   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));
165
166   AliInfo(Form("PID parameters, Gamma :\n"));
167   for(Int_t i = 0; i < 6; i++){
168     for(Int_t j = 0; j < 6; j++){
169       printf(" %f, ", fGamma[i][j]);
170     }
171     printf("\n");
172   }
173
174   printf("\n");
175
176   AliInfo(Form("PID parameters, Hadron :\n"));
177   for(Int_t i = 0; i < 6; i++){
178     for(Int_t j = 0; j < 6; j++){
179       printf(" %f, ", fHadron[i][j]);
180     }
181     printf("\n");
182   }
183
184   printf("\n");
185
186   AliInfo(Form("PID parameters, Pi0zero5to10 :\n"));
187   for(Int_t i = 0; i < 6; i++){
188     for(Int_t j = 0; j < 6; j++){
189       printf(" %f, ", fPiZero5to10[i][j]);
190     }
191     printf("\n");
192   }
193
194   printf("\n");
195
196   AliInfo(Form("PID parameters, Pi0zero10to60 :\n"));
197   for(Int_t i = 0; i < 6; i++){
198     for(Int_t j = 0; j < 6; j++){
199       printf(" %f, ", fPiZero10to60[i][j]);
200     }
201     printf("\n");
202   }
203
204   printf("\n");
205
206 }
207
208 //-----------------------------------------------------------------------------                           
209 const 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