]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/UPGRADE/testITSU/MakeITSUSimuParam.C
store also difference in local Y
[u/mrichter/AliRoot.git] / ITS / UPGRADE / testITSU / MakeITSUSimuParam.C
CommitLineData
29ad4146 1//RS: before running MakeITSUSimuParam call ".x LoadLibs.C"
2
91e6da40 3// Reference sensor parameterizations
719ee73a 4AliITSUSimuParam* MakeITSUSimuParam_M32P26Map(Double_t sncut);// don't forget to turn off diode shift for P26 in Config.C
5AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map( Double_t sncut);
91e6da40 6// Irradiated sensor parameterizations P31
719ee73a 7AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map1MRad( Double_t sncut);
8AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map300kRad3e12( Double_t sncut);
9AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map1MRad1e13( Double_t sncut);
91e6da40 10// Irradiated sensor parameterizations P26
719ee73a 11AliITSUSimuParam* MakeITSUSimuParam_M32P26Map300kRad3e12( Double_t sncut);
12AliITSUSimuParam* MakeITSUSimuParam_M32P26Map1MRad1e13( Double_t sncut);
13AliITSUSimuParam* MakeITSUSimuParam_M32P26Map300kRad3e12_20deg( Double_t sncut);
14AliITSUSimuParam* MakeITSUSimuParam_M32P26Map1MRad1e13_20deg( Double_t sncut);
ae6ac39b 15
16// Reference sensor parameterizations with 2 2D Gaussian
17AliITSUSimuParam* MakeITSUSimuParam_M32P26MapRecenteredBroadened(Double_t broadening);//
18
19
20
29ad4146 21void SetPSFParams(TString pixType, AliITSUParamList* parData);
c92b1537 22
34d64d83 23// To turn noise generation ON set these values to 1
24const int kAddNoise = -1;
25const int kAddNoiseInAllMod = -1;
26
27const char* inpPSFName = "$ALICE_ROOT/ITS/UPGRADE/misc/ITSU_pixel_response_PSFs.root";
719ee73a 28const int kNLayers = 7;
29
30
31const int kSNcut = 5; // Threshold/Noise cut. CAN BE CHANGED IN THE RANGE [5,10] no other values are allowed.
32const int knSNcut = 6 ; // Number of tuned SNcut fixed to 6.
344d4ff3 33
ae6ac39b 34const double kBroadeningFactor = 1.0; // For the 2 2D Gaussian parameterization, allowed range [0.5,2.0]
35
36
344d4ff3 37/*
38 these are readout phases settings:
39 the rule is:
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
43*/
44const float kROShifts[kNLayers] = {0.5,0.5,0.5, -0.5,-0.5, 0.5,0.5};
29ad4146 45
ae6ac39b 46void MakeITSUSimuParam(Int_t simuType = 9, const char* cdbURI="local://") {
29ad4146 47 //========================================================================
c92b1537 48 //
29ad4146 49 // Steering macro for ITS simulation parameters
50 //
51 // Author: L.Molnar
52 // Contact: levente.molnar@cern.ch
53 //
41d6f3a5 54 //
55 //****** DO NOT FORGET TO SET THE RIGHT GEOMETRY IN THE Config.C *****
56 //
57 //****** P26 chips Config.C parameters *****
58 // col pitch 20 um
59 // row pitch 20 um
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};
63 //
64 //
65 //****** P31 chips Config.C parameters *****
66 // col pitch 20 um
67 // row pitch 33 um
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};
71 //
72 //
29ad4146 73 //========================================================================
74 AliITSUSimuParam *param = 0;
75 //
76 // Select only one parameterziation... and don't forget to set 18 um thickness in Config.C !!!
77
719ee73a 78 switch(simuType) {
79
80 case 0:
41d6f3a5 81 //____ MIMOSA32 P26 Response parameterzied by map ---> selected for TDR
719ee73a 82 param = MakeITSUSimuParam_M32P26Map(kSNcut);
83 break;
84 //
85 case 1:
41d6f3a5 86 //____ MIMOSA32ter P31 Response parameterzied by map
719ee73a 87 param = MakeITSUSimuParam_M32terP31Map(kSNcut);
88 break;
89 //
90 case 2:
91 //____ MIMOSA32ter P31 Response parameterzied by map 1MRad irradiation
92 param = MakeITSUSimuParam_M32terP31Map1MRad(kSNcut);
93 break;
94 //
95 case 3:
96 //____ MIMOSA32ter P31 Response parameterzied by map , 300kRad + 3e12 neq/cm2 irradiation
97 param = MakeITSUSimuParam_M32terP31Map300kRad3e12(kSNcut);
98 break;
99 //
100 case 4:
101 //____ MIMOSA32ter P31 Response parameterzied by map , 1MRad+ 1e13 neq/cm2 irradiation
102 param = MakeITSUSimuParam_M32terP31Map1MRad1e13(kSNcut);
103 break;
104 //
105 case 5:
106 //___ MIMOSA32 P26 , 300kRad + 3e12 neq/cm2 irradiation 30 deg
107 param = MakeITSUSimuParam_M32P26Map300kRad3e12(kSNcut);
108 break;
109 //
110 case 6:
111 //____ MIMOSA32 P26 , 300kRad + 3e12 neq/cm2 irradiation 20 deg
112 param = MakeITSUSimuParam_M32P26Map300kRad3e12_20deg(kSNcut);
113 break;
114 //
115 case 7:
116 //___ MIMOSA32 P26 , 1MRad+ 1e13 neq/cm2 irradiation 30 deg
117 param = MakeITSUSimuParam_M32P26Map1MRad1e13(kSNcut);
118 break;
119 //
120 case 8:
121 //___ MIMOSA32 P26 , 1MRad+ 1e13 neq/cm2 irradiation 20 deg
122 param = MakeITSUSimuParam_M32P26Map1MRad1e13_20deg(kSNcut);
123 break;
124 //
ae6ac39b 125 case 9:
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);
130 break;
131 //
719ee73a 132 default:
133 break;
134 }
91e6da40 135
136
29ad4146 137 param->Print();
c92b1537 138 //
29ad4146 139 // ----------------------------------------------------------
140 // save in CDB storage
c92b1537 141 AliCDBManager* cdb = AliCDBManager::Instance();
142 cdb->SetDefaultStorage(cdbURI);
29ad4146 143 //
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);
151 //
152}
c92b1537 153
29ad4146 154
91e6da40 155//________________________________________________________________________________________________________//
156// || //
157// || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C, no irradiation //
158// || //
159// \||/ //
160//___\/___________________________________________________________________________________________________//
719ee73a 161AliITSUSimuParam* MakeITSUSimuParam_M32P26Map( Int_t sncut)
29ad4146 162{
163 //const char* macroname = "MakeITSUSimuParam.C";
164 //
165 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
166 //
344d4ff3 167 itsSimuParam->SetNLayers(kNLayers);
168 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
169 //
719ee73a 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;}
172 //
29ad4146 173 // Add spread function parameterization data
174 AliITSUParamList* parData = 0;
175 //
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);
181 //
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");
719ee73a 187 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
29ad4146 188 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
91e6da40 189 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
29ad4146 190 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
191 // Noise
34d64d83 192 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
193 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
29ad4146 194
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)");
200 //
201 itsSimuParam->AddRespFunParam(parData);
202 //
203 //
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);
209 //
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");
719ee73a 215 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
29ad4146 216 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
91e6da40 217 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
29ad4146 218 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
219 // Noise
34d64d83 220 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
221 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
29ad4146 222
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)");
228 //
229 itsSimuParam->AddRespFunParam(parData);
230 //
231 //
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);
237 //
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");
719ee73a 243 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
29ad4146 244 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
91e6da40 245 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
29ad4146 246 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
247 // Noise
34d64d83 248 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
249 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
29ad4146 250
251 parData->SetParameter(AliITSUSimulationPix::kPixNoiseMPV,17.53,"pixNoiseMPV");
252 parData->SetParameter(AliITSUSimulationPix::kPixNoiseSigma,2.93,"pixNoiseSigma");
0ebc85cf 253 // and readout timing scheme
29ad4146 254 parData->SetParameter(AliITSUSimulationPix::kReadOutSchemeType,AliITSUSimulationPix::kReadOutRollingShutter,"ROType");
0ebc85cf 255 parData->SetParameter(AliITSUSimulationPix::kReadOutCycleLength,25e-6,"ROCycle(s)");
29ad4146 256 //
257 itsSimuParam->AddRespFunParam(parData);
258 //
259 return itsSimuParam;
260}
261
91e6da40 262//________________________________________________________________________________________________________//
263// || //
264// || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, no irradiation //
265// || //
266// \||/ //
267//___\/___________________________________________________________________________________________________//
29ad4146 268
719ee73a 269AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map( Double_t sncut)
29ad4146 270{
271 //const char* macroname = "MakeITSUSimuParam.C";
272 //
273 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
274 //
344d4ff3 275 itsSimuParam->SetNLayers(kNLayers);
276 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
277 //
719ee73a 278 //
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;}
281 //
29ad4146 282 // Add spread function parameterization data
283 AliITSUParamList* parData = 0;
c92b1537 284 //
29ad4146 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);
290 //
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");
719ee73a 296 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
29ad4146 297 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
34d64d83 298 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
29ad4146 299
91e6da40 300 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
29ad4146 301 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
302 // Noise
34d64d83 303 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
29ad4146 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)");
c92b1537 309 //
310 itsSimuParam->AddRespFunParam(parData);
311 //
69e0f089 312 //
29ad4146 313 //
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);
319
320 //
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");
719ee73a 326 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
29ad4146 327 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
34d64d83 328 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
29ad4146 329
91e6da40 330 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
29ad4146 331 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
332 // Noise
34d64d83 333 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
29ad4146 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)");
339 //
340 // now set the parameters according selected function
341 itsSimuParam->AddRespFunParam(parData);
c92b1537 342 //
29ad4146 343 //
344 //
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 );
350 //
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");
719ee73a 356 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
29ad4146 357 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
91e6da40 358 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
29ad4146 359 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
360 // Noise
34d64d83 361 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
362 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
29ad4146 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
368 //
369 itsSimuParam->AddRespFunParam(parData);
370 //
371 return itsSimuParam;
c92b1537 372}
373
91e6da40 374//________________________________________________________________________________________________________//
375// || //
376// || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, 1 MRad irradiation //
377// || //
378// \||/ //
379//___\/___________________________________________________________________________________________________//
719ee73a 380AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map1MRad( Double_t sncut)
91e6da40 381{
382 //const char* macroname = "MakeITSUSimuParam.C";
383 //
384 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
385 //
386 itsSimuParam->SetNLayers(kNLayers);
387 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
388 //
719ee73a 389 //
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;}
393 //
91e6da40 394 // Add spread function parameterization data
395 AliITSUParamList* parData = 0;
396 //
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);
402 //
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");
719ee73a 408 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 409 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
410 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
411
412 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
413 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
414 // Noise
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)");
421 //
422 itsSimuParam->AddRespFunParam(parData);
423 //
424 //
425 //
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);
431
432 //
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");
719ee73a 438 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 439 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
440 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
441
442 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
443 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
444 // Noise
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)");
451 //
452 // now set the parameters according selected function
453 itsSimuParam->AddRespFunParam(parData);
454 //
455 //
456 //
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 );
462 //
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");
719ee73a 468 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
91e6da40 469 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
470 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
471 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
472 // Noise
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
480 //
481 itsSimuParam->AddRespFunParam(parData);
482 //
483 return itsSimuParam;
484}
485//________________________________________________________________________________________________________//
486// || //
487// || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, //
488// || irradiation 300 kRad + 3e12 neq /cm2 // \||/ //
489//___\/___________________________________________________________________________________________________//
490
491
719ee73a 492AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map300kRad3e12( Double_t sncut)
91e6da40 493{
494 //const char* macroname = "MakeITSUSimuParam.C";
495 //
496 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
497 //
498 itsSimuParam->SetNLayers(kNLayers);
499 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
500 //
719ee73a 501 //
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;}
504 //
91e6da40 505 // Add spread function parameterization data
506 AliITSUParamList* parData = 0;
507 //
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);
513 //
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");
719ee73a 519 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 520 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
521 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
522
523 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
524 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
525 // Noise
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)");
532 //
533 itsSimuParam->AddRespFunParam(parData);
534 //
535 //
536 //
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);
542
543 //
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");
719ee73a 549 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 550 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
551 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
552
553 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
554 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
555 // Noise
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)");
562 //
563 // now set the parameters according selected function
564 itsSimuParam->AddRespFunParam(parData);
565 //
566 //
567 //
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 );
573 //
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");
719ee73a 579 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
91e6da40 580 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
581 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
582 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
583 // Noise
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
591 //
592 itsSimuParam->AddRespFunParam(parData);
593 //
594 return itsSimuParam;
595}
596
597//________________________________________________________________________________________________________//
598// || //
599// || Paremeterization by charge spread map of the MIMOSA32ter P31 chip, 30 C, //
600// || irradiation 1MRad + 1e13 neq /cm2 // \||/ //
601//___\/___________________________________________________________________________________________________//
602
603
719ee73a 604AliITSUSimuParam* MakeITSUSimuParam_M32terP31Map1MRad1e13( Double_t sncut)
91e6da40 605{
606 //const char* macroname = "MakeITSUSimuParam.C";
607 //
608 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
609 //
610 itsSimuParam->SetNLayers(kNLayers);
611 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
612 //
719ee73a 613 //
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;}
616 //
91e6da40 617 // Add spread function parameterization data
618 AliITSUParamList* parData = 0;
619 //
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);
625 //
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");
719ee73a 631 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 632 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
633 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
634
635 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
636 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
637 // Noise
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)");
644 //
645 itsSimuParam->AddRespFunParam(parData);
646 //
647 //
648 //
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);
654
655 //
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");
719ee73a 661 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 662 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
663 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
664
665 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
666 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
667 // Noise
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)");
674 //
675 // now set the parameters according selected function
676 itsSimuParam->AddRespFunParam(parData);
677 //
678 //
679 //
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 );
685 //
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");
719ee73a 691 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale"); //980./1080.
91e6da40 692 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
693 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
694 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
695 // Noise
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
703 //
704 itsSimuParam->AddRespFunParam(parData);
705 //
706 return itsSimuParam;
707}
708
709
710
711//________________________________________________________________________________________________________//
712// || //
713// || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C, //
714// || 300kRad + 3e12 new/cm2 //
715// \||/ //
716//___\/___________________________________________________________________________________________________//
717
719ee73a 718AliITSUSimuParam* MakeITSUSimuParam_M32P26Map300kRad3e12( Double_t sncut)
91e6da40 719{
720 //const char* macroname = "MakeITSUSimuParam.C";
721 //
722 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
723 //
724 itsSimuParam->SetNLayers(kNLayers);
725 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
726 //
719ee73a 727 //
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;}
730 //
91e6da40 731 // Add spread function parameterization data
732 AliITSUParamList* parData = 0;
733 //
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);
739 //
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");
719ee73a 745 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 746 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
747 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
748 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
749 // Noise
750 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
751 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
752
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)");
758 //
759 itsSimuParam->AddRespFunParam(parData);
760 //
761 //
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);
767 //
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");
719ee73a 773 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 774 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
775 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
776 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
777 // Noise
778 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
779 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
780
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)");
786 //
787 itsSimuParam->AddRespFunParam(parData);
788 //
789 //
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);
795 //
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");
719ee73a 801 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 802 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
803 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
804 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
805 // Noise
806 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
807 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
808
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)");
814 //
815 itsSimuParam->AddRespFunParam(parData);
816 //
817 return itsSimuParam;
818}
819
820//________________________________________________________________________________________________________//
821// || //
822// || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 30 C, //
823// || 1 MRad + 1e13 new/cm2 //
824// \||/ //
825//___\/___________________________________________________________________________________________________//
826
719ee73a 827AliITSUSimuParam* MakeITSUSimuParam_M32P26Map1MRad1e13( Double_t sncut)
91e6da40 828{
829 //const char* macroname = "MakeITSUSimuParam.C";
830 //
831 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
832 //
833 itsSimuParam->SetNLayers(kNLayers);
834 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
835 //
719ee73a 836 //
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;}
839 //
91e6da40 840 // Add spread function parameterization data
841 AliITSUParamList* parData = 0;
842 //
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);
848 //
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");
719ee73a 854 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 855 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
856 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
857 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
858 // Noise
859 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
860 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
861
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)");
867 //
868 itsSimuParam->AddRespFunParam(parData);
869 //
870 //
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);
876 //
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");
719ee73a 882 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 883 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
884 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
885 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
886 // Noise
887 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
888 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
889
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)");
895 //
896 itsSimuParam->AddRespFunParam(parData);
897 //
898 //
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);
904 //
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");
719ee73a 910 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 911 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
912 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
913 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
914 // Noise
915 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
916 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
917
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)");
923 //
924 itsSimuParam->AddRespFunParam(parData);
925 //
926 return itsSimuParam;
927}
928
929
930//________________________________________________________________________________________________________//
931// || //
932// || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 20 C, //
933// || 1 MRad + 1e13 new/cm2 //
934// \||/ //
935//___\/___________________________________________________________________________________________________//
936
719ee73a 937AliITSUSimuParam* MakeITSUSimuParam_M32P26Map1MRad1e13_20deg( Double_t sncut)
91e6da40 938{
939 //const char* macroname = "MakeITSUSimuParam.C";
940 //
941 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
942 //
943 itsSimuParam->SetNLayers(kNLayers);
944 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
945 //
719ee73a 946 //
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;}
950 //
91e6da40 951 // Add spread function parameterization data
952 AliITSUParamList* parData = 0;
953 //
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);
959 //
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");
719ee73a 965 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 966 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
967 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
968 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
969 // Noise
970 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
971 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
972
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)");
978 //
979 itsSimuParam->AddRespFunParam(parData);
980 //
981 //
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);
987 //
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");
719ee73a 993 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 994 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
995 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
996 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
997 // Noise
998 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
999 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1000
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)");
1006 //
1007 itsSimuParam->AddRespFunParam(parData);
1008 //
1009 //
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);
1015 //
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");
719ee73a 1021 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 1022 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1023 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1024 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1025 // Noise
1026 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1027 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1028
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)");
1034 //
1035 itsSimuParam->AddRespFunParam(parData);
1036 //
1037 return itsSimuParam;
1038}
1039
1040//________________________________________________________________________________________________________//
1041// || //
1042// || Paremeterization by charge spread map of the MIMOSA32 P26 chip, 20 C, //
1043// || 300kRad + 3e12 new/cm2 //
1044// \||/ //
1045//___\/___________________________________________________________________________________________________//
1046
719ee73a 1047AliITSUSimuParam* MakeITSUSimuParam_M32P26Map300kRad3e12_20deg( Double_t sncut)
91e6da40 1048{
1049 //const char* macroname = "MakeITSUSimuParam.C";
1050 //
1051 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
1052 //
1053 itsSimuParam->SetNLayers(kNLayers);
1054 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
1055 //
719ee73a 1056 //
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;}
1060 //
91e6da40 1061 // Add spread function parameterization data
1062 AliITSUParamList* parData = 0;
1063 //
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);
1069 //
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");
719ee73a 1075 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 1076 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1077 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1078 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1079 // Noise
1080 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1081 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1082
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)");
1088 //
1089 itsSimuParam->AddRespFunParam(parData);
1090 //
1091 //
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);
1097 //
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");
719ee73a 1103 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 1104 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1105 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1106 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1107 // Noise
1108 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1109 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1110
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)");
1116 //
1117 itsSimuParam->AddRespFunParam(parData);
1118 //
1119 //
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);
1125 //
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");
719ee73a 1131 parData->SetParameter(AliITSUSimulationPix::kSpreadFunGlobalQScale,qscale[sncut-5],"globQscale");
91e6da40 1132 parData->SetParameter(AliITSUSimulationPix::kPixFakeRate,1e-4,"pixFakeRate");
1133 parData->SetParameter(AliITSUSimulationPix::kPixSNDisrcCut,sncut,"pixSNDisrcCut");
1134 parData->SetParameter(AliITSUSimulationPix::kPixMinElToAdd,1,"pixMinElToAdd");
1135 // Noise
1136 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1137 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1138
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)");
1144 //
1145 itsSimuParam->AddRespFunParam(parData);
1146 //
1147 return itsSimuParam;
1148}
1149
1150
ae6ac39b 1151//cicc
1152//________________________________________________________________________________________________________//
1153// || //
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//________________________________________________________________________________________________________//
1160
1161AliITSUSimuParam* MakeITSUSimuParam_M32P26MapRecenteredBroadened(Double_t broadening)
1162{
1163 //const char* macroname = "MakeITSUSimuParam.C";
1164 //
1165 const Int_t sncut = 5;
1166 TString histoName = Form("hProfPSD_M32P26_Cent_Broad_%d",TMath::Nint(broadening*100));
1167
1168
1169 //
1170 AliITSUSimuParam* itsSimuParam = new AliITSUSimuParam();
1171 //
1172 itsSimuParam->SetNLayers(kNLayers);
1173 for (int ilr=kNLayers;ilr--;) itsSimuParam->SetLrROCycleShift(kROShifts[ilr],ilr);
1174 //
1175
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;}
1178 //
1179 // Add spread function parameterization data
1180 AliITSUParamList* parData = 0;
1181 //
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);
1187 //
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");
1197 // Noise
1198 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1199 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1200
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)");
1206 //
1207 itsSimuParam->AddRespFunParam(parData);
1208 //
1209 //
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);
1215 //
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");
1225 // Noise
1226 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1227 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
1228
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)");
1234 //
1235 itsSimuParam->AddRespFunParam(parData);
1236 //
1237 //
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);
1243 //
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");
1253 // Noise
1254 parData->SetParameter(AliITSUSimulationPix::kPixNoiseIsOn,kAddNoise,"pixNoiseIsOn");
1255 parData->SetParameter(AliITSUSimulationPix::kPixNoiseInAllMod,kAddNoiseInAllMod,"pixNoiseIsOnInAllMod");
91e6da40 1256
ae6ac39b 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)");
1262 //
1263 itsSimuParam->AddRespFunParam(parData);
1264 //
1265 return itsSimuParam;
1266}
1267
91e6da40 1268
1269
1270
1271
1272
1273
1274
29ad4146 1275//_______________________________________________________________
1276void SetPSFParams(TString pixType, AliITSUParamList* parData )
1277{
1278 //
1279 // Reads the PSF map and sets the parameters
1280 //
1281 printf("Loading charge spread histo %s from file %s\n",pixType.Data(),inpPSFName);
1282 TFile* fin = new TFile(inpPSFName);
1283 if (!fin) {
1284 printf("NO parameters are set! Input file %s doesn't exist\n",inpPSFName);
1285 exit(1);
1286 }
1287 //
1288 TH2* hProfWrk = 0;
1289 hProfWrk = dynamic_cast<TH2*> fin->Get(pixType.Data());
1290 if(!hProfWrk) {
1291 printf("PSF map %s doesn't exist!!!\n",pixType.Data());
1292 exit(1);
1293 }
1294 hProfWrk = (TH2*) hProfWrk->Clone();
1295 hProfWrk->SetDirectory(0);
1296 fin->Close();
1297 //
1298 parData->AddParamObject(hProfWrk);
1299 parData->SetParameter(AliITSUSimulationPix::kChargeSpreadType,AliITSUSimulationPix::kSpreadFunHisto,pixType.Data());
1300}