110 likes | 132 Views
Submission of ideas for the Calorimeter Software Group in LHCb, including algorithms for clustering hits into seeds and clusters, with methods for characterizing and aggregating clusters.
E N D
Calorimeter Software algorithms V. Breton, LHCb software week Nov. 99 Ideas submitted to calorimeter software group
Organigram of reconstruction service Relevant questions to address : how many clusters, give me your clusters, which clustering algorithm are you using, look for clusters in this region give me your clusters in this region( to look for jets) Comments : all clustering algorithms will need local maxima
FindSeeds algorithm : Input : List of hits/digits(CellId, Energy) or Hits/Digits Container ? Output : List of seeds(CellId) Method : loop on every hit/digit the algorithm « Are you a local maximum »?. If the answer is true, the hit is copied into a seed characterized by CellId « Are you a local maximum ? » algorithm Input : a hit (CellId, Energy) Output : true or false Method : ask from CALO_GEOM the list of neighbours of CellId (EcalDeteElem->GetNeighbors(CellId,…) ask from CALO_HITS the energy of each neighbors : if all energies below, output is true.
Cluster • Interface using a numbering scheme 1 to n or the CellId of its seed • Member functions • Cluster->GetEnergy; Cluster->GetDeltaEnergy; • Cluster->GetX,Y,Z(); barycenter • Cluster->GetDeltaX,Y,Z; error on barycenter • Cluster->GetSize(); number of hits • CellId Cluster->Seed(); seed • Other member functions ? • List<CellId>* Cluster->GetOwnHits(); privately owned hits • List<CellId>* Cluster->GetSharedHits(); hits shared with another cluster • Cluster->Algorithm; algorithm used to build the cluster ?
Making clusters Tagger algorithm uses the list of hits and the list of seeds to create a list of Calocells characterized by their CellId and a status : if they belong to a cluster they are tagged by its seed, if they can belong to two or more clusters, they are flagged as Edge Agregator makes the clusters from the list of Calocells. When a cell is on the border of several clusters, Agregator asks « Limitor » the SeedId ’s of these clusters. Characterisor computes clusters energy and barycenter taking into account the position of the cluster (limit between the two calorimeters, edge of the calo,…) and the status of its hits (Border or not Border)
Tagger(Cellular Automaton) algorithm : Input : list of hits(CellId, Energy), list of seeds(CellId) Output :list of cells agregated in a cluster or identified as borders of several clusters Method : 1 Initialize a list of cells (CellId, Clustered, SeedId ,Edge) according to the following rules : Clustered, boolean, is true only if CellId is a seed Edge, boolean, is false SeedId is CellId 2 Evolve the list of cells according to the following rules : If « Clustered »is true, no action If « Clustered » is false, ask for the neighbouring cells : No neighbour is « Clustered ». No action At least one neighbour is « Clustered » : Clustered becomes true. SeedId changed to the neighbour SeedId More than one neighbour is « clustered ». Edge becomes true. Stop iteration on this cell.
0.3 0.6 0.2 0.3 0.6 0.2 1.3 4.8 1.2 0.7 1.2 1.3 4.8 1.2 0.7 1.2 0.9 0.9 3.1 0.9 0.9 3.1 0.7 0.7 0.3 0.6 0.2 0.3 0.6 0.2 1.3 4.8 1.2 0.7 0.2 1.3 4.8 1.2 0.7 1.2 0.9 3.1 0.7 0.9 3.1 0.7 0.3 0.6 0.2 1.3 4.8 1.2 0.2 0.6 0.9 0.4 1.3 6.4 Iteration Step 0 Step 1 Step 2 All cells clustered All cells clustered 0.3 0.6 0.2 0.3 0.6 0.2 1.3 4.8 1.2 0.2 0.6 1.3 4.8 1.2 0.2 0.6 0.9 0.4 1.3 6.4 0.9 0.4 1.3 6.4
Agregator algorithm Input : list of cells(CellId, Clustered, SeedId, Edge), list of seeds Output : list of clusters, or clusters container ? Method : 1 From the list of seeds, start making clusters, one per seed, less if there is a minimal energy cut. 2 Loop through the list of cells. When Clustered and not Edge, add it to the cluster corresponding to the SeedId 3 If Edge is True, call Limitor algorithm Limitor Algorithm Input : CellId Output : List of SeedId ’s Method : look at the neighbours of entity CellId to find the SeedId ’s of the clusters to which they belong and give back this list
Characterizer algorithm Input : List of clusters or Clusters container Output :List of clusters or clusters container Method : This algorithm computes the energy and barycenter of each cluster. Characterizer takes into account the detector geometry, the potentially overlapping adjacent clusters and the dead channels
GetHits Hits Store CaloHits Are You a Local Max ? Send me hits FindSeeds One Hit Yes or No List of Seeds Tagger Makes a list of CaloCells