--
XuWeiWei - 2011-07-08
(1) 概述
找到2个匹配的AMSEcal2DCluster对象,构建ECAL最高层次的类AMSEcalShower。
(2) 程序流程
a. 从第一个AMSEcal2DCluster对象开始,进行while循环:
a) 对一个AMSEcal2DCluster对象p2d来说,与之匹配的应该是属于不同投影平面的AMSEcal2DCluster,当然应该是好的(p2do->Good())。
b) 找到与p2d的能量最接近的那个AMSEcal2DCluster,p2do。将p2d和p2do的指针赋给p2dc[2],即对每一个AMSEcal2DCluster对象,只要找到另外一个与之匹配的位于不同投影平面的即可。
c) 如果找不到匹配的,则放弃这个p2d,成为最后没有匹配的AMSEcal2DCluster对象。
d) 将p2dc[]中的对象的Status设置为USED。
e) 通过AMSEcalShower的构造函数,构建一个AMSEcalShower对象。
b. 将未匹配的AMSEcal2DCluster对象添加到合适的AMSEcalShower中去:
a) 对每一个AMSEcal2DCluster对象循环,如果它的Status不是USED,则进行下一步。
b) 是否合适的标准是,添加了这个孤立的AMSEcal2DCluster之后,AMSEcalShower的能量分布的对称性是否满足要求。
c) 找到使得能量分布不对称性最小的那个AMSEcalShower对象,将这个孤立的AMSEcal2DCluster添加给它。
c. 对每个AMSEcalShower进行必要的拟合。
a) 如果不是rerun的
i. 能量拟合EnergyFit()
ii. 方向拟合DirectionFit()
iii. 衰减长度修正 _AttCorr()
b) 如果是rerun的,
i. 衰减长度修正 _AttCorr()
ii. 能量拟合EnergyFit()
iii. 纵向簇射模式拟合ProfileFit()。
iv. 方向拟合DirectionFit()
v. 电磁簇射横向拟合EMagFit()
vi. 球面拟合SphFit().