Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
interface for the StripTDS tools
More...
#include <StripSegmentTool.h>
|
| StripSegmentTool (const std::string &type, const std::string &name, const IInterface *parent) |
|
virtual | ~StripSegmentTool ()=default |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | find_segments (std::vector< std::unique_ptr< StripClusterData > > &, const std::unique_ptr< Muon::NSW_TrigRawDataContainer > &) const override |
|
StatusCode | FetchDetectorEnvelope (Envelope_t &env) const |
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
|
SG::ReadCondHandleKey< IRegSelLUTCondData > | m_regSelTableKey {this, "RegSelLUT", "RegSelLUTCondData_sTGC", "sTGC Region Selector lookup table"} |
|
Gaudi::Property< std::string > | m_sTgcSdoContainer {this, "sTGC_SdoContainerName", "sTGC_SDO", "Name of the sTGC SDO digit container"} |
|
Gaudi::Property< int > | m_rIndexBits {this, "rIndexBits", 8, "Number bits in R-index calculation"} |
|
Gaudi::Property< int > | m_dThetaBits {this, "dthetaBits", 5, "Number bits in dTheta calculation"} |
|
Gaudi::Property< float > | m_dtheta_min {this, "dthetaMin", -15., "Minimum allowed value for dtheta in mrad"} |
|
Gaudi::Property< float > | m_dtheta_max {this, "dthetaMax", 15., "Maximum allowed value for dtheta in mrad"} |
|
Gaudi::Property< int > | m_ridxScheme {this, "rIndexScheme", 1, "rIndex slicing scheme/ 0-->R / 1-->eta"} |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
interface for the StripTDS tools
This class implements the Strip Clustering offline simulation. It loops over the hits, readout from the StripTDSOffLineTool
- Author
- Jacob Searcy jsear.nosp@m.cy@c.nosp@m.ern.c.nosp@m.h
Definition at line 65 of file StripSegmentTool.h.
◆ StoreGateSvc_t
◆ StripSegmentTool()
NSWL1::StripSegmentTool::StripSegmentTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~StripSegmentTool()
virtual NSWL1::StripSegmentTool::~StripSegmentTool |
( |
| ) |
|
|
virtualdefault |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ FetchDetectorEnvelope()
StatusCode NSWL1::StripSegmentTool::FetchDetectorEnvelope |
( |
Envelope_t & |
env | ) |
const |
Definition at line 26 of file StripSegmentTool.cxx.
30 const auto regSelector =
dynamic_cast<const RegSelSiLUT*
>(rh_stgcLUT->payload());
35 moduleList.push_back(regSelector->Module(moduleHashId));
43 std::sort(
moduleList.begin(),
moduleList.end(),[](
const auto& M1,
const auto& M2){ return std::abs(M1->_etaMin()) < std::abs(M2->_etaMin());} );
45 std::sort(
moduleList.begin(),
moduleList.end(),[](
const auto& M1,
const auto& M2){ return std::abs(M1->_etaMax()) > std::abs(M2->_etaMax());} );
56 if(rmin<=0 || rmax<=0)
ATH_MSG_WARNING(
"Unable to fetch NSW r/z boundaries");
60 env.upper_eta = etamax;
63 ATH_MSG_DEBUG(
"rmin=" << rmin <<
" rmax=" << rmax <<
" zmin=" <<
zmin <<
" zmax=" <<
zmax <<
" etamin=" <<
etamin <<
" etamax=" << etamax);
64 return StatusCode::SUCCESS;
◆ find_segments()
Implements NSWL1::IStripSegmentTool.
Definition at line 99 of file StripSegmentTool.cxx.
106 return StatusCode::SUCCESS;
109 std::map<uint32_t, std::vector<std::unique_ptr<StripClusterData>>[2] > cluster_map;
121 sectorid=
cl->sectorId();
122 if(
cl->isSmall()) sectorNumber=2*sectorid;
123 else sectorNumber=2*sectorid-1;
124 hash=16*sideid+sectorNumber;
134 auto item =cluster_map.find(hash_bandid);
135 if (
item != cluster_map.end()){
136 item->second[
cl->wedge()-1].push_back(std::move(
cl));
139 cluster_map[hash_bandid][
cl->wedge()-1].push_back(std::move(
cl));
145 for(
const auto& band : cluster_map){
146 int bandId=band.first;
147 if (band.second[0].size() == 0){
148 ATH_MSG_WARNING(
"Cluster size is zero for inner wedge trg with bandId "<<bandId<<
"...skipping");
151 if(band.second[1].size() == 0){
152 ATH_MSG_WARNING(
"Cluster size is zero for outer wedge trg with bandId "<<bandId<<
"...skipping");
172 char sectorSide =
'-';
173 for(
const auto&
cl : band.second[0] ){
174 z1+=
cl->globZ()*
cl->charge();
175 glx1+=
cl->globX()*
cl->charge();
176 gly1+=
cl->globY()*
cl->charge();
177 charge1+=
cl->charge();
178 sectorID = (
cl->isSmall()) ? 2*
cl->sectorId()-1 : 2*(
cl->sectorId()-1);
179 sectorSide = (
cl->sideId() == 0) ?
'C' :
'A';
182 auto trgRawData=std::make_unique< Muon::NSW_TrigRawData>(sectorID, sectorSide, bcID);
186 for(
const auto&
cl : band.second[1] ){
187 z2+=
cl->globZ()*
cl->charge();
188 glx2+=
cl->globX()*
cl->charge();
189 gly2+=
cl->globY()*
cl->charge();
190 charge2+=
cl->charge();
191 sectorID = (
cl->isSmall()) ? 2*
cl->sectorId()-1 : 2*(
cl->sectorId()-1);
192 sectorSide = (
cl->sideId() == 0) ?
'C' :
'A';
194 if (( sectorID != trgRawData->sectorId() ) ||
195 ( sectorSide != trgRawData->sectorSide() ) ||
196 ( bcID != trgRawData->bcId() ))
ATH_MSG_WARNING(
"Possible mismatch between inner and outer wedge RDO parameters");
210 ROOT::Math::XYZVector v3_centr1(glx1,gly1,z1), v3_centr2(glx2,gly2,z2);
211 ROOT::Math::XYZVector v3_segment = v3_centr2 - v3_centr1;
212 phi=v3_segment.Phi();
213 theta=v3_segment.Theta();
214 eta=v3_segment.Eta();
217 theta_inf=v3_centr1.Theta();
218 eta_inf=v3_centr1.Eta();
219 dtheta=(
theta-theta_inf)*1000;
221 ATH_MSG_DEBUG(
"StripSegmentTool: phi:" <<
phi <<
" theta:" << theta <<
" eta: " <<
eta <<
" theta_inf: " << theta_inf <<
" eta_inf: " << eta_inf <<
" dtheta: " << dtheta);
224 int phiId=band.second[0].at(0)->phiId();
230 return StatusCode::SUCCESS;
250 if(std::abs(dtheta)>15)
continue;
251 auto rdo_segment= std::make_unique<Muon::NSW_TrigRawDataSegment>( dtheta_int, (
uint8_t)phiId, (rIndex), lowRes, phiRes);
252 trgRawData->push_back(std::move(rdo_segment));
253 trgContainer->
push_back(std::move(trgRawData));
256 return StatusCode::SUCCESS;
◆ findDtheta()
uint8_t NSWL1::StripSegmentTool::findDtheta |
( |
const float |
val | ) |
const |
|
private |
◆ findRIdx()
◆ initialize()
StatusCode NSWL1::StripSegmentTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ interfaceID()
static const InterfaceID& NSWL1::IStripSegmentTool::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
Definition at line 37 of file IStripSegmentTool.h.
38 static const InterfaceID IID_IStripSegmentTool(
"NSWL1::IStripSegmentTool", 1 ,0);
39 return IID_IStripSegmentTool;
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_detStore
◆ m_dtheta_max
Gaudi::Property<float> NSWL1::StripSegmentTool::m_dtheta_max {this, "dthetaMax", 15., "Maximum allowed value for dtheta in mrad"} |
|
private |
◆ m_dtheta_min
Gaudi::Property<float> NSWL1::StripSegmentTool::m_dtheta_min {this, "dthetaMin", -15., "Minimum allowed value for dtheta in mrad"} |
|
private |
◆ m_dThetaBits
Gaudi::Property<int> NSWL1::StripSegmentTool::m_dThetaBits {this, "dthetaBits", 5, "Number bits in dTheta calculation"} |
|
private |
◆ m_evtStore
◆ m_idHelperSvc
◆ m_regSelTableKey
◆ m_ridxScheme
Gaudi::Property<int> NSWL1::StripSegmentTool::m_ridxScheme {this, "rIndexScheme", 1, "rIndex slicing scheme/ 0-->R / 1-->eta"} |
|
private |
◆ m_rIndexBits
Gaudi::Property<int> NSWL1::StripSegmentTool::m_rIndexBits {this, "rIndexBits", 8, "Number bits in R-index calculation"} |
|
private |
◆ m_sTgcSdoContainer
Gaudi::Property<std::string> NSWL1::StripSegmentTool::m_sTgcSdoContainer {this, "sTGC_SdoContainerName", "sTGC_SDO", "Name of the sTGC SDO digit container"} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
float eta(float x, float y, float z)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
std::string to_string(const DetectorType &type)
value_type push_back(value_type pElem)
Add an element to the end of the collection.
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
int atoi(std::string_view str)
Helper functions to unpack numbers decoded in string into integers and doubles The strings are requir...
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
float phi(float x, float y, float z)
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>