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);//
20 // Digital sensor parameter response test
21 AliITSUSimuParam* MakeITSUSimuParam_1stDigital();//
25 void SetPSFParams(TString pixType, AliITSUParamList* parData);
27 // To turn noise generation ON set these values to 1
28 const int kAddNoise = -1;
29 const int kAddNoiseInAllMod = -1;
31 const char* inpPSFName = "$ALICE_ROOT/ITS/UPGRADE/misc/ITSU_pixel_response_PSFs.root";
32 const int kNLayers = 7;
35 const int kSNcut = 5; // Threshold/Noise cut. CAN BE CHANGED IN THE RANGE [5,10] no other values are allowed.
36 const int knSNcut = 6 ; // Number of tuned SNcut fixed to 6.
38 const double kBroadeningFactor = 1.0; // For the 2 2D Gaussian parameterization, allowed range [0.5,2.0]
42 these are readout phases settings:
44 1) abs(kROShifts)<1: the modules of the layer are synchronized, the layer
45 phase is set to kROShifts*ROCycleLength of the modules of this layer
46 2) abs(kROShifts)>1: each module within the layer will have random phase within its ROCycleLength
48 const float kROShifts[kNLayers] = {0.5,0.5,0.5, -0.5,-0.5, 0.5,0.5};
50 void MakeITSUSimuParam(Int_t simuType = 9, const char* cdbURI="local://") {
51 //========================================================================
53 // Steering macro for ITS simulation parameters
56 // Contact: levente.molnar@cern.ch
59 //****** DO NOT FORGET TO SET THE RIGHT GEOMETRY IN THE Config.C *****
61 //****** P26 chips Config.C parameters *****
64 // sensor thickness 18 um
65 // SET diode staggering to: kDiodShiftM32terP31X[][] = {0.0, 0.0};
66 // SET diode staggering to: kDiodShiftM32terP31Z[][] = {0.0, 0.0};
69 //****** P31 chips Config.C parameters *****
72 // sensor thickness 18 um
73 // SET diode staggering to: kDiodShiftM32terP31X[][] = {0.30,-0.19};
74 // SET diode staggering to: kDiodShiftM32terP31Z[][] = {0.0, 0.0};
77 //========================================================================
78 AliITSUSimuParam *param = 0;
80 // Select only one parameterziation... and don't forget to set 18 um thickness in Config.C !!!
85 //____ MIMOSA32 P26 Response parameterzied by map ---> selected for TDR
86 param = MakeITSUSimuParam_M32P26Map(kSNcut);
90 //____ MIMOSA32ter P31 Response parameterzied by map
91 param = MakeITSUSimuParam_M32terP31Map(kSNcut);
95 //____ MIMOSA32ter P31 Response parameterzied by map 1MRad irradiation
96 param = MakeITSUSimuParam_M32terP31Map1MRad(kSNcut);
100 //____ MIMOSA32ter P31 Response parameterzied by map , 300kRad + 3e12 neq/cm2 irradiation
101 param = MakeITSUSimuParam_M32terP31Map300kRad3e12(kSNcut);
105 //____ MIMOSA32ter P31 Response parameterzied by map , 1MRad+ 1e13 neq/cm2 irradiation
106 param = MakeITSUSimuParam_M32terP31Map1MRad1e13(kSNcut);
110 //___ MIMOSA32 P26 , 300kRad + 3e12 neq/cm2 irradiation 30 deg
111 param = MakeITSUSimuParam_M32P26Map300kRad3e12(kSNcut);
115 //____ MIMOSA32 P26 , 300kRad + 3e12 neq/cm2 irradiation 20 deg
116 param = MakeITSUSimuParam_M32P26Map300kRad3e12_20deg(kSNcut);
120 //___ MIMOSA32 P26 , 1MRad+ 1e13 neq/cm2 irradiation 30 deg
121 param = MakeITSUSimuParam_M32P26Map1MRad1e13(kSNcut);
125 //___ MIMOSA32 P26 , 1MRad+ 1e13 neq/cm2 irradiation 20 deg
126 param = MakeITSUSimuParam_M32P26Map1MRad1e13_20deg(kSNcut);
130 //____ MIMOSA32 P26 Response parameterzied 2 2D Gaussian and recentered to 0,0 and the sigmas are broadened for TDR6 vs TDR7 geometry study
131 //____ Map only available for SNcut = 5 !!!
132 //____ Introduced on the 31/03/2014
133 param = MakeITSUSimuParam_M32P26MapRecenteredBroadened(kBroadeningFactor);
137 //____ 1st digital chip response test
138 param = MakeITSUSimuParam_1stDigital();
148 // ----------------------------------------------------------
149 // save in CDB storage
150 AliCDBManager* cdb = AliCDBManager::Instance();
151 cdb->SetDefaultStorage(cdbURI);
153 AliCDBMetaData *md= new AliCDBMetaData();
154 md->SetResponsible("ITS Upgrade Project");
155 md->SetComment("Simulation parameters for ITS Upgrade.");
156 md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
157 md->SetBeamPeriod(0);
158 AliCDBId id("ITS/Calib/SimuParam",0,AliCDBRunRange::Infinity());
159 cdb->GetDefaultStorage()->Put(param,id, md);
164 //________________________________________________________________________________________________________//
166 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C, no irradiation //
169 //___\/___________________________________________________________________________________________________//
170 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map( Int_t sncut)
172 //const char* macroname = "MakeITSUSimuParam.C";
174 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
176 itsSimuParam->SetNLayers(kNLayers);
177 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
179 Double_t qscale[knSNcut]={1.036868, 1.055369, 1.083679, 1.098877, 1.126203, 1.145552};
180 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
182 // Add spread function parameterization data
183 AliITSUParamList* parData = 0;
185 //------------------------ parameterization data for segmentation 0 ----------------------
186 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
187 parData->SetUniqueID(0); // this is a function for detId=0
188 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
189 SetPSFParams("hProfPSD_M32P26",parData);
191 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
192 // injected one to consider
194 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
195 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
196 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
197 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
198 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
199 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
200 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
201 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
203 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
204 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
206 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
207 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
208 // and readout timing scheme
209 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
210 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
212 itsSimuParam->AddRespFunParam(parData);
215 //------------------------ parameterization data for segmentation 1 ----------------------
216 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
217 parData->SetUniqueID(1); // this is a function for detId=1
218 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
219 SetPSFParams("hProfPSD_M32P26",parData);
221 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
222 // injected one to consider
224 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
225 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
226 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
227 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
228 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
229 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
230 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
231 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
233 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
234 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
236 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
237 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
238 // and readout timing scheme
239 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
240 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
242 itsSimuParam->AddRespFunParam(parData);
245 //------------------------ parameterization data for segmentation 2 ----------------------
246 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
247 parData->SetUniqueID(2); // this is a function for detId=2
248 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
249 SetPSFParams("hProfPSD_M32P26",parData);
251 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
252 // injected one to consider
254 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
255 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
256 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
257 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
258 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
259 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
260 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
261 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
263 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
264 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
266 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
267 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
268 // and readout timing scheme
269 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
270 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
272 itsSimuParam->AddRespFunParam(parData);
277 //________________________________________________________________________________________________________//
279 // || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, no irradiation //
282 //___\/___________________________________________________________________________________________________//
284 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map( Double_t sncut)
286 //const char* macroname = "MakeITSUSimuParam.C";
288 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
290 itsSimuParam->SetNLayers(kNLayers);
291 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
294 Double_t qscale[knSNcut]={1.396168, 1.439231, 1.484984, 1.534129, 1.570807, 1.600674};
295 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
297 // Add spread function parameterization data
298 AliITSUParamList* parData = 0;
300 //------------------------ parameterization data for segmentation 0 ----------------------
301 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
302 parData->SetUniqueID(0); // this is a function for detId=0
303 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
304 SetPSFParams("hProfPSD_M32terP31",parData);
306 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
307 // injected one to consider
309 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
310 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
311 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
312 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
313 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
314 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
315 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
317 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
318 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
320 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
321 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,20.62,"pixNoiseMPV");
322 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.55,"pixNoiseSigma");
323 // and readout timing scheme
324 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
325 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
327 itsSimuParam->AddRespFunParam(parData);
331 //------------------------ parameterization data for segmentation 1 ----------------------
332 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
333 parData->SetUniqueID(1); // this is a function for detId=1
334 parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
335 SetPSFParams("hProfPSD_M32terP31",parData);
338 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
339 // injected one to consider
341 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
342 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
343 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
344 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
345 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
346 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
347 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
349 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
350 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
352 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
353 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,20.62,"pixNoiseMPV");
354 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.55,"pixNoiseSigma");
355 // and readout timing scheme
356 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
357 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
359 // now set the parameters according selected function
360 itsSimuParam->AddRespFunParam(parData);
364 //------------------------ parameterization data for segmentation 2 ----------------------
365 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
366 parData->SetUniqueID(2); // this is a function for detId=2
367 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
368 SetPSFParams("hProfPSD_M32terP31", parData );
370 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
371 // injected one to consider
373 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
374 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
375 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
376 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
377 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
378 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
379 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
380 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
382 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
383 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
384 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,20.62,"pixNoiseMPV");
385 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.55,"pixNoiseSigma");
386 // and readout timing scheme
387 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
388 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
390 itsSimuParam->AddRespFunParam(parData);
395 //________________________________________________________________________________________________________//
397 // || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, 1 MRad irradiation //
400 //___\/___________________________________________________________________________________________________//
401 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map1MRad( Double_t sncut)
403 //const char* macroname = "MakeITSUSimuParam.C";
405 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
407 itsSimuParam->SetNLayers(kNLayers);
408 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
411 printf(" ---> WARNING WARNING WARNING --- Parameterization is not final, it is set to the reference sensor!"); return;
412 Double_t qscale[knSNcut]={1.396168, 1.439231, 1.484984, 1.534129, 1.570807, 1.600674};
413 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
415 // Add spread function parameterization data
416 AliITSUParamList* parData = 0;
418 //------------------------ parameterization data for segmentation 0 ----------------------
419 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
420 parData->SetUniqueID(0); // this is a function for detId=0
421 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
422 SetPSFParams("hProfPSD_M32terP31_1MRad",parData);
424 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
425 // injected one to consider
427 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
428 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
429 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
430 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
431 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
432 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
433 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
435 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
436 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
438 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
439 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,21.843706,"pixNoiseMPV");
440 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.417494,"pixNoiseSigma");
441 // and readout timing scheme
442 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
443 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
445 itsSimuParam->AddRespFunParam(parData);
449 //------------------------ parameterization data for segmentation 1 ----------------------
450 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
451 parData->SetUniqueID(1); // this is a function for detId=1
452 parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
453 SetPSFParams("hProfPSD_M32terP31_1MRad",parData);
456 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
457 // injected one to consider
459 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
460 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
461 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
462 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
463 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
464 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
465 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
467 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
468 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
470 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
471 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,21.843706,"pixNoiseMPV");
472 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.417494,"pixNoiseSigma");
473 // and readout timing scheme
474 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
475 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
477 // now set the parameters according selected function
478 itsSimuParam->AddRespFunParam(parData);
482 //------------------------ parameterization data for segmentation 2 ----------------------
483 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
484 parData->SetUniqueID(2); // this is a function for detId=2
485 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
486 SetPSFParams("hProfPSD_M32terP31_1MRad", parData );
488 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
489 // injected one to consider
491 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
492 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
493 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
494 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
495 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
496 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
497 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
498 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
500 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
501 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
502 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,21.843706,"pixNoiseMPV");
503 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.417494,"pixNoiseSigma");
504 // and readout timing scheme
505 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
506 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
508 itsSimuParam->AddRespFunParam(parData);
512 //________________________________________________________________________________________________________//
514 // || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, //
515 // || irradiation 300 kRad + 3e12 neq /cm2 // \||/ //
516 //___\/___________________________________________________________________________________________________//
519 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map300kRad3e12( Double_t sncut)
521 //const char* macroname = "MakeITSUSimuParam.C";
523 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
525 itsSimuParam->SetNLayers(kNLayers);
526 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
529 Double_t qscale[knSNcut]={1.532517, 1.617223, 1.641962, 1.714945, 1.73809, 1.749223};
530 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
532 // Add spread function parameterization data
533 AliITSUParamList* parData = 0;
535 //------------------------ parameterization data for segmentation 0 ----------------------
536 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
537 parData->SetUniqueID(0); // this is a function for detId=0
538 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
539 SetPSFParams("hProfPSD_M32terP31_300kRad3e12neq",parData);
541 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
542 // injected one to consider
544 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
545 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
546 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
547 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
548 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
549 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
550 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
552 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
553 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
555 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
556 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,27.274548,"pixNoiseMPV");
557 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.723949,"pixNoiseSigma");
558 // and readout timing scheme
559 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
560 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
562 itsSimuParam->AddRespFunParam(parData);
566 //------------------------ parameterization data for segmentation 1 ----------------------
567 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
568 parData->SetUniqueID(1); // this is a function for detId=1
569 parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
570 SetPSFParams("hProfPSD_M32terP31_300kRad3e12neq",parData);
573 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
574 // injected one to consider
576 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
577 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
578 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
579 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
580 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
581 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
582 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
584 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
585 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
587 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
588 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,27.274548,"pixNoiseMPV");
589 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.723949,"pixNoiseSigma");
590 // and readout timing scheme
591 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
592 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
594 // now set the parameters according selected function
595 itsSimuParam->AddRespFunParam(parData);
599 //------------------------ parameterization data for segmentation 2 ----------------------
600 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
601 parData->SetUniqueID(2); // this is a function for detId=2
602 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
603 SetPSFParams("hProfPSD_M32terP31_300kRad3e12neq", parData );
605 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
606 // injected one to consider
608 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
609 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
610 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
611 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
612 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
613 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
614 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
615 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
617 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
618 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
619 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,27.274548,"pixNoiseMPV");
620 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.723949,"pixNoiseSigma");
621 // and readout timing scheme
622 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
623 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
625 itsSimuParam->AddRespFunParam(parData);
630 //________________________________________________________________________________________________________//
632 // || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, //
633 // || irradiation 1MRad + 1e13 neq /cm2 // \||/ //
634 //___\/___________________________________________________________________________________________________//
637 AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map1MRad1e13( Double_t sncut)
639 //const char* macroname = "MakeITSUSimuParam.C";
641 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
643 itsSimuParam->SetNLayers(kNLayers);
644 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
647 Double_t qscale[knSNcut]={1.530764, 1.542968, 1.602497, 1.621188, 1.68353 ,1.639263};
648 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
650 // Add spread function parameterization data
651 AliITSUParamList* parData = 0;
653 //------------------------ parameterization data for segmentation 0 ----------------------
654 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
655 parData->SetUniqueID(0); // this is a function for detId=0
656 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
657 SetPSFParams("hProfPSD_M32terP31_1MRad1e13neq",parData);
659 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
660 // injected one to consider
662 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
663 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
664 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
665 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
666 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
667 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
668 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
670 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
671 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
673 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
674 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,43.840798,"pixNoiseMPV");
675 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.187048,"pixNoiseSigma");
676 // and readout timing scheme
677 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
678 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
680 itsSimuParam->AddRespFunParam(parData);
684 //------------------------ parameterization data for segmentation 1 ----------------------
685 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
686 parData->SetUniqueID(1); // this is a function for detId=1
687 parData->SetNameTitle("Monopix_seg1","PSF map for M32terP31");
688 SetPSFParams("hProfPSD_M32terP31_1MRad1e13neq",parData);
691 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
692 // injected one to consider
694 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
695 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
696 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
697 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
698 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
699 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
700 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
702 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
703 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
705 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
706 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,43.840798,"pixNoiseMPV");
707 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.187048,"pixNoiseSigma");
708 // and readout timing scheme
709 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
710 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
712 // now set the parameters according selected function
713 itsSimuParam->AddRespFunParam(parData);
717 //------------------------ parameterization data for segmentation 2 ----------------------
718 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
719 parData->SetUniqueID(2); // this is a function for detId=2
720 parData->SetNameTitle("Monopix_seg2","PSF map for M32terP31");
721 SetPSFParams("hProfPSD_M32terP31_1MRad1e13neq", parData );
723 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
724 // injected one to consider
726 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
727 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
728 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
729 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
730 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
731 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
732 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
733 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
735 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
736 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
737 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,43.840798,"pixNoiseMPV");
738 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,3.187048,"pixNoiseSigma");
739 // and readout timing scheme
740 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
741 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)"); // cycle lenght is 10-30 us --> 10-30e-6 s
743 itsSimuParam->AddRespFunParam(parData);
750 //________________________________________________________________________________________________________//
752 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C, //
753 // || 300kRad + 3e12 new/cm2 //
755 //___\/___________________________________________________________________________________________________//
757 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map300kRad3e12( Double_t sncut)
759 //const char* macroname = "MakeITSUSimuParam.C";
761 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
763 itsSimuParam->SetNLayers(kNLayers);
764 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
767 Double_t qscale[knSNcut]={0.446298, 0.45217, 0.405819, 0.457178, 0.488428, 0.508903};
768 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
770 // Add spread function parameterization data
771 AliITSUParamList* parData = 0;
773 //------------------------ parameterization data for segmentation 0 ----------------------
774 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
775 parData->SetUniqueID(0); // this is a function for detId=0
776 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
777 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq",parData);
779 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
780 // injected one to consider
782 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
783 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
784 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
785 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
786 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
787 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
788 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
789 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
791 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
792 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
794 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.566901,"pixNoiseMPV");
795 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.665233,"pixNoiseSigma");
796 // and readout timing scheme
797 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
798 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
800 itsSimuParam->AddRespFunParam(parData);
803 //------------------------ parameterization data for segmentation 1 ----------------------
804 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
805 parData->SetUniqueID(1); // this is a function for detId=1
806 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
807 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq",parData);
809 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
810 // injected one to consider
812 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
813 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
814 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
815 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
816 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
817 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
818 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
819 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
821 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
822 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
824 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.566901,"pixNoiseMPV");
825 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.665233,"pixNoiseSigma");
826 // and readout timing scheme
827 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
828 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
830 itsSimuParam->AddRespFunParam(parData);
833 //------------------------ parameterization data for segmentation 2 ----------------------
834 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
835 parData->SetUniqueID(2); // this is a function for detId=2
836 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
837 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq",parData);
839 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
840 // injected one to consider
842 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
843 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
844 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
845 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
846 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
847 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
848 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
849 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
851 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
852 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
854 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.566901,"pixNoiseMPV");
855 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.665233,"pixNoiseSigma");
856 // and readout timing scheme
857 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
858 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
860 itsSimuParam->AddRespFunParam(parData);
865 //________________________________________________________________________________________________________//
867 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C, //
868 // || 1 MRad + 1e13 new/cm2 //
870 //___\/___________________________________________________________________________________________________//
872 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map1MRad1e13( Double_t sncut)
874 //const char* macroname = "MakeITSUSimuParam.C";
876 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
878 itsSimuParam->SetNLayers(kNLayers);
879 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
882 Double_t qscale[knSNcut]={0.406783, 0.418178, 0.410906, 0.406477, 0.355895, 0.479006};
883 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
885 // Add spread function parameterization data
886 AliITSUParamList* parData = 0;
888 //------------------------ parameterization data for segmentation 0 ----------------------
889 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
890 parData->SetUniqueID(0); // this is a function for detId=0
891 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
892 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq",parData);
894 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
895 // injected one to consider
897 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
898 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
899 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
900 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
901 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
902 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
903 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
904 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
906 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
907 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
909 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.982178,"pixNoiseMPV");
910 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.067505,"pixNoiseSigma");
911 // and readout timing scheme
912 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
913 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
915 itsSimuParam->AddRespFunParam(parData);
918 //------------------------ parameterization data for segmentation 1 ----------------------
919 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
920 parData->SetUniqueID(1); // this is a function for detId=1
921 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
922 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq",parData);
924 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
925 // injected one to consider
927 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
928 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
929 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
930 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
931 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
932 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
933 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
934 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
936 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
937 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
939 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.982178,"pixNoiseMPV");
940 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.067505,"pixNoiseSigma");
941 // and readout timing scheme
942 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
943 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
945 itsSimuParam->AddRespFunParam(parData);
948 //------------------------ parameterization data for segmentation 2 ----------------------
949 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
950 parData->SetUniqueID(2); // this is a function for detId=2
951 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
952 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq",parData);
954 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
955 // injected one to consider
957 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
958 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
959 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
960 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
961 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
962 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
963 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
964 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
966 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
967 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
969 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.982178,"pixNoiseMPV");
970 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.067505,"pixNoiseSigma");
971 // and readout timing scheme
972 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
973 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
975 itsSimuParam->AddRespFunParam(parData);
981 //________________________________________________________________________________________________________//
983 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 20 C, //
984 // || 1 MRad + 1e13 new/cm2 //
986 //___\/___________________________________________________________________________________________________//
988 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map1MRad1e13_20deg( Double_t sncut)
990 //const char* macroname = "MakeITSUSimuParam.C";
992 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
994 itsSimuParam->SetNLayers(kNLayers);
995 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
998 printf(" ---> WARNING WARNING WARNING --- Parameterization is not final, it is set to the 30 deg irradiated sensor!"); return;
999 Double_t qscale[knSNcut]={0.446298, 0.45217, 0.405819, 0.457178, 0.488428, 0.508903};
1000 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
1002 // Add spread function parameterization data
1003 AliITSUParamList* parData = 0;
1005 //------------------------ parameterization data for segmentation 0 ----------------------
1006 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1007 parData->SetUniqueID(0); // this is a function for detId=0
1008 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1009 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq_20deg",parData);
1011 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1012 // injected one to consider
1014 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1015 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1016 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1017 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1018 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1019 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1020 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1021 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1023 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1024 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1026 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.980760,"pixNoiseMPV");
1027 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.091568,"pixNoiseSigma");
1028 // and readout timing scheme
1029 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1030 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1032 itsSimuParam->AddRespFunParam(parData);
1035 //------------------------ parameterization data for segmentation 1 ----------------------
1036 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1037 parData->SetUniqueID(1); // this is a function for detId=1
1038 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1039 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq_20deg",parData);
1041 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1042 // injected one to consider
1044 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1045 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1046 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1047 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1048 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1049 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1050 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1051 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1053 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1054 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1056 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.980760,"pixNoiseMPV");
1057 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.091568,"pixNoiseSigma");
1058 // and readout timing scheme
1059 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1060 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1062 itsSimuParam->AddRespFunParam(parData);
1065 //------------------------ parameterization data for segmentation 2 ----------------------
1066 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1067 parData->SetUniqueID(2); // this is a function for detId=2
1068 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
1069 SetPSFParams("hProfPSD_M32P26_1MRad1e13neq_20deg",parData);
1071 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1072 // injected one to consider
1074 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1075 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1076 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1077 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1078 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1079 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1080 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1081 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1083 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1084 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1086 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.980760,"pixNoiseMPV");
1087 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.091568,"pixNoiseSigma");
1088 // and readout timing scheme
1089 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1090 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1092 itsSimuParam->AddRespFunParam(parData);
1094 return itsSimuParam;
1097 //________________________________________________________________________________________________________//
1099 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 20 C, //
1100 // || 300kRad + 3e12 new/cm2 //
1102 //___\/___________________________________________________________________________________________________//
1104 AliITSUSimuParam* MakeITSUSimuParam_M32P26Map300kRad3e12_20deg( Double_t sncut)
1106 //const char* macroname = "MakeITSUSimuParam.C";
1108 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
1110 itsSimuParam->SetNLayers(kNLayers);
1111 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
1114 printf(" ---> WARNING WARNING WARNING --- Parameterization is not final, it is set to the 30 deg irradiated sensor!"); return;
1115 Double_t qscale[knSNcut]={0.446298, 0.45217 ,0.405819, 0.457178, 0.488428, 0.508903};
1116 if(sncut < 5 || sncut > 10 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro header! \n",sncut); return;}
1118 // Add spread function parameterization data
1119 AliITSUParamList* parData = 0;
1121 //------------------------ parameterization data for segmentation 0 ----------------------
1122 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1123 parData->SetUniqueID(0); // this is a function for detId=0
1124 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1125 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq_20deg",parData);
1127 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1128 // injected one to consider
1130 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1131 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1132 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1133 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1134 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1135 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1136 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1137 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1139 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1140 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1142 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.218402,"pixNoiseMPV");
1143 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.616870,"pixNoiseSigma");
1144 // and readout timing scheme
1145 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1146 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1148 itsSimuParam->AddRespFunParam(parData);
1151 //------------------------ parameterization data for segmentation 1 ----------------------
1152 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1153 parData->SetUniqueID(1); // this is a function for detId=1
1154 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1155 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq_20deg",parData);
1157 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1158 // injected one to consider
1160 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1161 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1162 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1163 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1164 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1165 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1166 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1167 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1169 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1170 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1172 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.218402,"pixNoiseMPV");
1173 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.616870,"pixNoiseSigma");
1174 // and readout timing scheme
1175 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1176 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1178 itsSimuParam->AddRespFunParam(parData);
1181 //------------------------ parameterization data for segmentation 2 ----------------------
1182 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1183 parData->SetUniqueID(2); // this is a function for detId=2
1184 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
1185 SetPSFParams("hProfPSD_M32P26_300kRad3e12neq_20deg",parData);
1187 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1188 // injected one to consider
1190 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1191 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1192 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1193 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1194 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1195 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1196 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1197 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1199 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1200 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1202 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,18.218402,"pixNoiseMPV");
1203 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.616870,"pixNoiseSigma");
1204 // and readout timing scheme
1205 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1206 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1208 itsSimuParam->AddRespFunParam(parData);
1210 return itsSimuParam;
1215 //________________________________________________________________________________________________________//
1217 // || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C, no irradiation //
1218 // || - Map is fitted by two 2D Gaussian and recetnered to the x,z = [0,0] //
1219 // \||/ - The Gaussian sigma can be broadened with the factor "broadening" to mimic larger pixels //
1220 // \/ - then 20 x0 20 um^2 //
1221 // - The fake rate is set to 10^-5 //
1222 //________________________________________________________________________________________________________//
1224 AliITSUSimuParam* MakeITSUSimuParam_M32P26MapRecenteredBroadened(Double_t broadening)
1226 //const char* macroname = "MakeITSUSimuParam.C";
1228 const Int_t sncut = 5;
1229 TString histoName = Form("hProfPSD_M32P26_Cent_Broad_%d",TMath::Nint(broadening*100));
1233 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
1235 itsSimuParam->SetNLayers(kNLayers);
1236 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
1239 Double_t qscale[1]={1.036868};
1240 if(sncut != 5 ) {printf("---> ERROR ERROR ERROR requested SNcut: %d is not valid... Check the macro! \n",sncut); return;}
1242 // Add spread function parameterization data
1243 AliITSUParamList* parData = 0;
1245 //------------------------ parameterization data for segmentation 0 ----------------------
1246 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1247 parData->SetUniqueID(0); // this is a function for detId=0
1248 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1249 SetPSFParams(histoName,parData);
1251 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1252 // injected one to consider
1254 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1255 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1256 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1257 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1258 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1259 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-5,"pixFakeRate");
1260 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1261 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1263 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1264 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1266 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
1267 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
1268 // and readout timing scheme
1269 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1270 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1272 itsSimuParam->AddRespFunParam(parData);
1275 //------------------------ parameterization data for segmentation 1 ----------------------
1276 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1277 parData->SetUniqueID(1); // this is a function for detId=1
1278 parData->SetNameTitle("Monopix_seg1","PSF map for M32P26");
1279 SetPSFParams(histoName,parData);
1281 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1282 // injected one to consider
1284 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1285 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1286 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1287 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1288 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1289 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-5,"pixFakeRate");
1290 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1291 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1293 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1294 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1296 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
1297 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
1298 // and readout timing scheme
1299 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1300 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1302 itsSimuParam->AddRespFunParam(parData);
1305 //------------------------ parameterization data for segmentation 2 ----------------------
1306 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1307 parData->SetUniqueID(2); // this is a function for detId=2
1308 parData->SetNameTitle("Monopix_seg2","PSF map for M32P26");
1309 SetPSFParams(histoName,parData);
1311 // obligatory params for all AliITSUSimulationPix functions: number of pixels in X,Z around
1312 // injected one to consider
1314 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,0,"DigitalSim");
1315 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNXoffs,2,"nPixX");
1316 parData->SetParameter(AliITSUSimulationPix::kSpreadFunParamNZoffs,2,"nPixZ");
1317 parData->SetParameter(AliITSUSimulationPix::kSpreadFunMinSteps,10,"nChargeSteps");
1318 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
1319 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-5,"pixFakeRate");
1320 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1321 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1323 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1324 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1326 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
1327 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
1328 // and readout timing scheme
1329 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1330 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1332 itsSimuParam->AddRespFunParam(parData);
1334 return itsSimuParam;
1338 //________________________________________________________________________________________________________//
1340 // || First digital chip response parameterization //
1341 // || - The fake rate is set to 10^-5 //
1345 //________________________________________________________________________________________________________//
1347 AliITSUSimuParam* MakeITSUSimuParam_1stDigital()
1350 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
1352 itsSimuParam->SetNLayers(kNLayers);
1353 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
1355 // Add spread function parameterization data
1356 AliITSUParamList* parData = 0;
1358 //------------------------ parameterization data for segmentation 0 ----------------------
1359 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1360 parData->SetUniqueID(0); // this is a function for detId=0
1361 parData->SetNameTitle("Monopix_seg1","First digital param");
1363 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,1,"DigitalSim");
1364 // obligatory params for all AliITSUSimulationPix functions: fake rate
1365 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-5,"pixFakeRate");
1367 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1368 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1370 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
1371 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
1372 // and readout timing scheme
1373 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1374 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1376 itsSimuParam->AddRespFunParam(parData);
1379 //------------------------ parameterization data for segmentation 1 ----------------------
1380 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1381 parData->SetUniqueID(1); // this is a function for detId=0
1382 parData->SetNameTitle("Monopix_seg1","First digital param");
1384 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,1,"DigitalSim");
1386 // obligatory params for all AliITSUSimulationPix functions: fake rate
1387 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-5,"pixFakeRate");
1389 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1390 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1392 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
1393 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
1394 // and readout timing scheme
1395 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1396 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1398 itsSimuParam->AddRespFunParam(parData);
1401 //------------------------ parameterization data for segmentation 2 ----------------------
1402 parData = new AliITSUParamList(AliITSUSimulationPix::kNReservedParams); // no custom params are needed
1403 parData->SetUniqueID(2); // this is a function for detId=0
1404 parData->SetNameTitle("Monopix_seg1","First digital param");
1406 parData->SetParameter(AliITSUSimulationPix::kDigitalSim,1,"DigitalSim");
1408 // obligatory params for all AliITSUSimulationPix functions: fake rate
1409 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-5,"pixFakeRate");
1411 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1412 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1414 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
1415 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
1416 // and readout timing scheme
1417 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
1418 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
1420 itsSimuParam->AddRespFunParam(parData);
1423 return itsSimuParam;
1431 //_______________________________________________________________
1432 void SetPSFParams(TString pixType, AliITSUParamList* parData )
1435 // Reads the PSF map and sets the parameters
1437 printf("Loading charge spread histo %s from file %s\n",pixType.Data(),inpPSFName);
1438 TFile* fin = new TFile(inpPSFName);
1440 printf("NO parameters are set! Input file %s doesn't exist\n",inpPSFName);
1445 hProfWrk = dynamic_cast<TH2*> fin->Get(pixType.Data());
1447 printf("PSF map %s doesn't exist!!!\n",pixType.Data());
1450 hProfWrk = (TH2*) hProfWrk->Clone();
1451 hProfWrk->SetDirectory(0);
1454 parData->AddParamObject(hProfWrk);
1455 parData->SetParameter(AliITSUSimulationPix::kChargeSpreadType,AliITSUSimulationPix::kSpreadFunHisto,pixType.Data());