ATLAS Offline Software
Loading...
Searching...
No Matches
IL1MMTriggerTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef L1MUONNSW_IL1MMTRIGGERTOOL_H
6#define L1MUONNSW_IL1MMTRIGGERTOOL_H
7
8#include "GaudiKernel/IAlgTool.h"
9#include "GaudiKernel/EventContext.h"
10#include "GaudiKernel/StatusCode.h"
11
12#include "L1MMDefinitions.h"
13
14#include <vector>
15
16namespace L1Muon::L1MM {
17
28 struct MMCandidate {
29 int sectorPhi{-1};
31 int BC{-1};
32 double eta{999.};
33 double phi{999.};
34 double phiShf{999.};
35 double phiGlobal{999.};
36 double dtheta{999.};
37 bool lowRes{false};
38 int iX{-1};
39 int iU{-1};
40 int iV{-1};
41 unsigned int nHits{0};
42 // Validation ntuple (Run 3 slope_t fields, same meaning)
43 char sector{'-'};
44 unsigned int xCount{0};
45 unsigned int uCount{0};
46 int age{-1};
47 double mx{999.};
48 double my{999.};
49 double mxl{999.};
50 double uavg{999.};
51 double vavg{999.};
52 double theta{999.};
53 double secCentrePhi{999.};
54 };
55
57 struct MMHitInfo {
58 int stationEta{0};
59 int stationPhi{0};
60 int sectorPhi{0};
61 char sector{'-'};
62 int plane{-1};
63 int strip{-1};
64 int VMM{-1};
65 int ART{-1};
66 int BC{-1};
67 float time{-1.f};
68 double R{-1.};
69 double Z{-1.};
70 double RZslope{-1.};
71 double shift{-1.};
72 };
73
75 struct MMDebugInfo {
76 std::vector<MMHitInfo> hits;
77 std::vector<unsigned int> nTrig;
78 };
79
87 class IL1MMTriggerTool : virtual public IAlgTool {
88 public:
90 virtual ~IL1MMTriggerTool() = default;
91
94 virtual StatusCode runTrigger(const EventContext& ctx, std::vector<MMCandidate>& candidates,
95 MMDebugInfo* debug) const = 0;
96 };
97
98} // namespace L1Muon::L1MM
99
100#endif // L1MUONNSW_IL1MMTRIGGERTOOL_H
const bool debug
Interface of the Run 4 MM trigger processor emulation.
virtual ~IL1MMTriggerTool()=default
DeclareInterfaceID(IL1MMTriggerTool, 1, 0)
virtual StatusCode runTrigger(const EventContext &ctx, std::vector< MMCandidate > &candidates, MMDebugInfo *debug) const =0
Run the MM trigger on the MM digits of the event and return the candidates found.
Definitions shared by the classes of the MM trigger processor emulation.
SideType
Detector side. The value is the sign of z, so that it can be used as a sign (e.g. Acts::copySign).
One MM trigger candidate (one road that passed the coincidence), before any quantisation into the Run...
double phiGlobal
Global phi in [0, 2pi): sector centre phi from the geometry -/+ local phi.
unsigned int xCount
X hits in the road.
int sectorPhi
Trigger sector 1-16 (Athena MM sector convention).
double dtheta
Angle w.r.t. the infinite-momentum track [rad].
int age
BC of the candidate relative to the start of the processing window.
double vavg
Average R/Z slope of the V hits.
double mx
phi-sensitive slope, from the U and V slopes
double phi
Local phi (relative to the sector centre).
unsigned int uCount
U hits in the road.
bool lowRes
Not all 8 planes in the road (Run 3 flag, not part of the Run 4 word).
int BC
Bunch crossing of the candidate (mode of the hit BCs, as Run 3).
double secCentrePhi
Sector centre phi from the Phase-II geometry.
double phiShf
Global phi as computed in Run 3 (MMT_Diamond::phiShift), for comparison.
double my
Average R/Z slope of the X hits.
double mxl
Local slope, R vs Z fit of the X hits.
unsigned int nHits
Hits in the road (Run 3 slope.totalCount).
double uavg
Average R/Z slope of the U hits.
double eta
Global eta of the segment.
SideType side
A (z>0) or C (z<0).
double theta
Polar angle of the candidate [rad].
Extra information returned by runTrigger on request (used by the validation algorithm).
std::vector< MMHitInfo > hits
every accepted hit of every digit collection
std::vector< unsigned int > nTrig
number of coincidences of each collection with at least one
One MM trigger hit, for the validation ntuple only (MM_* hit branches).
int stationPhi
Station phi (1-8).
double Z
Global z of the strip centre [mm].
double R
Global radius of the strip centre [mm].
int BC
Bunch crossing from the strip time.
int plane
Plane 0-7 of the octuplet.
int ART
ART ASIC index (0-3).
int stationEta
Station eta (-2, -1, 1, 2).
int VMM
VMM index on the layer (0-127).
double shift
Slope origin of the road window (MMT_Hit::getShift).
float time
Strip time [ns].
int strip
Strip channel.