 |
ATLAS Offline Software
|
#include <MdtRegionDefiner.h>
|
virtual StatusCode | initialize () override |
|
void | setRpcGeometry (bool use_rpc) |
|
StatusCode | getMdtRegions (const TrigRoiDescriptor *p_roids, const TrigL2MuonSA::RpcFitResult &rpcFitResult, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtRegion &mdtRegion) const |
|
StatusCode | getMdtRegions (const TrigRoiDescriptor *p_roids, const TrigL2MuonSA::TgcFitResult &tgcFitResult, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtRegion &mdtRegion) const |
|
| AthAlgTool (const std::string &type, const std::string &name, const IInterface *parent) |
| Constructor with parameters: More...
|
|
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, V, H > &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 |
|
|
StatusCode | prepareTgcPoints (const TrigL2MuonSA::TgcHits &tgcHits) |
|
void | find_barrel_road_dim (const float max_road, const float aw, const float bw, const float rMmin, const float rMax, float &zMin, float &zMax) const |
|
void | find_endcap_road_dim (const float road, const float aw, const float bw, const float zMin, const float zMax, float &rMin, float &rMax) const |
|
void | find_eta_min_max (float zMin, float rMin, float zMax, float rMax, float &etaMin, float &etaMax) const |
|
void | find_phi_min_max (float phiMiddle, float &phiMin, float &phiMax) const |
|
StatusCode | computePhi (const TrigRoiDescriptor *p_roids, const TrigL2MuonSA::TgcFitResult &tgcFitResult, const TrigL2MuonSA::MdtRegion &mdtRegion, TrigL2MuonSA::MuonRoad &muonRoad) const |
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
Definition at line 37 of file MdtRegionDefiner.h.
◆ StoreGateSvc_t
◆ AthAlgTool()
◆ computePhi()
Definition at line 500 of file MdtRegionDefiner.cxx.
510 for(
int i_station=0; i_station<5; i_station++) {
517 for(
int i_sector=0; i_sector<2; i_sector++) {
530 double MiddleZ = std::abs(mdtRegion.
zMin[endcap_middle][i_sector] + mdtRegion.
zMax[endcap_middle][i_sector])/2.;
531 double MiddleR = MiddleZ*muonRoad.
aw[endcap_middle][i_sector] + muonRoad.
bw[endcap_middle][i_sector];
533 double OuterZ = std::abs(mdtRegion.
zMin[endcap_outer][i_sector] + mdtRegion.
zMax[endcap_outer][i_sector])/2.;
534 double OuterR = OuterZ*muonRoad.
aw[endcap_outer][i_sector] + muonRoad.
bw[endcap_outer][i_sector];
535 double DrOuter = std::abs(OuterR-MiddleR);
536 dz = std::sqrt((OuterZ-MiddleZ)*(OuterZ-MiddleZ) + DrOuter*DrOuter);
537 dz = (OuterZ-MiddleZ);
544 if(tgcFitResult.
tgcInn[2] != 0.) {
548 double InnerZ = std::abs(mdtRegion.
zMin[endcap_inner][i_sector] + mdtRegion.
zMax[endcap_inner][i_sector])/2.;
549 double InnerR = InnerZ*muonRoad.
aw[endcap_inner][i_sector] + muonRoad.
bw[endcap_inner][i_sector];
550 double DrInner = std::abs(InnerR-MiddleR);
551 dz = -std::sqrt((InnerZ-MiddleZ)*(InnerZ-MiddleZ) + DrInner*DrInner);
552 dz = -std::abs(InnerZ-MiddleZ);
565 return StatusCode::SUCCESS;
◆ 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
◆ find_barrel_road_dim()
void TrigL2MuonSA::MdtRegionDefiner::find_barrel_road_dim |
( |
const float |
max_road, |
|
|
const float |
aw, |
|
|
const float |
bw, |
|
|
const float |
rMmin, |
|
|
const float |
rMax, |
|
|
float & |
zMin, |
|
|
float & |
zMax |
|
) |
| const |
|
private |
Definition at line 412 of file MdtRegionDefiner.cxx.
426 dz = max_road*std::sqrt(1.+ia*ia);
427 z1 = (ia)? (rMin-bw)*ia : bw;
428 z2 = (ia)? (rMax-bw)*ia : bw;
430 zMin =
std::min({z1-dz, z1+dz, z2-dz, z2+dz});
431 zMax =
std::max({z1-dz, z1+dz, z2-dz, z2+dz});
◆ find_endcap_road_dim()
void TrigL2MuonSA::MdtRegionDefiner::find_endcap_road_dim |
( |
const float |
road, |
|
|
const float |
aw, |
|
|
const float |
bw, |
|
|
const float |
zMin, |
|
|
const float |
zMax, |
|
|
float & |
rMin, |
|
|
float & |
rMax |
|
) |
| const |
|
private |
Definition at line 437 of file MdtRegionDefiner.cxx.
444 if(zMin>=99999. && zMax<=-99999.){
455 if(rMin<0.) rMin = 0.;
456 if(rMax<0.) rMax = 0.;
◆ find_eta_min_max()
void TrigL2MuonSA::MdtRegionDefiner::find_eta_min_max |
( |
float |
zMin, |
|
|
float |
rMin, |
|
|
float |
zMax, |
|
|
float |
rMax, |
|
|
float & |
etaMin, |
|
|
float & |
etaMax |
|
) |
| const |
|
private |
◆ find_phi_min_max()
void TrigL2MuonSA::MdtRegionDefiner::find_phi_min_max |
( |
float |
phiMiddle, |
|
|
float & |
phiMin, |
|
|
float & |
phiMax |
|
) |
| const |
|
private |
Definition at line 366 of file MdtRegionDefiner.cxx.
368 phiMin = phiMiddle - 0.1;
369 phiMax = phiMiddle + 0.1;
370 if ( phiMin < -1.*
M_PI ) phiMin += 2.*
M_PI;
371 if ( phiMax > 1.*
M_PI ) phiMax -= 2.*
M_PI;
◆ find_station_sector()
void TrigL2MuonSA::MdtRegionDefiner::find_station_sector |
( |
const std::string & |
name, |
|
|
int |
phi, |
|
|
bool & |
endcap, |
|
|
int & |
chamber, |
|
|
int & |
sector |
|
) |
| |
|
static |
◆ getMdtRegions() [1/2]
Definition at line 29 of file MdtRegionDefiner.cxx.
39 for(
int i_station=0; i_station<6; i_station++) {
48 for(
int i_sector=0; i_sector<
N_SECTOR; i_sector++) {
51 if( sector==99 )
continue;
53 float zMin {0}, zMax {0}, rMin {0}, rMax {0};
54 float tmp_zMin {0}, tmp_zMax {0}, tmp_rMin {0}, tmp_rMax {0};
56 int ty1 {-1}, ty2 {-1};
59 for(
unsigned int sta_iter=0; sta_iter< muonRoad.
stationList.size(); sta_iter++){
64 int chamber_this = 99;
69 if(chamber_this ==
chamber && sector_this == sector ){
79 tmp_zMin = (trans*OrigOfMdtInAmdbFrame).
z();
80 if(tmp_zMin < 0)
sign = -1;
81 else if(tmp_zMin > 0)
sign = 1;
82 tmp_zMax = tmp_zMin +
sign*muonStation->
Zsize();
83 if(zMin==0 || tmp_zMin < zMin) zMin = tmp_zMin;
84 if(zMax==0 || tmp_zMax > zMax) zMax = tmp_zMax;
86 tmp_rMin = (trans*OrigOfMdtInAmdbFrame).
perp();
87 tmp_rMax = tmp_rMin + muonStation->
Rsize();
88 if(rMin==0 || tmp_rMin < rMin) rMin = tmp_rMin;
89 if(rMax==0 || tmp_rMax > rMax) rMax = tmp_rMax;
108 ATH_MSG_DEBUG(
"...zMin/zMax/ty1/ty2=" << zMin <<
"/" << zMax <<
"/" << ty1 <<
"/" << ty2);
124 for(
int i_type=0; i_type<2; i_type++) {
125 int type = (i_type==0) ? ty1 : ty2;
126 if(
type == -1 )
continue;
133 for (
int i=0;
i<6;
i++){
135 if (
i==4) muonRoad.
phi[9][j] =
phi;
136 else if (
i==5) muonRoad.
phi[10][j] =
phi;
141 return StatusCode::SUCCESS;
◆ getMdtRegions() [2/2]
Definition at line 147 of file MdtRegionDefiner.cxx.
166 for(
int i_station=0; i_station<7; i_station++) {
175 for(
int i_sector=0; i_sector<2; i_sector++) {
176 int sector = sectors[i_sector];
178 if( sector==99 )
continue;
201 for(
unsigned int sta_iter=0; sta_iter<muonRoad.
stationList.size(); sta_iter++){
205 int chamber_this = 99;
206 int sector_this = 99;
209 ATH_MSG_DEBUG(
"name/stationPhi/isEndcap/chamber_this/sector_this=" <<
210 name <<
"/" << stationPhi <<
"/" << isEndcap <<
"/" << chamber_this <<
"/" << sector_this);
212 if(chamber_this ==
chamber && sector_this == sector){
227 tmp_zMin = (trans*OrigOfMdtInAmdbFrame).
z();
228 if(tmp_zMin < 0)
sign = -1;
229 else if(tmp_zMin > 0)
sign = 1;
230 tmp_zMax = tmp_zMin +
sign*muonStation->
Zsize();
232 if(sta_zMin==0 || tmp_zMin<sta_zMin) sta_zMin = tmp_zMin;
233 if(sta_zMin==0 || tmp_zMax<sta_zMin) sta_zMin = tmp_zMax;
234 if(sta_zMax==0 || tmp_zMax>sta_zMax) sta_zMax = tmp_zMax;
235 if(sta_zMax==0 || tmp_zMin>sta_zMax) sta_zMax = tmp_zMin;
237 if (chamber_this==barrel_inner){
238 tmp_rMin = (trans*OrigOfMdtInAmdbFrame).
perp()/
scale;
239 tmp_rMax = tmp_rMin+muonStation->
Rsize()/
scale;
240 if(rMin==0 || tmp_rMin < rMin)rMin = tmp_rMin;
241 if(rMax==0 || tmp_rMax > rMax)rMax = tmp_rMax;
244 if (chamber_this==bee){
245 tmp_rMin = (trans*OrigOfMdtInAmdbFrame).
perp()/
scale;
246 tmp_rMax = tmp_rMin+muonStation->
Rsize()/
scale;
247 if(rMin==0 || tmp_rMin < rMin)rMin = tmp_rMin;
248 if(rMax==0 || tmp_rMax > rMax)rMax = tmp_rMax;
258 zMin = tgcFitResult.
tgcMid1[3];
259 zMax = tgcFitResult.
tgcMid2[3];
261 zMin = tgcFitResult.
tgcMid2[3];
262 zMax = tgcFitResult.
tgcMid1[3];
272 float max_road = 50 ;
292 ATH_MSG_DEBUG(
"...zMin/zMax/ty1/ty2=" << zMin <<
"/" << zMax <<
"/" << types[0] <<
"/" << types[1]);
309 for(
int i_type=0; i_type<2; i_type++) {
311 if(
type == -1 )
continue;
318 if (
sc.isFailure()) {
323 return StatusCode::SUCCESS;
◆ initialize()
StatusCode TrigL2MuonSA::MdtRegionDefiner::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.
◆ 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.
◆ prepareTgcPoints()
Definition at line 462 of file MdtRegionDefiner.cxx.
464 const double PHI_BOUNDARY = 0.2;
468 for (iHit = 0; iHit < tgcHits.size(); iHit++)
482 if( phi < 0 && ( (
M_PI+phi)<PHI_BOUNDARY) )
phi +=
M_PI*2;
493 return StatusCode::SUCCESS;
◆ renounce()
◆ renounceArray()
◆ setRpcGeometry()
void TrigL2MuonSA::MdtRegionDefiner::setRpcGeometry |
( |
bool |
use_rpc | ) |
|
|
inline |
◆ 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_evtStore
◆ m_idHelperSvc
◆ m_muDetMgrKey
◆ m_tgcStripInnPoints
◆ m_tgcStripMidPoints
◆ m_tgcWireInnPoints
◆ m_tgcWireMidPoints
◆ m_use_rpc
bool TrigL2MuonSA::MdtRegionDefiner::m_use_rpc {true} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
constexpr uint8_t stationPhi
station Phi 1 to 8
void find_barrel_road_dim(const float max_road, const float aw, const float bw, const float rMmin, const float rMax, float &zMin, float &zMax) const
Scalar perp() const
perp method - perpenticular length
@ BEE
BEE measurement point.
@ EndcapExtra
Extra station in the endcap spectrometer.
double bw[N_STATION][N_SECTOR]
@ BME
BME measurement point.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
@ BarrelInner
Inner station in the barrel spectrometer.
std::vector< SG::VarHandleKeyArray * > m_vhka
double MaxWidth(int i_station)
ChargedTracksWeightFilter::Spline::Point Point
while((inf=(TStreamerInfo *) nextinfo()) !=0)
double phiMin[N_STATION][N_SECTOR]
double aw[N_STATION][N_SECTOR]
TrigL2MuonSA::TgcFit::PointArray m_tgcStripInnPoints
virtual void setOwner(IDataHandleHolder *o)=0
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
std::vector< Identifier > stationList
const MdtReadoutElement * getMdtReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
double rMax[N_STATION][N_SECTOR]
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
const MuonStation * parentMuonStation() const
Eigen::Affine3d Transform3D
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_muDetMgrKey
StatusCode computePhi(const TrigRoiDescriptor *p_roids, const TrigL2MuonSA::TgcFitResult &tgcFitResult, const TrigL2MuonSA::MdtRegion &mdtRegion, TrigL2MuonSA::MuonRoad &muonRoad) const
TrigL2MuonSA::TgcFit::PointArray m_tgcStripMidPoints
const Amg::Transform3D & getNominalAmdbLRSToGlobal() const
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
double etaMin[N_STATION][N_SECTOR]
void find_eta_min_max(float zMin, float rMin, float zMax, float rMax, float &etaMin, float &etaMax) const
static void find_station_sector(const std::string &name, int phi, bool &endcap, int &chamber, int §or)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
double phi[N_STATION][N_SECTOR]
@ EndcapMiddle
Middle station in the endcap spectrometer.
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
void find_endcap_road_dim(const float road, const float aw, const float bw, const float zMin, const float zMax, float &rMin, float &rMax) const
double zMin[N_STATION][N_SECTOR]
double zMax[N_STATION][N_SECTOR]
double rWidth[N_STATION][N_LAYER]
TrigL2MuonSA::TgcFit::PointArray m_tgcWireInnPoints
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
virtual double phi() const override final
Methods to retrieve data members.
double rMin[N_STATION][N_SECTOR]
@ EndcapInner
Inner station in the endcap spectrometer.
@ BarrelOuter
Outer station in the barrel spectrometer.
double phiMax[N_STATION][N_SECTOR]
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
TrigL2MuonSA::TgcFit::PointArray m_tgcWireMidPoints
double etaMax[N_STATION][N_SECTOR]
const Amg::Vector3D & getBlineFixedPointInAmdbLRS() const
void find_phi_min_max(float phiMiddle, float &phiMin, float &phiMax) const
@ BarrelMiddle
Middle station in the barrel spectrometer.
@ EndcapOuter
Outer station in the endcap spectrometer.
int chamberType[N_STATION][N_SECTOR][2]
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc