124{
129 Float_t e3[40];
130 list<ecalCell*> lists[40];
131 Int_t isgood[40];
132 Int_t rejected=0;
133 list<ecalCell*> cells;
134 list<ecalCell*> cells2;
135 list<ecalCell*>::const_iterator
p;
136 list<ecalCell*>::const_iterator p2;
138 Float_t rawE;
139 Float_t ourE;
140 Float_t allE;
144
146 {
152 for(p=cells.begin();
p!=cells.end();++
p)
153 {
154 e3[
i]+=(*p)->GetEnergy();
156 {
159
160 if (find(cells2.begin(), cells2.end(), *p)!=cells2.end()) isgood[i]--;
161 }
162
163 (*p)->GetNeighborsList(cells2);
164 for(p2=cells2.begin();p2!=cells2.end();++p2)
165 {
166 if (*p2==maxs[i])
167 continue;
168 if (find(cells.begin(), cells.end(), *p2)!=cells.end())
169 continue;
170 if (find(lists[i].begin(), lists[i].
end(), *p2)==lists[
i].end())
171 lists[i].push_back(*p2);
172 }
173 }
174 if (p!=cells.end()) break;
175 }
176
177
179 {
180 if (isgood[i]!=1)
181 {
183 continue;
184 }
187 for(p=lists[i].begin();
p!=lists[
i].end();++
p)
188 {
189 allE=ourE;
191 {
192 if (k==i) continue;
194 if (find(cells2.begin(), cells2.end(), *p)!=cells2.end()) allE+=e3[
k];
195 }
196 rawE+=(*p)->GetEnergy()*ourE/allE;
197 }
199 }
201 if (rejected>0)
202 {
205 }
206}
void GetNeighborsList(std::list< ecalCell * > &neib) const
void Get5x5Cluster(std::list< ecalCell * > &cls)
Float_t GetEnergy() const
Double_t Calibrate(Int_t celltype, Double_t energy)