|
ATLAS Offline Software
|
#include <TrigMufastHypoTool.h>
|
| TrigMufastHypoTool (const std::string &type, const std::string &name, const IInterface *parent) |
|
virtual | ~TrigMufastHypoTool () |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | decide (std::vector< TrigMufastHypoTool::MuonClusterInfo > &toolInput) 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 |
|
|
bool | decideOnSingleObject (TrigMufastHypoTool::MuonClusterInfo &input, size_t cutIndex) const |
|
StatusCode | inclusiveSelection (std::vector< TrigMufastHypoTool::MuonClusterInfo > &toolInput) const |
|
StatusCode | multiplicitySelection (std::vector< TrigMufastHypoTool::MuonClusterInfo > &toolInput) const |
|
StatusCode | applyOverlapRemoval (std::vector< TrigMufastHypoTool::MuonClusterInfo > &toolInput) const |
|
StatusCode | checkOverlap (std::vector< TrigMufastHypoTool::MuonClusterInfo * > &input) const |
|
bool | isOverlap (const xAOD::L2StandAloneMuon *mf1, const xAOD::L2StandAloneMuon *mf2) const |
|
double | dR (double eta1, double phi1, double eta2, double phi2) const |
|
double | invMass (double m1, double pt1, double eta1, double phi1, double m2, double pt2, double eta2, double phi2) const |
|
StatusCode | chooseBestMuon (std::vector< TrigMufastHypoTool::MuonClusterInfo * > &input, const std::vector< unsigned int > &mufastResult) const |
|
float | getLocalPhi (float, float, float) const |
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
Definition at line 33 of file TrigMufastHypoTool.h.
◆ StoreGateSvc_t
◆ anonymous enum
◆ TrigMufastHypoTool()
TrigMufastHypoTool::TrigMufastHypoTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~TrigMufastHypoTool()
TrigMufastHypoTool::~TrigMufastHypoTool |
( |
| ) |
|
|
virtual |
◆ applyOverlapRemoval()
Definition at line 390 of file TrigMufastHypoTool.cxx.
394 std::vector<TrigMufastHypoTool::MuonClusterInfo*>
input;
396 for (
auto&
i: toolInput ) {
403 size_t numMuon =
input.size();
409 ATH_MSG_DEBUG(
"No positive previous hypo decision. Not need overlap removal." );
410 mufastNrActiveEVs = numMuon;
411 mufastNrAllEVs = numMuon;
412 return StatusCode::SUCCESS;
414 else if ( numMuon == 1 ) {
416 ATH_MSG_DEBUG(
"no overlap Removal necessary. exitting with all EventViews active." );
417 mufastNrActiveEVs = numMuon;
418 mufastNrAllEVs = numMuon;
419 return StatusCode::SUCCESS;
422 mufastNrAllEVs = numMuon;
424 return StatusCode::SUCCESS;
428 return StatusCode::SUCCESS;
◆ checkOverlap()
Definition at line 434 of file TrigMufastHypoTool.cxx.
436 size_t numMuon =
input.size();
438 std::vector<unsigned int> mufastResult;
440 bool errorWhenIdentifyingOverlap =
false;
442 for(
i=0;
i<numMuon;
i++) {mufastResult.emplace_back(
i); }
443 for(
i=0;
i<numMuon-1;
i++){
444 for(j=
i+1; j<numMuon; j++){
449 if( mufastResult[
i] == mufastResult[j] ) {
450 ATH_MSG_DEBUG(
"inconsistentency in muFast overlap removal for more than two objects" );
451 ATH_MSG_DEBUG(
"two objects are judged as different but both were already marked as identical by someone else as: " );
452 ATH_MSG_DEBUG(
"i/j/result[i]/result[j]=" <<
i <<
" / " << j <<
" / " << mufastResult[
i] <<
" / " << mufastResult[j] );
456 errorWhenIdentifyingOverlap =
true;
460 if( (mufastResult[j] != j && mufastResult[
i] != mufastResult[j]) || (mufastResult[j] == j && mufastResult[
i] !=
i) ){
461 ATH_MSG_DEBUG(
"inconsistentency in muFast overlap removal for more than two objects" );
462 ATH_MSG_DEBUG(
"two objects are judged as overlap but only either was already marked as overlap to someone else: " );
463 ATH_MSG_DEBUG(
"i/j/result[i]/result[j]=" <<
i <<
" / " << j <<
" / " << mufastResult[
i] <<
" / " << mufastResult[j] );
467 errorWhenIdentifyingOverlap =
true;
470 if( mufastResult[
i] ==
i ) {
471 ATH_MSG_DEBUG(
" i is not yet marked as overlap. so, it is a newly found overlap" );
475 ATH_MSG_DEBUG(
" both i/j already marked as overlap by: mufastResult[i]=" << mufastResult[
i] );
482 if( errorWhenIdentifyingOverlap ) {
483 ATH_MSG_WARNING(
"error when resolving overlap. exitting with all EVs active..." );
486 mufastNrActiveEVs = numMuon;
488 return StatusCode::SUCCESS;
491 unsigned int n_uniqueMuon = 0;
492 for(
i=0;
i<numMuon;
i++) {
494 if( mufastResult[
i] !=
i ) {
ATH_MSG_DEBUG(
" overlap to j=" << mufastResult[
i] ); }
501 ATH_MSG_DEBUG(
"nr of unique Muons after muFast overlap removal=" << n_uniqueMuon );
503 if( numMuon != n_uniqueMuon ){
506 ATH_MSG_DEBUG(
"no overlap identified. exitting with all EventViews active" );
509 mufastNrActiveEVs = n_uniqueMuon;
512 return StatusCode::SUCCESS;
◆ chooseBestMuon()
Definition at line 684 of file TrigMufastHypoTool.cxx.
686 size_t numMuon =
input.size();
696 mufastOverlappedPt, mufastOverlappedEta, mufastOverlappedPhi);
698 ATH_MSG_DEBUG(
"--- choose best among overlaps & disable EVs (muFast based) ---" );
699 for(
i=0;
i<numMuon;
i++) {
701 if( mufastResult[
i] !=
i ) {
702 ATH_MSG_DEBUG(
" overlap to some one. already the best one was chosen. skip." );
705 std::vector<unsigned int> others;
706 for(j=0; j<numMuon; j++) {
707 if( mufastResult[j] == mufastResult[
i] ) others.emplace_back(j);
709 if( others.size() == 1 ) {
716 unsigned int best_ev = 0;
719 for(
k=0;
k<others.size();
k++) {
724 float ptMf = fabs(
mf->pt());
725 float ptRoI =
mf->roiThreshold();
726 ATH_MSG_DEBUG(
" ev/PtRoI/ptMf="<< j <<
"/" << ptRoI <<
"/" << ptMf);
727 if( (ptRoI-maxPtRoI) > 0.1 ) {
732 else if( fabs(ptRoI-maxPtRoI) < 0.1 ) {
733 if( ptMf > maxPtMf ) {
740 ATH_MSG_DEBUG(
" best is: best_ev/maxPtRoI/maxPtMf=" << best_ev <<
" / " << maxPtRoI <<
" / " << maxPtMf );
742 for(
k=0;
k<others.size();
k++) {
745 ATH_MSG_DEBUG(
" EventView( j=" << j <<
" ) is not active" );
751 ++mufastNrOverlapped;
752 mufastOverlappedPt =
mf->pt();
753 mufastOverlappedEta =
mf->etaMS();
754 mufastOverlappedPhi =
mf->phiMS();
762 mufastNrActiveEVs = numMuon - mufastNrOverlapped;
764 return StatusCode::SUCCESS;
◆ decide()
Definition at line 278 of file TrigMufastHypoTool.cxx.
280 size_t numTrigger =
m_ptBins.size();
281 size_t numMuon = toolInput.size();
282 ATH_MSG_DEBUG(
"Retrieved from TrigMufastHypoAlg and Running TrigMufastHypoTool for selections.");
284 if ( numTrigger == 1 ) {
298 return StatusCode::SUCCESS;
◆ decideOnSingleObject()
Definition at line 120 of file TrigMufastHypoTool.cxx.
134 xatStation, yatStation, zatStation,
139 auto roiDescriptor =
input.roi;
141 <<
", Eta = " << roiDescriptor->eta()
142 <<
", Phi = " << roiDescriptor->phi());
148 ATH_MSG_DEBUG(
"Accept property is set: taking all the events");
152 ATH_MSG_DEBUG(
"Accept property not set: applying selection!");
156 auto pMuon =
input.muFast;
160 ATH_MSG_ERROR(
"Retrieval of L2StandAloneMuon from vector failed");
165 fexPt = (pMuon->pt())? pMuon->pt() : -9999.;
166 fexEta = (pMuon->etaMS())? pMuon->etaMS() : -9999.;
167 fexPhi = (pMuon->etaMS())? pMuon->phiMS() : -9999.;
168 fexPtFL = (pMuon->pt())? pMuon->pt() : -9999.;
170 if( pMuon->etaMS() ) {
171 float localPhi =
getLocalPhi(pMuon->etaMS(),pMuon->phiMS(),pMuon->rMS());
172 float radius = pMuon->rMS()/
cos(fabs(localPhi));
173 float DirZ = (pMuon->dirZMS())? pMuon->dirZMS() : .000001;
174 float DirF = (pMuon->dirPhiMS())? pMuon->dirPhiMS() : .000001;
175 xatStation =
radius *
cos(pMuon->phiMS());
176 yatStation =
radius *
sin(pMuon->phiMS());
177 zatStation = pMuon->zMS();
178 float xb = xatStation - yatStation/DirF;
179 float de = xatStation -
xb;
180 float ds = sqrt(yatStation*yatStation+de*de);
182 zatBeam = zatStation -
ds*DirZ;
199 float absEta = fabs(fexEta);
200 for (std::vector<float>::size_type
i=0;
i<
m_bins[0]; ++
i)
223 if((fabs(xatBeam)<
m_RPV) && (fabs(zatBeam)<
m_ZPV))
230 if (
result ) fexPtFL = -9999.;
232 ATH_MSG_DEBUG(
"REGTEST: Muon pt is " << pMuon->pt() <<
" GeV"
234 <<
" so hypothesis is " << (
result?
"true":
"false"));
◆ 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()
◆ dR()
double TrigMufastHypoTool::dR |
( |
double |
eta1, |
|
|
double |
phi1, |
|
|
double |
eta2, |
|
|
double |
phi2 |
|
) |
| const |
|
private |
◆ 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
◆ getLocalPhi()
float TrigMufastHypoTool::getLocalPhi |
( |
float |
eta, |
|
|
float |
phi, |
|
|
float |
rad |
|
) |
| const |
|
private |
Definition at line 242 of file TrigMufastHypoTool.cxx.
244 if(
phi<0.)
phi += 2*3.14159265;
245 float step = 0.78539816;
246 float offs = 0.39269908;
249 float Dphi = 999999.;
251 const float ZEROLIMIT = 1
e-6;
262 for(
int i=1;
i<8;++
i)
if(fabs(
i*
step+offs-
phi)<=Dphi)
◆ inclusiveSelection()
◆ initialize()
StatusCode TrigMufastHypoTool::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 33 of file TrigMufastHypoTool.cxx.
47 for (
size_t j=0; j<
m_ptBins.size(); ++j) {
51 return StatusCode::SUCCESS;
54 for (std::vector<float>::size_type
i=0;
i<
m_bins[j];++
i) {
84 return StatusCode::FAILURE;
98 return StatusCode::FAILURE;
114 return StatusCode::SUCCESS;
◆ 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.
◆ invMass()
double TrigMufastHypoTool::invMass |
( |
double |
m1, |
|
|
double |
pt1, |
|
|
double |
eta1, |
|
|
double |
phi1, |
|
|
double |
m2, |
|
|
double |
pt2, |
|
|
double |
eta2, |
|
|
double |
phi2 |
|
) |
| const |
|
private |
Definition at line 648 of file TrigMufastHypoTool.cxx.
653 double theta1 = 2*atan2((
double)
exp(-
eta1),1.);
654 double theta2 = 2*atan2((
double)
exp(-
eta2),1.);
656 double fpt1 = fabs(pt1);
657 double fpt2 = fabs(pt2);
659 double px1 = fpt1*
cos(phi1);
660 double py1 = fpt1*
sin(phi1);
661 double pz1 = fpt1/
tan(theta1);
662 double e1 = sqrt(px1*px1+py1*py1+pz1*pz1+
m1*
m1);
664 double px2 = fpt2*
cos(phi2);
665 double py2 = fpt2*
sin(phi2);
666 double pz2 = fpt2/
tan(theta2);
667 double e2 = sqrt(px2*px2+py2*py2+pz2*pz2+
m2*
m2);
669 double pxsum = px1 + px2;
670 double pysum = py1 + py2;
671 double pzsum = pz1 + pz2;
672 double esum =
e1 +
e2;
675 double mass2 = esum*esum - pxsum*pxsum - pysum*pysum - pzsum*pzsum;
◆ isOverlap()
Definition at line 518 of file TrigMufastHypoTool.cxx.
534 const double ZERO_LIMIT_FOR_ETAPHI = 1
e-4;
535 if( (fabs(mf1->
etaMS()) <ZERO_LIMIT_FOR_ETAPHI && fabs(mf1->
phiMS()) < ZERO_LIMIT_FOR_ETAPHI) ||
536 (fabs(mf2->
etaMS()) <ZERO_LIMIT_FOR_ETAPHI && fabs(mf2->
phiMS()) < ZERO_LIMIT_FOR_ETAPHI) ) {
537 ATH_MSG_DEBUG(
" ...-> (eta,phi) info not available (rec at (eta,phi)=(0,0))" );
538 ATH_MSG_DEBUG(
" ...-> but dR of invMass check is required. cannot judge overlap -> return with false" );
543 const double ZERO_LIMIT_FOR_PT = 1
e-4;
544 if( (fabs(mf1->
pt()) <ZERO_LIMIT_FOR_PT) || (fabs(mf2->
pt()) < ZERO_LIMIT_FOR_PT) ) {
545 ATH_MSG_DEBUG(
" ...-> pT info not available (rec at pT=0)" );
546 ATH_MSG_DEBUG(
" ...-> but same sign or invMass check is required. cannot judge overlap -> return with false" );
552 double dRThres = 9999;
553 double massThres = 9999;
555 const int SADDRESS_EC = -1;
556 bool isBarrel1 = (mf1->
sAddress() != SADDRESS_EC ) ?
true :
false;
557 bool isBarrel2 = (mf2->
sAddress() != SADDRESS_EC ) ?
true :
false;
559 if( isBarrel1 && isBarrel2 ) {
564 else if( (isBarrel1 && ! isBarrel2) || (!isBarrel1 && isBarrel2) ) {
572 unsigned int iThres=0;
585 bool sameSign =
false;
587 sameSign = ((mf1->
pt()*mf2->
pt()) > 0) ? true :
false;
592 bool dRisClose =
false;
597 const double monitor_limit = 1
e-4;
598 double dr_mon = (
dr>=monitor_limit) ?
dr : monitor_limit;
599 mufastDRLog10 = log10(dr_mon);
602 if(
dr < dRThres ) dRisClose =
true;
607 const double TRACK_MASS = 0;
608 bool massIsClose =
false;
613 double mass_mon = (
mass>=monitor_limit) ?
mass : monitor_limit;
614 mufastMassLog10 = log10(mass_mon);
617 if(
mass < massThres ) massIsClose =
true;
622 bool overlap =
false;
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ multiplicitySelection()
Definition at line 322 of file TrigMufastHypoTool.cxx.
326 for (
size_t cutIndex=0; cutIndex <
m_ptBins.size(); ++cutIndex ) {
327 size_t elementIndex{ 0 };
328 for (
auto&
i: toolInput ) {
340 passingSelection[cutIndex].push_back( elementIndex );
351 if ( passingSelection[cutIndex].
empty() ) {
352 ATH_MSG_DEBUG(
"No object passed selection " << cutIndex <<
" rejecting" );
353 return StatusCode::SUCCESS;
357 std::set<size_t> passingIndices;
360 std::set<const xAOD::L2StandAloneMuon*> setOfClusters;
361 for (
auto index: comb ) {
362 setOfClusters.insert( toolInput[
index].muFast );
364 return setOfClusters.size() == comb.size();
373 if ( passingIndices.empty() ) {
375 return StatusCode::SUCCESS;
378 for (
auto idx: passingIndices ) {
380 <<
" with pT = " << toolInput[
idx].muFast->pt() <<
"GeV" );
384 return StatusCode::SUCCESS;
◆ 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_acceptAll
Gaudi::Property< bool > TrigMufastHypoTool::m_acceptAll |
|
private |
Initial value:{
this, "AcceptAll", false, "Ignore selection" }
Definition at line 95 of file TrigMufastHypoTool.h.
◆ m_applyOR
Gaudi::Property< bool > TrigMufastHypoTool::m_applyOR |
|
private |
Initial value:{
this, "ApplyOR", false, "apply overlap removal for mufast" }
Definition at line 120 of file TrigMufastHypoTool.h.
◆ m_bins
std::vector<size_t> TrigMufastHypoTool::m_bins = {0} |
|
private |
◆ m_decisionId
◆ m_decisionPerCluster
Gaudi::Property<bool> TrigMufastHypoTool::m_decisionPerCluster |
|
private |
Initial value:{
this, "DecisionPerCluster", true, "Is multiplicity requirement refering to muons ( false ) or RoIs/clusters with muons ( false ), relevant only in when multiplicity > 1" }
Definition at line 113 of file TrigMufastHypoTool.h.
◆ m_detStore
◆ m_doCalib
Gaudi::Property< bool > TrigMufastHypoTool::m_doCalib |
|
private |
◆ m_dRThresBB
Gaudi::Property< float > TrigMufastHypoTool::m_dRThresBB |
|
private |
Initial value:{
this, "DRThresBB", 0.05, "DR threshold in barel and barel region"}
Definition at line 132 of file TrigMufastHypoTool.h.
◆ m_dRThresBE
Gaudi::Property< float > TrigMufastHypoTool::m_dRThresBE |
|
private |
Initial value:{
this, "DRThresBE", 0.05, "DR threshold in barel and barel region"}
Definition at line 138 of file TrigMufastHypoTool.h.
◆ m_dRThresEC
Gaudi::Property< std::vector<float> > TrigMufastHypoTool::m_dRThresEC |
|
private |
Initial value:{
this, "DRThresEC", {0.06, 0.05, 0.05}, "DR threshold in endcap and barel region"}
Definition at line 147 of file TrigMufastHypoTool.h.
◆ m_etaBinsEC
Gaudi::Property< std::vector<float> > TrigMufastHypoTool::m_etaBinsEC |
|
private |
Initial value:{
this, "EtaBinsEC", {0, 1.9, 2.1, 9.9}, "eta bins of DR and mass thresholds in endcap and barel region"}
Definition at line 144 of file TrigMufastHypoTool.h.
◆ m_evtStore
◆ m_massThresBB
Gaudi::Property< float > TrigMufastHypoTool::m_massThresBB |
|
private |
Initial value:{
this, "MassThresBB", 0.20, "mass threshold in barel and barel region"}
Definition at line 135 of file TrigMufastHypoTool.h.
◆ m_massThresBE
Gaudi::Property< float > TrigMufastHypoTool::m_massThresBE |
|
private |
Initial value:{
this, "MassThresBE", 0.20, "mass threshold in barel and endcap region"}
Definition at line 141 of file TrigMufastHypoTool.h.
◆ m_massThresEC
Gaudi::Property< std::vector<float> > TrigMufastHypoTool::m_massThresEC |
|
private |
Initial value:{
this, "MassThresEC", {0.20, 0.15, 0.10}, "mass threshold in endcap and endcap region"}
Definition at line 150 of file TrigMufastHypoTool.h.
◆ m_monTool
◆ m_ptBins
Gaudi::Property< std::vector<std::vector<double> > > TrigMufastHypoTool::m_ptBins |
|
private |
Initial value:{
this, "PtBins", { {0, 2.5} }, "Bins range of each pT threshold" }
Definition at line 89 of file TrigMufastHypoTool.h.
◆ m_ptThresholdForECWeakBRegionA
Gaudi::Property< std::vector<double> > TrigMufastHypoTool::m_ptThresholdForECWeakBRegionA |
|
private |
Initial value:{
this, "PtThresholdForECWeakBRegionA", {3.}, "Track pT requirement on regionA of weak magnetic field ( separate threshold for each muon )" }
Definition at line 107 of file TrigMufastHypoTool.h.
◆ m_ptThresholdForECWeakBRegionB
Gaudi::Property< std::vector<double> > TrigMufastHypoTool::m_ptThresholdForECWeakBRegionB |
|
private |
Initial value:{
this, "PtThresholdForECWeakBRegionB", {3.}, "Track pT requirement on regionB of weak magnetic field ( separate threshold for each muon )" }
Definition at line 110 of file TrigMufastHypoTool.h.
◆ m_ptThresholds
Gaudi::Property< std::vector<std::vector<double> > > TrigMufastHypoTool::m_ptThresholds |
|
private |
◆ m_requireDR
Gaudi::Property<bool> TrigMufastHypoTool::m_requireDR |
|
private |
Initial value:{
this, "RequireDR", true, "require or not DR cut for overlap removal"}
Definition at line 123 of file TrigMufastHypoTool.h.
◆ m_requireMass
Gaudi::Property<bool> TrigMufastHypoTool::m_requireMass |
|
private |
Initial value:{
this, "RequireMass", true, "require or not mass cut for overlap removal"}
Definition at line 126 of file TrigMufastHypoTool.h.
◆ m_requireSameSign
Gaudi::Property<bool> TrigMufastHypoTool::m_requireSameSign |
|
private |
Initial value:{
this, "RequireSameSign", true, "require or not charge cut for overlap removal"}
Definition at line 129 of file TrigMufastHypoTool.h.
◆ m_RPV
Gaudi::Property< float > TrigMufastHypoTool::m_RPV |
|
private |
◆ m_selectPV
Gaudi::Property< bool > TrigMufastHypoTool::m_selectPV |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_ZPV
Gaudi::Property< float > TrigMufastHypoTool::m_ZPV |
|
private |
The documentation for this class was generated from the following files:
Group
Properties of a chain group.
Scalar phi() const
phi method
float etaMS() const
Get the eta at muon spectrometer.
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
TrigCompositeUtils::DecisionID numeric() const
numeric ID
double e1(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 1st sampling
Class describing standalone muons reconstructed in the LVL2 trigger.
Scalar eta() const
pseudorapidity method
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
void addDecisionID(DecisionID id, Decision *d)
Appends the decision (given as ID) to the decision object.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
setEt setPhi setE277 setWeta2 eta1
float phiMS() const
Get the phi at muon spectrometer.
#define ATH_MSG_VERBOSE(x)
virtual void setOwner(IDataHandleHolder *o)=0
static HLT::Identifier fromToolName(const std::string &tname)
std::vector< size_t > Index1DVec
Unique combinations for case when one can not repeat the index (i.e.
int sAddress() const
Get the station address of the muon.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
void elementsInUniqueCombinations(const Index2DVec &indices, std::set< size_t > &participants, std::function< bool(const Index1DVec &)> &&filter)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
T deltaPhi(T phiA, T phiB)
Return difference phiA - phiB in range [-pi, pi].
double e2(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 2nd sampling
#define ATH_MSG_WARNING(x)
bool absEta(const xAOD::TauJet &tau, double &out)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual double pt() const
The transverse momentum ( ) of the particle.
std::vector< Index1DVec > Index2DVec
Declare a monitored scalar variable.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
ECRegions whichECRegion(const float eta, const float phi)