76 mcLinks = ROOT.Hit2MCPoints()
80 for p
in self.
sTree.ScifiPoint:
83 detID = p.GetDetectorID()
84 locFibreID = detID%100000
87 globsipmChan = int(detID/100000)*100000+sipmChan
88 if not globsipmChan
in hitContainer:
89 hitContainer[globsipmChan]=[]
90 mcPoints[globsipmChan] = {}
91 norm[globsipmChan] = 0
92 w = self.
siPMFibres[locFibreID][sipmChan][
'weight']
93 hitContainer[globsipmChan].append([p,w])
94 dE = p.GetEnergyLoss()*w
95 mcPoints[globsipmChan][k]=dE
96 norm[globsipmChan]+= dE
98 for detID
in hitContainer:
99 allPoints = ROOT.std.vector(
'ScifiPoint*')()
100 allWeights = ROOT.std.vector(
'Float_t')()
101 for p
in hitContainer[detID]:
102 allPoints.push_back(p[0])
103 allWeights.push_back(p[1])
104 aHit = ROOT.sndScifiHit(detID,allPoints,allWeights)
108 for k
in mcPoints[detID]:
109 mcLinks.Add(detID,k, mcPoints[detID][k]/norm[detID])
114 mcLinks = ROOT.Hit2MCPoints()
118 for p
in self.
sTree.MuFilterPoint:
121 detID = p.GetDetectorID()
122 if not detID
in hitContainer:
123 hitContainer[detID]=[]
126 hitContainer[detID].append(p)
127 mcPoints[detID][k]=p.GetEnergyLoss()
128 norm[detID]+= p.GetEnergyLoss()
130 for detID
in hitContainer:
131 allPoints = ROOT.std.vector(
'MuFilterPoint*')()
132 for p
in hitContainer[detID]:
133 allPoints.push_back(p)
134 aHit = ROOT.MuFilterHit(detID,allPoints)
139 for k
in mcPoints[detID]:
140 mcLinks.Add(detID,k, mcPoints[detID][k]/norm[detID])
146 for k
in range(self.
sTree.Digi_ScifiHits.GetEntries()):
147 d = self.
sTree.Digi_ScifiHits[k]
148 if not d.isValid():
continue
149 hitDict[d.GetDetectorID()] = k
150 hitList = list(hitDict.keys())
156 last = len(hitList)-1
157 hitlist = ROOT.std.vector(
"sndScifiHit*")()
158 for i
in range(len(hitList)):
159 if i==0
and len(hitList)>1:
continue
163 if (c-cprev)!=1
or c==hitList[last]:
167 for aHit
in tmp: hitlist.push_back( self.
sTree.Digi_ScifiHits[hitDict[aHit]],)
168 aCluster = ROOT.sndCluster(first,N,hitlist,self.
scifiDet)