ATLAS Offline Software
MuonSegmentFilterAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MOOSEGMENTFINDERS_MUONSEGMENTFILTERALG_H
6 #define MOOSEGMENTFINDERS_MUONSEGMENTFILTERALG_H
7 
10 #include "TrkSegment/Segment.h"
12 
14 
19 public:
20  MuonSegmentFilterAlg(const std::string& name, ISvcLocator* pSvcLocator);
21 
22  virtual ~MuonSegmentFilterAlg() = default;
23 
24  virtual StatusCode initialize() override;
25  virtual StatusCode execute(const EventContext& ctx) const override;
26 
27 private:
28  bool keep_segment(const Trk::Segment* segment) const;
30  this,
31  "MuonIdHelperSvc",
32  "Muon::MuonIdHelperSvc/MuonIdHelperSvc",
33  };
34  // the following Trk::SegmentCollection MuonSegments are standard MuonSegments, the MuGirl segments are stored in MuonCreatorAlg.h
36  this,
37  "FilteredCollectionName",
38  "FilteredMuonSegments",
39  "Output container",
40  };
42  this,
43  "SegmentCollectionName",
44  "TrackMuonSegments",
45  "Input container",
46  };
47 
48 
49 
51 
52  Gaudi::Property<std::vector<int>> m_thin_stations{this, "ThinStations", {StIdx::BI, StIdx::BM, StIdx::BO, StIdx::BE, StIdx::EI}, "Removes sgements in a given Muon station" };
53  Gaudi::Property<std::vector<int>> m_thin_layers{this, "ThinLayers", {}, "Removes segments in a given layer of the MuonSpectrometer "};
54  Gaudi::Property<std::vector<int>> m_thin_technology{this, "ThinTechnology", {StIdx::STGC, StIdx::MM}, "Removes segments from a given chamber technology"};
55  Gaudi::Property<std::vector<int>> m_thin_region{this, "ThinDetRegion", {}, "Removes all segments form Barrel / EndcapA / EndcapC"};
56  Gaudi::Property<std::vector<int>> m_thin_chamber_idx{this, "ThinChamberIndex", {}, "Removes all segments from a BIS/BIL/BMS/.."};
57 
60  Gaudi::Property<bool> m_trash_unfiltered{this, "TrashUnFiltered", true };
61 
62 };
63 
64 #endif
MuonSegmentFilterAlg::m_thin_technology
Gaudi::Property< std::vector< int > > m_thin_technology
Definition: MuonSegmentFilterAlg.h:54
MuonSegmentFilterAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: MuonSegmentFilterAlg.cxx:18
Muon::MuonStationIndex::BE
@ BE
Definition: MuonStationIndex.h:25
MuonSegmentFilterAlg::m_thin_stations
Gaudi::Property< std::vector< int > > m_thin_stations
Definition: MuonSegmentFilterAlg.h:52
MuonSegmentFilterAlg::MuonSegmentFilterAlg
MuonSegmentFilterAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: MuonSegmentFilterAlg.cxx:7
ConstDataVector.h
DataVector adapter that acts like it holds const pointers.
MuonSegmentFilterAlg::m_thin_layers
Gaudi::Property< std::vector< int > > m_thin_layers
Definition: MuonSegmentFilterAlg.h:53
Muon::MuonStationIndex::BI
@ BI
Definition: MuonStationIndex.h:25
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
Muon::MuonStationIndex::MM
@ MM
Definition: MuonStationIndex.h:56
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
MuonSegmentFilterAlg::keep_segment
bool keep_segment(const Trk::Segment *segment) const
Definition: MuonSegmentFilterAlg.cxx:40
MuonSegmentFilterAlg::m_outKey
SG::WriteHandleKey< ConstDataVector< Trk::SegmentCollection > > m_outKey
Definition: MuonSegmentFilterAlg.h:35
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
Muon::MuonStationIndex::BM
@ BM
Definition: MuonStationIndex.h:25
Muon::MuonStationIndex::STGC
@ STGC
Definition: MuonStationIndex.h:56
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Muon::MuonStationIndex::EI
@ EI
Definition: MuonStationIndex.h:26
Segment.h
Trk::Segment
Definition: TrkEvent/TrkSegment/TrkSegment/Segment.h:56
MuonSegmentFilterAlg::m_thin_region
Gaudi::Property< std::vector< int > > m_thin_region
Definition: MuonSegmentFilterAlg.h:55
MuonSegmentFilterAlg::m_trash_unfiltered
Gaudi::Property< bool > m_trash_unfiltered
If no segments are removed from the container then empty the entire container as the algoritihms depe...
Definition: MuonSegmentFilterAlg.h:60
AthReentrantAlgorithm.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
MuonSegmentFilterAlg::initialize
virtual StatusCode initialize() override
Definition: MuonSegmentFilterAlg.cxx:9
MuonSegmentFilterAlg::m_inKey
SG::ReadHandleKey< Trk::SegmentCollection > m_inKey
Definition: MuonSegmentFilterAlg.h:41
Muon::MuonStationIndex::BO
@ BO
Definition: MuonStationIndex.h:25
MuonSegmentFilterAlg::m_thin_chamber_idx
Gaudi::Property< std::vector< int > > m_thin_chamber_idx
Definition: MuonSegmentFilterAlg.h:56
Muon::MuonStationIndex
Definition: MuonStationIndex.h:12
MuonSegmentFilterAlg::~MuonSegmentFilterAlg
virtual ~MuonSegmentFilterAlg()=default
IMuonIdHelperSvc.h
SegmentCollection.h
MuonSegmentFilterAlg
The muon segment filter alg thins all segments coming from a certain detector technology,...
Definition: MuonSegmentFilterAlg.h:18
NSWL1::PadTriggerAdapter::segment
Muon::NSW_PadTriggerSegment segment(const NSWL1::PadTrigger &data)
Definition: PadTriggerAdapter.cxx:5
MuonSegmentFilterAlg::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonSegmentFilterAlg.h:29
ServiceHandle< Muon::IMuonIdHelperSvc >