 |
ATLAS Offline Software
|
Go to the documentation of this file.
43 return StatusCode::SUCCESS;
49 ATH_MSG_DEBUG(
"NSWDataMonAlg::MM RawData Monitoring Histograms being filled" );
53 return StatusCode::FAILURE;
56 std::string NSWMonGroup =
"NSWMonGroup";
68 if(saTP ==
nullptr)
continue;
70 if(!saTrack)
continue;
72 float eta_mu=saTP->
eta();
76 float theta_mu=saTP->
theta();
77 float phi_mu=saTP->
phi();
79 std::string
side =
"sideA";
88 std::vector<int> layers_mm; std::vector<int> layers_stg;
93 if(!(trkState))
continue;
105 int channelType =
m_idHelperSvc->stgcIdHelper().channelType(rot_id);
106 if(!(
m_idHelperSvc->isMM(rot_id) or channelType == sTgcIdHelper::sTgcChannelTypes::Strip))
continue;
112 if (!cluster)
continue;
116 if(fabs(
pos.z())<min_z_nsw){
118 min_z_nsw=fabs(z_nsw);
128 auto layer_mm=gap_mm+(multi_mm-1)*4;
130 if (
std::find(layers_mm.begin(), layers_mm.end(), layer_mm) == layers_mm.end()) layers_mm.push_back(layer_mm);
131 if(layer_mm>layer_max){
137 if (channelType == sTgcIdHelper::sTgcChannelTypes::Strip) {
138 multi_stg =
m_idHelperSvc -> stgcIdHelper().multilayer(rot_id);
140 auto layer_stg=gap_stg+(multi_stg-1)*4;
142 if (
std::find(layers_stg.begin(), layers_stg.end(), layer_stg) == layers_stg.end()) layers_stg.push_back(layer_stg);
143 if(layer_stg>layer_max) {
152 float x_mu=z_nsw*
tan(theta_mu)*
cos(phi_mu);
153 float y_mu=z_nsw*
tan(theta_mu)*
sin(phi_mu);
157 int isEff= (layers_mm.size()>3 || layers_stg.size()>3);
161 if (ref_sector > 0)
fill(NSWMonGroup, hitcut,
mu_phi,
lb, lb_side, sector_phi, x_trk, y_trk);
165 return StatusCode::SUCCESS;
xAOD::MuonContainer * muonContainer
std::string find(const std::string &s)
return a remapped string
SG::ReadHandleKey< xAOD::MuonContainer > m_muonKey
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
virtual const Amg::Vector3D & globalPosition() const =0
Returns the global position of the measurement (calculated on the fly)
NSWDataMonAlg(const std::string &name, ISvcLocator *pSvcLocator)
Base class for Athena Monitoring Algorithms.
::StatusCode StatusCode
StatusCode definition for legacy code.
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const
Fills a vector of variables to a group by reference.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
SG::ReadHandle< xAOD::EventInfo > GetEventInfo(const EventContext &) const
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
represents the track state (measurement, material, fit parameters and quality) at a surface.
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
virtual StatusCode initialize() override
initialize
Eigen::Matrix< double, 3, 1 > Vector3D
virtual StatusCode initialize() override
initialize
Identifier identify() const
return the identifier -extends MeasurementBase
Class representing clusters in the muon system.
Class describing a TrackParticle.
const Trk::Track * track() const
Returns a pointer (which can be NULL) to the Trk::Track which was used to make this TrackParticle.
Declare a monitored scalar variable.
float theta() const
Returns the parameter, which has range 0 to .
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
Base class for Muon cluster RIO_OnTracks.
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .)