SND@LHC Software
Loading...
Searching...
No Matches
ConvRawData.ConvRawDataPY Class Reference
Inheritance diagram for ConvRawData.ConvRawDataPY:
Collaboration diagram for ConvRawData.ConvRawDataPY:

Public Member Functions

 Init (self, options)
 
 channel (self, tofpet_id, tofpet_channel, position)
 
 qdc_chi2 (self, board_id, tofpet_id, channel, tac, TDC=0)
 
 qdc_sat (self, board_id, tofpet_id, channel, tac, v_fine)
 
 comb_calibration (self, board_id, tofpet_id, channel, tac, v_coarse, v_fine, t_coarse, t_fine, GQDC=1.0, TDC=0)
 
 calibrationReport (self)
 
 debugMapping (self, board, tofpet_id, tofpet_channel)
 
 printChannelInfo (self)
 
 printCurrentRun (self)
 
 getStartTime (self)
 
 Run (self)
 
 executeEvent (self, eventNumber)
 
 executeEvent1 (self, eventNumber)
 
 executeEvent0 (self, eventNumber)
 
 Finalize (self)
 

Public Attributes

 debug
 
 monitoring
 
 auto
 
 outFile
 
 fsdict
 
 FSmap
 
 run
 
 ioman
 
 fiN
 
 nEvents
 
 newFormat
 
 Lchannel
 
 Lcrun
 

Static Public Attributes

 options
 
 logger = ROOT.FairLogger.GetLogger()
 
 outfile
 
 xrdb
 
 fSink
 
 fqdc_cal = open(path+'/qdc_cal.csv')
 
 Lqdc = fqdc_cal.readlines()
 
 ftdc_cal = open(path+'/tdc_cal.csv')
 
 Ltdc = ftdc_cal.readlines()
 
 status
 
 L = Lqdc
 
 qdc_cal = self.qdc_cal
 
 tmp = L[l].replace('\n','').split(',')
 
 board_id = int(tmp[0])
 
 fe_id = int(tmp[1])
 
 channel = int(tmp[2])
 
 tac = int(tmp[3])
 
 X = qdc_cal[board_id][fe_id][channel][tac]
 
 tdc = int(tmp[4])
 
dict SiPMmap = {}
 
 TofpetMap
 
dict key = {'DS':2,'US':1,'Veto':0}
 
 sndswPath = os.environ['SNDSW_ROOT']
 
str infile = sndswPath+"/geometry/"+system+"_SiPM_mapping.csv"
 
 reader = csv.DictReader(f, delimiter=',')
 
dict row = SiPMmap[system][channel]
 
 jsonStr = f.read()
 
 boardMaps
 
 slots
 
 MufiSystem
 
int s = 0
 
 s
 
 offMap
 
 boards
 
 name = b.GetName()
 
 sTree
 
 header
 
 eventSND = self.sTree.Branch("EventHeader.",self.header,32000,-1)
 
 digiSciFi
 
 digiSciFiBranch
 
 digiMuFilter
 
 digiMuFilterHitBranch
 
 geoVersion
 
 B = ROOT.TList()
 
 run_startUTC
 
 system = self.MufiSystem[board_id][tofpet_id]
 
tuple key = (tofpet_id%2)*1000 + tofpet_channel
 
int sipmChannel = 99
 
 nSiPMs = abs(self.offMap[tmp][1])
 
 nSides = abs(self.offMap[tmp][2])
 
 direction = int(self.offMap[tmp][1]/nSiPMs)
 
 detID = self.offMap[tmp][0] + direction*(sipmChannel//(nSiPMs))
 
int sipm_number = sipmChannel%(nSiPMs)
 
 test = digiMuFilterStore[detID].GetSignal(sipm_number)
 
 chan = self.channel(tofpet_id,tofpet_channel,mat)
 
int orientation = 1
 
 orientation
 
tuple sipmLocal = (chan - mat*512)
 
int sipmID = 1000000*int(station[1]) + 100000*orientation + 10000*mat + 1000*(sipmLocal//128) + chan%128
 
 F = self.outfile.GetRootFile()
 
 T = F.Get("cbmsim")
 

Detailed Description

Definition at line 13 of file ConvRawData.py.

Member Function Documentation

◆ calibrationReport()

ConvRawData.ConvRawDataPY.calibrationReport (   self)

Definition at line 334 of file ConvRawData.py.

334 def calibrationReport(self):
335 qdc_cal = self.qdc_cal
336 report = {}
337 TDC = 0
338 for b in qdc_cal:
339 for t in qdc_cal[b]:
340 for c in qdc_cal[b][t]:
341 for tac in qdc_cal[b][t][c]:
342 par = qdc_cal[b][t][c][tac]
343 if 'chi2Ndof' in par: chi2 = par['chi2Ndof']
344 else: chi2=-1
345 parT = qdc_cal[b][t][c][tac][TDC]
346 if 'chi2Ndof' in parT: chi2T = parT['chi2Ndof']
347 else: chi2T=-1
348 key = tac +10*c + t*10*100 + b*10*100*100
349 if not key in report: report[key]=[chi2,chi2T]
350 return report
351

◆ channel()

ConvRawData.ConvRawDataPY.channel (   self,
  tofpet_id,
  tofpet_channel,
  position 
)

Definition at line 305 of file ConvRawData.py.

305 def channel(self,tofpet_id,tofpet_channel,position):
306 return (64 * tofpet_id + 63 - tofpet_channel + 512*position) # 512 channels per mat, 1536 channels per plane
307 # one channel covers all 6 layers of fibres
308

◆ comb_calibration()

ConvRawData.ConvRawDataPY.comb_calibration (   self,
  board_id,
  tofpet_id,
  channel,
  tac,
  v_coarse,
  v_fine,
  t_coarse,
  t_fine,
  GQDC = 1.0,
  TDC = 0 
)

Definition at line 321 of file ConvRawData.py.

321 def comb_calibration(self,board_id,tofpet_id,channel,tac,v_coarse,v_fine,t_coarse,t_fine,GQDC = 1.0, TDC=0): # max gain QDC = 3.6
322 qdc_cal = self.qdc_cal
323 par = qdc_cal[board_id][tofpet_id][channel][tac]
324 parT = par[TDC]
325 x = t_fine
326 ftdc = (-parT['b']-ROOT.TMath.Sqrt(parT['b']**2-4*parT['a']*(parT['c']-x)))/(2*parT['a']) # Ettore 28/01/2022 +parT['d']
327 timestamp = t_coarse + ftdc
328 tf = timestamp - t_coarse
329 x = v_coarse - tf
330 fqdc = -par['c']*ROOT.TMath.Log(1+ROOT.TMath.Exp( par['a']*(x-par['e'])**2-par['b']*(x-par['e']) )) + par['d']
331 value = (v_fine-fqdc)/GQDC
332 return timestamp,value,max(par['chi2Ndof'],parT['chi2Ndof']),v_fine/par['d']
333

◆ debugMapping()

ConvRawData.ConvRawDataPY.debugMapping (   self,
  board,
  tofpet_id,
  tofpet_channel 
)

Definition at line 352 of file ConvRawData.py.

352 def debugMapping(self,board,tofpet_id,tofpet_channel):
353 key = (tofpet_id%2)*1000 + tofpet_channel
354 tmp = boardMaps['MuFilter'][board][self.slots[tofpet_id]]
355 sipmChannel = TofpetMap[system][key]-1
356 nSiPMs = abs(offMap[tmp][1])
357 nSides = abs(offMap[tmp][2])
358 direction = int(offMap[tmp][1]/nSiPMs)
359 detID = offMap[tmp][0] + direction*(sipmChannel//(nSiPMs))
360 sipm_number = sipmChannel%(nSiPMs)
361 print(sipmChannel,nSiPMs,nSides,detID,sipm_number)
362

◆ executeEvent()

ConvRawData.ConvRawDataPY.executeEvent (   self,
  eventNumber 
)

Definition at line 417 of file ConvRawData.py.

417 def executeEvent(self,eventNumber):
418 if self.newFormat: self.executeEvent1(eventNumber)
419 else: self.executeEvent0(eventNumber)

◆ executeEvent0()

ConvRawData.ConvRawDataPY.executeEvent0 (   self,
  eventNumber 
)

Definition at line 560 of file ConvRawData.py.

560 def executeEvent0(self,eventNumber):
561 if self.options.FairTask_convRaw:
562 # update source and run conversion starting from a custom eventN
563 if self.auto:
564 self.run.GetTask("ConvRawData").UpdateInput(eventNumber)
565 self.run.Run(self.options.nStart, self.nEvents)
566 Fout = self.outfile.GetRootFile()
567 self.sTree = Fout.Get('cbmsim')
568 return
569 if eventNumber%self.options.heartBeat==0 or self.debug:
570 print('run ',self.options.runNumber, ' event',eventNumber," ",time.ctime())
571 event = self.fiN.event
572 rc = event.GetEvent(eventNumber)
573 self.header.SetEventTime(event.timestamp)
574 self.header.SetRunId( self.options.runNumber )
575 self.header.SetInputFileId(self.geoVersion)
576
577 indexSciFi=0
578 self.digiSciFi.Delete()
579 digiSciFiStore = {}
580 indexMuFilter = 0
581 self.digiMuFilter.Delete()
582 digiMuFilterStore = {}
583
584 for board in self.boards:
585 board_id = int(board.split('_')[1])
586 scifi = True
587 if board in self.boardMaps['Scifi']:
588 station,mat = self.boardMaps['Scifi'][board]
589 elif board in self.boardMaps['MuFilter']:
590 scifi = False
591 else:
592 print(board+' not known. Serious error, stop')
593 1/0
594 bt = self.boards[board]
595 rc = bt.GetEvent(eventNumber)
596 for n in range(bt.n_hits):
597 mask = False
598 tofpet_id = bt.tofpet_id[n]
599 tofpet_channel = bt.tofpet_channel[n]
600 if self.options.makeCalibration:
601 if self.options.debug:
602 print(scifi,board_id,bt.tofpet_id[n],bt.tofpet_channel[n],bt.tac[n],bt.t_coarse[n],bt.t_fine[n],bt.v_coarse[n],bt.v_fine[n])
603 tac = bt.tac[n]
604 TDC,QDC,Chi2ndof,satur = self.comb_calibration(board_id,tofpet_id,tofpet_channel,tac,bt.v_coarse[n],bt.v_fine[n],bt.t_coarse[n],bt.t_fine[n])
605 else:
606 TDC = bt.timestamp[n]
607 QDC = bt.value[n]
608 Chi2ndof = 1
609 satur = 0.
610 if Chi2ndof > self.options.chi2Max:
611 if QDC>1E20: QDC = 997. # checking for inf
612 if QDC != QDC: QDC = 998. # checking for nan
613 if QDC>0: QDC = -QDC
614 mask = True
615 elif satur > self.options.saturationLimit or QDC>1E20 or QDC != QDC:
616 if QDC>1E20: QDC = 987. # checking for inf
617 if self.options.debug:
618 print('inf',board_id,bt.tofpet_id[n],bt.tofpet_channel[n],bt.tac[n],bt.v_coarse[n],bt.v_fine[n],TDC-bt.t_coarse[n],eventNumber,Chi2ndof)
619 if QDC != QDC: QDC = 988. # checking for nan
620 if self.options.debug:
621 print('nan',board_id,bt.tofpet_id[n],bt.tofpet_channel[n],bt.tac[n],bt.v_coarse[n],bt.v_fine[n],\
622 TDC-bt.t_coarse[n],TDC,bt.t_coarse[n],eventNumber,Chi2ndof)
623 A = int(min( QDC,1000))
624 B = min(satur,999)/1000.
625 QDC = A+B
626 mask = True
627 elif Chi2ndof > self.options.chi2Max:
628 if QDC>0: QDC = -QDC
629 mask = True
630 if self.options.debug:
631 print('calibrated: tdc = ',TDC,' qdc = ',QDC) # TDC clock cycle = 160 MHz or 6.25ns
632
633 if not scifi:

◆ executeEvent1()

ConvRawData.ConvRawDataPY.executeEvent1 (   self,
  eventNumber 
)

Definition at line 420 of file ConvRawData.py.

420 def executeEvent1(self,eventNumber):
421 if self.options.FairTask_convRaw:
422 # update source and run conversion starting from a custom eventN
423 if self.auto:
424 self.run.GetTask("ConvRawData").UpdateInput(eventNumber)
425 self.run.Run(self.options.nStart, self.nEvents)
426 Fout = self.outfile.GetRootFile()
427 self.sTree = Fout.Get('cbmsim')
428 return
429 if eventNumber%self.options.heartBeat==0 or self.debug:
430 print('run ',self.options.runNumber, ' event',eventNumber," ",time.ctime())
431
432 event = self.fiN.data
433 event.GetEvent(eventNumber)
434 self.header.SetEventTime(event.evt_timestamp)
435 self.header.SetUTCtimestamp(int(event.evt_timestamp*6.23768*1e-9 + self.run_startUTC))
436 self.header.SetEventNumber(event.evt_number) # for new event header
437 self.header.SetFlags(event.evt_flags)
438 self.header.SetRunId( self.options.runNumber )
439 if self.FSmap.GetEntries()>1:
440 if self.header.GetAccMode()== 12: # ion runs
441 self.header.SetBunchType(int(str(self.FSmap.GetValue(str(int((event.evt_timestamp%(4*3564))/8))))))
442 else: # proton runs
443 self.header.SetBunchType(int(str(self.FSmap.GetValue(str(int((event.evt_timestamp%(4*3564))/4))))))
444 else:
445 self.header.SetBunchType(int(str(self.FSmap.GetValue("0"))))
446
447 indexSciFi=0
448 self.digiSciFi.Delete()
449 digiSciFiStore = {}
450 indexMuFilter = 0
451 self.digiMuFilter.Delete()
452 digiMuFilterStore = {}
453
454 for n in range(event.n_hits):
455 board_id = event.boardId[n]
456 board = 'board_'+str(board_id)
457 scifi = True
458 if board in self.boardMaps['Scifi']:
459 station,mat = self.boardMaps['Scifi'][board]
460 elif board in self.boardMaps['MuFilter']:
461 scifi = False
462 else:
463 print(board+' not known. Serious error, stop')
464 1/0
465 mask = False
466 tofpet_id = event.tofpetId[n]
467 tofpet_channel = event.tofpetChannel[n]
468 if self.options.makeCalibration:
469 if self.options.debug:
470 tac = event.tac[n]
471 print(scifi,board_id,tofpet_id,tofpet_channel,tac,event.tCoarse[n],event.tFine[n],event.vCoarse[n],event.vFine[n])
472 TDC,QDC,Chi2ndof,satur = self.comb_calibration(board_id,tofpet_id,tofpet_channel,tac,event.vCoarse[n],event.vFine[n],event.tCoarse[n],event.tFine[n])
473 else:
474 TDC = event.timestamp[n]
475 QDC = event.value[n]
476 QDCchi2N = event.valueCalChi2[n]/event.valueCalDof[n]
477 TDCchi2N = event.timestampCalChi2[n]/event.timestampCalDof[n]
478 Chi2ndof = max( QDCchi2N,TDCchi2N )
479 satur = event.value_saturation[n]
480 if Chi2ndof > self.options.chi2Max:
481 if QDC>1E20: QDC = 997. # checking for inf
482 if QDC != QDC: QDC = 998. # checking for nan
483 if QDC>0: QDC = -QDC
484 mask = True
485 elif satur > self.options.saturationLimit or QDC>1E20 or QDC != QDC:
486 if QDC>1E20: QDC = 987. # checking for inf
487 if self.options.debug:
488 print('inf',board_id,tofpet_id,tofpet_channel,event.tac[n],event.vCoarse[n],event.vFine[n],TDC-event.tCoarse[n],eventNumber,Chi2ndof)
489 if QDC != QDC: QDC = 988. # checking for nan
490 if self.options.debug:
491 print('nan',board_id,tofpet_id,tofpet_channel,event.tac[n],event.vCoarse[n],event.vFine[n],TDC-event.tCoarse[n],eventNumber,Chi2ndof)
492 A = int(min( QDC,1000))
493 B = min(satur,999)/1000.
494 QDC = A+B
495 mask = True
496 elif Chi2ndof > self.options.chi2Max:
497 if QDC>0: QDC = -QDC
498 mask = True
499 if self.options.debug:
500 print('calibrated: tdc = ',TDC,' qdc = ',QDC) # TDC clock cycle = 160 MHz or 6.25ns
501
502 if not scifi:

◆ Finalize()

ConvRawData.ConvRawDataPY.Finalize (   self)

Definition at line 693 of file ConvRawData.py.

693 def Finalize(self):
694 if self.options.FairTask_convRaw:

◆ getStartTime()

ConvRawData.ConvRawDataPY.getStartTime (   self)

Definition at line 385 of file ConvRawData.py.

385 def getStartTime(self):
386 runNr = str( abs(self.options.runNumber) ).zfill(6)
387 path = self.options.path+'run_'+ runNr+'/'
388 jname = "run_timestamps.json"
389 from XRootD import client
390 with client.File() as f:
391 f.open(self.options.server+path+jname)
392 status, jsonStr = f.read()
393 f.close()
394 date = json.loads(jsonStr)
395 time_str = date['start_time'].replace('Z','')
396 time_obj = time.strptime(time_str, '%Y-%m-%dT%H:%M:%S')
397 startTimeOfRun = calendar.timegm(time_obj)
398 return startTimeOfRun
399

◆ Init()

ConvRawData.ConvRawDataPY.Init (   self,
  options 
)

Definition at line 15 of file ConvRawData.py.

15 def Init(self,options):
16 self.debug = options.debug
17 self.monitoring = options.online
18 self.auto = options.auto
19 local = False
20 if (options.path.find('eos')<0 and options.server.find('root://')<0 and not options.online) or os.path.isdir(options.path): local = True
21 if local: server = ''
22 else:
23 server = options.server
24 from XRootD import client
25 # https://xrootd.slac.stanford.edu/doc/python/xrootd-python-0.1.0/examples.html
26 if options.runNumber>0:
27 runNr = str(options.runNumber).zfill(6)
28 path = options.path+'run_'+ runNr+'/'
29 if options.partition < 0:
30 inFile = 'data.root'
31 self.outFile = "sndsw_raw_"+runNr+'.root'
32 else:
33 part = str(options.partition).zfill(4)
34 inFile = 'data_'+part+'.root'
35 self.outFile = "sndsw_raw_"+runNr+'-'+part+'.root'
36 if self.monitoring: # this is an online stream
37 server = options.server
38 runNr = str( abs(options.runNumber) ).zfill(6)
39 path = options.path+'run_'+ runNr+'/'
40 inFile = 'data_'+part+'.root'
41 self.outFile = ROOT.TMemFile('monitorRawData', 'recreate')
42
43# get filling scheme per run
44 self.fsdict = False
45 try:
46 if options.path.find('2022')!=-1: fpath = "/eos/experiment/sndlhc/convertedData/physics/2022/"
47 elif options.path.find('2023')!=-1: fpath = "/eos/experiment/sndlhc/convertedData/physics/2023/"
48 elif options.path.find('2024')!=-1: fpath = "/eos/experiment/sndlhc/convertedData/physics/2024/"
49 else: fpath = "/eos/experiment/sndlhc/convertedData/commissioning/TI18/"
50 fg = ROOT.TFile.Open(options.server+fpath+"/FSdict.root")
51 pkl = Unpickler(fg)
52 FSdict = pkl.load('FSdict')
53 fg.Close()
54 if options.runNumber in FSdict:
55 if 'B1' in FSdict[options.runNumber]: self.fsdict = FSdict[options.runNumber]
56 except:
57 print('continue without knowing filling scheme',options.server+options.path)
58
59 # put the run's FS in format to be passed to FairTasks as input
60 self.FSmap = ROOT.TMap()
61 if self.fsdict:
62 # For LHC ion runs the phase shift of beam 2 could not be
63 # determined and is assigned 0 or 1718(=1782-64) in the FS dict
64 # For pp runs phase2 is 3564-129.
65 if self.fsdict['phaseShift2'] == 0 or self.fsdict['phaseShift2'] == 1718:
66 Nbunches = 1782
67 else: Nbunches = 3564 # proton runs
68 for bunchNumber in range (0, Nbunches):
69 nb1 = (Nbunches + bunchNumber - self.fsdict['phaseShift1'])%Nbunches
70 nb2 = (Nbunches + bunchNumber - self.fsdict['phaseShift1']- self.fsdict['phaseShift2'])%Nbunches
71 b1 = nb1 in self.fsdict['B1']
72 b2 = nb2 in self.fsdict['B2']
73 IP1 = False
74 IP2 = False
75 if b1:
76 IP1 = self.fsdict['B1'][nb1]['IP1']
77 if b2:
78 IP2 = self.fsdict['B2'][nb2]['IP2']
79 self.FSmap.Add(ROOT.TObjString(str(bunchNumber)), ROOT.TObjString(str(int(IP2))+str(int(IP1))+str(int(b2))+str(int(b1))))
80 else: self.FSmap.Add(ROOT.TObjString("0"), ROOT.TObjString("-1"))
81
82 self.run = ROOT.FairRunAna()
83 self.ioman = ROOT.FairRootManager.Instance()
84 ioman = self.ioman
85# open input file
86 if options.auto:
87 mpath = options.path+options.monitorTag+'run_'+ runNr+'/'
88 self.fiN=ROOT.TFile.Open(server+mpath+inFile)
89 else:
90 self.fiN=ROOT.TFile.Open(server+path+inFile)
91 self.nEvents = 1
92 self.newFormat = True
93 if self.fiN.Get('event'): self.newFormat = False # old format
94 if not self.monitoring:
95 if self.newFormat:
96 if options.nEvents<0: self.nEvents = self.fiN.data.GetEntries()
97 else: self.nEvents = min(options.nEvents,self.fiN.data.GetEntries())
98 else:
99 if options.nEvents<0: self.nEvents = self.fiN.event.GetEntries()
100 else: self.nEvents = min(options.nEvents,self.fiN.event.GetEntries())
101 print('converting ',self.nEvents,' events ',' of run',options.runNumber)

◆ printChannelInfo()

ConvRawData.ConvRawDataPY.printChannelInfo (   self)

Definition at line 363 of file ConvRawData.py.

363 def printChannelInfo(self):
364 runNr = str( abs(self.options.runNumber) ).zfill(6)
365 path = self.options.path+'run_'+ runNr+'/'
366 from XRootD import client
367 with client.File() as f:
368 f.open(self.options.server+path+"/channels.csv")
369 status, L = f.read()
370 self.Lchannel = L.decode().split('\n')
371 f.close()
372 for l in self.Lchannel: print(l)
373

◆ printCurrentRun()

ConvRawData.ConvRawDataPY.printCurrentRun (   self)

Definition at line 374 of file ConvRawData.py.

374 def printCurrentRun(self):
375 filename = "currently_processed_file.txt"
376 path = self.options.path
377 from XRootD import client
378 with client.File() as f:
379 f.open(self.options.server+path+filename)
380 status, L = f.read()
381 self.Lcrun = L.decode().split('\n')
382 f.close()
383 for l in self.Lcrun: print(l)
384

◆ qdc_chi2()

ConvRawData.ConvRawDataPY.qdc_chi2 (   self,
  board_id,
  tofpet_id,
  channel,
  tac,
  TDC = 0 
)

Definition at line 310 of file ConvRawData.py.

310 def qdc_chi2(self,board_id,tofpet_id,channel,tac,TDC=0):
311 qdc_cal = self.qdc_cal
312 par = qdc_cal[board_id][tofpet_id][channel][tac]
313 parT = qdc_cal[board_id][tofpet_id][channel][tac][TDC]
314 return max(par['chi2Ndof'],parT['chi2Ndof'])
315

◆ qdc_sat()

ConvRawData.ConvRawDataPY.qdc_sat (   self,
  board_id,
  tofpet_id,
  channel,
  tac,
  v_fine 
)

Definition at line 316 of file ConvRawData.py.

316 def qdc_sat(self,board_id,tofpet_id,channel,tac,v_fine):
317 qdc_cal = self.qdc_cal
318 par = qdc_cal[board_id][tofpet_id][channel][tac]
319 return v_fine/par['d']
320

◆ Run()

ConvRawData.ConvRawDataPY.Run (   self)

Definition at line 409 of file ConvRawData.py.

409 def Run(self):
410 if self.options.FairTask_convRaw:
411 self.run.Run(self.options.nStart, self.nEvents)
412 else:
413 for eventNumber in range(self.options.nStart,self.nEvents):
414 self.executeEvent(eventNumber)
415 # fill TTree
416 self.sTree.Fill()

Member Data Documentation

◆ auto

ConvRawData.ConvRawDataPY.auto

Definition at line 18 of file ConvRawData.py.

◆ B

ConvRawData.ConvRawDataPY.B = ROOT.TList()
static

Definition at line 292 of file ConvRawData.py.

◆ board_id

ConvRawData.ConvRawDataPY.board_id = int(tmp[0])
static

Definition at line 178 of file ConvRawData.py.

◆ boardMaps

ConvRawData.ConvRawDataPY.boardMaps
static

Definition at line 242 of file ConvRawData.py.

◆ boards

ConvRawData.ConvRawDataPY.boards
static

Definition at line 274 of file ConvRawData.py.

◆ chan

ConvRawData.ConvRawDataPY.chan = self.channel(tofpet_id,tofpet_channel,mat)
static

Definition at line 536 of file ConvRawData.py.

◆ channel

ConvRawData.ConvRawDataPY.channel = int(tmp[2])
static

Definition at line 182 of file ConvRawData.py.

◆ debug

ConvRawData.ConvRawDataPY.debug

Definition at line 16 of file ConvRawData.py.

◆ detID

ConvRawData.ConvRawDataPY.detID = self.offMap[tmp][0] + direction*(sipmChannel//(nSiPMs))
static

Definition at line 517 of file ConvRawData.py.

◆ digiMuFilter

ConvRawData.ConvRawDataPY.digiMuFilter
static

Definition at line 288 of file ConvRawData.py.

◆ digiMuFilterHitBranch

ConvRawData.ConvRawDataPY.digiMuFilterHitBranch
static

Definition at line 289 of file ConvRawData.py.

◆ digiSciFi

ConvRawData.ConvRawDataPY.digiSciFi
static

Definition at line 286 of file ConvRawData.py.

◆ digiSciFiBranch

ConvRawData.ConvRawDataPY.digiSciFiBranch
static

Definition at line 287 of file ConvRawData.py.

◆ direction

ConvRawData.ConvRawDataPY.direction = int(self.offMap[tmp][1]/nSiPMs)
static

Definition at line 516 of file ConvRawData.py.

◆ eventSND

ConvRawData.ConvRawDataPY.eventSND = self.sTree.Branch("EventHeader.",self.header,32000,-1)
static

Definition at line 284 of file ConvRawData.py.

◆ F

ConvRawData.ConvRawDataPY.F = self.outfile.GetRootFile()
static

Definition at line 696 of file ConvRawData.py.

◆ fe_id

ConvRawData.ConvRawDataPY.fe_id = int(tmp[1])
static

Definition at line 180 of file ConvRawData.py.

◆ fiN

ConvRawData.ConvRawDataPY.fiN

Definition at line 88 of file ConvRawData.py.

◆ fqdc_cal

ConvRawData.ConvRawDataPY.fqdc_cal = open(path+'/qdc_cal.csv')
static

Definition at line 157 of file ConvRawData.py.

◆ fsdict

ConvRawData.ConvRawDataPY.fsdict

Definition at line 44 of file ConvRawData.py.

◆ fSink

ConvRawData.ConvRawDataPY.fSink
static

Definition at line 148 of file ConvRawData.py.

◆ FSmap

ConvRawData.ConvRawDataPY.FSmap

Definition at line 60 of file ConvRawData.py.

◆ ftdc_cal

ConvRawData.ConvRawDataPY.ftdc_cal = open(path+'/tdc_cal.csv')
static

Definition at line 159 of file ConvRawData.py.

◆ geoVersion

ConvRawData.ConvRawDataPY.geoVersion
static

Definition at line 290 of file ConvRawData.py.

◆ header

ConvRawData.ConvRawDataPY.header
static

Definition at line 283 of file ConvRawData.py.

◆ infile

str ConvRawData.ConvRawDataPY.infile = sndswPath+"/geometry/"+system+"_SiPM_mapping.csv"
static

Definition at line 223 of file ConvRawData.py.

◆ ioman

ConvRawData.ConvRawDataPY.ioman

Definition at line 83 of file ConvRawData.py.

◆ jsonStr

ConvRawData.ConvRawDataPY.jsonStr = f.read()
static

Definition at line 236 of file ConvRawData.py.

◆ key [1/2]

tuple ConvRawData.ConvRawDataPY.key = {'DS':2,'US':1,'Veto':0}
static

Definition at line 220 of file ConvRawData.py.

◆ key [2/2]

tuple ConvRawData.ConvRawDataPY.key = (tofpet_id%2)*1000 + tofpet_channel
static

Definition at line 505 of file ConvRawData.py.

◆ L

ConvRawData.ConvRawDataPY.L = Lqdc
static

Definition at line 164 of file ConvRawData.py.

◆ Lchannel

ConvRawData.ConvRawDataPY.Lchannel

Definition at line 370 of file ConvRawData.py.

◆ Lcrun

ConvRawData.ConvRawDataPY.Lcrun

Definition at line 381 of file ConvRawData.py.

◆ logger

ConvRawData.ConvRawDataPY.logger = ROOT.FairLogger.GetLogger()
static

Definition at line 120 of file ConvRawData.py.

◆ Lqdc

ConvRawData.ConvRawDataPY.Lqdc = fqdc_cal.readlines()
static

Definition at line 158 of file ConvRawData.py.

◆ Ltdc

ConvRawData.ConvRawDataPY.Ltdc = ftdc_cal.readlines()
static

Definition at line 160 of file ConvRawData.py.

◆ monitoring

ConvRawData.ConvRawDataPY.monitoring

Definition at line 17 of file ConvRawData.py.

◆ MufiSystem

ConvRawData.ConvRawDataPY.MufiSystem
static

Definition at line 246 of file ConvRawData.py.

◆ name

ConvRawData.ConvRawDataPY.name = b.GetName()
static

Definition at line 276 of file ConvRawData.py.

◆ nEvents

ConvRawData.ConvRawDataPY.nEvents

Definition at line 91 of file ConvRawData.py.

◆ newFormat

ConvRawData.ConvRawDataPY.newFormat

Definition at line 92 of file ConvRawData.py.

◆ nSides

ConvRawData.ConvRawDataPY.nSides = abs(self.offMap[tmp][2])
static

Definition at line 515 of file ConvRawData.py.

◆ nSiPMs

ConvRawData.ConvRawDataPY.nSiPMs = abs(self.offMap[tmp][1])
static

Definition at line 514 of file ConvRawData.py.

◆ offMap

ConvRawData.ConvRawDataPY.offMap
static

Definition at line 258 of file ConvRawData.py.

◆ options

ConvRawData.ConvRawDataPY.options
static

Definition at line 117 of file ConvRawData.py.

◆ orientation [1/2]

int ConvRawData.ConvRawDataPY.orientation = 1
static

Definition at line 537 of file ConvRawData.py.

◆ orientation [2/2]

ConvRawData.ConvRawDataPY.orientation
static

Definition at line 538 of file ConvRawData.py.

◆ outFile

ConvRawData.ConvRawDataPY.outFile

Definition at line 31 of file ConvRawData.py.

◆ outfile

ConvRawData.ConvRawDataPY.outfile
static

Definition at line 135 of file ConvRawData.py.

◆ qdc_cal

ConvRawData.ConvRawDataPY.qdc_cal = self.qdc_cal
static

Definition at line 172 of file ConvRawData.py.

◆ reader

ConvRawData.ConvRawDataPY.reader = csv.DictReader(f, delimiter=',')
static

Definition at line 227 of file ConvRawData.py.

◆ row

dict ConvRawData.ConvRawDataPY.row = SiPMmap[system][channel]
static

Definition at line 232 of file ConvRawData.py.

◆ run

ConvRawData.ConvRawDataPY.run

Definition at line 82 of file ConvRawData.py.

◆ run_startUTC

ConvRawData.ConvRawDataPY.run_startUTC
static

Definition at line 301 of file ConvRawData.py.

◆ s [1/2]

int ConvRawData.ConvRawDataPY.s = 0
static

Definition at line 252 of file ConvRawData.py.

◆ s [2/2]

ConvRawData.ConvRawDataPY.s
static

Definition at line 254 of file ConvRawData.py.

◆ sipm_number

int ConvRawData.ConvRawDataPY.sipm_number = sipmChannel%(nSiPMs)
static

Definition at line 518 of file ConvRawData.py.

◆ sipmChannel

int ConvRawData.ConvRawDataPY.sipmChannel = 99
static

Definition at line 508 of file ConvRawData.py.

◆ sipmID

int ConvRawData.ConvRawDataPY.sipmID = 1000000*int(station[1]) + 100000*orientation + 10000*mat + 1000*(sipmLocal//128) + chan%128
static

Definition at line 540 of file ConvRawData.py.

◆ sipmLocal

tuple ConvRawData.ConvRawDataPY.sipmLocal = (chan - mat*512)
static

Definition at line 539 of file ConvRawData.py.

◆ SiPMmap

dict ConvRawData.ConvRawDataPY.SiPMmap = {}
static

Definition at line 218 of file ConvRawData.py.

◆ slots

ConvRawData.ConvRawDataPY.slots
static

Definition at line 244 of file ConvRawData.py.

◆ sndswPath

ConvRawData.ConvRawDataPY.sndswPath = os.environ['SNDSW_ROOT']
static

Definition at line 221 of file ConvRawData.py.

◆ status

ConvRawData.ConvRawDataPY.status
static

Definition at line 164 of file ConvRawData.py.

◆ sTree

ConvRawData.ConvRawDataPY.sTree
static

Definition at line 281 of file ConvRawData.py.

◆ system

ConvRawData.ConvRawDataPY.system = self.MufiSystem[board_id][tofpet_id]
static

Definition at line 504 of file ConvRawData.py.

◆ T

ConvRawData.ConvRawDataPY.T = F.Get("cbmsim")
static

Definition at line 697 of file ConvRawData.py.

◆ tac

ConvRawData.ConvRawDataPY.tac = int(tmp[3])
static

Definition at line 184 of file ConvRawData.py.

◆ tdc

ConvRawData.ConvRawDataPY.tdc = int(tmp[4])
static

Definition at line 207 of file ConvRawData.py.

◆ test

ConvRawData.ConvRawDataPY.test = digiMuFilterStore[detID].GetSignal(sipm_number)
static

Definition at line 523 of file ConvRawData.py.

◆ tmp

ConvRawData.ConvRawDataPY.tmp = L[l].replace('\n','').split(',')
static

Definition at line 176 of file ConvRawData.py.

◆ TofpetMap

ConvRawData.ConvRawDataPY.TofpetMap
static

Definition at line 219 of file ConvRawData.py.

◆ X

ConvRawData.ConvRawDataPY.X = qdc_cal[board_id][fe_id][channel][tac]
static

Definition at line 186 of file ConvRawData.py.

◆ xrdb

ConvRawData.ConvRawDataPY.xrdb
static

Definition at line 142 of file ConvRawData.py.


The documentation for this class was generated from the following file: