![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
#include <CscSegmentMaker.h>
|
| CscSegmentMaker (const std::string &type, const std::string &name, const IInterface *parent) |
|
virtual StatusCode | initialize () override |
|
ReturnCode | FindSuperPointCsc (const TrigL2MuonSA::CscHits &cscHits, std::vector< TrigL2MuonSA::TrackPattern > &v_trackPatterns, const TrigL2MuonSA::TgcFitResult &tgcFitResult, const TrigL2MuonSA::MuonRoad &muroad) const |
|
ReturnCode | make_segment (int mod_hash, TrigL2MuonSA::CscHits clusters[8], CscSegment &cscsegment, CscSegment &cscsegment_noip, const MuonGM::MuonDetectorManager *muDetMgr) const |
|
ReturnCode | make_2dsegment (int measphi, const localCscHit &ip_loc, const std::vector< localCscHit > hits_loc[4], local2dSegment &seg2d_eta, local2dSegment &local2d_noip, int &nhite) const |
|
ReturnCode | make_2dseg4hit (int measphi, const localCscHit &ip_loc, std::vector< localCscHit > hits_loc[4], std::vector< local2dSegment > &seg2d_4hitCollection, int &nhite) const |
|
ReturnCode | make_2dseg3hit (int measphi, const localCscHit &ip_loc, const std::vector< localCscHit > hits_loc[4], std::vector< local2dSegment > &seg2d_4hitCollection, int &nhit) const |
|
ReturnCode | fit_clusters (int measphi, const std::vector< localCscHit > &hits_fit, local2dSegment &seg2d) const |
|
ReturnCode | make_4dsegment (const local2dSegment &seg2d_eta, const local2dSegment &seg2d_phi, Amg::Vector3D &seg_pos, Amg::Vector3D &seg_dir) const |
|
ReturnCode | getModuleSP (int mod_hash[2], const TrigL2MuonSA::TgcFitResult &tgcFitResult, int phibin, const TrigL2MuonSA::MuonRoad &muroad, const int exist_clusters[32]) const |
|
ReturnCode | display_hits (const std::vector< localCscHit > localHits[4]) const |
|
CscSegment | segmentAtFirstLayer (int mod_hash, TrigL2MuonSA::CscSegment *mu_seg) 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 |
|
Definition at line 30 of file CscSegmentMaker.h.
◆ StoreGateSvc_t
◆ CscSegmentMaker()
TrigL2MuonSA::CscSegmentMaker::CscSegmentMaker |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ 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);
◆ 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.
◆ 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.
◆ 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()
◆ display_hits()
Definition at line 650 of file CscSegmentMaker.cxx.
652 for(
unsigned int ilyr=0; ilyr<4; ++ilyr){
653 for (
unsigned int ihit=0; ihit<localHits[ilyr].size(); ++ihit) {
654 const localCscHit &locHit = localHits[ilyr][ihit];
655 ATH_MSG_DEBUG(
"measphi=" << locHit.measphi <<
" wirelyr=" << ilyr+1
656 <<
" x=" << locHit.loc_x <<
" y=" << locHit.loc_y <<
" z=" << locHit.loc_z
657 <<
" err=" << locHit.error <<
" res=" << locHit.residual);
◆ 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
◆ FindSuperPointCsc()
Definition at line 35 of file CscSegmentMaker.cxx.
44 if( !cscHits.empty() ){
49 int hash_clusters[32]={0};
52 for(
unsigned int iclu=0; iclu<cscHits.size(); ++iclu){
63 if(0<=module_hash && 32>module_hash){
64 clusters[module_hash][cathodelayer].push_back( cscHit );
65 hash_clusters[module_hash]=1;
73 int hashSPs[2]={999,999};
76 bool found_segment=
false;
77 for(
int ihash=0; ihash<2; ++ihash){
78 if(found_segment)
break;
80 int hashSP=hashSPs[ihash];
81 if(hashSP>32)
continue;
84 CscSegment cscsegment, cscsegment_noip;
87 track.hashID_CSC = hashSP;
93 bool &large_dphidz =
track.large_dPhidZ;
94 double &outerCorFactor =
track.outerCorFactor;
97 double tgcmid1z = tgcFitResult.
tgcMid1[3];
98 double tgcmid2z = tgcFitResult.
tgcMid2[3];
99 double phimiddle = tgcFitResult.
phi;
100 double dPhidz = tgcFitResult.
dPhidZ;
101 if( 0.75
e-6<std::abs(dPhidz) ) large_dphidz=
true;
102 double tgcmidZ = (tgcmid1z+tgcmid2z)/2.;
103 double outerz = outerSP->
Z;
108 double CSCR=cscsegment_ext.x()*
std::cos(phiMod)+cscsegment_ext.y()*
std::sin(phiMod);
109 double CSCZ=cscsegment_ext.z();
110 double PhiAtCsc = phimiddle;
114 superPoint->
Z = CSCZ;
115 superPoint->
R = CSCSPR;
116 superPoint->
Alin = cscsegment_ext.slopeRZ();
117 superPoint->
Blin = cscsegment_ext.interceptRZ();
118 superPoint->
Npoint = cscsegment_ext.nHitEta();
119 superPoint->
Chi2 = cscsegment_ext.chiSquare();
121 <<
",CSCR=" << CSCSPR <<
",CSCZ=" << CSCZ
122 <<
",Slope=" << cscsegment_ext.slopeRZ() <<
",Intercept=" << cscsegment_ext.interceptRZ()
123 <<
",nHitsEta=" << cscsegment_ext.nHitEta() <<
",Chi2="<< cscsegment_ext.chiSquare());
126 double phiouter = phimiddle+std::abs(outerz-tgcmidZ)*dPhidz;
◆ fit_clusters()
Definition at line 453 of file CscSegmentMaker.cxx.
473 for (
unsigned int ihit=0; ihit< hits_fit.size(); ++ihit) {
476 double x= hits_fit[ihit].loc_z;
477 double y= (measphi==0) ? hits_fit[ihit].loc_y : hits_fit[ihit].loc_x;
478 double err= hits_fit[ihit].error;
484 if( !hits_fit[ihit].isIP ){
485 seg2d.stationname=hits_fit[ihit].stationname;
486 aver_res +=
w*hits_fit[ihit].residual;
495 seg2d.residual=aver_res/rq;
498 for (
unsigned int ihit=0; ihit< hits_fit.size(); ++ihit) {
500 double x= hits_fit[ihit].loc_z;
501 double y= (measphi==0) ? hits_fit[ihit].loc_y : hits_fit[ihit].loc_x;
502 double err = hits_fit[ihit].error;
504 Stt +=
w*(
x-Sx/
S)*(
x-Sx/
S);
505 aStt +=
w*
y*(
x-Sx/
S);
515 a = seg2d.a = aStt/Stt;
516 b = seg2d.b = (Sy-Sx*
a)/
S;
522 seg2d.chi2 = Syy +
a*
a*Sxx + 2*
b*
a*Sx +
b*
b*
S - 2*
b*Sy - 2*
a*Sxy;
524 ATH_MSG_DEBUG(
"fit: a=" <<
a <<
" b=" <<
b <<
" chi2=" << seg2d.chi2 );
◆ getModuleSP()
Definition at line 578 of file CscSegmentMaker.cxx.
587 for(
unsigned int imod=0; imod<32;++imod){
589 if( 0==hash_clusters[imod] )
continue;
594 ATH_MSG_DEBUG(
"getModuleSP()::(phi,side) modlue:(" << phiMod <<
"," << stationeta <<
") tgcroad:(" << tgcFitResult.
phi <<
"," <<
side <<
")");
595 if( std::abs(dphi)>
M_PI/8. ||
side != stationeta)
continue;
600 if(imod<16 && phibin>7){
602 }
else if( imod >=16 && phibin<7){
608 }
else if (7==phibin) {
612 }
else if( imod >=16 && 0== muroad.
LargeSmall){
620 ATH_MSG_DEBUG(
"getModuleSP::Normal sector=" << mod_hashes[0] <<
" overlap sector=" << mod_hashes[1]);
◆ initialize()
StatusCode TrigL2MuonSA::CscSegmentMaker::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.
◆ make_2dseg3hit()
Definition at line 392 of file CscSegmentMaker.cxx.
400 for (
int ilyr=0; ilyr<4; ++ilyr ){
401 if( 0==hits_loc[ilyr].
size() ){
409 std::vector<localCscHit> hit_fit;
412 int hit_lyrA[4] = {1, 2, 3, 0};
413 int hit_lyrB[4] = {2, 3, 0, 1};
414 int hit_lyrC[4] = {3, 0, 1, 2};
416 for(
int lyrcomb=0; lyrcomb<4; ++lyrcomb){
418 if(0<=empty_lyr && empty_lyr!=lyrcomb)
continue;
420 for (
unsigned int ihitA=0; ihitA<hits_loc[hit_lyrA[lyrcomb]].size(); ++ihitA) {
421 for (
unsigned int ihitB=0; ihitB<hits_loc[hit_lyrB[lyrcomb]].size(); ++ihitB) {
422 for (
unsigned int ihitC=0; ihitC<hits_loc[hit_lyrC[lyrcomb]].size(); ++ihitC) {
425 hit_fit.push_back(ip_loc);
426 hit_fit.push_back(hits_loc[hit_lyrA[lyrcomb]][ihitA]);
427 hit_fit.push_back(hits_loc[hit_lyrB[lyrcomb]][ihitB]);
428 hit_fit.push_back(hits_loc[hit_lyrC[lyrcomb]][ihitC]);
431 local2dSegment seg2d_tmp;
436 seg2d_tmp.localHits.push_back(hits_loc[hit_lyrA[lyrcomb]][ihitA]);
437 seg2d_tmp.localHits.push_back(hits_loc[hit_lyrB[lyrcomb]][ihitB]);
438 seg2d_tmp.localHits.push_back(hits_loc[hit_lyrC[lyrcomb]][ihitC]);
439 seg2d_3hitCollection.push_back(seg2d_tmp);
◆ make_2dseg4hit()
Definition at line 325 of file CscSegmentMaker.cxx.
331 std::vector<localCscHit> hit_fit;
333 for (
unsigned int ihit0=0; ihit0<hits_loc[0].size(); ++ihit0) {
334 for (
unsigned int ihit1=0; ihit1<hits_loc[1].size(); ++ihit1) {
335 for (
unsigned int ihit2=0; ihit2<hits_loc[2].size(); ++ihit2) {
336 for (
unsigned int ihit3=0; ihit3<hits_loc[3].size(); ++ihit3) {
340 hit_fit.push_back(ip_loc);
341 hit_fit.push_back(hits_loc[0][ihit0]);
342 hit_fit.push_back(hits_loc[1][ihit1]);
343 hit_fit.push_back(hits_loc[2][ihit2]);
344 hit_fit.push_back(hits_loc[3][ihit3]);
347 local2dSegment seg2d_tmp;
352 seg2d_tmp.localHits.push_back(hits_loc[0][ihit0]);
353 seg2d_tmp.localHits.push_back(hits_loc[1][ihit1]);
354 seg2d_tmp.localHits.push_back(hits_loc[2][ihit2]);
355 seg2d_tmp.localHits.push_back(hits_loc[3][ihit3]);
357 hits_loc[0][ihit0].enabled=
false;
358 hits_loc[1][ihit1].enabled=
false;
359 hits_loc[2][ihit2].enabled=
false;
360 hits_loc[3][ihit3].enabled=
false;
362 seg2d_4hitCollection.push_back(seg2d_tmp);
373 std::vector<localCscHit> hit_loc_left[4];
374 for (
unsigned int ilyr=0;ilyr<4; ++ilyr){
375 for(
unsigned int ihit=0; ihit < hits_loc[ilyr].size(); ++ihit){
377 if (
true==hits_loc[ilyr][ihit].enabled ){
378 hit_loc_left[ilyr].push_back(hits_loc[ilyr][ihit]);
383 for(
int ilyr=0; ilyr<4; ++ilyr) hits_loc[ilyr]=hit_loc_left[ilyr];
◆ make_2dsegment()
Definition at line 260 of file CscSegmentMaker.cxx.
267 std::vector<int> hit_lyr;
271 for (
int i=0;
i<4; ++
i ){
272 if( 0==hits_loc[
i].
size() ) ++nohit;
275 std::vector<local2dSegment> seg2d_4hitCollection,seg2d_3hitCollection;
276 seg2d_4hitCollection.clear(); seg2d_3hitCollection.clear();
277 std::vector<localCscHit> hits_loc_copy[4];
278 for (
int i=0;
i<4;++
i) hits_loc_copy[
i] = hits_loc[
i];
289 }
else if(1==nohit) {
299 seg2d.residual=99999.;
300 for(
unsigned int iseg4=0; iseg4< seg2d_4hitCollection.size(); ++iseg4){
302 if( std::abs( seg2d_4hitCollection[iseg4].
residual ) < std::abs(seg2d.residual) ){
303 seg2d=seg2d_4hitCollection[iseg4];
308 for(
unsigned int iseg3=0; iseg3< seg2d_3hitCollection.size(); ++iseg3){
310 if( std::abs( seg2d_3hitCollection[iseg3].
residual ) < std::abs(seg2d.residual) ){
311 seg2d=seg2d_3hitCollection[iseg3];
◆ make_4dsegment()
Definition at line 531 of file CscSegmentMaker.cxx.
537 int nhit_e=seg2d_eta.nhit;
538 int nhit_p=seg2d_phi.nhit;
539 double a_eta=seg2d_eta.a;
540 double b_eta=seg2d_eta.b;
541 double a_phi=seg2d_phi.a;
542 double b_phi=seg2d_phi.b;
543 double rzshift=seg2d_eta.zshift;
544 double phizshift=seg2d_phi.zshift;
551 ATH_MSG_DEBUG(
"rzshift=" << rzshift <<
" phizshift=" << phizshift <<
" diff=" << (rzshift-phizshift)
552 <<
" angle=" << ( 0.5*
M_PI -
std::atan(a_phi) ) <<
" b_phi=" << b_phi );
555 double norm = std::sqrt( a_phi*a_phi + a_eta*a_eta + 1 );
561 << a_eta <<
" a_phi=" << a_phi <<
" chi2_eta=" << seg2d_eta.chi2 <<
" chi2_phi=" << seg2d_phi.chi2 );
563 double aver_z=0.5*(rzshift+phizshift);
◆ make_segment()
Definition at line 143 of file CscSegmentMaker.cxx.
147 ATH_MSG_DEBUG(
"################################## make_segment #####################################");
149 std::vector<localCscHit> hits_loc_eta[4], hits_loc_phi[4],emp;
151 for(
int i =0;
i<4;++
i){
174 gToLocal=translation*rotPIamg*rotYamg*rotZamg;
180 ip_loc.loc_x = ip_vec(
Amg::x);
181 ip_loc.loc_y = ip_vec(
Amg::y);
182 ip_loc.loc_z = ip_vec(
Amg::z);
185 ip_loc.residual = 0.;
187 ip_loc.enabled =
false;
188 ip_loc.stationname = 0;
190 for (
unsigned int clyr=0; clyr<8; ++clyr) {
191 for (
unsigned int ihit=0; ihit<
clusters[clyr].size(); ++ihit) {
204 loc_hit.loc_x = loc_vect(
Amg::x);
205 loc_hit.loc_y = loc_vect(
Amg::y);
206 loc_hit.loc_z = loc_vect(
Amg::z);
210 loc_hit.enabled=
true;
213 ATH_MSG_DEBUG(
"measphi=" << cschit.
MeasuresPhi <<
" wirelyr=" << cschit.
WireLayer <<
" x=" << loc_hit.loc_x <<
" y=" << loc_hit.loc_y <<
" z=" << loc_hit.loc_z <<
" err=" << loc_hit.error <<
" res=" << loc_hit.residual);
216 if(0==loc_hit.measphi) {
219 if(1==loc_hit.measphi) {
225 Amg::Vector3D seg_pos_loc, seg_dir_loc,seg_pos_loc_noip, seg_dir_loc_noip;
227 local2dSegment seg2d_eta ,seg2d_phi, seg2d_eta_noip, seg2d_phi_noip;
244 Amg::Vector3D seg_dir_noip = lToGlobal.rotation()*seg_dir_loc_noip;
248 cscsegment.set(seg_pos,seg_dir, seg2d_eta.chi2, seg2d_phi.chi2);
249 cscsegment.setNHitEta(seg2d_eta.nhit);
250 cscsegment.setNHitPhi(seg2d_phi.nhit);
251 cscsegment_noip.set(seg_pos_noip,seg_dir_noip, seg2d_eta_noip.chi2, seg2d_phi_noip.chi2);
252 cscsegment_noip.setNHitEta(seg2d_eta_noip.nhit);
253 cscsegment_noip.setNHitPhi(seg2d_phi_noip.nhit);
◆ 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()
◆ segmentAtFirstLayer()
Definition at line 628 of file CscSegmentMaker.cxx.
633 double a0=mu_seg->
px(), a1=mu_seg->
py(), a2=mu_seg->
pz();
634 double b0=mu_seg->
x(), b1=mu_seg->
y(),b2=mu_seg->
z();
635 double t = ( alpha-(
n(0)*b0+
n(1)*b1+
n(2)*b2) )/(
n(0)*
a0+
n(1)*a1+
n(2)*a2 );
640 CscSegment cscsegment;
641 cscsegment.set(x0,
x1,
x2,
a0,a1,a2,chisquare, chisquare_phi);
642 cscsegment.setNHitEta(mu_seg->
nHitEta());
643 cscsegment.setNHitPhi(mu_seg->
nHitPhi());
◆ 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_cscregdict
ToolHandle<CscRegDict> TrigL2MuonSA::CscSegmentMaker::m_cscregdict |
|
private |
Initial value:{
this, "CscRegDict", "TrigL2MuonSA::CscRegDict", ""}
Definition at line 92 of file CscSegmentMaker.h.
◆ m_detStore
◆ m_err_eta
Gaudi::Property< double > TrigL2MuonSA::CscSegmentMaker::m_err_eta |
|
private |
◆ m_err_ip
Gaudi::Property< double > TrigL2MuonSA::CscSegmentMaker::m_err_ip |
|
private |
◆ m_err_phi
Gaudi::Property< double > TrigL2MuonSA::CscSegmentMaker::m_err_phi |
|
private |
◆ m_evtStore
◆ m_idHelperSvc
◆ m_max_chisquare
Gaudi::Property< double > TrigL2MuonSA::CscSegmentMaker::m_max_chisquare |
|
private |
◆ m_max_residual_eta
Gaudi::Property< double > TrigL2MuonSA::CscSegmentMaker::m_max_residual_eta |
|
private |
Initial value:{
this, "max_residual_eta", 100., ""}
Definition at line 102 of file CscSegmentMaker.h.
◆ m_max_residual_phi
Gaudi::Property< double > TrigL2MuonSA::CscSegmentMaker::m_max_residual_phi |
|
private |
Initial value:{
this, "max_residual_phi", 250., ""}
Definition at line 104 of file CscSegmentMaker.h.
◆ m_muDetMgrKey
◆ m_use_geometry
Gaudi::Property< bool > TrigL2MuonSA::CscSegmentMaker::m_use_geometry |
|
private |
Initial value:{
this, "UseGeometry", false, ""}
Definition at line 98 of file CscSegmentMaker.h.
◆ m_util
UtilTools TrigL2MuonSA::CscSegmentMaker::m_util |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
ReturnCode make_2dseg4hit(int measphi, const localCscHit &ip_loc, std::vector< localCscHit > hits_loc[4], std::vector< local2dSegment > &seg2d_4hitCollection, int &nhite) const
ReturnCode make_2dseg3hit(int measphi, const localCscHit &ip_loc, const std::vector< localCscHit > hits_loc[4], std::vector< local2dSegment > &seg2d_4hitCollection, int &nhit) const
Chamber
Define chamber types and locations.
Scalar phi() const
phi method
ReturnCode make_4dsegment(const local2dSegment &seg2d_eta, const local2dSegment &seg2d_phi, Amg::Vector3D &seg_pos, Amg::Vector3D &seg_dir) const
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
ReturnCode fit_clusters(int measphi, const std::vector< localCscHit > &hits_fit, local2dSegment &seg2d) const
Gaudi::Property< double > m_err_eta
Gaudi::Property< double > m_max_chisquare
virtual Amg::Transform3D GlobalToAmdbLRSTransform() const
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_muDetMgrKey
std::vector< CscHitData > CscHits
virtual void setOwner(IDataHandleHolder *o)=0
Gaudi::Property< double > m_max_residual_phi
ReturnCode getModuleSP(int mod_hash[2], const TrigL2MuonSA::TgcFitResult &tgcFitResult, int phibin, const TrigL2MuonSA::MuonRoad &muroad, const int exist_clusters[32]) const
const CscReadoutElement * getCscReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Gaudi::Property< bool > m_use_geometry
Eigen::Affine3d Transform3D
Gaudi::Property< double > m_max_residual_eta
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Gaudi::Property< double > m_err_phi
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
ReturnCode make_segment(int mod_hash, TrigL2MuonSA::CscHits clusters[8], CscSegment &cscsegment, CscSegment &cscsegment_noip, const MuonGM::MuonDetectorManager *muDetMgr) const
ToolHandle< CscRegDict > m_cscregdict
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
ReturnCode display_hits(const std::vector< localCscHit > localHits[4]) const
ReturnCode make_2dsegment(int measphi, const localCscHit &ip_loc, const std::vector< localCscHit > hits_loc[4], local2dSegment &seg2d_eta, local2dSegment &local2d_noip, int &nhite) const
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Eigen::Translation< double, 3 > Translation3D
CscSegment segmentAtFirstLayer(int mod_hash, TrigL2MuonSA::CscSegment *mu_seg) const
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Eigen::AngleAxisd AngleAxis3D
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
@ EndcapOuter
Outer station in the endcap spectrometer.
Gaudi::Property< double > m_err_ip