1 //RS: before running MakeITSUSimuParam call ".x LoadLibs.C"
3 // Reference sensor parameterizations
4 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map(Double_t sncut);// don't forget to turn off diode shift for P26 in Config.C
5 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map( Double_t sncut);
6 // Irradiated sensor parameterizations P31
7 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map1MRad( Double_t sncut);
8 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map300kRad3e12( Double_t sncut);
9 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map1MRad1e13( Double_t sncut);
10 // Irradiated sensor parameterizations P26
11 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map300kRad3e12( Double_t sncut);
12 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map1MRad1e13( Double_t sncut);
13 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map300kRad3e12_20deg( Double_t sncut);
14 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map1MRad1e13_20deg( Double_t sncut);
15 void SetPSFParams(TString pixType, AliITSUParamList* parData);
17 // To turn noise generation ON set these values to 1
18 const int kAddNoise = -1;
19 const int kAddNoiseInAllMod = -1;
21 const char* inpPSFName = "$ALICE_ROOT/ITS/UPGRADE/misc/ITSU_pixel_response_PSFs.root";
22 const int kNLayers = 7;
25 const int kSNcut = 5; // Threshold/Noise cut. CAN BE CHANGED IN THE RANGE [5,10] no other values are allowed.
26 const int knSNcut = 6 ; // Number of tuned SNcut fixed to 6.
29 these are readout phases settings:
31 1) abs(kROShifts)<1: the modules of the layer are synchronized, the layer
32 phase is set to kROShifts*ROCycleLength of the modules of this layer
33 2) abs(kROShifts)>1: each module within the layer will have random phase within its ROCycleLength
35 const float kROShifts[kNLayers] = {0.5,0.5,0.5, -0.5,-0.5, 0.5,0.5};
37 void MakeITSUSimuParam(Int_t simuType = 0, const char* cdbURI="local://") {
38 //========================================================================
40 // Steering macro for ITS simulation parameters
43 // Contact: levente.molnar@cern.ch
46 //****** DO NOT FORGET TO SET THE RIGHT GEOMETRY IN THE Config.C *****
48 //****** P26 chips Config.C parameters *****
51 // sensor thickness 18 um
52 // SET diode staggering to: kDiodShiftM32terP31X[][] = {0.0, 0.0};
53 // SET diode staggering to: kDiodShiftM32terP31Z[][] = {0.0, 0.0};
56 //****** P31 chips Config.C parameters *****
59 // sensor thickness 18 um
60 // SET diode staggering to: kDiodShiftM32terP31X[][] = {0.30,-0.19};
61 // SET diode staggering to: kDiodShiftM32terP31Z[][] = {0.0, 0.0};
64 //========================================================================
65 AliITSUSimuParam *param = 0;
67 // Select only one parameterziation... and don't forget to set 18 um thickness in Config.C !!!
72 //____ MIMOSA32 P26 Response parameterzied by map ---> selected for TDR
73 param = MakeITSUSimuParam_M32P26Map(kSNcut);
77 //____ MIMOSA32ter P31 Response parameterzied by map
78 param = MakeITSUSimuParam_M32terP31Map(kSNcut);
82 //____ MIMOSA32ter P31 Response parameterzied by map 1MRad irradiation
83 param = MakeITSUSimuParam_M32terP31Map1MRad(kSNcut);
87 //____ MIMOSA32ter P31 Response parameterzied by map , 300kRad + 3e12 neq/cm2 irradiation
88 param = MakeITSUSimuParam_M32terP31Map300kRad3e12(kSNcut);
92 //____ MIMOSA32ter P31 Response parameterzied by map , 1MRad+ 1e13 neq/cm2 irradiation
93 param = MakeITSUSimuParam_M32terP31Map1MRad1e13(kSNcut);
97 //___ MIMOSA32 P26 , 300kRad + 3e12 neq/cm2 irradiation 30 deg
98 param = MakeITSUSimuParam_M32P26Map300kRad3e12(kSNcut);
102 //____ MIMOSA32 P26 , 300kRad + 3e12 neq/cm2 irradiation 20 deg
103 param = MakeITSUSimuParam_M32P26Map300kRad3e12_20deg(kSNcut);
107 //___ MIMOSA32 P26 , 1MRad+ 1e13 neq/cm2 irradiation 30 deg
108 param = MakeITSUSimuParam_M32P26Map1MRad1e13(kSNcut);
112 //___ MIMOSA32 P26 , 1MRad+ 1e13 neq/cm2 irradiation 20 deg
113 param = MakeITSUSimuParam_M32P26Map1MRad1e13_20deg(kSNcut);
123 // ----------------------------------------------------------
124 // save in CDB storage
125 AliCDBManager* cdb = AliCDBManager::Instance();
126 cdb->SetDefaultStorage(cdbURI);
128 AliCDBMetaData *md= new AliCDBMetaData();
129 md->SetResponsible("ITS Upgrade Project");
130 md->SetComment("Simulation parameters for ITS Upgrade.");
131 md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
132 md->SetBeamPeriod(0);
133 AliCDBId id("ITS/Calib/SimuParam",0,AliCDBRunRange::Infinity());
134 cdb->GetDefaultStorage()->Put(param,id, md);
139 //________________________________________________________________________________________________________//
141 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C, no irradiation //
144 //___\/___________________________________________________________________________________________________//
145 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map( Int_t sncut)
147 //const char* macroname = "MakeITSUSimuParam.C";
149 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
151 itsSimuParam->SetNLayers(kNLayers);
152 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
154 Double_t qscale[knSNcut]={1.036868, 1.055369, 1.083679, 1.098877, 1.126203, 1.145552};
155 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
157 // Add spread function parameterization data
158 AliITSUParamList* parData = 0;
160 //------------------------ parameterization data for segmentation 0 ----------------------
161 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
162 parData->SetUniqueID(0); // this is a function for detId=0
163 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
164 SetPSFParams("hProfPSD_M32P26",parData);
166 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
167 // injected one to consider
168 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
169 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
170 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
171 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
172 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
173 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
174 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
176 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
177 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
179 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
180 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
181 // and readout timing scheme
182 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
183 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
185 itsSimuParam->AddRespFunParam(parData);
188 //------------------------ parameterization data for segmentation 1 ----------------------
189 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
190 parData->SetUniqueID(1); // this is a function for detId=1
191 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
192 SetPSFParams("hProfPSD_M32P26",parData);
194 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
195 // injected one to consider
196 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
197 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
198 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
199 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
200 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
201 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
202 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
204 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
205 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
207 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
208 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
209 // and readout timing scheme
210 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
211 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
213 itsSimuParam->AddRespFunParam(parData);
216 //------------------------ parameterization data for segmentation 2 ----------------------
217 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
218 parData->SetUniqueID(2); // this is a function for detId=2
219 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
220 SetPSFParams("hProfPSD_M32P26",parData);
222 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
223 // injected one to consider
224 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
225 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
226 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
227 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
228 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
229 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
230 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
232 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
233 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
235 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
236 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
237 // and readout timing scheme
238 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
239 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
241 itsSimuParam->AddRespFunParam(parData);
246 //________________________________________________________________________________________________________//
248 // || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, no irradiation //
251 //___\/___________________________________________________________________________________________________//
253 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map( Double_t sncut)
255 //const char* macroname = "MakeITSUSimuParam.C";
257 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
259 itsSimuParam->SetNLayers(kNLayers);
260 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
263 Double_t qscale[knSNcut]={1.396168, 1.439231, 1.484984, 1.534129, 1.570807, 1.600674};
264 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
266 // Add spread function parameterization data
267 AliITSUParamList* parData = 0;
269 //------------------------ parameterization data for segmentation 0 ----------------------
270 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
271 parData->SetUniqueID(0); // this is a function for detId=0
272 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
273 SetPSFParams("hProfPSD_M32terP31",parData);
275 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
276 // injected one to consider
277 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
278 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
279 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
280 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
281 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
282 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
284 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
285 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
287 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
288 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,20.62,"pixNoiseMPV");
289 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.55,"pixNoiseSigma");
290 // and readout timing scheme
291 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
292 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
294 itsSimuParam->AddRespFunParam(parData);
298 //------------------------ parameterization data for segmentation 1 ----------------------
299 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
300 parData->SetUniqueID(1); // this is a function for detId=1
301 parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
302 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,qscale[sncut-5],"globQscale");
311 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
312 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
314 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"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 // now set the parameters according selected function
325 itsSimuParam->AddRespFunParam(parData);
329 //------------------------ parameterization data for segmentation 2 ----------------------
330 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
331 parData->SetUniqueID(2); // this is a function for detId=2
332 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
333 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,qscale[sncut-5],"globQscale"); //980./1080.
341 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
342 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
343 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
345 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
346 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
347 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,20.62,"pixNoiseMPV");
348 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.55,"pixNoiseSigma");
349 // and readout timing scheme
350 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
351 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
353 itsSimuParam->AddRespFunParam(parData);
358 //________________________________________________________________________________________________________//
360 // || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, 1 MRad irradiation //
363 //___\/___________________________________________________________________________________________________//
364 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map1MRad( Double_t sncut)
366 //const char* macroname = "MakeITSUSimuParam.C";
368 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
370 itsSimuParam->SetNLayers(kNLayers);
371 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
374 printf(" ---> WARNING WARNING WARNING --- Parameterization is not final, it is set to the reference sensor!"); return;
375 Double_t qscale[knSNcut]={1.396168, 1.439231, 1.484984, 1.534129, 1.570807, 1.600674};
376 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
378 // Add spread function parameterization data
379 AliITSUParamList* parData = 0;
381 //------------------------ parameterization data for segmentation 0 ----------------------
382 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
383 parData->SetUniqueID(0); // this is a function for detId=0
384 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
385 SetPSFParams("hProfPSD_M32terP31_1MRad",parData);
387 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
388 // injected one to consider
389 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
390 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
391 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
392 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
393 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
394 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
396 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
397 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
399 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
400 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,21.843706,"pixNoiseMPV");
401 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.417494,"pixNoiseSigma");
402 // and readout timing scheme
403 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
404 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
406 itsSimuParam->AddRespFunParam(parData);
410 //------------------------ parameterization data for segmentation 1 ----------------------
411 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
412 parData->SetUniqueID(1); // this is a function for detId=1
413 parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
414 SetPSFParams("hProfPSD_M32terP31_1MRad",parData);
417 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
418 // injected one to consider
419 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
420 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
421 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
422 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
423 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
424 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
426 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
427 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
429 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
430 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,21.843706,"pixNoiseMPV");
431 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.417494,"pixNoiseSigma");
432 // and readout timing scheme
433 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
434 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
436 // now set the parameters according selected function
437 itsSimuParam->AddRespFunParam(parData);
441 //------------------------ parameterization data for segmentation 2 ----------------------
442 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
443 parData->SetUniqueID(2); // this is a function for detId=2
444 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
445 SetPSFParams("hProfPSD_M32terP31_1MRad", parData );
447 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
448 // injected one to consider
449 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
450 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
451 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
452 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
453 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
454 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
455 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
457 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
458 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
459 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,21.843706,"pixNoiseMPV");
460 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.417494,"pixNoiseSigma");
461 // and readout timing scheme
462 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
463 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
465 itsSimuParam->AddRespFunParam(parData);
469 //________________________________________________________________________________________________________//
471 // || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, //
472 // || irradiation 300 kRad + 3e12 neq /cm2 // \||/ //
473 //___\/___________________________________________________________________________________________________//
476 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map300kRad3e12( Double_t sncut)
478 //const char* macroname = "MakeITSUSimuParam.C";
480 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
482 itsSimuParam->SetNLayers(kNLayers);
483 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
486 Double_t qscale[knSNcut]={1.532517, 1.617223, 1.641962, 1.714945, 1.73809, 1.749223};
487 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
489 // Add spread function parameterization data
490 AliITSUParamList* parData = 0;
492 //------------------------ parameterization data for segmentation 0 ----------------------
493 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
494 parData->SetUniqueID(0); // this is a function for detId=0
495 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
496 SetPSFParams("hProfPSD_M32terP31_300kRad3e12neq",parData);
498 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
499 // injected one to consider
500 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
501 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
502 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
503 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
504 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
505 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
507 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
508 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
510 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
511 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,27.274548,"pixNoiseMPV");
512 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.723949,"pixNoiseSigma");
513 // and readout timing scheme
514 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
515 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
517 itsSimuParam->AddRespFunParam(parData);
521 //------------------------ parameterization data for segmentation 1 ----------------------
522 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
523 parData->SetUniqueID(1); // this is a function for detId=1
524 parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
525 SetPSFParams("hProfPSD_M32terP31_300kRad3e12neq",parData);
528 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
529 // injected one to consider
530 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
531 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
532 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
533 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
534 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
535 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
537 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
538 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
540 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
541 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,27.274548,"pixNoiseMPV");
542 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.723949,"pixNoiseSigma");
543 // and readout timing scheme
544 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
545 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
547 // now set the parameters according selected function
548 itsSimuParam->AddRespFunParam(parData);
552 //------------------------ parameterization data for segmentation 2 ----------------------
553 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
554 parData->SetUniqueID(2); // this is a function for detId=2
555 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
556 SetPSFParams("hProfPSD_M32terP31_300kRad3e12neq", parData );
558 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
559 // injected one to consider
560 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
561 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
562 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
563 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
564 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
565 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
566 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
568 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
569 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
570 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,27.274548,"pixNoiseMPV");
571 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.723949,"pixNoiseSigma");
572 // and readout timing scheme
573 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
574 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
576 itsSimuParam->AddRespFunParam(parData);
581 //________________________________________________________________________________________________________//
583 // || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, //
584 // || irradiation 1MRad + 1e13 neq /cm2 // \||/ //
585 //___\/___________________________________________________________________________________________________//
588 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map1MRad1e13( Double_t sncut)
590 //const char* macroname = "MakeITSUSimuParam.C";
592 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
594 itsSimuParam->SetNLayers(kNLayers);
595 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
598 Double_t qscale[knSNcut]={1.530764, 1.542968, 1.602497, 1.621188, 1.68353 ,1.639263};
599 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
601 // Add spread function parameterization data
602 AliITSUParamList* parData = 0;
604 //------------------------ parameterization data for segmentation 0 ----------------------
605 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
606 parData->SetUniqueID(0); // this is a function for detId=0
607 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
608 SetPSFParams("hProfPSD_M32terP31_1MRad1e13neq",parData);
610 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
611 // injected one to consider
612 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
613 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
614 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
615 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
616 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
617 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
619 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
620 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
622 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
623 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,43.840798,"pixNoiseMPV");
624 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.187048,"pixNoiseSigma");
625 // and readout timing scheme
626 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
627 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
629 itsSimuParam->AddRespFunParam(parData);
633 //------------------------ parameterization data for segmentation 1 ----------------------
634 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
635 parData->SetUniqueID(1); // this is a function for detId=1
636 parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
637 SetPSFParams("hProfPSD_M32terP31_1MRad1e13neq",parData);
640 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
641 // injected one to consider
642 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
643 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
644 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
645 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
646 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
647 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
649 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
650 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
652 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
653 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,43.840798,"pixNoiseMPV");
654 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.187048,"pixNoiseSigma");
655 // and readout timing scheme
656 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
657 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
659 // now set the parameters according selected function
660 itsSimuParam->AddRespFunParam(parData);
664 //------------------------ parameterization data for segmentation 2 ----------------------
665 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
666 parData->SetUniqueID(2); // this is a function for detId=2
667 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
668 SetPSFParams("hProfPSD_M32terP31_1MRad1e13neq", parData );
670 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
671 // injected one to consider
672 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
673 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
674 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
675 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
676 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
677 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
678 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
680 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
681 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
682 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,43.840798,"pixNoiseMPV");
683 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.187048,"pixNoiseSigma");
684 // and readout timing scheme
685 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
686 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
688 itsSimuParam->AddRespFunParam(parData);
695 //________________________________________________________________________________________________________//
697 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C, //
698 // || 300kRad + 3e12 new/cm2 //
700 //___\/___________________________________________________________________________________________________//
702 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map300kRad3e12( Double_t sncut)
704 //const char* macroname = "MakeITSUSimuParam.C";
706 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
708 itsSimuParam->SetNLayers(kNLayers);
709 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
712 Double_t qscale[knSNcut]={0.446298, 0.45217, 0.405819, 0.457178, 0.488428, 0.508903};
713 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
715 // Add spread function parameterization data
716 AliITSUParamList* parData = 0;
718 //------------------------ parameterization data for segmentation 0 ----------------------
719 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
720 parData->SetUniqueID(0); // this is a function for detId=0
721 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
722 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq",parData);
724 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
725 // injected one to consider
726 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
727 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
728 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
729 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
730 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
731 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
732 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
734 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
735 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
737 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.566901,"pixNoiseMPV");
738 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.665233,"pixNoiseSigma");
739 // and readout timing scheme
740 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
741 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
743 itsSimuParam->AddRespFunParam(parData);
746 //------------------------ parameterization data for segmentation 1 ----------------------
747 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
748 parData->SetUniqueID(1); // this is a function for detId=1
749 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
750 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq",parData);
752 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
753 // injected one to consider
754 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
755 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
756 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
757 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
758 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
759 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
760 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
762 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
763 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
765 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.566901,"pixNoiseMPV");
766 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.665233,"pixNoiseSigma");
767 // and readout timing scheme
768 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
769 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
771 itsSimuParam->AddRespFunParam(parData);
774 //------------------------ parameterization data for segmentation 2 ----------------------
775 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
776 parData->SetUniqueID(2); // this is a function for detId=2
777 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
778 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq",parData);
780 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
781 // injected one to consider
782 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
783 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
784 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
785 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
786 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
787 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
788 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
790 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
791 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
793 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.566901,"pixNoiseMPV");
794 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.665233,"pixNoiseSigma");
795 // and readout timing scheme
796 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
797 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
799 itsSimuParam->AddRespFunParam(parData);
804 //________________________________________________________________________________________________________//
806 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C, //
807 // || 1 MRad + 1e13 new/cm2 //
809 //___\/___________________________________________________________________________________________________//
811 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map1MRad1e13( Double_t sncut)
813 //const char* macroname = "MakeITSUSimuParam.C";
815 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
817 itsSimuParam->SetNLayers(kNLayers);
818 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
821 Double_t qscale[knSNcut]={0.406783, 0.418178, 0.410906, 0.406477, 0.355895, 0.479006};
822 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
824 // Add spread function parameterization data
825 AliITSUParamList* parData = 0;
827 //------------------------ parameterization data for segmentation 0 ----------------------
828 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
829 parData->SetUniqueID(0); // this is a function for detId=0
830 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
831 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq",parData);
833 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
834 // injected one to consider
835 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
836 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
837 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
838 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
839 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
840 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
841 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
843 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
844 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
846 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.982178,"pixNoiseMPV");
847 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.067505,"pixNoiseSigma");
848 // and readout timing scheme
849 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
850 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
852 itsSimuParam->AddRespFunParam(parData);
855 //------------------------ parameterization data for segmentation 1 ----------------------
856 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
857 parData->SetUniqueID(1); // this is a function for detId=1
858 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
859 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq",parData);
861 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
862 // injected one to consider
863 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
864 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
865 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
866 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
867 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
868 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
869 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
871 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
872 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
874 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.982178,"pixNoiseMPV");
875 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.067505,"pixNoiseSigma");
876 // and readout timing scheme
877 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
878 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
880 itsSimuParam->AddRespFunParam(parData);
883 //------------------------ parameterization data for segmentation 2 ----------------------
884 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
885 parData->SetUniqueID(2); // this is a function for detId=2
886 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
887 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq",parData);
889 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
890 // injected one to consider
891 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
892 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
893 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
894 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
895 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
896 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
897 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
899 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
900 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
902 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.982178,"pixNoiseMPV");
903 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.067505,"pixNoiseSigma");
904 // and readout timing scheme
905 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
906 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
908 itsSimuParam->AddRespFunParam(parData);
914 //________________________________________________________________________________________________________//
916 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 20 C, //
917 // || 1 MRad + 1e13 new/cm2 //
919 //___\/___________________________________________________________________________________________________//
921 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map1MRad1e13_20deg( Double_t sncut)
923 //const char* macroname = "MakeITSUSimuParam.C";
925 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
927 itsSimuParam->SetNLayers(kNLayers);
928 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
931 printf(" ---> WARNING WARNING WARNING --- Parameterization is not final, it is set to the 30 deg irradiated sensor!"); return;
932 Double_t qscale[knSNcut]={0.446298, 0.45217, 0.405819, 0.457178, 0.488428, 0.508903};
933 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
935 // Add spread function parameterization data
936 AliITSUParamList* parData = 0;
938 //------------------------ parameterization data for segmentation 0 ----------------------
939 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
940 parData->SetUniqueID(0); // this is a function for detId=0
941 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
942 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq_20deg",parData);
944 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
945 // injected one to consider
946 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
947 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
948 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
949 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
950 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
951 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
952 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
954 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
955 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
957 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.980760,"pixNoiseMPV");
958 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.091568,"pixNoiseSigma");
959 // and readout timing scheme
960 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
961 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
963 itsSimuParam->AddRespFunParam(parData);
966 //------------------------ parameterization data for segmentation 1 ----------------------
967 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
968 parData->SetUniqueID(1); // this is a function for detId=1
969 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
970 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq_20deg",parData);
972 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
973 // injected one to consider
974 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
975 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
976 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
977 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
978 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
979 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
980 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
982 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
983 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
985 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.980760,"pixNoiseMPV");
986 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.091568,"pixNoiseSigma");
987 // and readout timing scheme
988 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
989 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
991 itsSimuParam->AddRespFunParam(parData);
994 //------------------------ parameterization data for segmentation 2 ----------------------
995 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
996 parData->SetUniqueID(2); // this is a function for detId=2
997 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
998 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq_20deg",parData);
1000 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1001 // injected one to consider
1002 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1003 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1004 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1005 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1006 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1007 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1008 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1010 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1011 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1013 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.980760,"pixNoiseMPV");
1014 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.091568,"pixNoiseSigma");
1015 // and readout timing scheme
1016 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1017 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1019 itsSimuParam->AddRespFunParam(parData);
1021 return itsSimuParam;
1024 //________________________________________________________________________________________________________//
1026 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 20 C, //
1027 // || 300kRad + 3e12 new/cm2 //
1029 //___\/___________________________________________________________________________________________________//
1031 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map300kRad3e12_20deg( Double_t sncut)
1033 //const char* macroname = "MakeITSUSimuParam.C";
1035 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
1037 itsSimuParam->SetNLayers(kNLayers);
1038 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
1041 printf(" ---> WARNING WARNING WARNING --- Parameterization is not final, it is set to the 30 deg irradiated sensor!"); return;
1042 Double_t qscale[knSNcut]={0.446298, 0.45217 ,0.405819, 0.457178, 0.488428, 0.508903};
1043 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
1045 // Add spread function parameterization data
1046 AliITSUParamList* parData = 0;
1048 //------------------------ parameterization data for segmentation 0 ----------------------
1049 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1050 parData->SetUniqueID(0); // this is a function for detId=0
1051 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1052 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq_20deg",parData);
1054 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1055 // injected one to consider
1056 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1057 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1058 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1059 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1060 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1061 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1062 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1064 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1065 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1067 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.218402,"pixNoiseMPV");
1068 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.616870,"pixNoiseSigma");
1069 // and readout timing scheme
1070 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1071 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1073 itsSimuParam->AddRespFunParam(parData);
1076 //------------------------ parameterization data for segmentation 1 ----------------------
1077 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1078 parData->SetUniqueID(1); // this is a function for detId=1
1079 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1080 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq_20deg",parData);
1082 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1083 // injected one to consider
1084 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1085 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1086 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1087 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1088 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1089 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1090 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1092 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1093 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1095 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.218402,"pixNoiseMPV");
1096 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.616870,"pixNoiseSigma");
1097 // and readout timing scheme
1098 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1099 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1101 itsSimuParam->AddRespFunParam(parData);
1104 //------------------------ parameterization data for segmentation 2 ----------------------
1105 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1106 parData->SetUniqueID(2); // this is a function for detId=2
1107 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
1108 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq_20deg",parData);
1110 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1111 // injected one to consider
1112 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1113 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1114 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1115 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1116 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1117 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1118 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1120 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1121 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1123 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.218402,"pixNoiseMPV");
1124 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.616870,"pixNoiseSigma");
1125 // and readout timing scheme
1126 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1127 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1129 itsSimuParam->AddRespFunParam(parData);
1131 return itsSimuParam;
1143 //_______________________________________________________________
1144 void SetPSFParams(TString pixType, AliITSUParamList* parData )
1147 // Reads the PSF map and sets the parameters
1149 printf("Loading charge spread histo %s from file %s\n",pixType.Data(),inpPSFName);
1150 TFile* fin = new TFile(inpPSFName);
1152 printf("NO parameters are set! Input file %s doesn't exist\n",inpPSFName);
1157 hProfWrk = dynamic_cast<TH2*> fin->Get(pixType.Data());
1159 printf("PSF map %s doesn't exist!!!\n",pixType.Data());
1162 hProfWrk = (TH2*) hProfWrk->Clone();
1163 hProfWrk->SetDirectory(0);
1166 parData->AddParamObject(hProfWrk);
1167 parData->SetParameter(AliITSUSimulationPix::kChargeSpreadType,AliITSUSimulationPix::kSpreadFunHisto,pixType.Data());