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
 
 aHit = digiSciFiStore[sipmID]
 
 aHit_TCA = self.digiSciFi.ConstructedAt(indexSciFi)
 
 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 335 of file ConvRawData.py.

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

◆ channel()

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

Definition at line 306 of file ConvRawData.py.

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

◆ 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 322 of file ConvRawData.py.

322 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
323 qdc_cal = self.qdc_cal
324 par = qdc_cal[board_id][tofpet_id][channel][tac]
325 parT = par[TDC]
326 x = t_fine
327 ftdc = (-parT['b']-ROOT.TMath.Sqrt(parT['b']**2-4*parT['a']*(parT['c']-x)))/(2*parT['a']) # Ettore 28/01/2022 +parT['d']
328 timestamp = t_coarse + ftdc
329 tf = timestamp - t_coarse
330 x = v_coarse - tf
331 fqdc = -par['c']*ROOT.TMath.Log(1+ROOT.TMath.Exp( par['a']*(x-par['e'])**2-par['b']*(x-par['e']) )) + par['d']
332 value = (v_fine-fqdc)/GQDC
333 return timestamp,value,max(par['chi2Ndof'],parT['chi2Ndof']),v_fine/par['d']
334

◆ debugMapping()

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

Definition at line 353 of file ConvRawData.py.

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

◆ executeEvent()

ConvRawData.ConvRawDataPY.executeEvent (   self,
  eventNumber 
)

Definition at line 418 of file ConvRawData.py.

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

◆ executeEvent0()

ConvRawData.ConvRawDataPY.executeEvent0 (   self,
  eventNumber 
)

Definition at line 567 of file ConvRawData.py.

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

◆ executeEvent1()

ConvRawData.ConvRawDataPY.executeEvent1 (   self,
  eventNumber 
)

Definition at line 421 of file ConvRawData.py.

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

◆ Finalize()

ConvRawData.ConvRawDataPY.Finalize (   self)

Definition at line 706 of file ConvRawData.py.

706 def Finalize(self):
707 if self.options.FairTask_convRaw:

◆ getStartTime()

ConvRawData.ConvRawDataPY.getStartTime (   self)

Definition at line 386 of file ConvRawData.py.

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

◆ 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 elif options.path.find('2025')!=-1: fpath = "/eos/experiment/sndlhc/convertedData/physics/2025/"
50 else: fpath = "/eos/experiment/sndlhc/convertedData/commissioning/TI18/"
51 fg = ROOT.TFile.Open(options.server+fpath+"/FSdict.root")
52 pkl = Unpickler(fg)
53 FSdict = pkl.load('FSdict')
54 fg.Close()
55 if options.runNumber in FSdict:
56 if 'B1' in FSdict[options.runNumber]: self.fsdict = FSdict[options.runNumber]
57 except:
58 print('continue without knowing filling scheme',options.server+options.path)
59
60 # put the run's FS in format to be passed to FairTasks as input
61 self.FSmap = ROOT.TMap()
62 if self.fsdict:
63 # For LHC ion runs the phase shift of beam 2 could not be
64 # determined and is assigned 0 or 1718(=1782-64) in the FS dict
65 # For pp runs phase2 is 3564-129.
66 if self.fsdict['phaseShift2'] == 0 or self.fsdict['phaseShift2'] == 1718:
67 Nbunches = 1782
68 else: Nbunches = 3564 # proton runs
69 for bunchNumber in range (0, Nbunches):
70 nb1 = (Nbunches + bunchNumber - self.fsdict['phaseShift1'])%Nbunches
71 nb2 = (Nbunches + bunchNumber - self.fsdict['phaseShift1']- self.fsdict['phaseShift2'])%Nbunches
72 b1 = nb1 in self.fsdict['B1']
73 b2 = nb2 in self.fsdict['B2']
74 IP1 = False
75 IP2 = False
76 if b1:
77 IP1 = self.fsdict['B1'][nb1]['IP1']
78 if b2:
79 IP2 = self.fsdict['B2'][nb2]['IP2']
80 self.FSmap.Add(ROOT.TObjString(str(bunchNumber)), ROOT.TObjString(str(int(IP2))+str(int(IP1))+str(int(b2))+str(int(b1))))
81 else: self.FSmap.Add(ROOT.TObjString("0"), ROOT.TObjString("-1"))
82
83 self.run = ROOT.FairRunAna()
84 self.ioman = ROOT.FairRootManager.Instance()
85 ioman = self.ioman
86# open input file
87 if options.auto:
88 mpath = options.path+options.monitorTag+'run_'+ runNr+'/'
89 self.fiN=ROOT.TFile.Open(server+mpath+inFile)
90 else:
91 self.fiN=ROOT.TFile.Open(server+path+inFile)
92 self.nEvents = 1
93 self.newFormat = True
94 if self.fiN.Get('event'): self.newFormat = False # old format
95 if not self.monitoring:
96 if self.newFormat:
97 if options.nEvents<0: self.nEvents = self.fiN.Get("data").GetEntries()
98 else: self.nEvents = min(options.nEvents,self.fiN.Get("data").GetEntries())
99 else:
100 if options.nEvents<0: self.nEvents = self.fiN.Get("event").GetEntries()
101 else: self.nEvents = min(options.nEvents,self.fiN.Get("event").GetEntries())
102 print('converting ',self.nEvents,' events ',' of run',options.runNumber)

◆ printChannelInfo()

ConvRawData.ConvRawDataPY.printChannelInfo (   self)

Definition at line 364 of file ConvRawData.py.

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

◆ printCurrentRun()

ConvRawData.ConvRawDataPY.printCurrentRun (   self)

Definition at line 375 of file ConvRawData.py.

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

◆ qdc_chi2()

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

Definition at line 311 of file ConvRawData.py.

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

◆ qdc_sat()

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

Definition at line 317 of file ConvRawData.py.

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

◆ Run()

ConvRawData.ConvRawDataPY.Run (   self)

Definition at line 410 of file ConvRawData.py.

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

Member Data Documentation

◆ aHit

ConvRawData.ConvRawDataPY.aHit = digiSciFiStore[sipmID]
static

Definition at line 557 of file ConvRawData.py.

◆ aHit_TCA

ConvRawData.ConvRawDataPY.aHit_TCA = self.digiSciFi.ConstructedAt(indexSciFi)
static

Definition at line 558 of file ConvRawData.py.

◆ auto

ConvRawData.ConvRawDataPY.auto

Definition at line 18 of file ConvRawData.py.

◆ B

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

Definition at line 293 of file ConvRawData.py.

◆ board_id

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

Definition at line 179 of file ConvRawData.py.

◆ boardMaps

ConvRawData.ConvRawDataPY.boardMaps
static

Definition at line 243 of file ConvRawData.py.

◆ boards

ConvRawData.ConvRawDataPY.boards
static

Definition at line 275 of file ConvRawData.py.

◆ chan

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

Definition at line 539 of file ConvRawData.py.

◆ channel

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

Definition at line 183 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 520 of file ConvRawData.py.

◆ digiMuFilter

ConvRawData.ConvRawDataPY.digiMuFilter
static

Definition at line 289 of file ConvRawData.py.

◆ digiMuFilterHitBranch

ConvRawData.ConvRawDataPY.digiMuFilterHitBranch
static

Definition at line 290 of file ConvRawData.py.

◆ digiSciFi

ConvRawData.ConvRawDataPY.digiSciFi
static

Definition at line 287 of file ConvRawData.py.

◆ digiSciFiBranch

ConvRawData.ConvRawDataPY.digiSciFiBranch
static

Definition at line 288 of file ConvRawData.py.

◆ direction

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

Definition at line 519 of file ConvRawData.py.

◆ eventSND

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

Definition at line 285 of file ConvRawData.py.

◆ F

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

Definition at line 709 of file ConvRawData.py.

◆ fe_id

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

Definition at line 181 of file ConvRawData.py.

◆ fiN

ConvRawData.ConvRawDataPY.fiN

Definition at line 89 of file ConvRawData.py.

◆ fqdc_cal

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

Definition at line 158 of file ConvRawData.py.

◆ fsdict

ConvRawData.ConvRawDataPY.fsdict

Definition at line 44 of file ConvRawData.py.

◆ fSink

ConvRawData.ConvRawDataPY.fSink
static

Definition at line 149 of file ConvRawData.py.

◆ FSmap

ConvRawData.ConvRawDataPY.FSmap

Definition at line 61 of file ConvRawData.py.

◆ ftdc_cal

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

Definition at line 160 of file ConvRawData.py.

◆ geoVersion

ConvRawData.ConvRawDataPY.geoVersion
static

Definition at line 291 of file ConvRawData.py.

◆ header

ConvRawData.ConvRawDataPY.header
static

Definition at line 284 of file ConvRawData.py.

◆ infile

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

Definition at line 224 of file ConvRawData.py.

◆ ioman

ConvRawData.ConvRawDataPY.ioman

Definition at line 84 of file ConvRawData.py.

◆ jsonStr

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

Definition at line 237 of file ConvRawData.py.

◆ key [1/2]

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

Definition at line 221 of file ConvRawData.py.

◆ key [2/2]

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

Definition at line 506 of file ConvRawData.py.

◆ L

ConvRawData.ConvRawDataPY.L = Lqdc
static

Definition at line 165 of file ConvRawData.py.

◆ Lchannel

ConvRawData.ConvRawDataPY.Lchannel

Definition at line 371 of file ConvRawData.py.

◆ Lcrun

ConvRawData.ConvRawDataPY.Lcrun

Definition at line 382 of file ConvRawData.py.

◆ logger

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

Definition at line 121 of file ConvRawData.py.

◆ Lqdc

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

Definition at line 159 of file ConvRawData.py.

◆ Ltdc

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

Definition at line 161 of file ConvRawData.py.

◆ monitoring

ConvRawData.ConvRawDataPY.monitoring

Definition at line 17 of file ConvRawData.py.

◆ MufiSystem

ConvRawData.ConvRawDataPY.MufiSystem
static

Definition at line 247 of file ConvRawData.py.

◆ name

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

Definition at line 277 of file ConvRawData.py.

◆ nEvents

ConvRawData.ConvRawDataPY.nEvents

Definition at line 92 of file ConvRawData.py.

◆ newFormat

ConvRawData.ConvRawDataPY.newFormat

Definition at line 93 of file ConvRawData.py.

◆ nSides

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

Definition at line 518 of file ConvRawData.py.

◆ nSiPMs

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

Definition at line 517 of file ConvRawData.py.

◆ offMap

ConvRawData.ConvRawDataPY.offMap
static

Definition at line 259 of file ConvRawData.py.

◆ options

ConvRawData.ConvRawDataPY.options
static

Definition at line 118 of file ConvRawData.py.

◆ orientation [1/2]

int ConvRawData.ConvRawDataPY.orientation = 1
static

Definition at line 540 of file ConvRawData.py.

◆ orientation [2/2]

ConvRawData.ConvRawDataPY.orientation
static

Definition at line 541 of file ConvRawData.py.

◆ outFile

ConvRawData.ConvRawDataPY.outFile

Definition at line 31 of file ConvRawData.py.

◆ outfile

ConvRawData.ConvRawDataPY.outfile
static

Definition at line 136 of file ConvRawData.py.

◆ qdc_cal

ConvRawData.ConvRawDataPY.qdc_cal = self.qdc_cal
static

Definition at line 173 of file ConvRawData.py.

◆ reader

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

Definition at line 228 of file ConvRawData.py.

◆ row

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

Definition at line 233 of file ConvRawData.py.

◆ run

ConvRawData.ConvRawDataPY.run

Definition at line 83 of file ConvRawData.py.

◆ run_startUTC

ConvRawData.ConvRawDataPY.run_startUTC
static

Definition at line 302 of file ConvRawData.py.

◆ s [1/2]

int ConvRawData.ConvRawDataPY.s = 0
static

Definition at line 253 of file ConvRawData.py.

◆ s [2/2]

ConvRawData.ConvRawDataPY.s
static

Definition at line 255 of file ConvRawData.py.

◆ sipm_number

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

Definition at line 521 of file ConvRawData.py.

◆ sipmChannel

int ConvRawData.ConvRawDataPY.sipmChannel = 99
static

Definition at line 511 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 543 of file ConvRawData.py.

◆ sipmLocal

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

Definition at line 542 of file ConvRawData.py.

◆ SiPMmap

dict ConvRawData.ConvRawDataPY.SiPMmap = {}
static

Definition at line 219 of file ConvRawData.py.

◆ slots

ConvRawData.ConvRawDataPY.slots
static

Definition at line 245 of file ConvRawData.py.

◆ sndswPath

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

Definition at line 222 of file ConvRawData.py.

◆ status

ConvRawData.ConvRawDataPY.status
static

Definition at line 165 of file ConvRawData.py.

◆ sTree

ConvRawData.ConvRawDataPY.sTree
static

Definition at line 282 of file ConvRawData.py.

◆ system

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

Definition at line 505 of file ConvRawData.py.

◆ T

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

Definition at line 710 of file ConvRawData.py.

◆ tac

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

Definition at line 185 of file ConvRawData.py.

◆ tdc

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

Definition at line 208 of file ConvRawData.py.

◆ test

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

Definition at line 526 of file ConvRawData.py.

◆ tmp

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

Definition at line 177 of file ConvRawData.py.

◆ TofpetMap

ConvRawData.ConvRawDataPY.TofpetMap
static

Definition at line 220 of file ConvRawData.py.

◆ X

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

Definition at line 187 of file ConvRawData.py.

◆ xrdb

ConvRawData.ConvRawDataPY.xrdb
static

Definition at line 143 of file ConvRawData.py.


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