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