ATLAS Offline Software
Loading...
Searching...
No Matches
CscThresholdClusterBuilder.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5// CscThresholdClusterBuilder.h
6
7#ifndef CscThresholdClusterBuilder_H
8#define CscThresholdClusterBuilder_H
9
10// David Adams
11// June 2006
12//
13// ATLAS algorithm to build CSC clusters from CSC digits.
14// A simple threshold cluster algorithm is applied: any adjacent
15// channels with charge above a user-specified threshold are
16// merged into a cluster.
17//
18// Clusters are tagged as spoiled if any of the following apply:
19// 1. Too narrow: only one strip.
20// 2. Too wide: pitch*(nstrip-1) above a user-specified cutoff.
21// 3. Multiple peaks.
22// 4. Skewed: peak not in in the central channel for an odd cluster
23// (odd # strips) or central two for an even cluster.
24// 5. Edge: cluster includes the first or last strip in the plane.
25// 6. RMS: charge centroid RMS is too large
26// The different algorithms used to evaluate the unspoiled position
27// may transfer clusters into the spoiled state. E.g. the adjacent
28// charge ratios method requires left and right to be consistent.
29//
30// Spoiled clusters are assigned position at the center of the cluster
31// and a large error: width/sqrt(12) with possible correction for the
32// intrinsic signal width.
33//
34// The positions for unspoiled clusters may evaluated in a number of
35// ways selected through job options.
36//
37// The corrected charge centroid method starts with the charge
38// centroid and then applies a strip position correction
39// which is a function of the plane type (CSS or CSL, r or phi), the
40// number of strips in the cluster, and the deviation of the charge
41// centroid from the center of the cluster. Thes corrections are 4th
42// order odd polynomials in that deviation, i.e.
43// A d + B d**3 + C D**5 + D d**7
44// and the coefficients were determined by comparison with Monte Carlo
45// track positions. For now these coefficients are hardwired into the
46// code.
47//
48// The adjacent charge ratios method uses the ratios of the left and
49// right charges to that of the central strip to estimate the position
50// again using a polynomial calibration.
51//
52// Unspoiled clusters are assigned a position error of
53// m_unspoiled_error.
54
55// Algorithm to construct CSC clusters from digits.
56
61#include "GaudiKernel/ToolHandle.h"
65
66namespace MuonGM {
68}
69class CscIdHelper;
70namespace Muon {
71 class CscPrepData;
72 class CscStripPrepData;
73} // namespace Muon
75class CscDigit;
76
78public: // methods
79 // Constructor.
80 CscThresholdClusterBuilder(const std::string& name, ISvcLocator* pSvcLocator);
81
82 // Destructor.
84
85 // Initialization.
86 StatusCode initialize();
87
88 // Event processing.
89 StatusCode execute();
90
91private: // data
92 // Strip fitter.
93 ToolHandle<ICscClusterBuilder> m_cluster_builder{
94 this,
95 "cluster_builder",
96 "CscThresholdClusterBuilderTool/CscThresholdClusterBuilderTool",
97 };
98
100 this,
101 "MuonIdHelperSvc",
102 "Muon::MuonIdHelperSvc/MuonIdHelperSvc",
103 };
104
105 SG::WriteHandleKey<Muon::CscPrepDataContainer> m_pclusters{this, "cluster_key", "CSC_Clusters", "Ouput CSC Cluster container"};
106};
107
108#endif
Muon::CscPrepData MyCscDigit
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
CscThresholdClusterBuilder(const std::string &name, ISvcLocator *pSvcLocator)
ToolHandle< ICscClusterBuilder > m_cluster_builder
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
SG::WriteHandleKey< Muon::CscPrepDataContainer > m_pclusters
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Class representing clusters from the CSC.
Definition CscPrepData.h:39
Class representing the raw data of one CSC strip (for clusters look at Muon::CscPrepData).
Property holding a SG store/key/clid from which a WriteHandle is made.
Ensure that the Athena extensions are properly loaded.
Definition GeoMuonHits.h:27
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.