|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef TGCRAWDATAMONITORING_TGCRAWDATAMONITORALGORITHM_H
6 #define TGCRAWDATAMONITORING_TGCRAWDATAMONITORALGORITHM_H
9 #include "GaudiKernel/ServiceHandle.h"
10 #include "GaudiKernel/ToolHandle.h"
203 std::vector<TgcTrigTile*>
tile;
204 std::vector<TgcTrigNsw*>
nsw;
206 std::vector<TgcTrigRpc*>
rpc;
207 std::vector<TgcTrigEifi*>
eifi;
236 StringProperty
m_thrPatternList{
this,
"ThrPatternList",
"MU4,MU6,MU10,MU11,MU20,MU21",
"list of single L1MU items to be monitored by the threshold pattern"};
237 StringProperty
m_streamerFilter{
this,
"StreamerFilter",
"",
"Streamer filter such as HLT_noalg_MU14FCH"};
253 DoubleProperty
m_muonToPVdz{
this,
"MuonToPVdz",50.,
"Window size in deltaZ between muon track and primary vertex"};
254 DoubleProperty
m_muonToPVdzOffset{
this,
"MuonToPVdzOffset",0.,
"Offset of deltaZ between muon track and primary vertex"};
255 DoubleProperty
m_muonToPVdca{
this,
"MuonToPVdca",0.5,
"Distance to closest approach of muon track to primary vertex"};
257 StringProperty
m_packageName{
this,
"PackageName",
"TgcRawDataMonitor",
"group name for histograming"};
258 StringProperty
m_ctpDecMonList{
this,
"CtpDecisionMoniorList",
"Tit:L1_2MU4,Mul:2,HLT:HLT_2mu4,RPC:1,TGC:1;",
"list of L1MU items to be monitored for before/after CTP decision"};
260 BooleanProperty
m_printAvailableMuonTriggers{
this,
"PrintAvailableMuonTriggers",
false,
"debugging purpose. print out all available muon triggers in the event"};
261 BooleanProperty
m_TagAndProbe{
this,
"TagAndProbe",
true,
"switch to perform tag-and-probe method"};
262 BooleanProperty
m_TagAndProbeZmumu{
this,
"TagAndProbeZmumu",
false,
"switch to perform tag-and-probe method Z->mumu"};
263 BooleanProperty
m_tagMuonInDifferentSystem{
this,
"TagMuonInDifferentSystem",
false,
"restrict the tag muons to be only in the other system (barrel or endcap)"};
264 BooleanProperty
m_anaTgcPrd{
this,
"AnaTgcPrd",
false,
"switch to perform analysis on TGC PRD"};
265 BooleanProperty
m_anaTgcCoin{
this,
"AnaTgcCoin",
false,
"switch to perform analysis on TGC Coin"};
267 BooleanProperty
m_anaOfflMuon{
this,
"AnaOfflMuon",
true,
"switch to perform analysis on xAOD::Muon"};
271 BooleanProperty
m_anaMuonRoI{
this,
"AnaMuonRoI",
true,
"switch to perform analysis on xAOD::LVL1MuonRoI"};
272 DoubleProperty
m_trigMatchWindow{
this,
"TrigMatchingWindow",0.2,
"Window size in R for trigger matching"};
273 DoubleProperty
m_l1trigMatchWindowPt15{
this,
"L1TrigMatchingWindowPt15",0.15,
"Window size in R for L1 trigger matching for 15GeV muons"};
274 DoubleProperty
m_l1trigMatchWindowPt10a{
this,
"L1TrigMatchingWindowPt10a",0.3,
"Window size in R for L1 trigger matching for 10GeV(a) muons"};
275 DoubleProperty
m_l1trigMatchWindowPt10b{
this,
"L1TrigMatchingWindowPt10b",-0.01,
"Window size in R for L1 trigger matching for 10GeV(b) muons"};
276 DoubleProperty
m_l1trigMatchWindowPt0a{
this,
"L1TrigMatchingWindowPt0a",0.36,
"Window size in R for L1 trigger matching for 0GeV(a) muons"};
277 DoubleProperty
m_l1trigMatchWindowPt0b{
this,
"L1TrigMatchingWindowPt0b",-0.0016,
"Window size in R for L1 trigger matching for 0GeV(b) muons"};
278 DoubleProperty
m_isolationWindow{
this,
"IsolationWindow",1.0,
"Window size in R for isolation with other muons"};
279 BooleanProperty
m_requireIsolated{
this,
"RequireIsolated",
true,
"Probe muon should be isolated from other muons"};
290 DoubleProperty
m_pTCutOnTrigExtrapolation{
this,
"pTCutOnTrigExtrapolation",20000.,
"pT [in MeV] cut on the extrapolation tracks for trigger validation"};
291 DoubleProperty
m_M1_Z{
this,
"M1_Z",13436.5,
"z-position of TGC M1-station in mm for track extrapolate"};
292 DoubleProperty
m_M2_Z{
this,
"M2_Z",14728.2,
"z-position of TGC M2-station in mm for track extrapolate"};
293 DoubleProperty
m_M3_Z{
this,
"M3_Z",15148.2,
"z-position of TGC M3-station in mm for track extrapolate"};
294 DoubleProperty
m_EI_Z{
this,
"EI_Z",7364.7,
"z-position of TGC EI-station in mm for track extrapolate"};
295 DoubleProperty
m_FI_Z{
this,
"FI_Z",6978.2,
"z-position of TGC FI-station in mm for track extrapolate"};
296 DoubleProperty
m_muonMass{
this,
"MuonMass",105.6583755,
"muon invariant mass in MeV"};
297 DoubleProperty
m_zMass{
this,
"ZMass",91187.6,
"muon invariant mass in MeV"};
298 DoubleProperty
m_zMassWindow{
this,
"ZMassWindow",10000,
"muon invariant mass half-window in MeV"};
302 DoubleProperty
m_residualWindow{
this,
"ResidualWindow", 200.,
"Window size in mm between hit position and track-extrapolated position"};
303 DoubleProperty
m_dPhiCutOnM3{
this,
"dPhiCutOnM3", 0.2,
"Window size in delta phi on M3 between hit position and track-extrapolated position"};
304 DoubleProperty
m_dRCutOnM3{
this,
"dRCutOnM3", 3000.,
"Window size in delta R (radious) on M3 between hit position and track-extrapolated position"};
309 DoubleProperty
m_NswDeltaRCut{
this,
"NswDeltaRCut", 20.,
"Window size in delta R for NSW-TGC matching"};
316 using MonVariables=std::vector < std::reference_wrapper < Monitored::IMonitoredVariable >>;
318 const std::vector<TgcTrig>&,
322 const std::vector<TgcTrig>&,
323 const std::vector<ExtPos>&,
324 std::vector<ExtTrigInfo>&,
330 ToolHandle<Trk::IExtrapolator>
m_extrapolator{
this,
"TrackExtrapolator",
"Trk::Extrapolator/AtlasExtrapolator",
"Track extrapolator"};
331 ToolHandle<ITgcRawDataMonitorTool>
m_tgcMonTool{
this,
"TgcRawDataMonitorTool",
"TgcDawDataMonitorTool",
"TgcRawDataMonitorTool"};
332 ToolHandle<CP::IMuonSelectionTool>
m_muonSelectionTool{
this,
"MuonSelectionTool",
"CP::MuonSelectionTool/MuonSelectionTool",
"MuonSelectionTool"};
337 std::vector<TgcRawDataMonitorAlgorithm::TimedMuonRoI>
getRegionsOfInterest(
const EventContext& ctx)
const;
338 void fillRoiHistograms(
const std::vector<TgcRawDataMonitorAlgorithm::TimedMuonRoI> & roiVec,
const EventContext& ctx)
const;
340 void fillThresholdPatternHistograms(std::map<std::string,std::vector<const xAOD::MuonRoI*>> & menuAndRoIs,
const std::vector < TimedMuon > & mymuons,
const EventContext& ctx)
const;
342 void fillMuonRoisInThresholdPattern(std::map<
const xAOD::MuonRoI*,std::set<std::string>> &, std::map<std::string,std::vector<const xAOD::MuonRoI*>> &, std::vector<TimedMuonRoI> & AllBCMuonRoIs,
const EventContext & ctx)
const;
ToolHandle< ITgcRawDataMonitorTool > m_tgcMonTool
Property holding a SG store/key/clid from which a ReadHandle is made.
SG::ReadHandleKey< Muon::TgcCoinDataContainer > m_TgcCoinDataContainerNextBCKey
BooleanProperty m_useCBTrackForExtrapolation
DoubleProperty m_l1trigMatchWindowPt0a
BooleanProperty m_TagAndProbeZmumu
SG::ReadHandleKey< TrigConf::L1Menu > m_L1MenuKey
IntegerProperty m_nHitsInOtherBWTGCStrip
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
void fillMuonRoisInThresholdPattern(std::map< const xAOD::MuonRoI *, std::set< std::string >> &, std::map< std::string, std::vector< const xAOD::MuonRoI * >> &, std::vector< TimedMuonRoI > &AllBCMuonRoIs, const EventContext &ctx) const
std::vector< std::reference_wrapper< Monitored::IMonitoredVariable > > MonVariables
BooleanProperty m_fillGapByGapHistograms
BooleanProperty m_useIDTrackForExtrapolation
std::set< std::string > chambersHasHit
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
DoubleProperty m_l1trigMatchWindowPt15
BooleanProperty m_TagAndProbe
std::set< std::string > passedChambers
SG::ReadHandleKey< xAOD::MuonRoIContainer > m_MuonRoIContainerBCm2Key
BooleanProperty m_requireIsolated
StringProperty m_streamerFilter
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_DetectorManagerKey
SG::ReadHandleKey< xAOD::MuonRoIContainer > m_MuonRoIContainerBCp2Key
SG::ReadHandleKey< xAOD::MuonContainer > m_MuonContainerKey
std::set< std::string > matchedL1Items
SG::ReadHandleKey< xAOD::MuonRoIContainer > m_MuonRoIContainerBCp1Key
void fillThresholdPatternHistograms(std::map< std::string, std::vector< const xAOD::MuonRoI * >> &menuAndRoIs, const std::vector< TimedMuon > &mymuons, const EventContext &ctx) const
std::vector< TVector3 > extVec
DoubleProperty m_l1trigMatchWindowPt10a
DoubleProperty m_l1trigMatchWindowPt0b
SG::ReadHandleKey< Muon::TgcCoinDataContainer > m_TgcCoinDataContainerNextNextBCKey
std::set< int > matchedL1ThrExclusiveTGC
DoubleProperty m_residualWindow
BooleanProperty m_useExtMSTrackForExtrapolation
DoubleProperty m_endcapPivotPlaneMinimumRadius
DoubleProperty m_l1trigMatchWindowPt10b
std::set< int > matchedL1ThrExclusive
Monitoring of object collections (internal)
BooleanProperty m_offlMuonCutOnAuthor
BooleanProperty m_monitorThresholdPatterns
double getMatchingWindow(const xAOD::Muon *muon) const
SG::ReadHandleKey< Muon::TgcPrepDataContainer > m_TgcPrepDataContainerKey
StringProperty m_maskChannelFileName
SG::ReadHandleKey< xAOD::MuonRoIContainer > m_MuonRoIContainerKey
std::set< int > matchedL1ThrInclusiveTGC
std::vector< TgcTrigTile * > tile
DoubleProperty m_zMassWindow
BooleanProperty m_offlMuonCutOnQuality
DoubleProperty m_barrelPivotPlaneHalfLength
void fillRoiHistograms(const std::vector< TgcRawDataMonitorAlgorithm::TimedMuonRoI > &roiVec, const EventContext &ctx) const
BooleanProperty m_useDirectPrimaryTrackForExtrapolation
SG::ReadHandleKey< xAOD::MuonRoIContainer > m_MuonRoIContainerBCm1Key
DoubleProperty m_muonToPVdca
DoubleProperty m_muonToPVdzOffset
DoubleProperty m_pTCutOnExtrapolation
BooleanProperty m_tagMuonInDifferentSystem
SG::ReadHandleKey< xAOD::VertexContainer > m_PrimaryVertexContainerKey
std::set< int > matchedL1ThrInclusive
ToolHandle< IGoodRunsListSelectorTool > m_GoodRunsListSelectorTool
Base class for Athena Monitoring Algorithms.
long unsigned int multiplicity
BooleanProperty m_anaOfflMuon
BooleanProperty m_useMSOnlyExtMSTrackForExtrapolation
BooleanProperty m_useMSTrackForExtrapolation
std::vector< CtpDecMonObj > m_CtpDecMonObj
DoubleProperty m_NswDeltaRCut
DoubleProperty m_pTCutOnTrigExtrapolation
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
std::vector< TVector3 > extPos
const xAOD::MuonRoI * muonRoI
::StatusCode StatusCode
StatusCode definition for legacy code.
std::set< std::string > m_maskChannelList
SG::ReadDecorHandleKey< xAOD::MuonRoIContainer > m_thresholdPatternsKey
BooleanProperty m_useOnlyCombinedMuons
Class describing a LVL1 muon region of interest.
ToolHandle< CP::IMuonSelectionTool > m_muonSelectionTool
StringProperty m_packageName
BooleanProperty m_doExpressProcessing
StringProperty m_ctpDecMonList
DoubleProperty m_endcapPivotPlaneMaximumRadius
std::vector< double > extPosZ
BooleanProperty m_anaMuonRoI
double getNswRindexFromEta(const double &eta) const
std::map< std::string, std::set< double > > residuals
std::vector< TgcTrigNsw * > nsw
BooleanProperty m_offlMuonCutOnMuonType
DoubleProperty m_dPhiCutOnM3
TimedMuonRoI(const xAOD::MuonRoI *muonroi, int bcid=0)
BooleanProperty m_dumpFullChannelList
DoubleProperty m_dRCutOnM3
SG::ReadHandleKey< Muon::TgcCoinDataContainer > m_TgcCoinDataContainerPrevBCKey
BooleanProperty m_printAvailableMuonTriggers
StringProperty m_thrPatternList
setEventNumber setTimeStamp bcid
Eigen::Matrix< double, 3, 1 > Vector3D
std::vector< TgcTrigRpc * > rpc
BooleanProperty m_anaTgcPrd
DoubleProperty m_isolationWindow
BooleanProperty m_useMuonSelectorTool
TgcRawDataMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode initialize() override
initialize
BooleanProperty m_anaTgcCoin
Class describing a Vertex.
void fillTgcCoinEff(const std::string &, const std::vector< TgcTrig > &, const std::vector< ExtPos > &, std::vector< ExtTrigInfo > &, std::vector< Monitored::ObjectsCollection< std::vector< ExtTrigInfo >, double >> &, MonVariables &) const
void fillTgcCoin(const std::string &, const std::vector< TgcTrig > &, std::vector< Monitored::ObjectsCollection< std::vector< TgcTrig >, double >> &, MonVariables &) const
const xAOD::Vertex * getPrimaryVertex(const EventContext &ctx) const
IntegerProperty m_nHitsInOtherBWTGCWire
DoubleProperty m_muonToPVdz
ToolHandle< Trk::IExtrapolator > m_extrapolator
void fillTgcPrdHistograms(Monitored::Scalar< int > &mon_bcid, Monitored::Scalar< int > &mon_pileup, Monitored::Scalar< int > &mon_lb, std::map< std::string, std::vector< ExtPos > > &extpositions, const EventContext &ctx) const
void fillHistogramsAfterTriggerDecision(std::vector< TgcRawDataMonitorAlgorithm::TimedMuonRoI > &roiVec) const
std::vector< TgcTrigEifi * > eifi
std::vector< TgcRawDataMonitorAlgorithm::TimedMuonRoI > getRegionsOfInterest(const EventContext &ctx) const
BooleanProperty m_monitorTriggerMultiplicity
std::set< std::string > checkTriggerInfo() const
Declare a monitored scalar variable.
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
DoubleProperty m_trigMatchWindow
std::set< std::string > m_thrMonList
BooleanProperty m_useOnlyMuidCoStacoMuons
std::vector< double > m_extZposition
DoubleProperty m_muonMass
StatusCode printOutAvailableMuonTriggers() const
SG::ReadHandleKey< Muon::TgcCoinDataContainer > m_TgcCoinDataContainerCurrBCKey
virtual ~TgcRawDataMonitorAlgorithm()=default
std::vector< TgcTrigNsw * > nsw_unique