Difference: EcalClusterR (1 vs. 2)

Revision 22016-03-22 - TangZhicheng

Line: 1 to 1
 
META TOPICPARENT name="AMSEcalReconstruction"
-- XuWeiWei - 2011-07-08

<--[if gte mso 9]>  Normal 0    7.8 磅 0 2  false false false  EN-US ZH-CN X-NONE                                  <![endif]-->
<--[if gte mso 9]> DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="267"> SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal"/> SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>                   SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title"/>  SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong"/> SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid"/> UnhideWhenUsed="false" Name="Placeholder Text"/> SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light List"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3"/> SemiHidden="false" UnhideWhenUsed="false" Name="Dark List"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> UnhideWhenUsed="false" Name="Revision"/> SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Quote"/> SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6"/> SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6"/> SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>    <![endif]-->
<-- /* Font Definitions / @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0; mso-font-charset:2; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 415 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-520092929 1073786111 9 0 415 0;} @font-face {font-family:"\@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} / Style Definitions / p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:宋体; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:1.0pt;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; text-indent:21.0pt; mso-char-indent-count:2.0; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:宋体; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:1.0pt;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} / Page Definitions / @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} / List Definitions / @list l0 {mso-list-id:210120379; mso-list-type:hybrid; mso-list-template-ids:833361496 -702621328 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 {mso-level-number-format:alpha-lower; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:39.0pt; text-indent:-18.0pt;} @list l0:level2 {mso-level-number-format:alpha-lower; mso-level-text:"%2\)"; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:63.0pt; text-indent:-21.0pt;} @list l0:level3 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; margin-left:84.0pt; text-indent:-21.0pt;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} -->
<--[if gte mso 10]>  <![endif]-->

(1) 概述

将每一层的subcell击中信息构建一个Ecal1DCluster对象。AMS的ECAL一共有18层,每一层有72个subcell。在可能的情况下,对信号为0的subcell进行修复。根据在该层的每一个subcell内沉积的能量,寻找最大簇射的位置作为seed,然后在它周围找到该Cluster的边界,以沉积能量为权重计算簇射重心。计算该Cluster的能量。总体的过程为:

edep -> seed -> CoG -> edep

其中,edep[]是每一个Hit的能量,seed是寻找簇射种子,CoG是以沉积能量为权重求出的重心,edep是该Cluster的能量。

(2) 程序流程

对每一层做for循环。

获取第ipl层的第1个AMSEcalHit对象的指针,赋给ptr。推测AMSEcalHit对象是按所在的层进行链接的。当ptr指向下一个(即ptrànext())时,将会得到也是属于该层的AMSEcalHit。如果已经是指向下一层的第0个对象,ptr指针则会是空的。由此可以来做while循环。

对ptr做while循环。将遍历该层的所有subcell。

将每一个AMSEcalHit的指针填充一个数组中,并找到最大的沉积能量及相应subcell的编号。

如果最大沉积能量>0,进入以下步骤:

<--[if supportLists]-->
a.
<--[endif]-->
检查并恢复坏道。

<--[if supportLists]-->
a)
<--[endif]-->
初步的限定簇射的边界,以简化之后的簇射团寻找。从一层的两边向内检查每一个subcell。如果subcell的ADC小于0,或者ADC为0且低增益道是坏的,则将其定义为坏道,需要将之排除。

<--[if supportLists]-->
b)
<--[endif]-->
对属于此边界内的信号道进行检查,并尽可能的修复坏道。修复的算法:

<--[if supportLists]-->
i.
<--[endif]-->
如果左边和右边都不是坏道,则用二者ADC的平均值作为中间这一道的ADC值。

<--[if supportLists]-->
ii.
<--[endif]-->
如果左边是好的右边是坏的,则用左边ADC的1/2作为这一道的ADC值。

<--[if supportLists]-->
iii.
<--[endif]-->
如果右边是好的左边是坏的,则用右边ADC的1/2作为这一道的ADC值。以上三种情况,都标记为“泄露,已修复”

<--[if supportLists]-->
iv.
<--[endif]-->
如果两边都是坏道,则这一道的ADC设为0,并标记为“严重泄露”

<--[if supportLists]-->
b.
<--[endif]-->
寻找簇射团:在初步限定的边界内,对subcell做for循环

<--[if supportLists]-->
a)
<--[endif]-->
找到局部最大,即第i和i+1个subcell信号小于第i-1个,之前的i-2个subcell的信号幅度也是小于第i-1的。所以至少要4个subcell中是最大的,即大于前一个和后两个。

<--[if supportLists]-->
b)
<--[endif]-->
如果可能存在两个局部最大并且很难区分,则将该Cluster得Status设为WIDE;如果可能存在两个局部最大并且可以区分,则将该Cluster得Status设为NEAR。

<--[if supportLists]-->
c)
<--[endif]-->
找局部的边界,向左右两边的subcell做循环。左边的截止条件是ADC<0;右边的截止条件是第k个subcell的ADC超过作为种子的阈值且大于第k-1个,第k+1个ADC大于第k个。即之后有增加的趋势。

<--[if supportLists]-->
c.
<--[endif]-->
以沉积能量为权重计算Cluster的重心。

<--[if supportLists]-->
a)
<--[endif]-->
计算左半径(左边界到中心的距离)和右半径,以二者的最小值为Cluster的半径。

<--[if supportLists]-->
b)
<--[endif]-->
在Cluster半径的范围内做for循环

<--[if supportLists]-->
i.
<--[endif]-->
以subcell内的沉积能量为权重。

<--[if supportLists]-->
ii.
<--[endif]-->
对于中心的右边第一个,若Status已经设置为WIDE,则权重为能量的1/2。

<--[if supportLists]-->
d.
<--[endif]-->
计算属于Cluster沉积能量及相关变量

<--[if supportLists]-->
a)
<--[endif]-->
对不对称的簇射进行修正。如果在b步的左边界是a步的左边界,并且左半径小于右半径和Cl1DLeakSize=9。

<--[if supportLists]-->
i.
<--[endif]-->
如果左半径>0,则将Status定义为泄露“LEAK”

<--[if supportLists]-->
ii.
<--[endif]-->
如果左半径=0,则将Status定义为严重泄露“CATLEAK”

<--[if supportLists]-->
iii.
<--[endif]-->
利用簇射的左右对称性,对左边缺失的subcell,利用右边相应的subcell进行补偿。所谓的补偿,就是将相应的subcell的ADC值加到ec,ec3,ec5,ec9上。

<--[if supportLists]-->
iv.
<--[endif]-->
右边发生泄露时同理进行补偿。

<--[if supportLists]-->
b)
<--[endif]-->
在b步找到的簇射团边界内,对所有subcell做for循环。这里的范围与c步计算重心时的范围是不同的。

<--[if supportLists]-->
i.
<--[endif]-->
对于中心的右边第一个,若Status已经设置为WIDE,取其能量的1/2。

<--[if supportLists]-->
ii.
<--[endif]-->
以能量沉积为权重,计算位置的方差。它反映能量分布的分散程度。

<--[if supportLists]-->
e.
<--[endif]-->
构建Ecal1DCluster对象,添加到链表中区。

<--[if supportLists]-->
f.
<--[endif]-->
对孤立的Ecal1DCluster计数

<--[if supportLists]-->
a)
<--[endif]-->
对这一层中尚未使用的AMSEcalHit对象,用很粗糙的算法将其添加到Ecal1DCluster链表中。

<--[if supportLists]-->
b)
<--[endif]-->
对能量求和,并以能量为权重计算位置的方差。

<--[if supportLists]-->
c)
<--[endif]-->
构建Ecal1DCluster对象,其中能量是负值。
Added:
>
>
参考: https://twiki.cern.ch/twiki/bin/view/AMS/ECALReconstruction#2_EcalClusterR_class
 \ No newline at end of file
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback