FairShip
Loading...
Searching...
No Matches
timeDetector.timeDetector Class Reference
Inheritance diagram for timeDetector.timeDetector:
Collaboration diagram for timeDetector.timeDetector:

Public Member Functions

None __init__ (self, name, intree, outtree=None)
 
None digitize (self)
 
- Public Member Functions inherited from BaseDetector.BaseDetector
None __init__ (self, name, intree, branchName=None, mcBranchType=None, mcBranchName=None, int splitLevel=99, outtree=None)
 
None delete (self)
 
None fill (self)
 
None digitize (self)
 
None process (self)
 

Additional Inherited Members

- Public Attributes inherited from BaseDetector.BaseDetector
 name
 
 intree
 
 outtree
 
 det
 
 MCdet
 
 mcBranch
 
 branch
 

Detailed Description

Definition at line 8 of file timeDetector.py.

Constructor & Destructor Documentation

◆ __init__()

None timeDetector.timeDetector.__init__ (   self,
  name,
  intree,
  branchName = None 
)
Initialize the detector digitizer.

Reimplemented from BaseDetector.BaseDetector.

Definition at line 9 of file timeDetector.py.

9 def __init__(self, name, intree, outtree=None) -> None:
10 super().__init__(name, intree, outtree=outtree)
11

Member Function Documentation

◆ digitize()

None timeDetector.timeDetector.digitize (   self)
Digitize timing detector MC hits.

The earliest hit per straw will be marked valid, all later ones invalid.

Reimplemented from BaseDetector.BaseDetector.

Definition at line 12 of file timeDetector.py.

12 def digitize(self) -> None:
13 """Digitize timing detector MC hits.
14
15 The earliest hit per straw will be marked valid, all later ones invalid.
16 """
17 earliest_per_det_id = {}
18 for index, point in enumerate(self.intree.TimeDetPoint):
19 hit = ROOT.TimeDetHit(point, self.intree.t0)
20 self.det.push_back(hit)
21 detector_id = hit.GetDetectorID()
22 if hit.isValid():
23 if detector_id in earliest_per_det_id:
24 times = hit.GetMeasurements()
25 earliest = earliest_per_det_id[detector_id]
26 reference_times = self.det[earliest].GetMeasurements()
27 # this is not really correct, only first attempt
28 # case that one measurement only is earlier not taken into account
29 # SetTDC(Float_t val1, Float_t val2)
30 if reference_times[0] > times[0] or reference_times[1] > times[1]:
31 # second hit with smaller tdc
32 self.det[earliest].setInvalid()
33 earliest_per_det_id[detector_id] = index
34 else:
35 self.det[index].setInvalid()
36 else:
37 earliest_per_det_id[detector_id] = index

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