1 //RS: before running MakeITSUSimuParam call ".x LoadLibs.C"
3 // Reference sensor parameterizations
4 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map(Double_t sncut);// don't forget to turn off diode shift for P26 in Config.C
5 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map( Double_t sncut);
6 // Irradiated sensor parameterizations P31
7 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map1MRad( Double_t sncut);
8 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map300kRad3e12( Double_t sncut);
9 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map1MRad1e13( Double_t sncut);
10 // Irradiated sensor parameterizations P26
11 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map300kRad3e12( Double_t sncut);
12 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map1MRad1e13( Double_t sncut);
13 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map300kRad3e12_20deg( Double_t sncut);
14 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map1MRad1e13_20deg( Double_t sncut);
16 // Reference sensor parameterizations with 2 2D Gaussian
17 AliITSUSimuParam* MakeITSUSimuParam_M32P26MapRecenteredBroadened(Double_t broadening);//
21 void SetPSFParams(TString pixType, AliITSUParamList* parData);
23 // To turn noise generation ON set these values to 1
24 const int kAddNoise = -1;
25 const int kAddNoiseInAllMod = -1;
27 const char* inpPSFName = "$ALICE_ROOT/ITS/UPGRADE/misc/ITSU_pixel_response_PSFs.root";
28 const int kNLayers = 7;
31 const int kSNcut = 5; // Threshold/Noise cut. CAN BE CHANGED IN THE RANGE [5,10] no other values are allowed.
32 const int knSNcut = 6 ; // Number of tuned SNcut fixed to 6.
34 const double kBroadeningFactor = 1.0; // For the 2 2D Gaussian parameterization, allowed range [0.5,2.0]
38 these are readout phases settings:
40 1) abs(kROShifts)<1: the modules of the layer are synchronized, the layer
41 phase is set to kROShifts*ROCycleLength of the modules of this layer
42 2) abs(kROShifts)>1: each module within the layer will have random phase within its ROCycleLength
44 const float kROShifts[kNLayers] = {0.5,0.5,0.5, -0.5,-0.5, 0.5,0.5};
46 void MakeITSUSimuParam(Int_t simuType = 9, const char* cdbURI="local://") {
47 //========================================================================
49 // Steering macro for ITS simulation parameters
52 // Contact: levente.molnar@cern.ch
55 //****** DO NOT FORGET TO SET THE RIGHT GEOMETRY IN THE Config.C *****
57 //****** P26 chips Config.C parameters *****
60 // sensor thickness 18 um
61 // SET diode staggering to: kDiodShiftM32terP31X[][] = {0.0, 0.0};
62 // SET diode staggering to: kDiodShiftM32terP31Z[][] = {0.0, 0.0};
65 //****** P31 chips Config.C parameters *****
68 // sensor thickness 18 um
69 // SET diode staggering to: kDiodShiftM32terP31X[][] = {0.30,-0.19};
70 // SET diode staggering to: kDiodShiftM32terP31Z[][] = {0.0, 0.0};
73 //========================================================================
74 AliITSUSimuParam *param = 0;
76 // Select only one parameterziation... and don't forget to set 18 um thickness in Config.C !!!
81 //____ MIMOSA32 P26 Response parameterzied by map ---> selected for TDR
82 param = MakeITSUSimuParam_M32P26Map(kSNcut);
86 //____ MIMOSA32ter P31 Response parameterzied by map
87 param = MakeITSUSimuParam_M32terP31Map(kSNcut);
91 //____ MIMOSA32ter P31 Response parameterzied by map 1MRad irradiation
92 param = MakeITSUSimuParam_M32terP31Map1MRad(kSNcut);
96 //____ MIMOSA32ter P31 Response parameterzied by map , 300kRad + 3e12 neq/cm2 irradiation
97 param = MakeITSUSimuParam_M32terP31Map300kRad3e12(kSNcut);
101 //____ MIMOSA32ter P31 Response parameterzied by map , 1MRad+ 1e13 neq/cm2 irradiation
102 param = MakeITSUSimuParam_M32terP31Map1MRad1e13(kSNcut);
106 //___ MIMOSA32 P26 , 300kRad + 3e12 neq/cm2 irradiation 30 deg
107 param = MakeITSUSimuParam_M32P26Map300kRad3e12(kSNcut);
111 //____ MIMOSA32 P26 , 300kRad + 3e12 neq/cm2 irradiation 20 deg
112 param = MakeITSUSimuParam_M32P26Map300kRad3e12_20deg(kSNcut);
116 //___ MIMOSA32 P26 , 1MRad+ 1e13 neq/cm2 irradiation 30 deg
117 param = MakeITSUSimuParam_M32P26Map1MRad1e13(kSNcut);
121 //___ MIMOSA32 P26 , 1MRad+ 1e13 neq/cm2 irradiation 20 deg
122 param = MakeITSUSimuParam_M32P26Map1MRad1e13_20deg(kSNcut);
126 //____ MIMOSA32 P26 Response parameterzied 2 2D Gaussian and recentered to 0,0 and the sigmas are broadened for TDR6 vs TDR7 geometry study
127 //____ Map only available for SNcut = 5 !!!
128 //____ Introduced on the 31/03/2014
129 param = MakeITSUSimuParam_M32P26MapRecenteredBroadened(kBroadeningFactor);
139 // ----------------------------------------------------------
140 // save in CDB storage
141 AliCDBManager* cdb = AliCDBManager::Instance();
142 cdb->SetDefaultStorage(cdbURI);
144 AliCDBMetaData *md= new AliCDBMetaData();
145 md->SetResponsible("ITS Upgrade Project");
146 md->SetComment("Simulation parameters for ITS Upgrade.");
147 md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
148 md->SetBeamPeriod(0);
149 AliCDBId id("ITS/Calib/SimuParam",0,AliCDBRunRange::Infinity());
150 cdb->GetDefaultStorage()->Put(param,id, md);
155 //________________________________________________________________________________________________________//
157 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C, no irradiation //
160 //___\/___________________________________________________________________________________________________//
161 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map( Int_t sncut)
163 //const char* macroname = "MakeITSUSimuParam.C";
165 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
167 itsSimuParam->SetNLayers(kNLayers);
168 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
170 Double_t qscale[knSNcut]={1.036868, 1.055369, 1.083679, 1.098877, 1.126203, 1.145552};
171 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
173 // Add spread function parameterization data
174 AliITSUParamList* parData = 0;
176 //------------------------ parameterization data for segmentation 0 ----------------------
177 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
178 parData->SetUniqueID(0); // this is a function for detId=0
179 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
180 SetPSFParams("hProfPSD_M32P26",parData);
182 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
183 // injected one to consider
184 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
185 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
186 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
187 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
188 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
189 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
190 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
192 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
193 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
195 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
196 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
197 // and readout timing scheme
198 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
199 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
201 itsSimuParam->AddRespFunParam(parData);
204 //------------------------ parameterization data for segmentation 1 ----------------------
205 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
206 parData->SetUniqueID(1); // this is a function for detId=1
207 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
208 SetPSFParams("hProfPSD_M32P26",parData);
210 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
211 // injected one to consider
212 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
213 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
214 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
215 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
216 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
217 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
218 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
220 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
221 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
223 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
224 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
225 // and readout timing scheme
226 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
227 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
229 itsSimuParam->AddRespFunParam(parData);
232 //------------------------ parameterization data for segmentation 2 ----------------------
233 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
234 parData->SetUniqueID(2); // this is a function for detId=2
235 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
236 SetPSFParams("hProfPSD_M32P26",parData);
238 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
239 // injected one to consider
240 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
241 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
242 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
243 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
244 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
245 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
246 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
248 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
249 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
251 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
252 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
253 // and readout timing scheme
254 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
255 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
257 itsSimuParam->AddRespFunParam(parData);
262 //________________________________________________________________________________________________________//
264 // || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, no irradiation //
267 //___\/___________________________________________________________________________________________________//
269 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map( Double_t sncut)
271 //const char* macroname = "MakeITSUSimuParam.C";
273 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
275 itsSimuParam->SetNLayers(kNLayers);
276 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
279 Double_t qscale[knSNcut]={1.396168, 1.439231, 1.484984, 1.534129, 1.570807, 1.600674};
280 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
282 // Add spread function parameterization data
283 AliITSUParamList* parData = 0;
285 //------------------------ parameterization data for segmentation 0 ----------------------
286 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
287 parData->SetUniqueID(0); // this is a function for detId=0
288 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
289 SetPSFParams("hProfPSD_M32terP31",parData);
291 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
292 // injected one to consider
293 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
294 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
295 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
296 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
297 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
298 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
300 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
301 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
303 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
304 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,20.62,"pixNoiseMPV");
305 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.55,"pixNoiseSigma");
306 // and readout timing scheme
307 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
308 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
310 itsSimuParam->AddRespFunParam(parData);
314 //------------------------ parameterization data for segmentation 1 ----------------------
315 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
316 parData->SetUniqueID(1); // this is a function for detId=1
317 parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
318 SetPSFParams("hProfPSD_M32terP31",parData);
321 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
322 // injected one to consider
323 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
324 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
325 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
326 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
327 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
328 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
330 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
331 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
333 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
334 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,20.62,"pixNoiseMPV");
335 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.55,"pixNoiseSigma");
336 // and readout timing scheme
337 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
338 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
340 // now set the parameters according selected function
341 itsSimuParam->AddRespFunParam(parData);
345 //------------------------ parameterization data for segmentation 2 ----------------------
346 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
347 parData->SetUniqueID(2); // this is a function for detId=2
348 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
349 SetPSFParams("hProfPSD_M32terP31", parData );
351 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
352 // injected one to consider
353 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
354 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
355 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
356 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
357 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
358 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
359 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
361 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
362 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
363 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,20.62,"pixNoiseMPV");
364 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.55,"pixNoiseSigma");
365 // and readout timing scheme
366 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
367 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
369 itsSimuParam->AddRespFunParam(parData);
374 //________________________________________________________________________________________________________//
376 // || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, 1 MRad irradiation //
379 //___\/___________________________________________________________________________________________________//
380 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map1MRad( Double_t sncut)
382 //const char* macroname = "MakeITSUSimuParam.C";
384 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
386 itsSimuParam->SetNLayers(kNLayers);
387 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
390 printf(" ---> WARNING WARNING WARNING --- Parameterization is not final, it is set to the reference sensor!"); return;
391 Double_t qscale[knSNcut]={1.396168, 1.439231, 1.484984, 1.534129, 1.570807, 1.600674};
392 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
394 // Add spread function parameterization data
395 AliITSUParamList* parData = 0;
397 //------------------------ parameterization data for segmentation 0 ----------------------
398 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
399 parData->SetUniqueID(0); // this is a function for detId=0
400 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
401 SetPSFParams("hProfPSD_M32terP31_1MRad",parData);
403 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
404 // injected one to consider
405 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
406 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
407 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
408 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
409 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
410 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
412 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
413 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
415 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
416 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,21.843706,"pixNoiseMPV");
417 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.417494,"pixNoiseSigma");
418 // and readout timing scheme
419 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
420 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
422 itsSimuParam->AddRespFunParam(parData);
426 //------------------------ parameterization data for segmentation 1 ----------------------
427 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
428 parData->SetUniqueID(1); // this is a function for detId=1
429 parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
430 SetPSFParams("hProfPSD_M32terP31_1MRad",parData);
433 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
434 // injected one to consider
435 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
436 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
437 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
438 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
439 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
440 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
442 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
443 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
445 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
446 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,21.843706,"pixNoiseMPV");
447 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.417494,"pixNoiseSigma");
448 // and readout timing scheme
449 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
450 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
452 // now set the parameters according selected function
453 itsSimuParam->AddRespFunParam(parData);
457 //------------------------ parameterization data for segmentation 2 ----------------------
458 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
459 parData->SetUniqueID(2); // this is a function for detId=2
460 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
461 SetPSFParams("hProfPSD_M32terP31_1MRad", parData );
463 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
464 // injected one to consider
465 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
466 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
467 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
468 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
469 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
470 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
471 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
473 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
474 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
475 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,21.843706,"pixNoiseMPV");
476 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.417494,"pixNoiseSigma");
477 // and readout timing scheme
478 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
479 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
481 itsSimuParam->AddRespFunParam(parData);
485 //________________________________________________________________________________________________________//
487 // || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, //
488 // || irradiation 300 kRad + 3e12 neq /cm2 // \||/ //
489 //___\/___________________________________________________________________________________________________//
492 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map300kRad3e12( Double_t sncut)
494 //const char* macroname = "MakeITSUSimuParam.C";
496 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
498 itsSimuParam->SetNLayers(kNLayers);
499 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
502 Double_t qscale[knSNcut]={1.532517, 1.617223, 1.641962, 1.714945, 1.73809, 1.749223};
503 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
505 // Add spread function parameterization data
506 AliITSUParamList* parData = 0;
508 //------------------------ parameterization data for segmentation 0 ----------------------
509 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
510 parData->SetUniqueID(0); // this is a function for detId=0
511 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
512 SetPSFParams("hProfPSD_M32terP31_300kRad3e12neq",parData);
514 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
515 // injected one to consider
516 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
517 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
518 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
519 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
520 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
521 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
523 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
524 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
526 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
527 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,27.274548,"pixNoiseMPV");
528 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.723949,"pixNoiseSigma");
529 // and readout timing scheme
530 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
531 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
533 itsSimuParam->AddRespFunParam(parData);
537 //------------------------ parameterization data for segmentation 1 ----------------------
538 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
539 parData->SetUniqueID(1); // this is a function for detId=1
540 parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
541 SetPSFParams("hProfPSD_M32terP31_300kRad3e12neq",parData);
544 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
545 // injected one to consider
546 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
547 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
548 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
549 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
550 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
551 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
553 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
554 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
556 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
557 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,27.274548,"pixNoiseMPV");
558 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.723949,"pixNoiseSigma");
559 // and readout timing scheme
560 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
561 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
563 // now set the parameters according selected function
564 itsSimuParam->AddRespFunParam(parData);
568 //------------------------ parameterization data for segmentation 2 ----------------------
569 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
570 parData->SetUniqueID(2); // this is a function for detId=2
571 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
572 SetPSFParams("hProfPSD_M32terP31_300kRad3e12neq", parData );
574 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
575 // injected one to consider
576 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
577 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
578 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
579 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
580 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
581 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
582 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
584 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
585 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
586 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,27.274548,"pixNoiseMPV");
587 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.723949,"pixNoiseSigma");
588 // and readout timing scheme
589 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
590 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
592 itsSimuParam->AddRespFunParam(parData);
597 //________________________________________________________________________________________________________//
599 // || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, //
600 // || irradiation 1MRad + 1e13 neq /cm2 // \||/ //
601 //___\/___________________________________________________________________________________________________//
604 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map1MRad1e13( Double_t sncut)
606 //const char* macroname = "MakeITSUSimuParam.C";
608 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
610 itsSimuParam->SetNLayers(kNLayers);
611 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
614 Double_t qscale[knSNcut]={1.530764, 1.542968, 1.602497, 1.621188, 1.68353 ,1.639263};
615 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
617 // Add spread function parameterization data
618 AliITSUParamList* parData = 0;
620 //------------------------ parameterization data for segmentation 0 ----------------------
621 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
622 parData->SetUniqueID(0); // this is a function for detId=0
623 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
624 SetPSFParams("hProfPSD_M32terP31_1MRad1e13neq",parData);
626 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
627 // injected one to consider
628 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
629 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
630 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
631 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
632 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
633 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
635 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
636 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
638 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
639 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,43.840798,"pixNoiseMPV");
640 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.187048,"pixNoiseSigma");
641 // and readout timing scheme
642 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
643 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
645 itsSimuParam->AddRespFunParam(parData);
649 //------------------------ parameterization data for segmentation 1 ----------------------
650 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
651 parData->SetUniqueID(1); // this is a function for detId=1
652 parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
653 SetPSFParams("hProfPSD_M32terP31_1MRad1e13neq",parData);
656 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
657 // injected one to consider
658 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
659 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
660 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
661 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
662 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
663 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
665 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
666 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
668 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
669 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,43.840798,"pixNoiseMPV");
670 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.187048,"pixNoiseSigma");
671 // and readout timing scheme
672 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
673 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
675 // now set the parameters according selected function
676 itsSimuParam->AddRespFunParam(parData);
680 //------------------------ parameterization data for segmentation 2 ----------------------
681 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
682 parData->SetUniqueID(2); // this is a function for detId=2
683 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
684 SetPSFParams("hProfPSD_M32terP31_1MRad1e13neq", parData );
686 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
687 // injected one to consider
688 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
689 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
690 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
691 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
692 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
693 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
694 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
696 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
697 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
698 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,43.840798,"pixNoiseMPV");
699 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.187048,"pixNoiseSigma");
700 // and readout timing scheme
701 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
702 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
704 itsSimuParam->AddRespFunParam(parData);
711 //________________________________________________________________________________________________________//
713 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C, //
714 // || 300kRad + 3e12 new/cm2 //
716 //___\/___________________________________________________________________________________________________//
718 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map300kRad3e12( Double_t sncut)
720 //const char* macroname = "MakeITSUSimuParam.C";
722 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
724 itsSimuParam->SetNLayers(kNLayers);
725 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
728 Double_t qscale[knSNcut]={0.446298, 0.45217, 0.405819, 0.457178, 0.488428, 0.508903};
729 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
731 // Add spread function parameterization data
732 AliITSUParamList* parData = 0;
734 //------------------------ parameterization data for segmentation 0 ----------------------
735 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
736 parData->SetUniqueID(0); // this is a function for detId=0
737 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
738 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq",parData);
740 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
741 // injected one to consider
742 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
743 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
744 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
745 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
746 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
747 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
748 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
750 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
751 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
753 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.566901,"pixNoiseMPV");
754 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.665233,"pixNoiseSigma");
755 // and readout timing scheme
756 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
757 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
759 itsSimuParam->AddRespFunParam(parData);
762 //------------------------ parameterization data for segmentation 1 ----------------------
763 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
764 parData->SetUniqueID(1); // this is a function for detId=1
765 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
766 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq",parData);
768 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
769 // injected one to consider
770 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
771 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
772 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
773 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
774 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
775 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
776 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
778 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
779 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
781 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.566901,"pixNoiseMPV");
782 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.665233,"pixNoiseSigma");
783 // and readout timing scheme
784 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
785 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
787 itsSimuParam->AddRespFunParam(parData);
790 //------------------------ parameterization data for segmentation 2 ----------------------
791 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
792 parData->SetUniqueID(2); // this is a function for detId=2
793 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
794 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq",parData);
796 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
797 // injected one to consider
798 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
799 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
800 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
801 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
802 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
803 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
804 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
806 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
807 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
809 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.566901,"pixNoiseMPV");
810 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.665233,"pixNoiseSigma");
811 // and readout timing scheme
812 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
813 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
815 itsSimuParam->AddRespFunParam(parData);
820 //________________________________________________________________________________________________________//
822 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C, //
823 // || 1 MRad + 1e13 new/cm2 //
825 //___\/___________________________________________________________________________________________________//
827 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map1MRad1e13( Double_t sncut)
829 //const char* macroname = "MakeITSUSimuParam.C";
831 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
833 itsSimuParam->SetNLayers(kNLayers);
834 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
837 Double_t qscale[knSNcut]={0.406783, 0.418178, 0.410906, 0.406477, 0.355895, 0.479006};
838 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
840 // Add spread function parameterization data
841 AliITSUParamList* parData = 0;
843 //------------------------ parameterization data for segmentation 0 ----------------------
844 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
845 parData->SetUniqueID(0); // this is a function for detId=0
846 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
847 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq",parData);
849 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
850 // injected one to consider
851 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
852 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
853 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
854 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
855 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
856 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
857 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
859 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
860 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
862 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.982178,"pixNoiseMPV");
863 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.067505,"pixNoiseSigma");
864 // and readout timing scheme
865 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
866 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
868 itsSimuParam->AddRespFunParam(parData);
871 //------------------------ parameterization data for segmentation 1 ----------------------
872 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
873 parData->SetUniqueID(1); // this is a function for detId=1
874 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
875 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq",parData);
877 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
878 // injected one to consider
879 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
880 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
881 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
882 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
883 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
884 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
885 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
887 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
888 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
890 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.982178,"pixNoiseMPV");
891 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.067505,"pixNoiseSigma");
892 // and readout timing scheme
893 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
894 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
896 itsSimuParam->AddRespFunParam(parData);
899 //------------------------ parameterization data for segmentation 2 ----------------------
900 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
901 parData->SetUniqueID(2); // this is a function for detId=2
902 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
903 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq",parData);
905 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
906 // injected one to consider
907 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
908 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
909 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
910 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
911 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
912 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
913 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
915 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
916 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
918 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.982178,"pixNoiseMPV");
919 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.067505,"pixNoiseSigma");
920 // and readout timing scheme
921 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
922 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
924 itsSimuParam->AddRespFunParam(parData);
930 //________________________________________________________________________________________________________//
932 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 20 C, //
933 // || 1 MRad + 1e13 new/cm2 //
935 //___\/___________________________________________________________________________________________________//
937 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map1MRad1e13_20deg( Double_t sncut)
939 //const char* macroname = "MakeITSUSimuParam.C";
941 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
943 itsSimuParam->SetNLayers(kNLayers);
944 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
947 printf(" ---> WARNING WARNING WARNING --- Parameterization is not final, it is set to the 30 deg irradiated sensor!"); return;
948 Double_t qscale[knSNcut]={0.446298, 0.45217, 0.405819, 0.457178, 0.488428, 0.508903};
949 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
951 // Add spread function parameterization data
952 AliITSUParamList* parData = 0;
954 //------------------------ parameterization data for segmentation 0 ----------------------
955 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
956 parData->SetUniqueID(0); // this is a function for detId=0
957 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
958 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq_20deg",parData);
960 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
961 // injected one to consider
962 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
963 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
964 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
965 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
966 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
967 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
968 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
970 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
971 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
973 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.980760,"pixNoiseMPV");
974 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.091568,"pixNoiseSigma");
975 // and readout timing scheme
976 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
977 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
979 itsSimuParam->AddRespFunParam(parData);
982 //------------------------ parameterization data for segmentation 1 ----------------------
983 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
984 parData->SetUniqueID(1); // this is a function for detId=1
985 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
986 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq_20deg",parData);
988 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
989 // injected one to consider
990 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
991 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
992 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
993 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
994 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
995 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
996 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
998 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
999 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1001 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.980760,"pixNoiseMPV");
1002 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.091568,"pixNoiseSigma");
1003 // and readout timing scheme
1004 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1005 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1007 itsSimuParam->AddRespFunParam(parData);
1010 //------------------------ parameterization data for segmentation 2 ----------------------
1011 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1012 parData->SetUniqueID(2); // this is a function for detId=2
1013 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
1014 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq_20deg",parData);
1016 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1017 // injected one to consider
1018 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1019 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1020 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1021 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1022 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1023 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1024 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1026 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1027 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1029 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.980760,"pixNoiseMPV");
1030 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.091568,"pixNoiseSigma");
1031 // and readout timing scheme
1032 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1033 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1035 itsSimuParam->AddRespFunParam(parData);
1037 return itsSimuParam;
1040 //________________________________________________________________________________________________________//
1042 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 20 C, //
1043 // || 300kRad + 3e12 new/cm2 //
1045 //___\/___________________________________________________________________________________________________//
1047 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map300kRad3e12_20deg( Double_t sncut)
1049 //const char* macroname = "MakeITSUSimuParam.C";
1051 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
1053 itsSimuParam->SetNLayers(kNLayers);
1054 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
1057 printf(" ---> WARNING WARNING WARNING --- Parameterization is not final, it is set to the 30 deg irradiated sensor!"); return;
1058 Double_t qscale[knSNcut]={0.446298, 0.45217 ,0.405819, 0.457178, 0.488428, 0.508903};
1059 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
1061 // Add spread function parameterization data
1062 AliITSUParamList* parData = 0;
1064 //------------------------ parameterization data for segmentation 0 ----------------------
1065 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1066 parData->SetUniqueID(0); // this is a function for detId=0
1067 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1068 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq_20deg",parData);
1070 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1071 // injected one to consider
1072 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1073 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1074 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1075 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1076 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1077 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1078 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1080 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1081 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1083 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.218402,"pixNoiseMPV");
1084 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.616870,"pixNoiseSigma");
1085 // and readout timing scheme
1086 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1087 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1089 itsSimuParam->AddRespFunParam(parData);
1092 //------------------------ parameterization data for segmentation 1 ----------------------
1093 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1094 parData->SetUniqueID(1); // this is a function for detId=1
1095 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1096 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq_20deg",parData);
1098 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1099 // injected one to consider
1100 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1101 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1102 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1103 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1104 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1105 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1106 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1108 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1109 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1111 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.218402,"pixNoiseMPV");
1112 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.616870,"pixNoiseSigma");
1113 // and readout timing scheme
1114 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1115 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1117 itsSimuParam->AddRespFunParam(parData);
1120 //------------------------ parameterization data for segmentation 2 ----------------------
1121 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1122 parData->SetUniqueID(2); // this is a function for detId=2
1123 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
1124 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq_20deg",parData);
1126 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1127 // injected one to consider
1128 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1129 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1130 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1131 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1132 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1133 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1134 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1136 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1137 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1139 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.218402,"pixNoiseMPV");
1140 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.616870,"pixNoiseSigma");
1141 // and readout timing scheme
1142 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1143 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1145 itsSimuParam->AddRespFunParam(parData);
1147 return itsSimuParam;
1152 //________________________________________________________________________________________________________//
1154 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C, no irradiation //
1155 // || - Map is fitted by two 2D Gaussian and recetnered to the x,z = [0,0] //
1156 // \||/ - The Gaussian sigma can be broadened with the factor "broadening" to mimic larger pixels //
1157 // \/ - then 20 x0 20 um^2 //
1158 // - The fake rate is set to 10^-5 //
1159 //________________________________________________________________________________________________________//
1161 AliITSUSimuParam* MakeITSUSimuParam_M32P26MapRecenteredBroadened(Double_t broadening)
1163 //const char* macroname = "MakeITSUSimuParam.C";
1165 const Int_t sncut = 5;
1166 TString histoName = Form("hProfPSD_M32P26_Cent_Broad_%d",TMath::Nint(broadening*100));
1170 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
1172 itsSimuParam->SetNLayers(kNLayers);
1173 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
1176 Double_t qscale[1]={1.036868};
1177 if(sncut != 5 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro! \n",sncut); return;}
1179 // Add spread function parameterization data
1180 AliITSUParamList* parData = 0;
1182 //------------------------ parameterization data for segmentation 0 ----------------------
1183 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1184 parData->SetUniqueID(0); // this is a function for detId=0
1185 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1186 SetPSFParams(histoName,parData);
1188 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1189 // injected one to consider
1190 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1191 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1192 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1193 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1194 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-5,"pixFakeRate");
1195 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1196 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1198 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1199 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1201 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
1202 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
1203 // and readout timing scheme
1204 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1205 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1207 itsSimuParam->AddRespFunParam(parData);
1210 //------------------------ parameterization data for segmentation 1 ----------------------
1211 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1212 parData->SetUniqueID(1); // this is a function for detId=1
1213 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1214 SetPSFParams(histoName,parData);
1216 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1217 // injected one to consider
1218 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1219 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1220 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1221 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1222 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-5,"pixFakeRate");
1223 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1224 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1226 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1227 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1229 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
1230 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
1231 // and readout timing scheme
1232 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1233 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1235 itsSimuParam->AddRespFunParam(parData);
1238 //------------------------ parameterization data for segmentation 2 ----------------------
1239 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1240 parData->SetUniqueID(2); // this is a function for detId=2
1241 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
1242 SetPSFParams(histoName,parData);
1244 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1245 // injected one to consider
1246 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1247 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1248 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1249 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1250 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-5,"pixFakeRate");
1251 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1252 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1254 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1255 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1257 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
1258 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
1259 // and readout timing scheme
1260 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1261 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1263 itsSimuParam->AddRespFunParam(parData);
1265 return itsSimuParam;
1275 //_______________________________________________________________
1276 void SetPSFParams(TString pixType, AliITSUParamList* parData )
1279 // Reads the PSF map and sets the parameters
1281 printf("Loading charge spread histo %s from file %s\n",pixType.Data(),inpPSFName);
1282 TFile* fin = new TFile(inpPSFName);
1284 printf("NO parameters are set! Input file %s doesn't exist\n",inpPSFName);
1289 hProfWrk = dynamic_cast<TH2*> fin->Get(pixType.Data());
1291 printf("PSF map %s doesn't exist!!!\n",pixType.Data());
1294 hProfWrk = (TH2*) hProfWrk->Clone();
1295 hProfWrk->SetDirectory(0);
1298 parData->AddParamObject(hProfWrk);
1299 parData->SetParameter(AliITSUSimulationPix::kChargeSpreadType,AliITSUSimulationPix::kSpreadFunHisto,pixType.Data());