]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/UPGRADE/testITSU/MakeITSUSimuParam.C
An example Config.C for ITSU pileup studies in pp
[u/mrichter/AliRoot.git] / ITS / UPGRADE / testITSU / MakeITSUSimuParam.C
1 //RS: before running MakeITSUSimuParam call ".x LoadLibs.C"
2
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
16 // Reference sensor parameterizations with 2 2D Gaussian
17 AliITSUSimuParam*  MakeITSUSimuParam_M32P26MapRecenteredBroadened(Double_t broadening);//
18
19
20 // Digital sensor parameter response test
21 AliITSUSimuParam*  MakeITSUSimuParam_1stDigital();//
22
23
24
25 void SetPSFParams(TString pixType, AliITSUParamList* parData);
26
27 // To turn noise generation ON set these values to 1
28 const int kAddNoise = -1;
29 const int kAddNoiseInAllMod = -1;
30
31 const char* inpPSFName = "$ALICE_ROOT/ITS/UPGRADE/misc/ITSU_pixel_response_PSFs.root";
32 const int kNLayers = 7;
33
34
35 const int kSNcut = 5;   // Threshold/Noise cut. CAN BE CHANGED IN THE RANGE [5,10] no other values are allowed.
36 const int knSNcut = 6 ; // Number of tuned SNcut fixed to 6.
37
38 const double kBroadeningFactor = 1.0; // For the 2 2D  Gaussian parameterization, allowed range [0.5,2.0]
39
40
41 /*
42  these are readout phases settings:
43  the rule is:
44  1) abs(kROShifts)<1: the modules of the layer are synchronized, the layer
45  phase is set to kROShifts*ROCycleLength of the modules of this layer
46  2) abs(kROShifts)>1: each module within the layer will have random phase within its ROCycleLength
47  */
48 const float kROShifts[kNLayers] = {0.5,0.5,0.5, -0.5,-0.5, 0.5,0.5};
49
50 void MakeITSUSimuParam(Int_t simuType = 9, const char* cdbURI="local://") {
51     //========================================================================
52     //
53     // Steering macro for ITS simulation parameters
54     //
55     // Author: L.Molnar
56     // Contact: levente.molnar@cern.ch
57     //
58     //
59     //****** DO NOT FORGET TO SET THE RIGHT GEOMETRY IN THE Config.C *****
60     //
61     //****** P26 chips Config.C parameters *****
62     // col pitch 20 um
63     // row pitch 20 um
64     // sensor thickness 18 um
65     // SET diode staggering to:   kDiodShiftM32terP31X[][] = {0.0, 0.0};
66     // SET diode staggering to:   kDiodShiftM32terP31Z[][] = {0.0, 0.0};
67     //
68     //
69     //****** P31 chips Config.C parameters  *****
70     // col pitch 20 um
71     // row pitch 33 um
72     // sensor thickness 18 um
73     // SET diode staggering to:   kDiodShiftM32terP31X[][] = {0.30,-0.19};
74     // SET diode staggering to:   kDiodShiftM32terP31Z[][] = {0.0, 0.0};
75     //
76     //
77     //========================================================================
78     AliITSUSimuParam *param = 0;
79     //
80     // Select only one parameterziation... and don't forget to set 18 um thickness in Config.C !!!
81     
82     switch(simuType) {
83             
84         case 0:
85             //____ MIMOSA32 P26 Response parameterzied by map ---> selected for TDR
86             param = MakeITSUSimuParam_M32P26Map(kSNcut);
87             break;
88             //
89         case 1:
90             //____ MIMOSA32ter P31 Response parameterzied by map
91             param = MakeITSUSimuParam_M32terP31Map(kSNcut);
92             break;
93             //
94         case 2:
95             //____ MIMOSA32ter P31 Response parameterzied by map 1MRad irradiation
96             param = MakeITSUSimuParam_M32terP31Map1MRad(kSNcut);
97             break;
98             //
99         case 3:
100             //____ MIMOSA32ter P31 Response parameterzied by map , 300kRad + 3e12 neq/cm2 irradiation
101             param = MakeITSUSimuParam_M32terP31Map300kRad3e12(kSNcut);
102             break;
103             //
104         case 4:
105             //____ MIMOSA32ter P31 Response parameterzied by map , 1MRad+ 1e13 neq/cm2 irradiation
106             param = MakeITSUSimuParam_M32terP31Map1MRad1e13(kSNcut);
107             break;
108             //
109         case 5:
110             //___ MIMOSA32 P26 , 300kRad + 3e12 neq/cm2 irradiation 30 deg
111             param = MakeITSUSimuParam_M32P26Map300kRad3e12(kSNcut);
112             break;
113             //
114         case 6:
115             //____ MIMOSA32 P26 , 300kRad + 3e12 neq/cm2 irradiation 20 deg
116             param = MakeITSUSimuParam_M32P26Map300kRad3e12_20deg(kSNcut);
117             break;
118             //
119         case 7:
120             //___ MIMOSA32 P26 ,  1MRad+ 1e13 neq/cm2 irradiation 30 deg
121             param = MakeITSUSimuParam_M32P26Map1MRad1e13(kSNcut);
122             break;
123             //
124         case 8:
125             //___ MIMOSA32 P26 ,  1MRad+ 1e13 neq/cm2 irradiation 20 deg
126             param = MakeITSUSimuParam_M32P26Map1MRad1e13_20deg(kSNcut);
127             break;
128             //
129         case 9:
130             //____ MIMOSA32 P26 Response parameterzied 2 2D Gaussian and recentered to 0,0 and the sigmas are broadened for TDR6 vs TDR7 geometry study
131             //____ Map only available for SNcut = 5 !!!
132             //____ Introduced on the 31/03/2014
133             param = MakeITSUSimuParam_M32P26MapRecenteredBroadened(kBroadeningFactor);
134             break;
135             //
136         case 10:
137             //____ 1st digital chip response test
138             param = MakeITSUSimuParam_1stDigital();
139             break;
140             //
141         default:
142             break;
143     }
144     
145     
146     param->Print();
147     //
148     // ----------------------------------------------------------
149     // save in CDB storage
150     AliCDBManager* cdb = AliCDBManager::Instance();
151     cdb->SetDefaultStorage(cdbURI);
152     //
153     AliCDBMetaData *md= new AliCDBMetaData();
154     md->SetResponsible("ITS Upgrade Project");
155     md->SetComment("Simulation parameters for ITS Upgrade.");
156     md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
157     md->SetBeamPeriod(0);
158     AliCDBId id("ITS/Calib/SimuParam",0,AliCDBRunRange::Infinity());
159     cdb->GetDefaultStorage()->Put(param,id, md);
160     //
161 }
162
163
164 //________________________________________________________________________________________________________//
165 //   ||                                                                                                   //
166 //   || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C, no irradiation              //
167 //   ||                                                                                                   //
168 //  \||/                                                                                                  //
169 //___\/___________________________________________________________________________________________________//
170 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map( Int_t sncut)
171 {
172     //const char* macroname = "MakeITSUSimuParam.C";
173     //
174     AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
175     //
176     itsSimuParam->SetNLayers(kNLayers);
177     for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
178     //
179     Double_t qscale[knSNcut]={1.036868, 1.055369,       1.083679,       1.098877,       1.126203,       1.145552};
180     if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
181     //
182     // Add spread function parameterization data
183     AliITSUParamList* parData = 0;
184     //
185     //------------------------ parameterization data for segmentation 0 ----------------------
186     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
187     parData->SetUniqueID(0);                                              // this is a function for detId=0
188     parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
189     SetPSFParams("hProfPSD_M32P26",parData);
190     //
191     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
192     // injected one to consider
193     //
194     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
195     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
196     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
197     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
198     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
199     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
200     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
201     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
202     // Noise
203     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
204     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
205     
206     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
207     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
208     // and readout timing scheme
209     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
210     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
211     //
212     itsSimuParam->AddRespFunParam(parData);
213     //
214     //
215     //------------------------ parameterization data for segmentation 1 ----------------------
216     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
217     parData->SetUniqueID(1);                                              // this is a function for detId=1
218     parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
219     SetPSFParams("hProfPSD_M32P26",parData);
220     //
221     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
222     // injected one to consider
223     //
224     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
225     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
226     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
227     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
228     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
229     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
230     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
231     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
232     // Noise
233     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
234     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
235     
236     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
237     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
238     // and readout timing scheme
239     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
240     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
241     //
242     itsSimuParam->AddRespFunParam(parData);
243     //
244     //
245     //------------------------ parameterization data for segmentation 2 ----------------------
246     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
247     parData->SetUniqueID(2);                                              // this is a function for detId=2
248     parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
249     SetPSFParams("hProfPSD_M32P26",parData);
250     //
251     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
252     // injected one to consider
253     //
254     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
255     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
256     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
257     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
258     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
259     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
260     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
261     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
262     // Noise
263     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
264     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
265     
266     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
267     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
268     // and readout timing scheme
269     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
270     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
271     //
272     itsSimuParam->AddRespFunParam(parData);
273     //
274     return itsSimuParam;
275 }
276
277 //________________________________________________________________________________________________________//
278 //   ||                                                                                                   //
279 //   || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, no irradiation           //
280 //   ||                                                                                                   //
281 //  \||/                                                                                                  //
282 //___\/___________________________________________________________________________________________________//
283
284 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map( Double_t sncut)
285 {
286     //const char* macroname = "MakeITSUSimuParam.C";
287     //
288     AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
289     //
290     itsSimuParam->SetNLayers(kNLayers);
291     for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
292     //
293     //
294     Double_t qscale[knSNcut]={1.396168, 1.439231,       1.484984,       1.534129,       1.570807,       1.600674};
295     if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
296     //
297     // Add spread function parameterization data
298     AliITSUParamList* parData = 0;
299     //
300     //------------------------ parameterization data for segmentation 0 ----------------------
301     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
302     parData->SetUniqueID(0);                                              // this is a function for detId=0
303     parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
304     SetPSFParams("hProfPSD_M32terP31",parData);
305     //
306     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
307     // injected one to consider
308     //
309     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
310     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
311     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
312     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
313     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
314     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
315     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
316     
317     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
318     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
319     // Noise
320     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
321     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,20.62,"pixNoiseMPV");
322     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.55,"pixNoiseSigma");
323     // and readout timing scheme
324     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
325     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
326     //
327     itsSimuParam->AddRespFunParam(parData);
328     //
329     //
330     //
331     //------------------------ parameterization data for segmentation 1 ----------------------
332     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
333     parData->SetUniqueID(1);                                              // this is a function for detId=1
334     parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
335     SetPSFParams("hProfPSD_M32terP31",parData);
336     
337     //
338     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
339     // injected one to consider
340     //
341     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
342     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
343     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
344     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
345     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
346     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
347     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
348     
349     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
350     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
351     // Noise
352     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
353     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,20.62,"pixNoiseMPV");
354     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.55,"pixNoiseSigma");
355     // and readout timing scheme
356     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
357     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
358     //
359     // now set the parameters according selected function
360     itsSimuParam->AddRespFunParam(parData);
361     //
362     //
363     //
364     //------------------------ parameterization data for segmentation 2 ----------------------
365     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
366     parData->SetUniqueID(2);                                              // this is a function for detId=2
367     parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
368     SetPSFParams("hProfPSD_M32terP31", parData );
369     //
370     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
371     // injected one to consider
372     //
373     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
374     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
375     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
376     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
377     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
378     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
379     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
380     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
381     // Noise
382     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
383     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
384     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,20.62,"pixNoiseMPV");
385     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.55,"pixNoiseSigma");
386     // and readout timing scheme
387     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
388     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
389     //
390     itsSimuParam->AddRespFunParam(parData);
391     //
392     return itsSimuParam;
393 }
394
395 //________________________________________________________________________________________________________//
396 //   ||                                                                                                   //
397 //   || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, 1 MRad irradiation       //
398 //   ||                                                                                                   //
399 //  \||/                                                                                                  //
400 //___\/___________________________________________________________________________________________________//
401 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map1MRad( Double_t sncut)
402 {
403     //const char* macroname = "MakeITSUSimuParam.C";
404     //
405     AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
406     //
407     itsSimuParam->SetNLayers(kNLayers);
408     for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
409     //
410     //
411     printf(" ---> WARNING WARNING WARNING --- Parameterization is not final, it is set to the reference sensor!"); return;
412     Double_t qscale[knSNcut]={1.396168, 1.439231,       1.484984,       1.534129,       1.570807,       1.600674};
413     if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
414     //
415     // Add spread function parameterization data
416     AliITSUParamList* parData = 0;
417     //
418     //------------------------ parameterization data for segmentation 0 ----------------------
419     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
420     parData->SetUniqueID(0);                                              // this is a function for detId=0
421     parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
422     SetPSFParams("hProfPSD_M32terP31_1MRad",parData);
423     //
424     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
425     // injected one to consider
426     //
427     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
428     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
429     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
430     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
431     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
432     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
433     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
434     
435     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
436     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
437     // Noise
438     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
439     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,21.843706,"pixNoiseMPV");
440     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.417494,"pixNoiseSigma");
441     // and readout timing scheme
442     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
443     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
444     //
445     itsSimuParam->AddRespFunParam(parData);
446     //
447     //
448     //
449     //------------------------ parameterization data for segmentation 1 ----------------------
450     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
451     parData->SetUniqueID(1);                                              // this is a function for detId=1
452     parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
453     SetPSFParams("hProfPSD_M32terP31_1MRad",parData);
454     
455     //
456     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
457     // injected one to consider
458     //
459     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
460     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
461     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
462     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
463     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
464     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
465     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
466     
467     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
468     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
469     // Noise
470     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
471     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,21.843706,"pixNoiseMPV");
472     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.417494,"pixNoiseSigma");
473     // and readout timing scheme
474     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
475     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
476     //
477     // now set the parameters according selected function
478     itsSimuParam->AddRespFunParam(parData);
479     //
480     //
481     //
482     //------------------------ parameterization data for segmentation 2 ----------------------
483     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
484     parData->SetUniqueID(2);                                              // this is a function for detId=2
485     parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
486     SetPSFParams("hProfPSD_M32terP31_1MRad", parData );
487     //
488     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
489     // injected one to consider
490     //
491     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
492     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
493     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
494     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
495     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
496     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
497     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
498     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
499     // Noise
500     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
501     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
502     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,21.843706,"pixNoiseMPV");
503     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.417494,"pixNoiseSigma");
504     // and readout timing scheme
505     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
506     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
507     //
508     itsSimuParam->AddRespFunParam(parData);
509     //
510     return itsSimuParam;
511 }
512 //________________________________________________________________________________________________________//
513 //   ||                                                                                                   //
514 //   || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C,                          //
515 //   ||          irradiation 300 kRad + 3e12 neq /cm2                                                     //  \||/                                                                                                  //
516 //___\/___________________________________________________________________________________________________//
517
518
519 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map300kRad3e12( Double_t sncut)
520 {
521     //const char* macroname = "MakeITSUSimuParam.C";
522     //
523     AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
524     //
525     itsSimuParam->SetNLayers(kNLayers);
526     for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
527     //
528     //
529     Double_t qscale[knSNcut]={1.532517, 1.617223,       1.641962,       1.714945,       1.73809,        1.749223};
530     if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
531     //
532     // Add spread function parameterization data
533     AliITSUParamList* parData = 0;
534     //
535     //------------------------ parameterization data for segmentation 0 ----------------------
536     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
537     parData->SetUniqueID(0);                                              // this is a function for detId=0
538     parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
539     SetPSFParams("hProfPSD_M32terP31_300kRad3e12neq",parData);
540     //
541     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
542     // injected one to consider
543     //
544     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
545     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
546     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
547     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
548     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
549     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
550     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
551     
552     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
553     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
554     // Noise
555     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
556     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,27.274548,"pixNoiseMPV");
557     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.723949,"pixNoiseSigma");
558     // and readout timing scheme
559     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
560     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
561     //
562     itsSimuParam->AddRespFunParam(parData);
563     //
564     //
565     //
566     //------------------------ parameterization data for segmentation 1 ----------------------
567     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
568     parData->SetUniqueID(1);                                              // this is a function for detId=1
569     parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
570     SetPSFParams("hProfPSD_M32terP31_300kRad3e12neq",parData);
571     
572     //
573     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
574     // injected one to consider
575     //
576     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
577     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
578     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
579     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
580     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
581     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
582     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
583     
584     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
585     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
586     // Noise
587     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
588     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,27.274548,"pixNoiseMPV");
589     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.723949,"pixNoiseSigma");
590     // and readout timing scheme
591     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
592     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
593     //
594     // now set the parameters according selected function
595     itsSimuParam->AddRespFunParam(parData);
596     //
597     //
598     //
599     //------------------------ parameterization data for segmentation 2 ----------------------
600     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
601     parData->SetUniqueID(2);                                              // this is a function for detId=2
602     parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
603     SetPSFParams("hProfPSD_M32terP31_300kRad3e12neq", parData );
604     //
605     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
606     // injected one to consider
607     //
608     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
609     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
610     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
611     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
612     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
613     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
614     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
615     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
616     // Noise
617     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
618     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
619     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,27.274548,"pixNoiseMPV");
620     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.723949,"pixNoiseSigma");
621     // and readout timing scheme
622     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
623     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
624     //
625     itsSimuParam->AddRespFunParam(parData);
626     //
627     return itsSimuParam;
628 }
629
630 //________________________________________________________________________________________________________//
631 //   ||                                                                                                   //
632 //   || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C,                          //
633 //   ||          irradiation 1MRad + 1e13 neq /cm2                                                        //  \||/                                                                                                  //
634 //___\/___________________________________________________________________________________________________//
635
636
637 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map1MRad1e13( Double_t sncut)
638 {
639     //const char* macroname = "MakeITSUSimuParam.C";
640     //
641     AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
642     //
643     itsSimuParam->SetNLayers(kNLayers);
644     for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
645     //
646     //
647     Double_t qscale[knSNcut]={1.530764, 1.542968,       1.602497,       1.621188,       1.68353 ,1.639263};
648     if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
649     //
650     // Add spread function parameterization data
651     AliITSUParamList* parData = 0;
652     //
653     //------------------------ parameterization data for segmentation 0 ----------------------
654     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
655     parData->SetUniqueID(0);                                              // this is a function for detId=0
656     parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
657     SetPSFParams("hProfPSD_M32terP31_1MRad1e13neq",parData);
658     //
659     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
660     // injected one to consider
661     //
662     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
663     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
664     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
665     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
666     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
667     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
668     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
669     
670     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
671     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
672     // Noise
673     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
674     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,43.840798,"pixNoiseMPV");
675     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.187048,"pixNoiseSigma");
676     // and readout timing scheme
677     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
678     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
679     //
680     itsSimuParam->AddRespFunParam(parData);
681     //
682     //
683     //
684     //------------------------ parameterization data for segmentation 1 ----------------------
685     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
686     parData->SetUniqueID(1);                                              // this is a function for detId=1
687     parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
688     SetPSFParams("hProfPSD_M32terP31_1MRad1e13neq",parData);
689     
690     //
691     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
692     // injected one to consider
693     //
694     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
695     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
696     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
697     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
698     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
699     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
700     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
701     
702     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
703     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
704     // Noise
705     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
706     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,43.840798,"pixNoiseMPV");
707     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.187048,"pixNoiseSigma");
708     // and readout timing scheme
709     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
710     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
711     //
712     // now set the parameters according selected function
713     itsSimuParam->AddRespFunParam(parData);
714     //
715     //
716     //
717     //------------------------ parameterization data for segmentation 2 ----------------------
718     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
719     parData->SetUniqueID(2);                                              // this is a function for detId=2
720     parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
721     SetPSFParams("hProfPSD_M32terP31_1MRad1e13neq", parData );
722     //
723     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
724     // injected one to consider
725     //
726     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
727     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
728     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
729     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
730     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
731     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
732     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
733     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
734     // Noise
735     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
736     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
737     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,43.840798,"pixNoiseMPV");
738     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.187048,"pixNoiseSigma");
739     // and readout timing scheme
740     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
741     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
742     //
743     itsSimuParam->AddRespFunParam(parData);
744     //
745     return itsSimuParam;
746 }
747
748
749
750 //________________________________________________________________________________________________________//
751 //   ||                                                                                                   //
752 //   || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C,                             //
753 //   ||    300kRad + 3e12 new/cm2                                                                         //
754 //  \||/                                                                                                  //
755 //___\/___________________________________________________________________________________________________//
756
757 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map300kRad3e12( Double_t sncut)
758 {
759     //const char* macroname = "MakeITSUSimuParam.C";
760     //
761     AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
762     //
763     itsSimuParam->SetNLayers(kNLayers);
764     for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
765     //
766     //
767     Double_t qscale[knSNcut]={0.446298, 0.45217,        0.405819,       0.457178,       0.488428,       0.508903};
768     if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
769     //
770     // Add spread function parameterization data
771     AliITSUParamList* parData = 0;
772     //
773     //------------------------ parameterization data for segmentation 0 ----------------------
774     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
775     parData->SetUniqueID(0);                                              // this is a function for detId=0
776     parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
777     SetPSFParams("hProfPSD_M32P26_300kRad3e12neq",parData);
778     //
779     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
780     // injected one to consider
781     //
782     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
783     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
784     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
785     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
786     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
787     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
788     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
789     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
790     // Noise
791     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
792     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
793     
794     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.566901,"pixNoiseMPV");
795     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.665233,"pixNoiseSigma");
796     // and readout timing scheme
797     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
798     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
799     //
800     itsSimuParam->AddRespFunParam(parData);
801     //
802     //
803     //------------------------ parameterization data for segmentation 1 ----------------------
804     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
805     parData->SetUniqueID(1);                                              // this is a function for detId=1
806     parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
807     SetPSFParams("hProfPSD_M32P26_300kRad3e12neq",parData);
808     //
809     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
810     // injected one to consider
811     //
812     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
813     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
814     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
815     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
816     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
817     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
818     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
819     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
820     // Noise
821     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
822     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
823     
824     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.566901,"pixNoiseMPV");
825     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.665233,"pixNoiseSigma");
826     // and readout timing scheme
827     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
828     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
829     //
830     itsSimuParam->AddRespFunParam(parData);
831     //
832     //
833     //------------------------ parameterization data for segmentation 2 ----------------------
834     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
835     parData->SetUniqueID(2);                                              // this is a function for detId=2
836     parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
837     SetPSFParams("hProfPSD_M32P26_300kRad3e12neq",parData);
838     //
839     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
840     // injected one to consider
841     //
842     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
843     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
844     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
845     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
846     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
847     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
848     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
849     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
850     // Noise
851     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
852     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
853     
854     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.566901,"pixNoiseMPV");
855     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.665233,"pixNoiseSigma");
856     // and readout timing scheme
857     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
858     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
859     //
860     itsSimuParam->AddRespFunParam(parData);
861     //
862     return itsSimuParam;
863 }
864
865 //________________________________________________________________________________________________________//
866 //   ||                                                                                                   //
867 //   || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C,                             //
868 //   ||    1 MRad + 1e13 new/cm2                                                                         //
869 //  \||/                                                                                                  //
870 //___\/___________________________________________________________________________________________________//
871
872 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map1MRad1e13( Double_t sncut)
873 {
874     //const char* macroname = "MakeITSUSimuParam.C";
875     //
876     AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
877     //
878     itsSimuParam->SetNLayers(kNLayers);
879     for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
880     //
881     //
882     Double_t qscale[knSNcut]={0.406783, 0.418178,       0.410906,  0.406477,    0.355895,       0.479006};
883     if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
884     //
885     // Add spread function parameterization data
886     AliITSUParamList* parData = 0;
887     //
888     //------------------------ parameterization data for segmentation 0 ----------------------
889     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
890     parData->SetUniqueID(0);                                              // this is a function for detId=0
891     parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
892     SetPSFParams("hProfPSD_M32P26_1MRad1e13neq",parData);
893     //
894     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
895     // injected one to consider
896     //
897     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
898     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
899     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
900     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
901     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
902     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
903     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
904     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
905     // Noise
906     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
907     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
908     
909     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.982178,"pixNoiseMPV");
910     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.067505,"pixNoiseSigma");
911     // and readout timing scheme
912     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
913     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
914     //
915     itsSimuParam->AddRespFunParam(parData);
916     //
917     //
918     //------------------------ parameterization data for segmentation 1 ----------------------
919     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
920     parData->SetUniqueID(1);                                              // this is a function for detId=1
921     parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
922     SetPSFParams("hProfPSD_M32P26_1MRad1e13neq",parData);
923     //
924     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
925     // injected one to consider
926     //
927     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
928     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
929     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
930     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
931     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
932     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
933     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
934     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
935     // Noise
936     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
937     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
938     
939     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.982178,"pixNoiseMPV");
940     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.067505,"pixNoiseSigma");
941     // and readout timing scheme
942     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
943     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
944     //
945     itsSimuParam->AddRespFunParam(parData);
946     //
947     //
948     //------------------------ parameterization data for segmentation 2 ----------------------
949     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
950     parData->SetUniqueID(2);                                              // this is a function for detId=2
951     parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
952     SetPSFParams("hProfPSD_M32P26_1MRad1e13neq",parData);
953     //
954     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
955     // injected one to consider
956     //
957     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
958     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
959     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
960     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
961     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
962     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
963     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
964     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
965     // Noise
966     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
967     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
968     
969     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.982178,"pixNoiseMPV");
970     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.067505,"pixNoiseSigma");
971     // and readout timing scheme
972     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
973     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
974     //
975     itsSimuParam->AddRespFunParam(parData);
976     //
977     return itsSimuParam;
978 }
979
980
981 //________________________________________________________________________________________________________//
982 //   ||                                                                                                   //
983 //   || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 20 C,                             //
984 //   ||    1 MRad + 1e13 new/cm2                                                                         //
985 //  \||/                                                                                                  //
986 //___\/___________________________________________________________________________________________________//
987
988 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map1MRad1e13_20deg( Double_t sncut)
989 {
990     //const char* macroname = "MakeITSUSimuParam.C";
991     //
992     AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
993     //
994     itsSimuParam->SetNLayers(kNLayers);
995     for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
996     //
997     //
998     printf(" ---> WARNING WARNING WARNING --- Parameterization is not final, it is set to the 30 deg irradiated sensor!"); return;
999     Double_t qscale[knSNcut]={0.446298, 0.45217,        0.405819,       0.457178,       0.488428,       0.508903};
1000     if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
1001     //
1002     // Add spread function parameterization data
1003     AliITSUParamList* parData = 0;
1004     //
1005     //------------------------ parameterization data for segmentation 0 ----------------------
1006     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
1007     parData->SetUniqueID(0);                                              // this is a function for detId=0
1008     parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1009     SetPSFParams("hProfPSD_M32P26_1MRad1e13neq_20deg",parData);
1010     //
1011     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1012     // injected one to consider
1013     //
1014     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1015     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1016     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1017     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1018     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1019     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1020     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1021     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1022     // Noise
1023     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1024     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1025     
1026     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.980760,"pixNoiseMPV");
1027     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.091568,"pixNoiseSigma");
1028     // and readout timing scheme
1029     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1030     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1031     //
1032     itsSimuParam->AddRespFunParam(parData);
1033     //
1034     //
1035     //------------------------ parameterization data for segmentation 1 ----------------------
1036     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
1037     parData->SetUniqueID(1);                                              // this is a function for detId=1
1038     parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1039     SetPSFParams("hProfPSD_M32P26_1MRad1e13neq_20deg",parData);
1040     //
1041     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1042     // injected one to consider
1043     //
1044     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1045     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1046     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1047     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1048     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1049     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1050     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1051     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1052     // Noise
1053     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1054     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1055     
1056     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.980760,"pixNoiseMPV");
1057     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.091568,"pixNoiseSigma");
1058     // and readout timing scheme
1059     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1060     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1061     //
1062     itsSimuParam->AddRespFunParam(parData);
1063     //
1064     //
1065     //------------------------ parameterization data for segmentation 2 ----------------------
1066     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
1067     parData->SetUniqueID(2);                                              // this is a function for detId=2
1068     parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
1069     SetPSFParams("hProfPSD_M32P26_1MRad1e13neq_20deg",parData);
1070     //
1071     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1072     // injected one to consider
1073     //
1074     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1075     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1076     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1077     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1078     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1079     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1080     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1081     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1082     // Noise
1083     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1084     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1085     
1086     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.980760,"pixNoiseMPV");
1087     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.091568,"pixNoiseSigma");
1088     // and readout timing scheme
1089     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1090     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1091     //
1092     itsSimuParam->AddRespFunParam(parData);
1093     //
1094     return itsSimuParam;
1095 }
1096
1097 //________________________________________________________________________________________________________//
1098 //   ||                                                                                                   //
1099 //   || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 20 C,                             //
1100 //   ||    300kRad + 3e12 new/cm2                                                                         //
1101 //  \||/                                                                                                  //
1102 //___\/___________________________________________________________________________________________________//
1103
1104 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map300kRad3e12_20deg( Double_t sncut)
1105 {
1106     //const char* macroname = "MakeITSUSimuParam.C";
1107     //
1108     AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
1109     //
1110     itsSimuParam->SetNLayers(kNLayers);
1111     for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
1112     //
1113     //
1114     printf(" ---> WARNING WARNING WARNING --- Parameterization is not final, it is set to the 30 deg irradiated sensor!"); return;
1115     Double_t qscale[knSNcut]={0.446298, 0.45217 ,0.405819,      0.457178,       0.488428,       0.508903};
1116     if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
1117     //
1118     // Add spread function parameterization data
1119     AliITSUParamList* parData = 0;
1120     //
1121     //------------------------ parameterization data for segmentation 0 ----------------------
1122     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
1123     parData->SetUniqueID(0);                                              // this is a function for detId=0
1124     parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1125     SetPSFParams("hProfPSD_M32P26_300kRad3e12neq_20deg",parData);
1126     //
1127     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1128     // injected one to consider
1129     //
1130     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1131     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1132     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1133     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1134     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1135     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1136     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1137     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1138     // Noise
1139     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1140     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1141     
1142     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.218402,"pixNoiseMPV");
1143     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.616870,"pixNoiseSigma");
1144     // and readout timing scheme
1145     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1146     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1147     //
1148     itsSimuParam->AddRespFunParam(parData);
1149     //
1150     //
1151     //------------------------ parameterization data for segmentation 1 ----------------------
1152     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
1153     parData->SetUniqueID(1);                                              // this is a function for detId=1
1154     parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1155     SetPSFParams("hProfPSD_M32P26_300kRad3e12neq_20deg",parData);
1156     //
1157     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1158     // injected one to consider
1159     //
1160     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1161     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1162     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1163     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1164     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1165     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1166     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1167     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1168     // Noise
1169     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1170     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1171     
1172     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.218402,"pixNoiseMPV");
1173     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.616870,"pixNoiseSigma");
1174     // and readout timing scheme
1175     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1176     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1177     //
1178     itsSimuParam->AddRespFunParam(parData);
1179     //
1180     //
1181     //------------------------ parameterization data for segmentation 2 ----------------------
1182     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
1183     parData->SetUniqueID(2);                                              // this is a function for detId=2
1184     parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
1185     SetPSFParams("hProfPSD_M32P26_300kRad3e12neq_20deg",parData);
1186     //
1187     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1188     // injected one to consider
1189     //
1190     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1191     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1192     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1193     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1194     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1195     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1196     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1197     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1198     // Noise
1199     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1200     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1201     
1202     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.218402,"pixNoiseMPV");
1203     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.616870,"pixNoiseSigma");
1204     // and readout timing scheme
1205     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1206     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1207     //
1208     itsSimuParam->AddRespFunParam(parData);
1209     //
1210     return itsSimuParam;
1211 }
1212
1213
1214 //
1215 //________________________________________________________________________________________________________//
1216 //   ||                                                                                                   //
1217 //   || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C, no irradiation              //
1218 //   ||   - Map is fitted by two 2D Gaussian and recetnered to the x,z = [0,0]                            //
1219 //  \||/  - The Gaussian sigma can be broadened with the factor "broadening" to mimic larger pixels       //
1220 //   \/   - then 20 x0 20 um^2                                                                            //
1221 //        - The fake rate is set to 10^-5                                                                 //
1222 //________________________________________________________________________________________________________//
1223
1224 AliITSUSimuParam* MakeITSUSimuParam_M32P26MapRecenteredBroadened(Double_t broadening)
1225 {
1226     //const char* macroname = "MakeITSUSimuParam.C";
1227     //
1228     const Int_t sncut = 5;
1229     TString histoName = Form("hProfPSD_M32P26_Cent_Broad_%d",TMath::Nint(broadening*100));
1230     
1231     
1232     //
1233     AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
1234     //
1235     itsSimuParam->SetNLayers(kNLayers);
1236     for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
1237     //
1238     
1239     Double_t qscale[1]={1.036868};
1240     if(sncut != 5 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro! \n",sncut); return;}
1241     //
1242     // Add spread function parameterization data
1243     AliITSUParamList* parData = 0;
1244     //
1245     //------------------------ parameterization data for segmentation 0 ----------------------
1246     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
1247     parData->SetUniqueID(0);                                              // this is a function for detId=0
1248     parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1249     SetPSFParams(histoName,parData);
1250     //
1251     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1252     // injected one to consider
1253     //
1254     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1255     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1256     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1257     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1258     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1259     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-5,"pixFakeRate");
1260     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1261     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1262     // Noise
1263     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1264     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1265     
1266     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
1267     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
1268     // and readout timing scheme
1269     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1270     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1271     //
1272     itsSimuParam->AddRespFunParam(parData);
1273     //
1274     //
1275     //------------------------ parameterization data for segmentation 1 ----------------------
1276     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
1277     parData->SetUniqueID(1);                                              // this is a function for detId=1
1278     parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1279     SetPSFParams(histoName,parData);
1280     //
1281     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1282     // injected one to consider
1283     //
1284     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1285     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1286     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1287     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1288     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1289     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-5,"pixFakeRate");
1290     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1291     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1292     // Noise
1293     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1294     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1295     
1296     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
1297     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
1298     // and readout timing scheme
1299     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1300     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1301     //
1302     itsSimuParam->AddRespFunParam(parData);
1303     //
1304     //
1305     //------------------------ parameterization data for segmentation 2 ----------------------
1306     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
1307     parData->SetUniqueID(2);                                              // this is a function for detId=2
1308     parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
1309     SetPSFParams(histoName,parData);
1310     //
1311     // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1312     // injected one to consider
1313     //
1314     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1315     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1316     parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1317     parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1318     parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1319     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-5,"pixFakeRate");
1320     parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1321     parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1322     // Noise
1323     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1324     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1325     
1326     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
1327     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
1328     // and readout timing scheme
1329     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1330     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1331     //
1332     itsSimuParam->AddRespFunParam(parData);
1333     //
1334     return itsSimuParam;
1335 }
1336
1337 //
1338 //________________________________________________________________________________________________________//
1339 //   ||                                                                                                   //
1340 //   ||     First digital chip response parameterization                                                  //
1341 //   ||   - The fake rate is set to 10^-5                                                                 //
1342 //  \||/                                                                                                  //
1343 //   \/                                                                                                   //
1344 //                                                                                                        //
1345 //________________________________________________________________________________________________________//
1346
1347 AliITSUSimuParam* MakeITSUSimuParam_1stDigital()
1348 {
1349     //
1350     AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
1351     //
1352     itsSimuParam->SetNLayers(kNLayers);
1353     for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
1354     //
1355     // Add spread function parameterization data
1356     AliITSUParamList* parData = 0;
1357     //
1358     //------------------------ parameterization data for segmentation 0 ----------------------
1359     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
1360     parData->SetUniqueID(0);                                              // this is a function for detId=0
1361     parData->SetNameTitle("Monopix_seg1","First digital param");
1362     //
1363     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,1,"DigitalSim");
1364     // obligatory params for all AliITSUSimulationPix functions: fake rate
1365     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-5,"pixFakeRate");
1366     // Noise
1367     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1368     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1369     //
1370     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
1371     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
1372     // and readout timing scheme
1373     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1374     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1375     //
1376     itsSimuParam->AddRespFunParam(parData);
1377     //
1378     //
1379     //------------------------ parameterization data for segmentation 1 ----------------------
1380     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
1381     parData->SetUniqueID(1);                                              // this is a function for detId=0
1382     parData->SetNameTitle("Monopix_seg1","First digital param");
1383     //
1384     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,1,"DigitalSim");
1385     //
1386     // obligatory params for all AliITSUSimulationPix functions: fake rate
1387     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-5,"pixFakeRate");
1388     // Noise
1389     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1390     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1391     //
1392     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
1393     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
1394     // and readout timing scheme
1395     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1396     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1397     //
1398     itsSimuParam->AddRespFunParam(parData);
1399     //
1400     //
1401     //------------------------ parameterization data for segmentation 2 ----------------------
1402     parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams);   // no custom params are needed
1403     parData->SetUniqueID(2);                                              // this is a function for detId=0
1404     parData->SetNameTitle("Monopix_seg1","First digital param");
1405     //
1406     parData->SetParameter(AliITSUSimulationPix::kDigitalSim,1,"DigitalSim");
1407     //
1408     // obligatory params for all AliITSUSimulationPix functions: fake rate
1409     parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-5,"pixFakeRate");
1410     // Noise
1411     parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1412     parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1413     //
1414     parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
1415     parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
1416     // and readout timing scheme
1417     parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1418     parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1419     //
1420     itsSimuParam->AddRespFunParam(parData);
1421
1422     //
1423     return itsSimuParam;
1424
1425 }
1426
1427
1428
1429
1430
1431 //_______________________________________________________________
1432 void SetPSFParams(TString pixType, AliITSUParamList* parData )
1433 {
1434     //
1435     // Reads the PSF map and sets the parameters
1436     //
1437     printf("Loading charge spread histo %s from file %s\n",pixType.Data(),inpPSFName);
1438     TFile* fin = new TFile(inpPSFName);
1439     if (!fin) { 
1440         printf("NO parameters are set! Input file %s doesn't exist\n",inpPSFName); 
1441         exit(1);
1442     }
1443     //
1444     TH2* hProfWrk = 0;
1445     hProfWrk =  dynamic_cast<TH2*> fin->Get(pixType.Data());
1446     if(!hProfWrk) {
1447         printf("PSF map %s doesn't exist!!!\n",pixType.Data()); 
1448         exit(1);
1449     }
1450     hProfWrk = (TH2*) hProfWrk->Clone();
1451     hProfWrk->SetDirectory(0);
1452     fin->Close();  
1453     //
1454     parData->AddParamObject(hProfWrk);
1455     parData->SetParameter(AliITSUSimulationPix::kChargeSpreadType,AliITSUSimulationPix::kSpreadFunHisto,pixType.Data());
1456 }