SND@LHC Software
Loading...
Searching...
No Matches
TTCluster Namespace Reference

Classes

class  TTCluster
 CLASS OF TT AND HPT EVENTS ######################################################. More...
 

Functions

 cm_to_channel (locpos, sipm_map=sipm_map, gaps_map=gaps_map, pitch=pitch, charr=charr, reverse=False, ch_max_num=ch_max_num, n_solid_sipms=n_solid_sipms)
 FUNCTIONS FOR TTCLASS #####################################################.
 
 channel_to_cm (channelpos, sipm_map=sipm_map, reverse=False, pitch=pitch)
 
 GetMatType (DetID)
 
 GetMatNum (DetID)
 
 GetMatLength (DetID)
 
 GetMatQty (DetID)
 
 GetStationNum (DetID)
 
 global_to_local (DetID, globalpos)
 
 local_to_global (DetID, localpos)
 
 ly_loss_mean (distance, params=ly_loss_params)
 
 ly_attenuation (distance)
 
 cluster_width_mean (distance, params=cluster_width_mean_params)
 
 cluster_width_sigma (distance, params=cluster_width_sigma_params)
 
 cluster_width_random (distance, ly, persent=random_width_persent, cluster_width_min=cluster_width_min, cluster_width_max=cluster_width_max)
 
 approx_function (var, approx_data)
 
 edep_to_ly (energy, CDF_integral=CDF_integral, energy_range=energy_range, ly_linear_params=ly_linear_params, k_cdfs_corr=k_cdfs_corr, sigma_in_percent=sigma_in_percent, ly_CDF_params=ly_CDF_params, CDF_ly_params=CDF_ly_params, ly_CDF_landau_params=ly_CDF_landau_params)
 
 cluster_generator (amplitude, width, wmp, cluster_width_max=cluster_width_max, chpos_min=chpos_min, chpos_max=chpos_max)
 
 is_realistic (cluster, width)
 
 create_cluster (amplitude, width, wmp)
 
 weigthed_mean_pos (cluster)
 

Variables

int sipm_hor_pos = +1
 GLOBAL VALUES AND PARAMETERS ############.
 
int sipm_vert_pos = -1
 
bool is_sipm_hor_reversed = True
 
bool is_sipm_vert_reversed = True
 
float hw = 13.06 / 2.
 
float pitch = 0.025
 
float charr = 1.6
 
float edge = 0.017
 
float gap = 0.025
 
float array = gap + 2.*charr
 
float biggap = 0.042
 
int ch_max_num = 511
 
int n_solid_sipms = 8
 
tuple sipm_map
 
dict gaps_map
 
float ly_loss_params = 20.78, -0.26, 7.89, -3.06
 
float ly_loss_sigma_params = 6.8482, -0.5757, 3.4458
 
float cluster_width_mean_params = 0.6661, -0.006955, 2.163
 
float cluster_width_sigma_params = 1.103, -0.0005751
 
float random_width_persent = 0.01
 
float ly_min = 4.5
 
int ly_max = 104
 
float chpos_min = -0.5
 
float chpos_max = 511.5
 
int cluster_width_min = 1
 
int cluster_width_max = 10
 
float energy_range = 0.18, 0.477
 
float CDF_integral = 0.0185640424
 
float ly_linear_params = 332.882, -58.7085
 
float k_cdfs_corr = 0.993076766938
 
float sigma_in_percent = 0.01
 
int sigma_from_width = 1 / 4.
 
dict ly_CDF_params
 
dict ly_CDF_landau_params
 
dict CDF_ly_params
 
dict design2018 = {'dy': 10.,'dv': 6,'ds': 9,'nud': 3,'caloDesign': 3,'strawDesign': 10}
 LOAD THE TARGET TRACKER GEOMETRY #########.
 
dict dy = design2018['dy']
 
dict dv = design2018['dv']
 
dict ds = design2018['ds']
 
dict nud = design2018['nud']
 
dict caloDesign = design2018['caloDesign']
 
dict strawDesign = design2018['strawDesign']
 
 geofile = None
 
 ship_geo
 
 n_hor_planes = ship_geo.NuTauTT.n_hor_planes
 
 n_vert_planes = ship_geo.NuTauTT.n_vert_planes
 
 scifimat_hor = ship_geo.NuTauTT.scifimat_hor
 
 scifimat_vert = ship_geo.NuTauTT.scifimat_vert
 
 scifimat_width = ship_geo.NuTauTT.scifimat_width
 
 scifimat_z = ship_geo.NuTauTT.scifimat_z
 
 n_tt_stations = ship_geo.NuTauTT.n
 
list tt_points = []
 EXAMPLE OF USING THE CLASS #######.
 
list hpt_points = []
 
list tt_raw = []
 
list hpt_raw = []
 
 muonfile = ROOT.TFile("$PWD/ship.conical.PG_13-TGeant4.root")
 
 tree = muonfile.Get("cbmsim")
 
 pnt = TTCluster(hit.GetDetectorID(), hit.GetX(), hit.GetY(), hit.GetEnergyLoss())
 
 fig
 
 axs = plt.gca()
 
 ly_bins = np.linspace(4,104,100)
 
 bins
 
 label
 
 loc
 
int nbins = 24
 
list xz_points = []
 
list yz_points = []
 

Function Documentation

◆ approx_function()

TTCluster.approx_function (   var,
  approx_data 
)
    This universal function substitutes the parameters to the function. 
    The parameters and the function are in the dictionary

Definition at line 385 of file TTCluster.py.

385def approx_function(var, approx_data):
386
387 """
388 This universal function substitutes the parameters to the function.
389 The parameters and the function are in the dictionary
390 """
391
392 for (left, right), (params, func) in approx_data.items():
393 if left <= var <= right:
394 return func(var, *params)
395 return False
396

◆ channel_to_cm()

TTCluster.channel_to_cm (   channelpos,
  sipm_map = sipm_map,
  reverse = False,
  pitch = pitch 
)
    It converts a particle position measured channels to a position measured 
    in cm. The SiPM map is used. The position is in the scifi modul frame.

Definition at line 228 of file TTCluster.py.

228def channel_to_cm(channelpos, sipm_map=sipm_map, reverse=False, pitch=pitch):
229
230 """
231 It converts a particle position measured channels to a position measured
232 in cm. The SiPM map is used. The position is in the scifi modul frame.
233 """
234
235 if reverse is True:
236 for left, _, ch_range in sipm_map:
237 if not ch_range is False:
238 ch_start, ch_end = ch_range
239 if ch_start <= channelpos <= ch_end:
240 return -(left + (channelpos - ch_start) * pitch)
241 if reverse is False:
242 for left, _, ch_range in sipm_map:
243 if not ch_range is False:
244 ch_start, ch_end = ch_range
245 if ch_start <= channelpos <= ch_end:
246 return left + (channelpos - ch_start) * pitch
247

◆ cluster_generator()

TTCluster.cluster_generator (   amplitude,
  width,
  wmp,
  cluster_width_max = cluster_width_max,
  chpos_min = chpos_min,
  chpos_max = chpos_max 
)
    It generates an event cluster with given weighted mean position in channels, width and 
    amplitude. 

    If right side of the cluster can be out of range, the maximum of the right side will be 
    right channel.

    At first an array [0, 0, 0, ... ] is generated which corresponds to the channels. 
    Next the cluster generated in the array. 
    Final array will be like [0, 0, ..., 1, 2, 5, 1, 0, ...], 
    [0, 17, 0, ...] or etc.

Definition at line 432 of file TTCluster.py.

433 chpos_min=chpos_min, chpos_max=chpos_max):
434
435 """
436 It generates an event cluster with given weighted mean position in channels, width and
437 amplitude.
438
439 If right side of the cluster can be out of range, the maximum of the right side will be
440 right channel.
441
442 At first an array [0, 0, 0, ... ] is generated which corresponds to the channels.
443 Next the cluster generated in the array.
444 Final array will be like [0, 0, ..., 1, 2, 5, 1, 0, ...],
445 [0, 17, 0, ...] or etc.
446 """
447
448 if int(ceil(wmp + 0.5 + cluster_width_max)) < chpos_max:
449 max_fired_ch = int(ceil(wmp + 0.5 + cluster_width_max))
450 else:
451 max_fired_ch = int(ceil(chpos_max))
452 cluster = [0 for _ in range(max_fired_ch)]
453 mean = wmp
454 if width == 1:
455 if wmp == chpos_min:
456 fired_channel = 0
457 elif wmp == chpos_max:
458 fired_channel = int(chpos_max)
459 else:
460 fired_channel = int(wmp + 0.5)
461 cluster[fired_channel] += amplitude
462 else:
463 sigma = width * sigma_from_width
464 for _ in range(amplitude):
465 fired_channel = int(round(random.gauss(mean, sigma)))
466 while not 0 <= fired_channel < len(cluster):
467 fired_channel = int(round(random.gauss(mean, sigma)))
468 cluster[fired_channel] += 1
469 return cluster
470

◆ cluster_width_mean()

TTCluster.cluster_width_mean (   distance,
  params = cluster_width_mean_params 
)
    It return a mean cluster width depending on the distance to SiPMs

Definition at line 347 of file TTCluster.py.

347def cluster_width_mean(distance, params=cluster_width_mean_params):
348
349 """
350 It return a mean cluster width depending on the distance to SiPMs
351 """
352
353 A, B, C = params
354 return exp(A + B*distance) + C
355

◆ cluster_width_random()

TTCluster.cluster_width_random (   distance,
  ly,
  persent = random_width_persent,
  cluster_width_min = cluster_width_min,
  cluster_width_max = cluster_width_max 
)
    It generates a cluster. The cluster have 'ly' photoelectrons. 
    The cluster width depends on the distance to SiPM

Definition at line 365 of file TTCluster.py.

366 cluster_width_min=cluster_width_min, cluster_width_max=cluster_width_max):
367
368 """
369 It generates a cluster. The cluster have 'ly' photoelectrons.
370 The cluster width depends on the distance to SiPM
371 """
372
373 mean = cluster_width_mean(distance)
374 sigma = cluster_width_sigma(distance)
375 if random.random() <= persent:
376 return random.randint(cluster_width_min, cluster_width_max)
377 random_width = int(round(random.gauss(mean - 1, sigma))) + 1
378
379 # Generate again if the width < minimal width and the light yield < the width
380 while random_width < 1 or ly < random_width:
381 random_width = int(round(random.gauss(mean - 1, sigma))) + 1
382
383 return random_width
384

◆ cluster_width_sigma()

TTCluster.cluster_width_sigma (   distance,
  params = cluster_width_sigma_params 
)
    It return a standard deviation of the mean cluster width depending on the distance to SiPMs

Definition at line 356 of file TTCluster.py.

356def cluster_width_sigma(distance, params=cluster_width_sigma_params):
357
358 """
359 It return a standard deviation of the mean cluster width depending on the distance to SiPMs
360 """
361
362 A, B = params
363 return A + B*distance
364

◆ cm_to_channel()

TTCluster.cm_to_channel (   locpos,
  sipm_map = sipm_map,
  gaps_map = gaps_map,
  pitch = pitch,
  charr = charr,
  reverse = False,
  ch_max_num = ch_max_num,
  n_solid_sipms = n_solid_sipms 
)

FUNCTIONS FOR TTCLASS #####################################################.

    It converts a particle position (an event) measured in cm to a position measured 
    in channels. The SiPM map is used. The position is in the scifi modul frame.

Definition at line 203 of file TTCluster.py.

204 reverse=False, ch_max_num=ch_max_num, n_solid_sipms=n_solid_sipms):
205
206 """
207 It converts a particle position (an event) measured in cm to a position measured
208 in channels. The SiPM map is used. The position is in the scifi modul frame.
209 """
210
211 if reverse is True:
212 for left, right, ch_range in sipm_map:
213 if left <= locpos <= right:
214 if not ch_range is False:
215 ch_start = ch_range[0]
216 return ch_max_num - ((locpos-left) / pitch + ch_start)
217 else:
218 return gaps_map.get((n_solid_sipms - (locpos + hw) // charr), False)
219 elif reverse is False:
220 for left, right, ch_range in sipm_map:
221 if left <= locpos <= right:
222 if not ch_range is False:
223 ch_start = ch_range[0]
224 return (locpos-left) / pitch + ch_start
225 else:
226 return gaps_map.get((locpos + hw) // charr, False)
227

◆ create_cluster()

TTCluster.create_cluster (   amplitude,
  width,
  wmp 
)
    The final function for creating a signal cluster

Definition at line 486 of file TTCluster.py.

486def create_cluster(amplitude, width, wmp):
487
488 """
489 The final function for creating a signal cluster
490
491 """
492 if not chpos_min < wmp < chpos_max: return False
493 if wmp is False: return False
494 if not ly_min <= amplitude >= width: return False
495 shifted_wmp = wmp + 0.5 # For right counting
496 cluster = cluster_generator(amplitude, width, shifted_wmp)
497
498 # Generate again if it doesn't look like real cluster
499 while is_realistic(cluster, width) is False:
500 cluster = cluster_generator(amplitude, width, shifted_wmp)
501
502 return cluster
503

◆ edep_to_ly()

TTCluster.edep_to_ly (   energy,
  CDF_integral = CDF_integral,
  energy_range = energy_range,
  ly_linear_params = ly_linear_params,
  k_cdfs_corr = k_cdfs_corr,
  sigma_in_percent = sigma_in_percent,
  ly_CDF_params = ly_CDF_params,
  CDF_ly_params = CDF_ly_params,
  ly_CDF_landau_params = ly_CDF_landau_params 
)
    It returns the light yield calculated from the energy deposit. The calculations are based 
    on the equality of the cumulative distribution functions (CDF) :
    energy => CDF(energy) => CDF(light yield) => ly

    The linear converting range 0.18 MeV < dE < 0.477 MeV corresponds 4.5 < LY < 104 ph.e.

    If energy more then 0.477 MeV the light yield calculated randomly (uniformly in the range) 
    according to the distribution

    Also a little randomness is added to the CDF value with a normal distribution and 
    standard deviation with 'sigma_in_percent' (in percent of the whole range 0 - max CDF)

Definition at line 397 of file TTCluster.py.

399 ly_CDF_params=ly_CDF_params, CDF_ly_params=CDF_ly_params, ly_CDF_landau_params=ly_CDF_landau_params):
400
401 """
402 It returns the light yield calculated from the energy deposit. The calculations are based
403 on the equality of the cumulative distribution functions (CDF) :
404 energy => CDF(energy) => CDF(light yield) => ly
405
406 The linear converting range 0.18 MeV < dE < 0.477 MeV corresponds 4.5 < LY < 104 ph.e.
407
408 If energy more then 0.477 MeV the light yield calculated randomly (uniformly in the range)
409 according to the distribution
410
411 Also a little randomness is added to the CDF value with a normal distribution and
412 standard deviation with 'sigma_in_percent' (in percent of the whole range 0 - max CDF)
413 """
414
415 e_min, e_max = energy_range
416 A, C = ly_linear_params
417 if e_min < energy < e_max:
418 ly_lin = A * energy + C
419 cdf_raw = approx_function(ly_lin, ly_CDF_landau_params) * k_cdfs_corr
420 elif e_max <= energy:
421 cdf_raw = CDF_integral * np.random.uniform(0., 1.0)
422 else:
423 return 0.
424 cdf_random = random.gauss(cdf_raw, sigma_in_percent * CDF_integral)
425
426 # Generate again while the CDF value is not in the range
427 while cdf_random < 0 or cdf_random > CDF_integral:
428 cdf_random = random.gauss(cdf_raw, sigma_in_percent * CDF_integral)
429
430 return approx_function(cdf_random, CDF_ly_params)
431

◆ GetMatLength()

TTCluster.GetMatLength (   DetID)
    It returns a length of a scifi mat. The values 'scifimat_vert', 'scifimat_hor' are set 
    in the FairShip geometry file.

Definition at line 269 of file TTCluster.py.

269def GetMatLength(DetID):
270
271 """
272 It returns a length of a scifi mat. The values 'scifimat_vert', 'scifimat_hor' are set
273 in the FairShip geometry file.
274 """
275
276 global scifimat_vert, scifimat_hor
277
278 if GetMatType(DetID) == 1:
279 return scifimat_vert
280 elif GetMatType(DetID) == 0:
281 return scifimat_hor
282

◆ GetMatNum()

TTCluster.GetMatNum (   DetID)
    It returns an id (number) of a scifi module. In current version one plane have 7 vertical
    and 11 horisontal scifi assemblies. 

Definition at line 260 of file TTCluster.py.

260def GetMatNum(DetID):
261
262 """
263 It returns an id (number) of a scifi module. In current version one plane have 7 vertical
264 and 11 horisontal scifi assemblies.
265 """
266
267 return int(DetID % 1000 % 100)
268

◆ GetMatQty()

TTCluster.GetMatQty (   DetID)
    It returns a number of scifi mats in a plane. In current version it is 7 for vertical
    and 11 for horisontal scifi assemblies.

Definition at line 283 of file TTCluster.py.

283def GetMatQty(DetID):
284
285 """
286 It returns a number of scifi mats in a plane. In current version it is 7 for vertical
287 and 11 for horisontal scifi assemblies.
288 """
289
290 global n_vert_planes, n_hor_planes
291
292 if GetMatType(DetID) == 1:
293 return n_vert_planes
294 elif GetMatType(DetID) == 0:
295 return n_hor_planes
296

◆ GetMatType()

TTCluster.GetMatType (   DetID)
    It returns a type of a scifi module.
    1 - vertical scifi assembly
    0 - horizontal scifi assembly

Definition at line 248 of file TTCluster.py.

248def GetMatType(DetID):
249
250 """
251 It returns a type of a scifi module.
252 1 - vertical scifi assembly
253 0 - horizontal scifi assembly
254 """
255
256 if DetID < 1000: return False
257 return (DetID % 1000) // 100.
258
259

◆ GetStationNum()

TTCluster.GetStationNum (   DetID)
    It returns an id of a plane. In current the detector have 19 TT stations and 5 HPT stations.

Definition at line 297 of file TTCluster.py.

297def GetStationNum(DetID):
298
299 """
300 It returns an id of a plane. In current the detector have 19 TT stations and 5 HPT stations.
301 """
302
303 return int(hit.GetDetectorID() // 1000.)
304

◆ global_to_local()

TTCluster.global_to_local (   DetID,
  globalpos 
)
    It returns the local coordinates in one scifi assembly frame from global coordinates.

Definition at line 305 of file TTCluster.py.

305def global_to_local(DetID, globalpos):
306
307 """
308 It returns the local coordinates in one scifi assembly frame from global coordinates.
309 """
310
311 global scifimat_width
312
313 matnum = GetMatNum(DetID)
314 nmats = GetMatQty(DetID)
315 return globalpos + ((nmats-1)/2. - matnum + 1) * scifimat_width
316

◆ is_realistic()

TTCluster.is_realistic (   cluster,
  width 
)
    It returns TRUE if cluster is realistic: it doesn't have a gap between numders, like
    [..., 0, 1, 2, 0, 0, 5, 6, ...], and it doens't have the light yield less then width.

Definition at line 471 of file TTCluster.py.

471def is_realistic(cluster, width):
472
473 """
474 It returns TRUE if cluster is realistic: it doesn't have a gap between numders, like
475 [..., 0, 1, 2, 0, 0, 5, 6, ...], and it doens't have the light yield less then width.
476 """
477
478 cluster_only_values = [(channel, value) for channel, value in enumerate(cluster) if value > 0]
479 first_channel, _ = cluster_only_values[0]
480 last_channel, _ = cluster_only_values[-1]
481 if len(cluster_only_values) != width or (last_channel - first_channel + 1) != width:
482 return False
483 else:
484 return True
485

◆ local_to_global()

TTCluster.local_to_global (   DetID,
  localpos 
)
    It returns the global coordinates from the local coordinates in one scifi assembly frame.

Definition at line 317 of file TTCluster.py.

317def local_to_global(DetID, localpos):
318
319 """
320 It returns the global coordinates from the local coordinates in one scifi assembly frame.
321 """
322
323 global scifimat_width
324
325 matnum = GetMatNum(DetID)
326 nmats = GetMatQty(DetID)
327 return localpos + (-nmats/2. + matnum - 1/2.) * scifimat_width
328

◆ ly_attenuation()

TTCluster.ly_attenuation (   distance)
    It return the light yield losses in percent depending on the distance to SiPMs

Definition at line 338 of file TTCluster.py.

338def ly_attenuation(distance):
339
340 """
341 It return the light yield losses in percent depending on the distance to SiPMs
342 """
343
344 res_ly_loss = ly_loss_mean(distance) / ly_loss_mean(0.)
345 return res_ly_loss
346

◆ ly_loss_mean()

TTCluster.ly_loss_mean (   distance,
  params = ly_loss_params 
)
    It return the light yield depending on the distance to SiPMs

Definition at line 329 of file TTCluster.py.

329def ly_loss_mean(distance, params=ly_loss_params):
330
331 """
332 It return the light yield depending on the distance to SiPMs
333 """
334
335 A1, k1, A2, k2 = params
336 return A1 * exp(k1 * distance / 100.) + A2 * exp(k2 * distance / 100.)
337

◆ weigthed_mean_pos()

TTCluster.weigthed_mean_pos (   cluster)
    Calculate the weighted mean position of the cluster

Definition at line 504 of file TTCluster.py.

504def weigthed_mean_pos(cluster):
505
506 """
507 Calculate the weighted mean position of the cluster
508 """
509
510 if cluster is False:
511 return False
512 sumup = 0.
513 sumdown = 0.
514 wmp = 0.
515 for channel, value in enumerate(cluster):
516 if value > 0:
517 sumup += value * channel
518 sumdown += value
519 if sumdown != 0:
520 wmp = sumup / sumdown - 0.5
521 return wmp
522

Variable Documentation

◆ array

float TTCluster.array = gap + 2.*charr

Definition at line 38 of file TTCluster.py.

◆ axs

TTCluster.axs = plt.gca()

Definition at line 727 of file TTCluster.py.

◆ biggap

float TTCluster.biggap = 0.042

Definition at line 39 of file TTCluster.py.

◆ bins

TTCluster.bins

Definition at line 731 of file TTCluster.py.

◆ caloDesign

dict TTCluster.caloDesign = design2018['caloDesign']

Definition at line 183 of file TTCluster.py.

◆ CDF_integral

float TTCluster.CDF_integral = 0.0185640424

Definition at line 102 of file TTCluster.py.

◆ CDF_ly_params

dict TTCluster.CDF_ly_params
Initial value:
1= {
2 (0., 0.0006): (
3 (89., 4.152, 0.0001574, -1.326e+04, 4.3),
4 lambda cdf, *p: p[0] * sqrt(p[1]*(cdf+p[2])) * (1-exp(p[3]*cdf)) + p[4]
5 ),
6 (0.0006, 0.012): (
7 (158, 1.035, 0.24, 217),
8 lambda cdf, *p: p[0] * log(sqrt(cdf)+p[1]) + p[2]*exp(p[3]*cdf)
9 ),
10 (0.012, 0.018561405): (
11 (9.36, 335.984, -18100, -400, 15),
12 lambda cdf, *p: p[0] * log((p[1]-p[2]*cdf)/(p[1]+p[2]*cdf)) + p[3]*cdf + p[4]
13 ),
14 (0.018561405, 0.0185640424): (
15 (9.36, 335.984, -18100, -400, 15),
16 lambda cdf, *p: (p[0] * log((p[1]-p[2]*0.018561405)/(p[1]+p[2]*0.018561405))
17 + p[3]*0.018561405 + p[4])
18 )
19}

Definition at line 154 of file TTCluster.py.

◆ ch_max_num

int TTCluster.ch_max_num = 511

Definition at line 40 of file TTCluster.py.

◆ charr

float TTCluster.charr = 1.6

Definition at line 35 of file TTCluster.py.

◆ chpos_max

float TTCluster.chpos_max = 511.5

Definition at line 93 of file TTCluster.py.

◆ chpos_min

float TTCluster.chpos_min = -0.5

Definition at line 92 of file TTCluster.py.

◆ cluster_width_max

int TTCluster.cluster_width_max = 10

Definition at line 95 of file TTCluster.py.

◆ cluster_width_mean_params

float TTCluster.cluster_width_mean_params = 0.6661, -0.006955, 2.163

Definition at line 82 of file TTCluster.py.

◆ cluster_width_min

int TTCluster.cluster_width_min = 1

Definition at line 94 of file TTCluster.py.

◆ cluster_width_sigma_params

float TTCluster.cluster_width_sigma_params = 1.103, -0.0005751

Definition at line 83 of file TTCluster.py.

◆ design2018

dict TTCluster.design2018 = {'dy': 10.,'dv': 6,'ds': 9,'nud': 3,'caloDesign': 3,'strawDesign': 10}

LOAD THE TARGET TRACKER GEOMETRY #########.

Definition at line 178 of file TTCluster.py.

◆ ds

dict TTCluster.ds = design2018['ds']

Definition at line 181 of file TTCluster.py.

◆ dv

dict TTCluster.dv = design2018['dv']

Definition at line 180 of file TTCluster.py.

◆ dy

dict TTCluster.dy = design2018['dy']

Definition at line 179 of file TTCluster.py.

◆ edge

float TTCluster.edge = 0.017

Definition at line 36 of file TTCluster.py.

◆ energy_range

float TTCluster.energy_range = 0.18, 0.477

Definition at line 99 of file TTCluster.py.

◆ fig

TTCluster.fig

Definition at line 727 of file TTCluster.py.

◆ gap

float TTCluster.gap = 0.025

Definition at line 37 of file TTCluster.py.

◆ gaps_map

dict TTCluster.gaps_map
Initial value:
1= {
2 0.: -0.5,
3 1.: 63.5,
4 2.: 127.5,
5 3.: 191.5,
6 4.: 255.5,
7 5.: 319.5,
8 6.: 383.5,
9 7.: 447.5,
10 8.: 511.5
11}

Definition at line 66 of file TTCluster.py.

◆ geofile

TTCluster.geofile = None

Definition at line 185 of file TTCluster.py.

◆ hpt_points

float TTCluster.hpt_points = []

Definition at line 632 of file TTCluster.py.

◆ hpt_raw

float TTCluster.hpt_raw = []

Definition at line 634 of file TTCluster.py.

◆ hw

float TTCluster.hw = 13.06 / 2.

Definition at line 33 of file TTCluster.py.

◆ is_sipm_hor_reversed

bool TTCluster.is_sipm_hor_reversed = True

Definition at line 23 of file TTCluster.py.

◆ is_sipm_vert_reversed

bool TTCluster.is_sipm_vert_reversed = True

Definition at line 24 of file TTCluster.py.

◆ k_cdfs_corr

float TTCluster.k_cdfs_corr = 0.993076766938

Definition at line 109 of file TTCluster.py.

◆ label

TTCluster.label

Definition at line 731 of file TTCluster.py.

◆ loc

TTCluster.loc

Definition at line 734 of file TTCluster.py.

◆ ly_bins

TTCluster.ly_bins = np.linspace(4,104,100)

Definition at line 730 of file TTCluster.py.

◆ ly_CDF_landau_params

dict TTCluster.ly_CDF_landau_params
Initial value:
1= {
2 (4.5, 15): (
3 (0.001038, -0.000378, 3.53e-05),
4 lambda ly, *p: p[0] + p[1]*ly + p[2]*ly**2
5 ),
6 (15, 40): (
7 (-0.001986, -0.0003014, 7.031e-05, -2.067e-06, 1.892e-08),
8 lambda ly, *p: p[0] + p[1]*ly + p[2]*ly**2 + p[3]*ly**3 + p[4]*ly**4
9 ),
10 (40, 104): (
11 (-0.007149, 0.001056, -1.779e-05, 1.41e-07, -4.29e-10),
12 lambda ly, *p: p[0] + p[1]*ly + p[2]*ly**2 + p[3]*ly**3 + p[4]*ly**4
13 )
14}

Definition at line 138 of file TTCluster.py.

◆ ly_CDF_params

dict TTCluster.ly_CDF_params
Initial value:
1= {
2 (4.5, 13): (
3 (-13.2, 1.976),
4 lambda ly, *p: exp(p[0] + p[1]*sqrt(ly))
5 ),
6 (13, 104): (
7 (0.0108183, -0.179752, -19.2, 0.00772965),
8 lambda ly, *p: p[0]*(1 - exp(p[1]*(ly+p[2]))) / (1 + exp(p[1]*(ly+p[2]))) + p[3]
9 )
10}

Definition at line 124 of file TTCluster.py.

◆ ly_linear_params

float TTCluster.ly_linear_params = 332.882, -58.7085

Definition at line 106 of file TTCluster.py.

◆ ly_loss_params

float TTCluster.ly_loss_params = 20.78, -0.26, 7.89, -3.06

Definition at line 80 of file TTCluster.py.

◆ ly_loss_sigma_params

float TTCluster.ly_loss_sigma_params = 6.8482, -0.5757, 3.4458

Definition at line 81 of file TTCluster.py.

◆ ly_max

int TTCluster.ly_max = 104

Definition at line 91 of file TTCluster.py.

◆ ly_min

float TTCluster.ly_min = 4.5

Definition at line 90 of file TTCluster.py.

◆ muonfile

TTCluster.muonfile = ROOT.TFile("$PWD/ship.conical.PG_13-TGeant4.root")

Definition at line 637 of file TTCluster.py.

◆ n_hor_planes

TTCluster.n_hor_planes = ship_geo.NuTauTT.n_hor_planes

Definition at line 191 of file TTCluster.py.

◆ n_solid_sipms

int TTCluster.n_solid_sipms = 8

Definition at line 41 of file TTCluster.py.

◆ n_tt_stations

TTCluster.n_tt_stations = ship_geo.NuTauTT.n

Definition at line 197 of file TTCluster.py.

◆ n_vert_planes

TTCluster.n_vert_planes = ship_geo.NuTauTT.n_vert_planes

Definition at line 192 of file TTCluster.py.

◆ nbins

TTCluster.nbins = 24

Definition at line 738 of file TTCluster.py.

◆ nud

dict TTCluster.nud = design2018['nud']

Definition at line 182 of file TTCluster.py.

◆ pitch

float TTCluster.pitch = 0.025

Definition at line 34 of file TTCluster.py.

◆ pnt

TTCluster.pnt = TTCluster(hit.GetDetectorID(), hit.GetX(), hit.GetY(), hit.GetEnergyLoss())

Definition at line 643 of file TTCluster.py.

◆ random_width_persent

float TTCluster.random_width_persent = 0.01

Definition at line 87 of file TTCluster.py.

◆ scifimat_hor

TTCluster.scifimat_hor = ship_geo.NuTauTT.scifimat_hor

Definition at line 193 of file TTCluster.py.

◆ scifimat_vert

TTCluster.scifimat_vert = ship_geo.NuTauTT.scifimat_vert

Definition at line 194 of file TTCluster.py.

◆ scifimat_width

TTCluster.scifimat_width = ship_geo.NuTauTT.scifimat_width

Definition at line 195 of file TTCluster.py.

◆ scifimat_z

TTCluster.scifimat_z = ship_geo.NuTauTT.scifimat_z

Definition at line 196 of file TTCluster.py.

◆ ship_geo

TTCluster.ship_geo
Initial value:
1= ConfigRegistry.loadpy("$FAIRSHIP/geometry/geometry_config.py", Yheight=dy,
2 tankDesign=dv, muShieldDesign=ds, nuTauTargetDesign=nud, CaloDesign=caloDesign,
3 strawDesign=strawDesign, muShieldGeo=geofile)

Definition at line 187 of file TTCluster.py.

◆ sigma_from_width

int TTCluster.sigma_from_width = 1 / 4.

Definition at line 116 of file TTCluster.py.

◆ sigma_in_percent

float TTCluster.sigma_in_percent = 0.01

Definition at line 113 of file TTCluster.py.

◆ sipm_hor_pos

int TTCluster.sipm_hor_pos = +1

GLOBAL VALUES AND PARAMETERS ############.

Definition at line 18 of file TTCluster.py.

◆ sipm_map

tuple TTCluster.sipm_map
Initial value:
1= (
2 (-hw, -hw+edge, False),
3 (-hw+edge, -hw+edge+charr, (-0.5, 63.5)),
4 (-hw+edge+charr, -hw+edge+charr+gap, False),
5 (-hw+edge+charr+gap, -hw+edge+array, (63.5, 127.5)),
6 (-hw+edge+array, -hw+edge+array+biggap, False),
7 (-hw+edge+array+biggap, -hw+edge+array+biggap+charr, (127.5, 191.5)),
8 (-hw+edge+array+biggap+charr, -hw+edge+array+biggap+charr+gap, False),
9 (-hw+edge+array+biggap+charr+gap, -hw+edge+array+biggap+array, (191.5, 255.5)),
10 (-hw+edge+array+biggap+array, biggap/2., False),
11 (biggap/2., biggap/2.+charr, (255.5, 319.5)),
12 (biggap/2.+charr, biggap/2.+charr+gap, False),
13 (biggap/2.+charr+gap, biggap/2.+array, (319.5, 383.5)),
14 (biggap/2.+array, biggap/2.+array+biggap, False),
15 (biggap/2.+array+biggap, biggap/2.+array+biggap+charr, (383.5, 447.5)),
16 (biggap/2.+array+biggap+charr, biggap/2.+array+biggap+charr+gap, False),
17 (biggap/2.+array+biggap+charr+gap, biggap/2.+array+biggap+charr+array, (447.5, 511.5)),
18 (biggap/2.+array+biggap+charr+array, biggap/2.+array+biggap+charr+array+edge, False)
19)

Definition at line 45 of file TTCluster.py.

◆ sipm_vert_pos

int TTCluster.sipm_vert_pos = -1

Definition at line 19 of file TTCluster.py.

◆ strawDesign

dict TTCluster.strawDesign = design2018['strawDesign']

Definition at line 184 of file TTCluster.py.

◆ tree

TTCluster.tree = muonfile.Get("cbmsim")

Definition at line 638 of file TTCluster.py.

◆ tt_points

float TTCluster.tt_points = []

EXAMPLE OF USING THE CLASS #######.

Definition at line 631 of file TTCluster.py.

◆ tt_raw

float TTCluster.tt_raw = []

Definition at line 633 of file TTCluster.py.

◆ xz_points

float TTCluster.xz_points = []

Definition at line 746 of file TTCluster.py.

◆ yz_points

float TTCluster.yz_points = []

Definition at line 747 of file TTCluster.py.