1 //RS: before running MakeITSUSimuParam call ".x LoadLibs.C"
3 AliITSUSimuParam* MakeITSUSimuParam_M32P26Func();
4 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map();
5 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map();
6 void SetPSFParams(TString pixType, AliITSUParamList* parData);
8 // To turn noise generation ON set these values to 1
9 const int kAddNoise = -1;
10 const int kAddNoiseInAllMod = -1;
12 const char* inpPSFName = "$ALICE_ROOT/ITS/UPGRADE/misc/ITSU_pixel_response_PSFs.root";
14 void MakeITSUSimuParam(const char* cdbURI="local://") {
15 //========================================================================
17 // Steering macro for ITS simulation parameters
20 // Contact: levente.molnar@cern.ch
22 //========================================================================
23 AliITSUSimuParam *param = 0;
25 // Select only one parameterziation... and don't forget to set 18 um thickness in Config.C !!!
27 //____ MIMOSA32 P26 Response parameterzied by fit functions
28 //param = MakeITSUSimuParam_M32P26Func();
30 //____ MIMOSA32 P26 Response parameterzied by map
31 //param = MakeITSUSimuParam_M32P26Map();
33 //____ MIMOSA32ter P31 Response parameterzied by map //suggested!!!
34 param = MakeITSUSimuParam_M32terP31Map();
37 // ----------------------------------------------------------
38 // save in CDB storage
39 AliCDBManager* cdb = AliCDBManager::Instance();
40 cdb->SetDefaultStorage(cdbURI);
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"));
47 AliCDBId id("ITS/Calib/SimuParam",0,AliCDBRunRange::Infinity());
48 cdb->GetDefaultStorage()->Put(param,id, md);
52 //__________________________________________________
53 AliITSUSimuParam* MakeITSUSimuParam_M32P26Func()
55 //const char* macroname = "MakeITSUSimuParam.C";
57 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
59 // Add spread function parameterization data
60 AliITSUParamList* parData = 0;
62 //------------------------ parameterization data for segmentation 0 ----------------------
63 parData = new AliITSUParamList(AliITSUSimulationPix::kNG2Par); // 4 common + 9 params for double gaussian
64 parData->SetUniqueID(0); // this is a function for detId=0
66 // and uses double gaussian for charge spread parameterization
67 parData->SetNameTitle("Monopix_seg0","double gaussian for segmentation 0");
68 parData->SetParameter(AliITSUSimulationPix::kChargeSpreadType,AliITSUSimulationPix::kSpreadFunDoubleGauss2D,"ChargeSpread");
70 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
71 // injected one to consider
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");
77 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
79 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,5,"pixSNDisrcCut");
80 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
82 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
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");
87 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
89 // now set the parameters according selected function
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");
98 // scaling of 2nd gaussian amplitude wrt 1st one
99 parData->SetParameter(AliITSUSimulationPix::kG2ScaleG2 , 3.904037/59.468672, "G2 A2/A1");
101 itsSimuParam->AddRespFunParam(parData);
104 //------------------------ parameterization data for segmentation 1 ----------------------
105 parData = new AliITSUParamList(AliITSUSimulationPix::kNG2Par); // 4 common + 9 params for double gaussian
106 parData->SetUniqueID(1); // this is a function for detId=1
108 // and uses double gaussian for charge spread parameterization
109 parData->SetNameTitle("Monopix_seg1","double gaussian for segmentation 1");
110 parData->SetParameter(AliITSUSimulationPix::kChargeSpreadType,AliITSUSimulationPix::kSpreadFunDoubleGauss2D,"ChargeSpread");
112 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
113 // injected one to consider
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");
122 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
123 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
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");
129 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
131 // now set the parameters according selected function
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");
140 // scaling of 2nd gaussian amplitude wrt 1st one
141 parData->SetParameter(AliITSUSimulationPix::kG2ScaleG2 , 3.904037/59.468672, "G2 A2/A1");
143 itsSimuParam->AddRespFunParam(parData);
146 //------------------------ parameterization data for segmentation 2 ----------------------
147 parData = new AliITSUParamList(AliITSUSimulationPix::kNG2Par); // 4 common + 9 params for double gaussian
148 parData->SetUniqueID(2); // this is a function for detId=2
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");
154 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
155 // injected one to consider
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");
164 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
165 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
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)");
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");
185 itsSimuParam->AddRespFunParam(parData);
192 //________________________________________________________________________________________
193 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map()
195 //const char* macroname = "MakeITSUSimuParam.C";
197 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
199 // Add spread function parameterization data
200 AliITSUParamList* parData = 0;
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);
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");
218 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
219 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
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)");
227 itsSimuParam->AddRespFunParam(parData);
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);
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");
246 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
247 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
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)");
255 itsSimuParam->AddRespFunParam(parData);
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);
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");
274 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
275 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
277 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
278 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
279 // and readout timing scheme
280 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
281 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
283 itsSimuParam->AddRespFunParam(parData);
288 //________________________________________________________________________________________//
290 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map()
292 //const char* macroname = "MakeITSUSimuParam.C";
294 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
296 // Add spread function parameterization data
297 AliITSUParamList* parData = 0;
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);
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");
312 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
314 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,5,"pixSNDisrcCut");
315 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
317 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
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)");
324 itsSimuParam->AddRespFunParam(parData);
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);
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");
342 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
344 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,5,"pixSNDisrcCut");
345 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
347 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
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)");
354 // now set the parameters according selected function
355 itsSimuParam->AddRespFunParam(parData);
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 );
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");
375 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
376 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
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
383 itsSimuParam->AddRespFunParam(parData);
388 //_______________________________________________________________
389 void SetPSFParams(TString pixType, AliITSUParamList* parData )
392 // Reads the PSF map and sets the parameters
394 printf("Loading charge spread histo %s from file %s\n",pixType.Data(),inpPSFName);
395 TFile* fin = new TFile(inpPSFName);
397 printf("NO parameters are set! Input file %s doesn't exist\n",inpPSFName);
402 hProfWrk = dynamic_cast<TH2*> fin->Get(pixType.Data());
404 printf("PSF map %s doesn't exist!!!\n",pixType.Data());
407 hProfWrk = (TH2*) hProfWrk->Clone();
408 hProfWrk->SetDirectory(0);
411 parData->AddParamObject(hProfWrk);
412 parData->SetParameter(AliITSUSimulationPix::kChargeSpreadType,AliITSUSimulationPix::kSpreadFunHisto,pixType.Data());