 |
ATLAS Offline Software
|
#include <DiTauIDVarCalculator.h>
|
| virtual void | print () const =0 |
| | Print the state of the tool. More...
|
| |
| virtual void | print () const |
| | Print the state of the tool. 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 |
| |
|
| virtual StatusCode | initialize () override |
| | Dummy implementation of the initialisation function. More...
|
| |
| virtual StatusCode | calculateIDVariables (const xAOD::DiTauJet &xDiTau) const |
| |
| virtual StatusCode | execute (const xAOD::DiTauJet &xDiTau) const override |
| | Declare the interface that the class provides. More...
|
| |
| float | ditau_pt (const xAOD::DiTauJet &xDiTau) const |
| |
| float | f_core (const xAOD::DiTauJet &xDiTau, int iSubjet) const |
| |
| float | f_subjet (const xAOD::DiTauJet &xDiTau, int iSubjet) const |
| |
| float | f_subjets (const xAOD::DiTauJet &xDiTau) const |
| |
| float | f_track (const xAOD::DiTauJet &xDiTau, int iSubjet) const |
| |
| float | R_max (const xAOD::DiTauJet &xDiTau, int iSubjet) const |
| |
| int | n_tracks (const xAOD::DiTauJet &xDiTau, int iSubjet) const |
| |
| int | n_othertrack (const xAOD::DiTauJet &xDiTau) const |
| |
| float | R_track (const xAOD::DiTauJet &xDiTau) const |
| |
| float | R_track_all (const xAOD::DiTauJet &xDiTau) const |
| |
| float | R_track_core (const xAOD::DiTauJet &xDiTau) const |
| |
| float | R_isotrack (const xAOD::DiTauJet &xDiTau) const |
| |
| float | R_core (const xAOD::DiTauJet &xDiTau, int iSubjet) const |
| |
| float | R_tracks (const xAOD::DiTauJet &xDiTau, int iSubjet) const |
| |
| float | mass_track (const xAOD::DiTauJet &xDiTau) const |
| |
| float | mass_track_core (const xAOD::DiTauJet &xDiTau) const |
| |
| float | mass_core (const xAOD::DiTauJet &xDiTau, int iSubjet) const |
| |
| float | mass_track_all (const xAOD::DiTauJet &xDiTau) const |
| |
| float | mass_tracks (const xAOD::DiTauJet &xDiTau, int iSubjet) const |
| |
| float | E_frac (const xAOD::DiTauJet &xDiTau, int iSubjet) const |
| |
| float | R_subjets (const xAOD::DiTauJet &xDiTau, int iSubjet) const |
| |
| float | d0_leadtrack (const xAOD::DiTauJet &xDiTau, int iSubjet) const |
| |
| float | f_isotracks (const xAOD::DiTauJet &xDiTau) const |
| |
| StatusCode | decorNtracks (const xAOD::DiTauJet &xDiTau) 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 27 of file DiTauIDVarCalculator.h.
◆ StoreGateSvc_t
◆ calculateIDVariables()
◆ d0_leadtrack()
Definition at line 907 of file DiTauIDVarCalculator.cxx.
909 double pt_leadtrk = 0;
912 if (!trackLinksAcc.isAvailable(xDiTau) )
918 if ( iSubjet < 0 || iSubjet >= n_subjetsAcc(xDiTau)) {
922 TLorentzVector tlvSubjet;
923 tlvSubjet.SetPtEtaPhiE( xDiTau.
subjetPt(iSubjet),
930 TLorentzVector tlvTrack;
932 for (
auto &xTrack: xTracks)
934 tlvTrack.SetPtEtaPhiE( (*xTrack)->pt(),
939 if (tlvTrack.DeltaR(tlvSubjet) <
m_Rcore)
941 if (tlvTrack.Pt() > pt_leadtrk)
943 pt_leadtrk = tlvTrack.Pt();
944 d0 = (*xTrack)->d0();
◆ 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]
◆ decorNtracks()
Definition at line 979 of file DiTauIDVarCalculator.cxx.
982 if (!trackLinksAcc.isAvailable(xDiTau) )
984 Warning(
"decorNtracks()",
"Track links not available.");
985 return StatusCode::FAILURE;
989 int nSubjets = n_subjetsAcc(xDiTau);
991 std::vector<int> nTracks(nSubjets, 0);
994 for (
const auto &xTrack: xTracks)
999 for (
int i=0;
i<nSubjets; ++
i)
1001 TLorentzVector tlvSubjet = TLorentzVector();
1002 tlvSubjet.SetPtEtaPhiE(xDiTau.
subjetPt(
i),
1006 double dR = tlvSubjet.DeltaR((*xTrack)->p4());
1015 if (itrmin > -1) nTracks[itrmin]++;
1019 n_tracksDec(xDiTau) = nTracks;
1021 return StatusCode::SUCCESS;
◆ detStore()
◆ ditau_pt()
◆ E_frac()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
Declare the interface that the class provides.
Implements DiTauRecTools::IDiTauToolBase.
Definition at line 40 of file DiTauIDVarCalculator.cxx.
86 ditau_ptDec(xDiTau) =
ditau_pt(xDiTau);
87 f_core_leadDec(xDiTau) =
f_core(xDiTau, 0);
88 f_core_sublDec(xDiTau) =
f_core(xDiTau, 1);
89 f_subjet_leadDec(xDiTau) =
f_subjet(xDiTau, 0);
90 f_subjet_sublDec(xDiTau) =
f_subjet(xDiTau, 1);
92 f_track_leadDec(xDiTau) =
f_track(xDiTau, 0);
93 f_track_sublDec(xDiTau) =
f_track(xDiTau, 1);
94 R_max_leadDec(xDiTau) =
R_max(xDiTau, 0);
95 R_max_sublDec(xDiTau) =
R_max(xDiTau, 1);
96 n_trackDec(xDiTau) =
n_track(xDiTau);
97 n_tracks_leadDec(xDiTau) =
n_tracks(xDiTau, 0);
98 n_tracks_sublDec(xDiTau) =
n_tracks(xDiTau, 1);
100 R_trackDec(xDiTau) =
R_track(xDiTau);
104 R_core_leadDec(xDiTau) =
R_core(xDiTau, 0);
105 R_core_sublDec(xDiTau) =
R_core(xDiTau, 1);
106 R_tracks_leadDec(xDiTau) =
R_tracks(xDiTau, 0);
107 R_tracks_sublDec(xDiTau) =
R_tracks(xDiTau, 1);
110 M_core_leadDec(xDiTau) =
mass_core(xDiTau, 0);
111 M_core_sublDec(xDiTau) =
mass_core(xDiTau, 1);
115 E_frac_sublDec(xDiTau) =
E_frac(xDiTau,1);
116 E_frac_subsublDec(xDiTau) =
E_frac(xDiTau, 2);
117 R_subjets_sublDec(xDiTau) =
R_subjets(xDiTau, 1);
118 R_subjets_subsublDec(xDiTau) =
R_subjets(xDiTau, 2);
123 return StatusCode::SUCCESS;
◆ 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
◆ f_core()
◆ f_isotracks()
Definition at line 952 of file DiTauIDVarCalculator.cxx.
956 if (!isoTrackLinksAcc.isAvailable(xDiTau) )
963 TLorentzVector tlvIsoTrack;
965 for (
const auto& xIsoTrack: xIsoTracks)
967 tlvIsoTrack.SetPtEtaPhiE( (*xIsoTrack)->pt(),
972 iso_pt += tlvIsoTrack.Pt();
975 return iso_pt / xDiTau.
pt();
◆ f_subjet()
◆ f_subjets()
◆ f_track()
Definition at line 189 of file DiTauIDVarCalculator.cxx.
192 if (iSubjet < 0 || iSubjet >= n_subjetsAcc(xDiTau)) {
197 if (!trackLinksAcc.isAvailable(xDiTau) )
204 TLorentzVector tlvSubjet;
205 tlvSubjet.SetPtEtaPhiE( xDiTau.
subjetPt(iSubjet),
210 TLorentzVector tlvTrack;
211 TLorentzVector tlvLeadTrack;
212 tlvLeadTrack.SetPtEtaPhiE( 0,0,0, 0);
214 for (
const auto &xTrack: xTracks)
221 tlvTrack.SetPtEtaPhiE( (*xTrack)->pt(),
226 if ( tlvSubjet.DeltaR(tlvTrack) < 0.2 )
228 if (tlvLeadTrack.Pt() < tlvTrack.Pt())
230 tlvLeadTrack = tlvTrack;
235 return tlvLeadTrack.Pt() / tlvSubjet.Pt();
◆ getKey()
Get the (hashed) key of an object that is in the event store.
This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the SG::sgkey_t key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getName
- Parameters
-
| ptr | The bare pointer to the object that the event store should know about |
- Returns
- The hashed key of the object in the store. If not found, an invalid (zero) key.
Definition at line 119 of file AsgTool.cxx.
121 #ifdef XAOD_STANDALONE
127 return (
proxy ==
nullptr ? 0 :
proxy->sgkey() );
128 #endif // XAOD_STANDALONE
◆ getName()
| const std::string & asg::AsgTool::getName |
( |
const void * |
ptr | ) |
const |
|
inherited |
Get the name of an object that is / should be in the event store.
This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the std::string name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getKey
- Parameters
-
| ptr | The bare pointer to the object that the event store should know about |
- Returns
- The string name of the object in the store. If not found, an empty string.
Definition at line 106 of file AsgTool.cxx.
108 #ifdef XAOD_STANDALONE
114 static const std::string
dummy =
"";
116 #endif // XAOD_STANDALONE
◆ getProperty()
template<class T >
| const T* asg::AsgTool::getProperty |
( |
const std::string & |
name | ) |
const |
|
inherited |
Get one of the tool's properties.
◆ initialize()
| StatusCode DiTauIDVarCalculator::initialize |
( |
| ) |
|
|
overrideprivatevirtual |
Dummy implementation of the initialisation function.
It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...
Reimplemented from asg::AsgTool.
Definition at line 25 of file DiTauIDVarCalculator.cxx.
29 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.
◆ mass_core()
Definition at line 691 of file DiTauIDVarCalculator.cxx.
695 if (!trackLinksAcc.isAvailable(xDiTau) )
701 if ( iSubjet < 0 || iSubjet >= n_subjetsAcc(xDiTau)) {
705 TLorentzVector tlvallTracks;
710 TLorentzVector tlvSubjet;
711 tlvSubjet.SetPtEtaPhiE( xDiTau.
subjetPt(iSubjet),
716 TLorentzVector tlvTrack;
718 for (
const auto& xTrack: xTracks)
720 tlvTrack.SetPtEtaPhiE( (*xTrack)->pt(),
724 if ( tlvSubjet.DeltaR(tlvTrack) <
m_Rcore )
727 tlvallTracks += tlvTrack;
731 if (tlvallTracks.M() < 0)
736 return tlvallTracks.M();
◆ mass_track()
Definition at line 786 of file DiTauIDVarCalculator.cxx.
790 if (!trackLinksAcc.isAvailable(xDiTau) )
795 TLorentzVector tlvallTracks;
799 TLorentzVector tlvTrack;
801 for (
const auto& xTrack: xTracks)
803 tlvTrack.SetPtEtaPhiE( (*xTrack)->pt(),
808 tlvallTracks += tlvTrack;
811 if (tlvallTracks.M() < 0)
815 return tlvallTracks.M();
◆ mass_track_all()
Definition at line 818 of file DiTauIDVarCalculator.cxx.
822 if (!trackLinksAcc.isAvailable(xDiTau) )
827 TLorentzVector tlvallTracks;
831 TLorentzVector tlvTrack;
833 for (
const auto& xTrack: xTracks)
835 tlvTrack.SetPtEtaPhiE( (*xTrack)->pt(),
840 tlvallTracks += tlvTrack;
846 TLorentzVector tlvIsoTrack;
848 for (
const auto& xIsoTrack: xIsoTracks)
850 tlvIsoTrack.SetPtEtaPhiE( (*xIsoTrack)->pt(),
855 tlvallTracks += tlvIsoTrack;
858 if (tlvallTracks.M() < 0)
863 return tlvallTracks.M();
◆ mass_track_core()
Definition at line 640 of file DiTauIDVarCalculator.cxx.
644 if (!trackLinksAcc.isAvailable(xDiTau) )
650 if (n_subjetsAcc(xDiTau) < 2) {
654 TLorentzVector tlvallTracks;
656 for (
int i = 0;
i<=1;
i++)
661 TLorentzVector tlvSubjet;
662 tlvSubjet.SetPtEtaPhiE( xDiTau.
subjetPt(
i),
667 TLorentzVector tlvTrack;
669 for (
const auto& xTrack: xTracks)
671 tlvTrack.SetPtEtaPhiE( (*xTrack)->pt(),
675 if ( tlvSubjet.DeltaR(tlvTrack) <
m_Rcore )
678 tlvallTracks += tlvTrack;
682 if (tlvallTracks.M() < 0)
687 return tlvallTracks.M();
◆ mass_tracks()
Definition at line 740 of file DiTauIDVarCalculator.cxx.
744 if (!trackLinksAcc.isAvailable(xDiTau) )
750 if ( iSubjet < 0 || iSubjet >= n_subjetsAcc(xDiTau)) {
754 TLorentzVector tlvallTracks;
758 TLorentzVector tlvSubjet;
759 tlvSubjet.SetPtEtaPhiE( xDiTau.
subjetPt(iSubjet),
764 TLorentzVector tlvTrack;
766 for (
const auto& xTrack: xTracks)
768 tlvTrack.SetPtEtaPhiE( (*xTrack)->pt(),
772 if ( tlvSubjet.DeltaR(tlvTrack) < 0.2 )
774 tlvallTracks += tlvTrack;
778 if (tlvallTracks.M() < 0)
783 return tlvallTracks.M();
◆ msg() [1/2]
◆ msg() [2/2]
◆ msg_level_name()
| const std::string & asg::AsgTool::msg_level_name |
( |
| ) |
const |
|
inherited |
A deprecated function for getting the message level's name.
Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:
MSG::name( msg().level() )
This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.
- Returns
- The string name of the current minimum message level that's printed
Definition at line 101 of file AsgTool.cxx.
◆ msgLvl()
◆ n_isotrack()
◆ n_othertrack()
◆ n_subjets()
◆ n_track()
◆ n_tracks()
Definition at line 286 of file DiTauIDVarCalculator.cxx.
289 if (iSubjet < 0 || iSubjet >= n_subjetsAcc(xDiTau)) {
294 if (!n_tracksAcc.isAvailable(xDiTau))
296 ATH_MSG_DEBUG(
"n_tracks decoration not available. Try with track links.");
299 if (!trackLinksAcc.isAvailable(xDiTau) )
307 TLorentzVector tlvSubjet;
308 tlvSubjet.SetPtEtaPhiE( xDiTau.
subjetPt(iSubjet),
313 TLorentzVector tlvTrack;
315 for (
const auto &xTrack: xTracks)
317 tlvTrack.SetPtEtaPhiE( (*xTrack)->pt(),
321 if ( tlvSubjet.DeltaR(tlvTrack) < 0.2 ) nTracks++;
327 return n_tracksAcc(xDiTau).at(iSubjet);
◆ 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.
◆ print() [1/2]
| void asg::AsgTool::print |
( |
| ) |
const |
|
virtualinherited |
Print the state of the tool.
Implements asg::IAsgTool.
Reimplemented in JetRecTool, JetFinder, JetModifiedMassDrop, JetFromPseudojet, JetReclusterer, JetReclusteringTool, JetTruthLabelingTool, JetPileupLabelingTool, HI::HIPileupTool, LundVariablesTool, JetDumper, JetBottomUpSoftDrop, JetRecursiveSoftDrop, JetSoftDrop, JetConstituentsRetriever, JetSubStructureMomentToolsBase, JetSplitter, JetToolRunner, JetPruner, JetPseudojetRetriever, JetTrimmer, AsgHelloTool, and KtDeltaRTool.
Definition at line 131 of file AsgTool.cxx.
◆ print() [2/2]
| virtual void asg::IAsgTool::print |
( |
| ) |
const |
|
pure virtualinherited |
Print the state of the tool.
Implemented in JetRecTool, JetFinder, JetModifiedMassDrop, JetFromPseudojet, JetReclusterer, JetReclusteringTool, JetTruthLabelingTool, JetPileupLabelingTool, HI::HIPileupTool, LundVariablesTool, asg::AsgTool, JetDumper, JetBottomUpSoftDrop, JetRecursiveSoftDrop, JetSoftDrop, JetConstituentsRetriever, JetSubStructureMomentToolsBase, JetSplitter, JetToolRunner, JetPruner, JetPseudojetRetriever, JetTrimmer, AsgHelloTool, and KtDeltaRTool.
◆ R_core()
Definition at line 388 of file DiTauIDVarCalculator.cxx.
394 if (!trackLinksAcc.isAvailable(xDiTau) )
399 if (iSubjet < 0 || iSubjet >= n_subjetsAcc(xDiTau)) {
405 TLorentzVector tlvSubjet;
406 tlvSubjet.SetPtEtaPhiE( xDiTau.
subjetPt(iSubjet),
411 TLorentzVector tlvTrack;
413 for (
const auto& xTrack: xTracks)
415 tlvTrack.SetPtEtaPhiE( (*xTrack)->pt(),
420 if ( tlvSubjet.DeltaR(tlvTrack) <
m_Rcore )
422 R_sum += tlvSubjet.DeltaR(tlvTrack)*tlvTrack.Pt();
◆ R_isotrack()
Definition at line 587 of file DiTauIDVarCalculator.cxx.
593 if (!isoTrackLinksAcc.isAvailable(xDiTau) )
599 if (n_subjetsAcc(xDiTau) < 2) {
603 for (
int i = 0;
i<=1;
i++)
608 TLorentzVector tlvSubjet;
609 tlvSubjet.SetPtEtaPhiE( xDiTau.
subjetPt(
i),
614 TLorentzVector tlvIsoTrack;
616 for (
const auto& xIsoTrack: xIsoTracks)
618 tlvIsoTrack.SetPtEtaPhiE( (*xIsoTrack)->pt(),
623 if (tlvSubjet.DeltaR(tlvIsoTrack) < 0.4)
625 R_sum += tlvSubjet.DeltaR(tlvIsoTrack)*tlvIsoTrack.Pt();
626 pt += tlvIsoTrack.Pt();
◆ R_max()
Definition at line 240 of file DiTauIDVarCalculator.cxx.
243 if (iSubjet < 0 || iSubjet >= n_subjetsAcc(xDiTau)) {
249 TLorentzVector tlvSubjet;
250 tlvSubjet.SetPtEtaPhiE( xDiTau.
subjetPt(iSubjet),
255 TLorentzVector tlvTrack;
256 TLorentzVector tlvRmaxTrack;
259 for (
const auto &xTrack: xTracks)
261 tlvTrack.SetPtEtaPhiE( (*xTrack)->pt(),
266 if ( tlvSubjet.DeltaR(tlvTrack) <
m_Rsubjet )
268 if (tlvTrack.DeltaR(tlvSubjet) > Rmax)
270 Rmax = tlvTrack.DeltaR(tlvSubjet);
◆ R_subjets()
Definition at line 878 of file DiTauIDVarCalculator.cxx.
882 if ( iSubjet < 0 || iSubjet >= n_subjetsAcc(xDiTau)) {
887 if (!trackLinksAcc.isAvailable(xDiTau) )
892 TLorentzVector tlvLeadSubjet;
893 tlvLeadSubjet.SetPtEtaPhiE( xDiTau.
subjetPt(0),
898 TLorentzVector tlvSubjet;
899 tlvSubjet.SetPtEtaPhiE( xDiTau.
subjetPt(iSubjet),
903 return tlvLeadSubjet.DeltaR(tlvSubjet);
◆ R_track()
Definition at line 488 of file DiTauIDVarCalculator.cxx.
494 if (!trackLinksAcc.isAvailable(xDiTau) )
499 if (n_subjetsAcc(xDiTau) < 2) {
503 for (
int i = 0;
i<=1;
i++)
508 TLorentzVector tlvSubjet;
509 tlvSubjet.SetPtEtaPhiE( xDiTau.
subjetPt(
i),
514 TLorentzVector tlvTrack;
516 for (
const auto& xTrack: xTracks)
518 tlvTrack.SetPtEtaPhiE( (*xTrack)->pt(),
523 if (tlvSubjet.DeltaR(tlvTrack) < 0.2)
525 R_sum += tlvSubjet.DeltaR(tlvTrack)*tlvTrack.Pt();
◆ R_track_all()
Definition at line 538 of file DiTauIDVarCalculator.cxx.
544 if (!trackLinksAcc.isAvailable(xDiTau) )
550 for (
int i = 0;
i<n_subjetsAcc(xDiTau);
i++)
555 TLorentzVector tlvSubjet;
556 tlvSubjet.SetPtEtaPhiE( xDiTau.
subjetPt(
i),
561 TLorentzVector tlvTrack;
563 for (
const auto& xTrack: xTracks)
565 tlvTrack.SetPtEtaPhiE( (*xTrack)->pt(),
570 if (tlvSubjet.DeltaR(tlvTrack) <= 0.2)
572 R_sum += tlvSubjet.DeltaR(tlvTrack)*tlvTrack.Pt();
◆ R_track_core()
Definition at line 436 of file DiTauIDVarCalculator.cxx.
442 if (!trackLinksAcc.isAvailable(xDiTau) )
447 if (n_subjetsAcc(xDiTau) < 2) {
452 for (
int i = 0;
i<=1;
i++)
457 TLorentzVector tlvSubjet;
458 tlvSubjet.SetPtEtaPhiE( xDiTau.
subjetPt(
i),
463 TLorentzVector tlvTrack;
465 for (
const auto& xTrack: xTracks)
467 tlvTrack.SetPtEtaPhiE( (*xTrack)->pt(),
471 if ( tlvSubjet.DeltaR(tlvTrack) <
m_Rcore )
474 R_sum += tlvSubjet.DeltaR(tlvTrack)*tlvTrack.Pt();
◆ R_tracks()
Definition at line 338 of file DiTauIDVarCalculator.cxx.
344 if (!trackLinksAcc.isAvailable(xDiTau) )
350 if (iSubjet < 0 || iSubjet >= n_subjetsAcc(xDiTau)) {
356 TLorentzVector tlvSubjet;
357 tlvSubjet.SetPtEtaPhiE( xDiTau.
subjetPt(iSubjet),
362 TLorentzVector tlvTrack;
364 for (
const auto& xTrack: xTracks)
366 tlvTrack.SetPtEtaPhiE( (*xTrack)->pt(),
371 if ( tlvSubjet.DeltaR(tlvTrack) < 0.2 )
374 R_sum += tlvSubjet.DeltaR(tlvTrack)*tlvTrack.Pt();
◆ 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_dDefault
| Gaudi::Property<float> DiTauRecTools::DiTauIDVarCalculator::m_dDefault {this, "DefaultValue", -1234} |
|
private |
◆ m_detStore
◆ m_evtStore
◆ m_Rcore
| Gaudi::Property<float> DiTauRecTools::DiTauIDVarCalculator::m_Rcore {this, "R_core", 0.1} |
|
private |
◆ m_Rsubjet
| Gaudi::Property<float> DiTauRecTools::DiTauIDVarCalculator::m_Rsubjet {this, "R_subjet", 0.2} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
virtual double pt() const
The transverse momentum ( ) of the particle.
float fCore(unsigned int numSubjet) const
float subjetPhi(unsigned int numSubjet) const
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
Helper class to provide constant type-safe access to aux data.
float subjetE(unsigned int numSubjet) const
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>
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Helper class to provide type-safe access to aux data.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
float subjetEta(unsigned int numSubjet) const
virtual void renounce()=0
size_t nIsoTracks() const
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
const TrackParticleLinks_t & isoTrackLinks() const
float subjetPt(unsigned int numSubjet) const
const TrackParticleLinks_t & trackLinks() const