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)
106 aHit_TCA = self.
digiScifi.ConstructedAt(index)
107 ROOT.std.swap(aHit, aHit_TCA)
109 for k
in mcPoints[detID]:
110 mcLinks.Add(detID,k, mcPoints[detID][k]/norm[detID])
112 ROOT.std.swap(mcLinks, mcLinks_TCA)
116 mcLinks = ROOT.Hit2MCPoints()
120 for p
in self.
sTree.MuFilterPoint:
123 detID = p.GetDetectorID()
124 if not detID
in hitContainer:
125 hitContainer[detID]=[]
128 hitContainer[detID].append(p)
129 mcPoints[detID][k]=p.GetEnergyLoss()
130 norm[detID]+= p.GetEnergyLoss()
132 for detID
in hitContainer:
133 allPoints = ROOT.std.vector(
'MuFilterPoint*')()
134 for p
in hitContainer[detID]:
135 allPoints.push_back(p)
136 aHit = ROOT.MuFilterHit(detID,allPoints)
140 ROOT.std.swap(aHit, aHit_TCA)
142 for k
in mcPoints[detID]:
143 mcLinks.Add(detID,k, mcPoints[detID][k]/norm[detID])
145 ROOT.std.swap(mcLinks, mcLinks_TCA)
150 for k
in range(self.
sTree.Digi_ScifiHits.GetEntries()):
151 d = self.
sTree.Digi_ScifiHits[k]
152 if not d.isValid():
continue
153 hitDict[d.GetDetectorID()] = k
154 hitList = list(hitDict.keys())
160 last = len(hitList)-1
161 hitlist = ROOT.std.vector(
"sndScifiHit*")()
162 for i
in range(len(hitList)):
163 if i==0
and len(hitList)>1:
continue
167 if (c-cprev)!=1
or c==hitList[last]:
171 for aHit
in tmp: hitlist.push_back( self.
sTree.Digi_ScifiHits[hitDict[aHit]],)
172 aCluster = ROOT.sndCluster(first,N,hitlist,self.
scifiDet)
174 aCluster_TCA = self.
clusScifi.ConstructedAt(index)
175 ROOT.std.swap(aCluster, aCluster_TCA)