]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/UPGRADE/testITSU/MakeITSUSimuParam.C
Moved source histo root file for histogrammed pixel response to misc dir.
[u/mrichter/AliRoot.git] / ITS / UPGRADE / testITSU / MakeITSUSimuParam.C
CommitLineData
29ad4146 1//RS: before running MakeITSUSimuParam call ".x LoadLibs.C"
2
3AliITSUSimuParam* MakeITSUSimuParam_M32P26Func();
4AliITSUSimuParam* MakeITSUSimuParam_M32P26Map();
5AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map();
6void SetPSFParams(TString pixType, AliITSUParamList* parData);
c92b1537 7
34d64d83 8// To turn noise generation ON set these values to 1
9const int kAddNoise = -1;
10const int kAddNoiseInAllMod = -1;
11
12const char* inpPSFName = "$ALICE_ROOT/ITS/UPGRADE/misc/ITSU_pixel_response_PSFs.root";
29ad4146 13
14void MakeITSUSimuParam(const char* cdbURI="local://") {
15 //========================================================================
c92b1537 16 //
29ad4146 17 // Steering macro for ITS simulation parameters
18 //
19 // Author: L.Molnar
20 // Contact: levente.molnar@cern.ch
21 //
22 //========================================================================
23 AliITSUSimuParam *param = 0;
24 //
25 // Select only one parameterziation... and don't forget to set 18 um thickness in Config.C !!!
26
27 //____ MIMOSA32 P26 Response parameterzied by fit functions
28 //param = MakeITSUSimuParam_M32P26Func();
29
30 //____ MIMOSA32 P26 Response parameterzied by map
31 //param = MakeITSUSimuParam_M32P26Map();
32
33 //____ MIMOSA32ter P31 Response parameterzied by map //suggested!!!
34 param = MakeITSUSimuParam_M32terP31Map();
35 param->Print();
c92b1537 36 //
29ad4146 37 // ----------------------------------------------------------
38 // save in CDB storage
c92b1537 39 AliCDBManager* cdb = AliCDBManager::Instance();
40 cdb->SetDefaultStorage(cdbURI);
29ad4146 41 //
42 AliCDBMetaData *md= new AliCDBMetaData();
43 md->SetResponsible("ITS Upgrade Project");
44 md->SetComment("Simulation parameters for ITS Upgrade.");
45 md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
46 md->SetBeamPeriod(0);
47 AliCDBId id("ITS/Calib/SimuParam",0,AliCDBRunRange::Infinity());
48 cdb->GetDefaultStorage()->Put(param,id, md);
49 //
50}
c92b1537 51
29ad4146 52//__________________________________________________
53AliITSUSimuParam* MakeITSUSimuParam_M32P26Func()
54{
55 //const char* macroname = "MakeITSUSimuParam.C";
56 //
c92b1537 57 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
58 //
59 // Add spread function parameterization data
29ad4146 60 AliITSUParamList* parData = 0;
61 //
c92b1537 62 //------------------------ parameterization data for segmentation 0 ----------------------
29ad4146 63 parData = new AliITSUParamList(AliITSUSimulationPix::kNG2Par); // 4 common + 9 params for double gaussian
c92b1537 64 parData->SetUniqueID(0); // this is a function for detId=0
29ad4146 65 //
66 // and uses double gaussian for charge spread parameterization
c92b1537 67 parData->SetNameTitle("Monopix_seg0","double gaussian for segmentation 0");
29ad4146 68 parData->SetParameter(AliITSUSimulationPix::kChargeSpreadType,AliITSUSimulationPix::kSpreadFunDoubleGauss2D,"ChargeSpread");
c92b1537 69 //
70 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
71 // injected one to consider
29ad4146 72 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
73 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
74 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
75 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,1.0,"globQscale");
76 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
34d64d83 77 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
29ad4146 78
79 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,5,"pixSNDisrcCut");
80 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
81 // Noise
34d64d83 82 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
29ad4146 83 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
84 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
85 // and readout timing scheme
86 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
0ebc85cf 87 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
69e0f089 88 //
c92b1537 89 // now set the parameters according selected function
29ad4146 90 parData->SetParameter(AliITSUSimulationPix::kG2MeanX0 , -5.63484e-01 * 1e-4, "G1 Mean_x");
91 parData->SetParameter(AliITSUSimulationPix::kG2SigX0 , 2.49464e+01 * 1e-4, "G1 Sigma_x");
92 parData->SetParameter(AliITSUSimulationPix::kG2MeanZ0 , -2.76353e+00 * 1e-4, "G1 Mean_z");
93 parData->SetParameter(AliITSUSimulationPix::kG2SigZ0 , 2.59449e+01 * 1e-4, "G1 Sigma_z");
94 parData->SetParameter(AliITSUSimulationPix::kG2MeanX1 , 5.43664e-01 * 1e-4, "G2 Mean_x");
95 parData->SetParameter(AliITSUSimulationPix::kG2SigX1 , 7.97169e+00 * 1e-4, "G2 Sigma_x");
96 parData->SetParameter(AliITSUSimulationPix::kG2MeanZ1 , 1.76857e+00 * 1e-4, "G2 Mean_z");
97 parData->SetParameter(AliITSUSimulationPix::kG2SigZ1 , 1.01543e+01 * 1e-4, "G2 Sigma_z");
69e0f089 98 // scaling of 2nd gaussian amplitude wrt 1st one
99 parData->SetParameter(AliITSUSimulationPix::kG2ScaleG2 , 3.904037/59.468672, "G2 A2/A1");
c92b1537 100 //
101 itsSimuParam->AddRespFunParam(parData);
102 //
103 //
104 //------------------------ parameterization data for segmentation 1 ----------------------
29ad4146 105 parData = new AliITSUParamList(AliITSUSimulationPix::kNG2Par); // 4 common + 9 params for double gaussian
c92b1537 106 parData->SetUniqueID(1); // this is a function for detId=1
29ad4146 107
108 // and uses double gaussian for charge spread parameterization
c92b1537 109 parData->SetNameTitle("Monopix_seg1","double gaussian for segmentation 1");
29ad4146 110 parData->SetParameter(AliITSUSimulationPix::kChargeSpreadType,AliITSUSimulationPix::kSpreadFunDoubleGauss2D,"ChargeSpread");
c92b1537 111 //
112 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
113 // injected one to consider
29ad4146 114 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
115 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
116 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
117 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,1.0,"globQscale");
118 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
119 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,5,"pixSNDisrcCut");
120 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
121 // Noise
34d64d83 122 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
123 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
29ad4146 124
125 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
126 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
127 // and readout timing scheme
128 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
0ebc85cf 129 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
29ad4146 130 //
c92b1537 131 // now set the parameters according selected function
29ad4146 132 parData->SetParameter(AliITSUSimulationPix::kG2MeanX0 , -5.63484e-01 * 1e-4, "G1 Mean_x");
133 parData->SetParameter(AliITSUSimulationPix::kG2SigX0 , 2.49464e+01 * 1e-4, "G1 Sigma_x");
134 parData->SetParameter(AliITSUSimulationPix::kG2MeanZ0 , -2.76353e+00 * 1e-4, "G1 Mean_z");
135 parData->SetParameter(AliITSUSimulationPix::kG2SigZ0 , 2.59449e+01 * 1e-4, "G1 Sigma_z");
136 parData->SetParameter(AliITSUSimulationPix::kG2MeanX1 , 5.43664e-01 * 1e-4, "G2 Mean_x");
137 parData->SetParameter(AliITSUSimulationPix::kG2SigX1 , 7.97169e+00 * 1e-4, "G2 Sigma_x");
138 parData->SetParameter(AliITSUSimulationPix::kG2MeanZ1 , 1.76857e+00 * 1e-4, "G2 Mean_z");
139 parData->SetParameter(AliITSUSimulationPix::kG2SigZ1 , 1.01543e+01 * 1e-4, "G2 Sigma_z");
69e0f089 140 // scaling of 2nd gaussian amplitude wrt 1st one
141 parData->SetParameter(AliITSUSimulationPix::kG2ScaleG2 , 3.904037/59.468672, "G2 A2/A1");
c92b1537 142 //
143 itsSimuParam->AddRespFunParam(parData);
144 //
145 //
146 //------------------------ parameterization data for segmentation 2 ----------------------
29ad4146 147 parData = new AliITSUParamList(AliITSUSimulationPix::kNG2Par); // 4 common + 9 params for double gaussian
c92b1537 148 parData->SetUniqueID(2); // this is a function for detId=2
29ad4146 149 //
150 parData->SetNameTitle("Monopix_seg2","double gaussian for segmentation 2");
151 // and uses double gaussian for charge spread parameterization
152 parData->SetParameter(AliITSUSimulationPix::kChargeSpreadType,AliITSUSimulationPix::kSpreadFunDoubleGauss2D,"ChargeSpread");
c92b1537 153 //
154 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
155 // injected one to consider
29ad4146 156 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
157 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
158 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
159 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,1.0,"globQscale");
160 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
161 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,5,"pixSNDisrcCut");
162 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
163 // Noise
34d64d83 164 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
165 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
29ad4146 166
167 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
168 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
169 // and readout timing scheme
170 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
171 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
172 //
173 // now set the parameters according selected function
174 parData->SetParameter(AliITSUSimulationPix::kG2MeanX0 , -5.63484e-01 * 1e-4, "G1 Mean_x");
175 parData->SetParameter(AliITSUSimulationPix::kG2SigX0 , 2.49464e+01 * 1e-4, "G1 Sigma_x");
176 parData->SetParameter(AliITSUSimulationPix::kG2MeanZ0 , -2.76353e+00 * 1e-4, "G1 Mean_z");
177 parData->SetParameter(AliITSUSimulationPix::kG2SigZ0 , 2.59449e+01 * 1e-4, "G1 Sigma_z");
178 parData->SetParameter(AliITSUSimulationPix::kG2MeanX1 , 5.43664e-01 * 1e-4, "G2 Mean_x");
179 parData->SetParameter(AliITSUSimulationPix::kG2SigX1 , 7.97169e+00 * 1e-4, "G2 Sigma_x");
180 parData->SetParameter(AliITSUSimulationPix::kG2MeanZ1 , 1.76857e+00 * 1e-4, "G2 Mean_z");
181 parData->SetParameter(AliITSUSimulationPix::kG2SigZ1 , 1.01543e+01 * 1e-4, "G2 Sigma_z");
182 // scaling of 2nd gaussian amplitude wrt 1st one
183 parData->SetParameter(AliITSUSimulationPix::kG2ScaleG2 , 3.904037/59.468672, "G2 A2/A1");
184 //
185 itsSimuParam->AddRespFunParam(parData);
186 //
187 //
188 return itsSimuParam;
189
190}
191
192//________________________________________________________________________________________
193AliITSUSimuParam* MakeITSUSimuParam_M32P26Map()
194{
195 //const char* macroname = "MakeITSUSimuParam.C";
196 //
197 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
198 //
199 // Add spread function parameterization data
200 AliITSUParamList* parData = 0;
201 //
202 //------------------------ parameterization data for segmentation 0 ----------------------
203 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
204 parData->SetUniqueID(0); // this is a function for detId=0
205 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
206 SetPSFParams("hProfPSD_M32P26",parData);
207 //
208 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
209 // injected one to consider
210 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
211 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
212 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
213 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,1.0,"globQscale");
214 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
215 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,5,"pixSNDisrcCut");
216 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
217 // Noise
34d64d83 218 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
219 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
29ad4146 220
221 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
222 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
223 // and readout timing scheme
224 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
225 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
226 //
227 itsSimuParam->AddRespFunParam(parData);
228 //
229 //
230 //------------------------ parameterization data for segmentation 1 ----------------------
231 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
232 parData->SetUniqueID(1); // this is a function for detId=1
233 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
234 SetPSFParams("hProfPSD_M32P26",parData);
235 //
236 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
237 // injected one to consider
238 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
239 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
240 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
241 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,1.0,"globQscale");
242 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
243 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,5,"pixSNDisrcCut");
244 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
245 // Noise
34d64d83 246 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
247 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
29ad4146 248
249 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
250 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
251 // and readout timing scheme
252 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
253 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
254 //
255 itsSimuParam->AddRespFunParam(parData);
256 //
257 //
258 //------------------------ parameterization data for segmentation 2 ----------------------
259 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
260 parData->SetUniqueID(2); // this is a function for detId=2
261 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
262 SetPSFParams("hProfPSD_M32P26",parData);
263 //
264 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
265 // injected one to consider
266 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
267 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
268 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
269 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,1.0,"globQscale");
270 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
271 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,5,"pixSNDisrcCut");
272 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
273 // Noise
34d64d83 274 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
275 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
29ad4146 276
277 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
278 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
0ebc85cf 279 // and readout timing scheme
29ad4146 280 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
0ebc85cf 281 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
29ad4146 282 //
283 itsSimuParam->AddRespFunParam(parData);
284 //
285 return itsSimuParam;
286}
287
288//________________________________________________________________________________________//
289
290AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map()
291{
292 //const char* macroname = "MakeITSUSimuParam.C";
293 //
294 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
295 //
296 // Add spread function parameterization data
297 AliITSUParamList* parData = 0;
c92b1537 298 //
29ad4146 299 //------------------------ parameterization data for segmentation 0 ----------------------
300 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
301 parData->SetUniqueID(0); // this is a function for detId=0
302 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
303 SetPSFParams("hProfPSD_M32terP31",parData);
304 //
305 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
306 // injected one to consider
307 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
308 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
309 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
310 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,1.0,"globQscale");
311 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
34d64d83 312 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
29ad4146 313
314 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,5,"pixSNDisrcCut");
315 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
316 // Noise
34d64d83 317 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
29ad4146 318 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,20.62,"pixNoiseMPV");
319 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.55,"pixNoiseSigma");
320 // and readout timing scheme
321 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
322 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
c92b1537 323 //
324 itsSimuParam->AddRespFunParam(parData);
325 //
69e0f089 326 //
29ad4146 327 //
328 //------------------------ parameterization data for segmentation 1 ----------------------
329 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
330 parData->SetUniqueID(1); // this is a function for detId=1
331 parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
332 SetPSFParams("hProfPSD_M32terP31",parData);
333
334 //
335 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
336 // injected one to consider
337 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
338 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
339 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
340 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,1.0,"globQscale");
341 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
34d64d83 342 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
29ad4146 343
344 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,5,"pixSNDisrcCut");
345 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
346 // Noise
34d64d83 347 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
29ad4146 348 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,20.62,"pixNoiseMPV");
349 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.55,"pixNoiseSigma");
350 // and readout timing scheme
351 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
352 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
353 //
354 // now set the parameters according selected function
355 itsSimuParam->AddRespFunParam(parData);
c92b1537 356 //
29ad4146 357 //
358 //
359 //------------------------ parameterization data for segmentation 2 ----------------------
360 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
361 parData->SetUniqueID(2); // this is a function for detId=2
362 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
363 SetPSFParams("hProfPSD_M32terP31", parData );
364 //
365 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
366 // injected one to consider
367 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
368 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
369 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
370 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,1.0,"globQscale"); //980./1080.
371 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
372 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,5,"pixSNDisrcCut");
373 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
374 // Noise
34d64d83 375 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
376 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
29ad4146 377 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,20.62,"pixNoiseMPV");
378 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.55,"pixNoiseSigma");
379// and readout timing scheme
380 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
381 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
382 //
383 itsSimuParam->AddRespFunParam(parData);
384 //
385 return itsSimuParam;
c92b1537 386}
387
29ad4146 388//_______________________________________________________________
389void SetPSFParams(TString pixType, AliITSUParamList* parData )
390{
391 //
392 // Reads the PSF map and sets the parameters
393 //
394 printf("Loading charge spread histo %s from file %s\n",pixType.Data(),inpPSFName);
395 TFile* fin = new TFile(inpPSFName);
396 if (!fin) {
397 printf("NO parameters are set! Input file %s doesn't exist\n",inpPSFName);
398 exit(1);
399 }
400 //
401 TH2* hProfWrk = 0;
402 hProfWrk = dynamic_cast<TH2*> fin->Get(pixType.Data());
403 if(!hProfWrk) {
404 printf("PSF map %s doesn't exist!!!\n",pixType.Data());
405 exit(1);
406 }
407 hProfWrk = (TH2*) hProfWrk->Clone();
408 hProfWrk->SetDirectory(0);
409 fin->Close();
410 //
411 parData->AddParamObject(hProfWrk);
412 parData->SetParameter(AliITSUSimulationPix::kChargeSpreadType,AliITSUSimulationPix::kSpreadFunHisto,pixType.Data());
413}