- jwebb's home page
- Posts
- 2019
- 2018
- 2017
- 2016
- 2015
- 2014
- 2013
- November (1)
- October (1)
- September (1)
- July (1)
- June (1)
- April (1)
- March (3)
- February (1)
- January (1)
- 2012
- 2011
- December (2)
- September (3)
- August (5)
- July (6)
- June (6)
- May (1)
- April (5)
- March (5)
- February (2)
- January (2)
- 2010
- December (3)
- October (3)
- September (2)
- August (2)
- June (2)
- May (4)
- April (4)
- March (2)
- February (4)
- January (10)
- 2009
- 2008
- 2007
- 2006
- July (1)
- My blog
- Post new blog entry
- All blogs
Potential for use of kmeans-clustering for pi0/gamma discrimination
Abstract: k-means clustering is used to find two smd clusters (no more, no less) in each plane associated with a gamma candidate. The invariant mass of these clusters is reconstructed for gamma candidates above ET=4.5 GeV.
foreach (gamma candidate passing a charged-particle veto) {
if ( gamma candidate ET > 4.5 GeV ) {
foreach ( smd plane ) {
seeding:
x1 = 0.5+random(0,287) // mean of cluster 1
x2 = 0.5+random(0,287) // mean of cluster 2
clustering:
foreach (smd strip) {
if ( strip closer to x1 )
add strip to cluster 1
else
add strip to cluster 2
}
iteration:
x1 = mean( cluster 1 )
x2 = mean( cluster 2 )
if ( x1 or x2 differs from last iteration )
repeat clustering
}
}
}
mean( cluster )
return energy weighted smd centroid
- There appears to be a substantial background from pi0 decays where one of the two photons is not found, either because it is a very high-z decay or because the 2nd photon is in an adjacent sector.
- I would have expected the prompt-photons to be clustered around z~0 not z~1. Naievly I was expecting single-showers to be split into two symmetric parts. This seems to indicate that the seeding algo is finding a bit of noise in the vicinity of the cluster, which
Next steps:
- Limit seeding to +/- 40 strips from the center of the gamma candidate
- Implement k++ means seeding algorithm
- fuzzy c-means clustering
- Integrate into the gamma maker for both EEMC and BEMC candidates for further study.
seeding:
x1 = random( energy distribution )
x2 = random( energy*(x-x1) distribuion )
clustering:
foreach (smd strip) {
f1 = fraction( x - x1 ) // fraction of strip belonging to cluster 1
f2 = fraction( x - x2 ) // fraction of strip belonging to cluster 2
}
mean( cluster )
return energy*f weighted smd centroid
- jwebb's blog
- Login or register to post comments