|
ATLAS Offline Software
|
#include <IDPerfMonZmumu.h>
|
| IDPerfMonZmumu (const std::string &name, ISvcLocator *pSvcLocator) |
| needed for IP resolution studies More...
|
|
| ~IDPerfMonZmumu () |
|
virtual StatusCode | initialize () |
|
virtual StatusCode | execute () |
|
virtual StatusCode | finalize () |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. 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 | 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 |
|
|
StatusCode | bookTrees () |
|
StatusCode | CheckTriggerStatusAndPrescale () |
|
void | Clear4MuNtupleVariables () |
|
void | ExtractIDHitsInformation (const xAOD::Muon *muon_pos, const xAOD::Muon *muon_neg) |
|
int | GetMuonQualityValue (std::string qualityname) |
|
void | RegisterHistograms () |
|
void | ResetCommonNtupleVectors () |
|
const xAOD::Vertex * | GetDiMuonVertex (const xAOD::TrackParticle *, const xAOD::TrackParticle *) |
|
StatusCode | FillRecParameters (const Trk::Track *track, const xAOD::TrackParticle *trackp_for_unbias, double charge, const xAOD::Vertex *vertex, const EventContext &ctx) |
|
StatusCode | FillRecParametersSimple (const Trk::Track *track, float charge, const xAOD::Vertex *vertex) |
|
StatusCode | FillRecParametersTP (const xAOD::TrackParticle *trackp, const xAOD::TrackParticle *trackp_for_unbias, double charge, const xAOD::Vertex *vertex=nullptr) |
|
StatusCode | FillTruthParameters (const xAOD::TrackParticle *track) |
|
const xAOD::TruthParticle * | getTruthParticle (const xAOD::IParticle &p) |
|
StatusCode | RunFourLeptonAnalysis () |
|
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...
|
|
|
ZmumuEvent | m_xZmm |
|
FourMuonEvent | m_4mu |
|
bool | m_UseTrigger {true} |
|
bool | m_doIsoSelection {true} |
|
bool | m_doIPSelection {true} |
|
bool | m_doMCPSelection {true} |
|
double | m_MassWindowLow {60.} |
|
double | m_MassWindowHigh {120.} |
|
double | m_LeadingMuonPtCut {20.} |
|
double | m_SecondMuonPtCut {15.} |
|
double | m_OpeningAngleCut {0.2} |
|
double | m_Z0GapCut {5.} |
|
bool | m_isMC {} |
|
bool | m_doRefit {} |
|
bool | m_useTrackSelectionTool {} |
|
bool | m_doIP {} |
|
bool | m_doFourMuAnalysis {} |
|
bool | m_storeZmumuNtuple {true} |
|
bool | m_skipMS {} |
|
bool | m_useCustomMuonSelector {} |
|
int | m_minGoodLumiBlock {} |
|
int | m_maxGoodLumiBlock {} |
|
ToolHandle< IegammaTrkRefitterTool > | m_TrackRefitter1 |
| The track refitter. More...
|
|
ToolHandle< IegammaTrkRefitterTool > | m_TrackRefitter2 |
| The track refitter. More...
|
|
ToolHandle< Reco::ITrackToVertex > | m_trackToVertexTool |
| tool to extrapolate tracks to BL More...
|
|
ToolHandle< Trig::TrigDecisionTool > | m_triggerDecision |
|
ToolHandle< Trig::IMatchingTool > | m_triggerMatching |
|
ToolHandle< InDet::IInDetTrackSelectionTool > | m_selTool |
| The track selection Tool. More...
|
|
ToolHandle< Trk::ITrackToVertexIPEstimator > | m_trackToVertexIPEstimator |
| Needed for IP resolution studies. More...
|
|
SG::ReadCondHandleKey< InDet::BeamSpotData > | m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" } |
| used for truth parameters More...
|
|
ToolHandle< Trk::IExtrapolator > | m_extrapolator |
|
ToolHandle< CP::IMuonSelectionTool > | m_muonSelector |
| used to pass a custom muon selector More...
|
|
bool | m_validationMode |
| < boolean to switch to validation mode More...
|
|
std::string | m_commonTreeName |
|
std::string | m_defaultTreeName |
|
std::string | m_IDTreeName |
|
std::string | m_refit1TreeName |
|
std::string | m_refit2TreeName |
|
std::string | m_truthTreeName |
|
std::string | m_combTreeName |
|
std::string | m_MSTreeName |
|
std::string | m_FourMuTreeName |
|
std::string | m_ValidationTreeDescription |
| < validation tree description - second argument in TTree More...
|
|
std::string | m_commonTreeFolder |
|
std::string | m_defaultTreeFolder |
|
std::string | m_IDTreeFolder |
|
std::string | m_refit1TreeFolder |
|
std::string | m_refit2TreeFolder |
|
std::string | m_truthTreeFolder |
|
std::string | m_combTreeFolder |
|
std::string | m_MSTreeFolder |
|
std::string | m_FourMuTreeFolder |
| Root Validation Tree. More...
|
|
TTree * | m_commonTree |
|
TTree * | m_defaultTree |
|
TTree * | m_IDTree |
|
TTree * | m_refit1Tree |
|
TTree * | m_refit2Tree |
|
TTree * | m_truthTree |
|
TTree * | m_combTree |
|
TTree * | m_MSTree |
|
TTree * | m_FourMuTree |
|
bool | m_doRemoval {} |
|
bool | m_doDebug {} |
|
ToolHandle< CP::ITrackVertexAssociationTool > | m_Trk2VtxAssociationTool |
|
SG::ReadHandleKey< xAOD::VertexContainer > | m_vertexKey { this, "VertexContainer", "PrimaryVertices", "primary vertex container" } |
|
SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_trackContainerName {this, "trackContainerName", "InDetTrackParticles"} |
| IDTtacks. More...
|
|
std::string | m_truthName |
|
std::string | m_trackParticleName |
| Track(Particle)TruthCollection input name. More...
|
|
std::string | m_truthLinkVecName |
| TrackParticle input name. More...
|
|
TH1F * | m_h_cutflow {} |
| link vector to map HepMC onto xAOD truth More...
|
|
unsigned int | m_runNumber {} |
|
unsigned int | m_evtNumber {} |
|
unsigned int | m_lumi_block {} |
|
unsigned int | m_event_mu {} |
|
float | m_event_weight {} |
|
int | m_triggerPrescale {} |
|
std::string | m_triggerName |
|
unsigned int | m_nVertex {} |
|
double | m_positive_px {} |
|
double | m_positive_py {} |
|
double | m_positive_pt {} |
|
double | m_positive_pz {} |
|
double | m_positive_phi {} |
|
double | m_positive_eta {} |
|
double | m_positive_z0 {} |
|
double | m_positive_d0 {} |
|
double | m_positive_z0_manualBS {} |
|
double | m_positive_d0_manualBS {} |
|
double | m_positive_z0_err {} |
|
double | m_positive_d0_err {} |
|
double | m_positive_sigma_pt {} |
|
double | m_positive_z0_PV {} |
|
double | m_positive_d0_PV {} |
|
double | m_positive_z0_PVerr {} |
|
double | m_positive_d0_PVerr {} |
|
double | m_positive_qoverp {} |
|
double | m_positive_sigma_qoverp {} |
|
int | m_positive_1_vtx {} |
|
int | m_positive_parent {} |
|
double | m_positive_2_px {} |
|
double | m_positive_2_py {} |
|
double | m_positive_2_pz {} |
|
double | m_positive_2_z0 {} |
|
double | m_positive_2_d0 {} |
|
double | m_positive_2_z0_err {} |
|
double | m_positive_2_d0_err {} |
|
double | m_positive_2_z0_PV {} |
|
double | m_positive_2_d0_PV {} |
|
double | m_positive_2_z0_PVerr {} |
|
double | m_positive_2_d0_PVerr {} |
|
int | m_positive_2_vtx {} |
|
double | m_negative_px {} |
|
double | m_negative_py {} |
|
double | m_negative_pt {} |
|
double | m_negative_pz {} |
|
double | m_negative_phi {} |
|
double | m_negative_eta {} |
|
double | m_negative_z0 {} |
|
double | m_negative_d0 {} |
|
double | m_negative_z0_manualBS {} |
|
double | m_negative_d0_manualBS {} |
|
double | m_negative_z0_err {} |
|
double | m_negative_d0_err {} |
|
double | m_negative_sigma_pt {} |
|
double | m_negative_z0_PV {} |
|
double | m_negative_d0_PV {} |
|
double | m_negative_z0_PVerr {} |
|
double | m_negative_d0_PVerr {} |
|
double | m_negative_qoverp {} |
|
double | m_negative_sigma_qoverp {} |
|
int | m_negative_1_vtx {} |
|
int | m_negative_parent {} |
|
double | m_negative_2_px {} |
|
double | m_negative_2_py {} |
|
double | m_negative_2_pz {} |
|
double | m_negative_2_z0 {} |
|
double | m_negative_2_d0 {} |
|
double | m_negative_2_z0_err {} |
|
double | m_negative_2_d0_err {} |
|
double | m_negative_2_z0_PV {} |
|
double | m_negative_2_d0_PV {} |
|
double | m_negative_2_z0_PVerr {} |
|
double | m_negative_2_d0_PVerr {} |
|
int | m_negative_2_vtx {} |
|
double | m_el_negative1_px {} |
|
double | m_el_negative1_py {} |
|
double | m_el_negative1_pz {} |
|
double | m_el_negative1_z0 {} |
|
double | m_el_negative1_d0 {} |
|
double | m_el_negative1_z0_err {} |
|
double | m_el_negative1_d0_err {} |
|
double | m_el_negative1_z0_PV {} |
|
double | m_el_negative1_d0_PV {} |
|
double | m_el_negative1_z0_PVerr {} |
|
double | m_el_negative1_d0_PVerr {} |
|
int | m_el_negative1_vtx {} |
|
double | m_el_negative2_px {} |
|
double | m_el_negative2_py {} |
|
double | m_el_negative2_pz {} |
|
double | m_el_negative2_z0 {} |
|
double | m_el_negative2_d0 {} |
|
double | m_el_negative2_z0_err {} |
|
double | m_el_negative2_d0_err {} |
|
double | m_el_negative2_z0_PV {} |
|
double | m_el_negative2_d0_PV {} |
|
double | m_el_negative2_z0_PVerr {} |
|
double | m_el_negative2_d0_PVerr {} |
|
int | m_el_negative2_vtx {} |
|
double | m_el_positive1_px {} |
|
double | m_el_positive1_py {} |
|
double | m_el_positive1_pz {} |
|
double | m_el_positive1_z0 {} |
|
double | m_el_positive1_d0 {} |
|
double | m_el_positive1_z0_err {} |
|
double | m_el_positive1_d0_err {} |
|
double | m_el_positive1_z0_PV {} |
|
double | m_el_positive1_d0_PV {} |
|
double | m_el_positive1_z0_PVerr {} |
|
double | m_el_psoitive1_d0_PVerr {} |
|
int | m_el_positive1_vtx {} |
|
double | m_el_positive2_px {} |
|
double | m_el_positive2_py {} |
|
double | m_el_positive2_pz {} |
|
double | m_el_positive2_z0 {} |
|
double | m_el_positive2_d0 {} |
|
double | m_el_positive2_z0_err {} |
|
double | m_el_positive2_d0_err {} |
|
double | m_el_positive2_z0_PV {} |
|
double | m_el_positive2_d0_PV {} |
|
double | m_el_positive2_z0_PVerr {} |
|
double | m_el_psoitive2_d0_PVerr {} |
|
int | m_el_positive2_vtx {} |
|
double | m_4mu_minv {} |
|
double | m_pv_x {} |
|
double | m_pv_y {} |
|
double | m_pv_z {} |
|
unsigned int | m_nTrkInVtx {} |
|
double | m_met {} |
|
double | m_metphi {} |
|
std::vector< float > | m_IDTrack_pt |
|
std::vector< float > | m_CBTrack_pt |
|
std::vector< float > | m_Refit1_pt |
|
std::vector< float > | m_Refit2_pt |
|
std::vector< float > | m_Truth_pt |
|
std::vector< float > | m_IDTrack_eta |
|
std::vector< float > | m_CBTrack_eta |
|
std::vector< float > | m_Refit1_eta |
|
std::vector< float > | m_Refit2_eta |
|
std::vector< float > | m_Truth_eta |
|
std::vector< float > | m_IDTrack_phi |
|
std::vector< float > | m_CBTrack_phi |
|
std::vector< float > | m_Refit1_phi |
|
std::vector< float > | m_Refit2_phi |
|
std::vector< float > | m_Truth_phi |
|
std::vector< float > | m_IDTrack_d0 |
|
std::vector< float > | m_CBTrack_d0 |
|
std::vector< float > | m_Refit1_d0 |
|
std::vector< float > | m_Refit2_d0 |
|
std::vector< float > | m_Truth_d0 |
|
std::vector< float > | m_IDTrack_z0 |
|
std::vector< float > | m_CBTrack_z0 |
|
std::vector< float > | m_Refit1_z0 |
|
std::vector< float > | m_Refit2_z0 |
|
std::vector< float > | m_Truth_z0 |
|
std::vector< float > | m_IDTrack_qoverp |
|
std::vector< float > | m_CBTrack_qoverp |
|
std::vector< float > | m_Refit1_qoverp |
|
std::vector< float > | m_Refit2_qoverp |
|
std::vector< float > | m_Truth_qoverp |
|
std::vector< int > | m_Truth_parent |
|
std::vector< float > | m_IDTrack_sigma_pt |
|
std::vector< float > | m_CBTrack_sigma_pt |
|
std::vector< float > | m_Refit1_sigma_pt |
|
std::vector< float > | m_Refit2_sigma_pt |
|
std::vector< float > | m_IDTrack_sigma_d0 |
|
std::vector< float > | m_CBTrack_sigma_d0 |
|
std::vector< float > | m_Refit1_sigma_d0 |
|
std::vector< float > | m_Refit2_sigma_d0 |
|
std::vector< float > | m_IDTrack_sigma_z0 |
|
std::vector< float > | m_CBTrack_sigma_z0 |
|
std::vector< float > | m_Refit1_sigma_z0 |
|
std::vector< float > | m_Refit2_sigma_z0 |
|
std::vector< float > | m_IDTrack_sigma_qoverp |
|
std::vector< float > | m_CBTrack_sigma_qoverp |
|
std::vector< float > | m_Refit1_sigma_qoverp |
|
std::vector< float > | m_Refit2_sigma_qoverp |
|
std::vector< int > | m_nBLhits |
|
std::vector< int > | m_nPIXhits |
|
std::vector< int > | m_nSCThits |
|
std::vector< int > | m_nTRThits |
|
std::string | m_sTriggerChainName |
|
std::string | m_outputTracksName |
|
std::string | m_MuonQualityName |
|
SG::ReadHandleKey< xAOD::EventInfo > | m_EventInfoKey {this, "EventInfoKey", "EventInfo"} |
|
DataObjIDColl | m_extendedExtraObjects |
|
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 |
|
Definition at line 73 of file IDPerfMonZmumu.h.
◆ StoreGateSvc_t
◆ IDPerfMonZmumu()
IDPerfMonZmumu::IDPerfMonZmumu |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
needed for IP resolution studies
missing ET
Definition at line 47 of file IDPerfMonZmumu.cxx.
57 m_selTool(
"InDet::InDetTrackSelectionTool/TrackSelectionTool"),
◆ ~IDPerfMonZmumu()
IDPerfMonZmumu::~IDPerfMonZmumu |
( |
| ) |
|
◆ bookTrees()
StatusCode IDPerfMonZmumu::bookTrees |
( |
| ) |
|
|
private |
Definition at line 301 of file IDPerfMonZmumu.cxx.
303 m_h_cutflow =
new TH1F(
"h_cutflow",
"cut flow histogram",11, -0.5, 9.5);
423 bool isTreeNone =
false;
424 if (
m_IDTreeName.find(
"none") != std::string::npos) isTreeNone =
true;
598 if (
m_combTreeName.find(
"none") != std::string::npos) isTreeNone =
true;
654 if (
m_MSTreeName.find(
"none") != std::string::npos) isTreeNone =
true;
656 ATH_MSG_INFO(
"initialize() ** defining IDPerfMon MSTree ");
819 ATH_MSG_INFO(
"initialize() Going to register the mu+mu- trees");
821 if (tHistSvc.retrieve().isFailure()){
822 ATH_MSG_ERROR(
"initialize() Could not find Hist Service -> Switching ValidationMode Off !");
828 ATH_MSG_INFO(
"initialize() commonTree succesfully registered!");
831 ATH_MSG_ERROR(
"initialize() Could not register the validation commonTree -> Switching ValidationMode Off !");
839 ATH_MSG_INFO(
"initialize() IDTree succesfully registered!");
842 ATH_MSG_ERROR(
"initialize() Could not register the validation IDTree -> Switching ValidationMode Off !");
855 ATH_MSG_INFO(
"initialize() CBTree succesfully registered!");
858 ATH_MSG_ERROR(
"initialize() Could not register the validation CBTree -> Switching ValidationMode Off !");
872 ATH_MSG_INFO(
"initialize() MSTree succesfully registered!");
875 ATH_MSG_ERROR(
"initialize() Could not register the validation MSTree -> Switching ValidationMode Off !");
885 ATH_MSG_INFO(
"initialize() Refit1 Tree succesfully registered!");
888 ATH_MSG_ERROR(
"initialize() Could not register the validation Tree -> Switching ValidationMode Off !");
896 ATH_MSG_INFO(
"initialize() Refit2 Tree succesfully registered!");
899 ATH_MSG_ERROR(
"initialize() Could not register the validation Tree -> Switching ValidationMode Off !");
908 ATH_MSG_INFO(
"initialize() truthTree Tree succesfully registered!");
911 ATH_MSG_ERROR(
"initialize() Could not register the validation truth Tree -> Switching ValidationMode Off !");
919 ATH_MSG_INFO(
"initialize() FourMu Tree succesfully registered!");
922 ATH_MSG_ERROR(
"initialize() Could not register the validation FourMu Tree -> Switching ValidationMode Off !");
928 return StatusCode::SUCCESS;
◆ CheckTriggerStatusAndPrescale()
StatusCode IDPerfMonZmumu::CheckTriggerStatusAndPrescale |
( |
| ) |
|
|
private |
Definition at line 2290 of file IDPerfMonZmumu.cxx.
2297 return StatusCode::FAILURE;
2303 float thisEventTriggerPrescale = 999999.9;
2304 float thisHLTTriggerPrescale = 999999.9;
2305 bool thisHLTIsPassed =
false;
2306 std::string thisHLTTriggerName;
2307 std::string thisEventTriggerName;
2310 const std::vector<std::string> myHLTtriglist =
m_triggerDecision->getChainGroup(
"HLT_mu.*, HLT_2mu.*")->getListOfTriggers();
2311 for (
int i=0;
i < (
int) myHLTtriglist.size();
i++) {
2313 ATH_MSG_DEBUG(
"HLT trigger = " <<
i <<
" out of " << myHLTtriglist.size() <<
" --> " << myHLTtriglist.at(
i) <<
" isPassed? " <<
m_triggerDecision->isPassed(myHLTtriglist.at(
i)) <<
" prescale: " <<
m_triggerDecision->getChainGroup(myHLTtriglist.at(
i))->getPrescale() );
2316 thisHLTIsPassed =
true;
2317 float thisprescale =
m_triggerDecision->getChainGroup(myHLTtriglist.at(
i))->getPrescale();
2318 if (thisprescale < thisHLTTriggerPrescale) {
2319 thisHLTTriggerPrescale = thisprescale;
2320 thisHLTTriggerName = myHLTtriglist.at(
i);
2324 if (thisHLTTriggerPrescale < 1) thisHLTTriggerPrescale = 1;
2325 ATH_MSG_DEBUG(
"Event HLT trigger prescale = " << thisHLTTriggerPrescale);
2328 if (thisHLTIsPassed) {
2333 return StatusCode::FAILURE;
2337 thisEventTriggerPrescale = thisHLTTriggerPrescale;
2338 thisEventTriggerName = thisHLTTriggerName;
2339 ATH_MSG_DEBUG(
"CheckTriggerStatusAndPrescale -- Event trigger prescale = " << thisEventTriggerPrescale);
2340 ATH_MSG_DEBUG(
"CheckTriggerStatusAndPrescale -- Event trigger name = " << thisEventTriggerName);
2346 return StatusCode::SUCCESS;
◆ Clear4MuNtupleVariables()
void IDPerfMonZmumu::Clear4MuNtupleVariables |
( |
| ) |
|
|
private |
◆ 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]
◆ execute()
StatusCode IDPerfMonZmumu::execute |
( |
| ) |
|
|
virtual |
– START 4 lepton analysis
– END 4 lepton analysis
Definition at line 940 of file IDPerfMonZmumu.cxx.
945 if(eventInfo.isValid()) {
949 m_event_mu = eventInfo->actualInteractionsPerCrossing();
950 if (eventInfo->mcEventWeights().size()>0) {
959 ATH_MSG_DEBUG(
" IDPerfMonZmumu::execute evtStore->retrieve (eventInfo) failed .. trying another strategy.. ");
961 if (eventInfo2.isValid()) {
965 m_event_mu = eventInfo2->actualInteractionsPerCrossing();
966 if (eventInfo->mcEventWeights().size()>0) {
975 ATH_MSG_ERROR(
"** IDPerfMonZmumu::execute ** Could not retrieve event info.");
981 ATH_MSG_DEBUG(
" ** IDPerfMonZmumu::execute ** calling FourLeptonAnalysis()...");
983 if (fourLeptAnaStatus.isSuccess())
ATH_MSG_INFO (
" ** IDPerfMonZmumu::execute ** RunFourLeptonAnalysis() SUCCESS -> found a new event");
989 ATH_MSG_DEBUG(
" ** IDPerfMonZmumu::execute ** calling dimuon analysis m_xZmm.Reco()...");
996 <<
" ** SUCCESS **");
1002 <<
" Failed dimuon reconstruction. m_xZmm.Reco() returned FALSE ");
1003 return StatusCode::SUCCESS;
1012 if (isTriggerPassed == StatusCode::SUCCESS) {
1016 ATH_MSG_DEBUG(
"Trigger Failed -> reject event --> leave event");
1017 return StatusCode::SUCCESS;
1029 StatusCode success_pos = StatusCode::FAILURE;
1030 StatusCode success_neg = StatusCode::FAILURE;
1032 if (muon_pos && muon_neg) {
1036 ATH_MSG_INFO(
"** IDPerfMonZmumu::execute ** Retrieving InnerDetectorTrackParticles of the accepted muons");
1037 ppos_comb = muon_pos->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle);
1038 pneg_comb = muon_neg->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle);
1040 if (!ppos_comb || !pneg_comb) {
1041 ATH_MSG_WARNING(
"** IDPerfMonZmumu::execute ** InnerDetectorTrackParticles are requested but they are not present. Exiting event.");
1042 return StatusCode::SUCCESS;
1047 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Retrieving CombinedTrackParticles of the accepted muons");
1048 ppos_comb = muon_pos->
trackParticle(xAOD::Muon::CombinedTrackParticle);
1049 pneg_comb = muon_neg->
trackParticle(xAOD::Muon::CombinedTrackParticle);
1051 if (!ppos_comb || !pneg_comb){
1052 ATH_MSG_WARNING(
"** IDPerfMonZmumu::execute ** CombinedTrackParticles are requested but they are not present. Exiting event.");
1053 return StatusCode::SUCCESS;
1059 if (ppos_comb && pneg_comb) {
1068 const EventContext& ctx = Gaudi::Hive::currentContext();
1070 for (
const auto V : *vertices) {
1080 if (!ppos_comb_v || !pneg_comb_v){
1081 ATH_MSG_WARNING(
"Some or all of the requested particles have no vertex. Exiting event");
1082 return StatusCode::SUCCESS;
1086 ATH_MSG_WARNING(
"** IDPerfMonZmumu::execute ** Could not find CombinedMuon pos/neg in event"
1090 return StatusCode::SUCCESS;
1101 <<
" Invariant mass = " <<
m_xZmm.
GetInvMass() <<
" GeV ** some preliminaries are due though...");
1106 ATH_MSG_DEBUG(
"Exiting because the ID segment of muon_pos do not pass the TrackSelection");
1107 return StatusCode::SUCCESS;
1110 ATH_MSG_DEBUG(
"Exiting because the ID segment of muon_neg do not pass the TrackSelection");
1111 return StatusCode::SUCCESS;
1113 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Good news ** pos and neg muon->trackParticle(xAOD::Muon::InnerDetectorTrackParticle) pass the trackSelection :)");
1116 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Track selection is not in use ");
1128 muon_pos->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle),
1132 muon_neg->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle),
1136 if (success_pos && success_neg) {
1151 <<
" pt: " << muon_pos->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle)->
pt()
1159 <<
" pt: " << muon_neg->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle)->
pt()
1191 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** not filling IDTracks in combTree due to problems with muon_xxx->trackParticle(xAOD::Muon::InnerDetectorTrackParticle)");
1199 muon_pos->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle),
1204 muon_neg->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle),
1209 if (success_pos && success_neg) {
1264 muon_pos->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle),
1269 muon_neg->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle),
1272 if (success_pos && success_neg) {
1305 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Going to build TrackCollections: muonTrks, muonTrksRefit1 and muonTrksRefit2");
1310 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Going to refit and store the track parameters ");
1320 const EventContext& ctx = Gaudi::Hive::currentContext();
1321 if( ppos_comb->
track() ) {
1326 if (fitStatus.isFailure()) {
1327 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Track Refit1 Failed for ppos_comb->track(). Skipping Event");
1328 return StatusCode::SUCCESS;
1330 refit1MuonTrk1 = fitResult.refittedTrack.release();
1331 muonTrksRefit1->
push_back(refit1MuonTrk1);
1332 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Track Refit1 Success of ppos_comb->track()."
1334 <<
" track refit pt: " << refit1MuonTrk1->perigeeParameters()->pT() );
1339 if (fitStatus.isFailure()) {
1340 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Track Refit2 Failed for ppos_comb->track(). Skipping Event");
1341 return StatusCode::SUCCESS;
1343 refit2MuonTrk1 = fitResult.refittedTrack.release();
1344 muonTrksRefit2->
push_back(refit2MuonTrk1);
1345 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Track Refit2 Success of ppos_comb->track()."
1347 <<
" track refit pt: " << refit1MuonTrk1->perigeeParameters()->pT() );
1351 if( pneg_comb->
track() ) {
1356 if (fitStatus.isFailure()) {
1357 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Track Refit1 Failed. Skipping Event");
1358 return StatusCode::SUCCESS;
1360 refit1MuonTrk2 = fitResult.refittedTrack.release();
1361 muonTrksRefit1->
push_back(refit1MuonTrk2);
1362 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Track Refit1 Success of pneg_comb->track()."
1364 <<
" track refit pt: " << refit1MuonTrk2->perigeeParameters()->pT() );
1369 if (fitStatus.isFailure()) {
1371 return StatusCode::SUCCESS;
1373 refit2MuonTrk2 = fitResult.refittedTrack.release();
1374 muonTrksRefit2->
push_back(refit2MuonTrk2);
1375 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Track Refit2 Success of pneg_comb->track()."
1377 <<
" track refit pt: " << refit2MuonTrk2->perigeeParameters()->pT() );
1380 if (muonTrksRefit1->
size() != 2)
ATH_MSG_WARNING(
"** IDPerfMonZmumu::execute ** WARNING ** size of muonTrksRefit1: " << muonTrksRefit1->
size());
1381 if (muonTrksRefit2->
size() != 2)
ATH_MSG_WARNING(
"** IDPerfMonZmumu::execute ** WARNING ** size of muonTrksRefit2: " << muonTrksRefit2->
size());
1389 if (
sc.isSuccess()) {
1396 if (muonTrksRefit1->
size() > 1) {
1398 if (
sc.isSuccess()) {
1405 if (muonTrksRefit2->
size() > 1) {
1407 if (
sc.isSuccess()) {
1416 if (muonTrksRefit1->
size()<2) {
1417 ATH_MSG_WARNING(
"** IDPerfMonZmumu::execute ** Refit1 muon tracks are missing!");
1420 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** going to fill refit1tree ");
1425 if (success_pos && success_neg) {
1471 if (muonTrksRefit2->
size()<2) {
1472 ATH_MSG_WARNING(
"** IDPerfMonZmumu::execute ** Refit2 muon tracks are missing!");
1480 if (success_pos && success_neg) {
1533 return StatusCode::SUCCESS;
1540 bool truthStatusIsGood =
true;
1542 truthStatusIsGood =
false;
1546 truthStatusIsGood =
false;
1549 if (truthStatusIsGood) {
1596 bool dofill =
false;
1632 for (
auto muon : *muons) {
1657 if (scid.isSuccess()) {
1668 return StatusCode::SUCCESS;
◆ ExtractIDHitsInformation()
Definition at line 2772 of file IDPerfMonZmumu.cxx.
2779 int nBLhits, nhitsPIX, nhitsSCT, nhitsTRT, nContribPixLayers;
2780 int nPIXholes, nSCTholes;
2781 if (IDTrkMuPos && IDTrkMuNeg) {
2799 <<
" nBLhits: " << nBLhits
2800 <<
" nhitsPIX: " << nhitsPIX
2801 <<
" nPIXLayers: " << nContribPixLayers
2802 <<
" nhitsSCT: " << nhitsSCT
2803 <<
" Silicon holes: " << nPIXholes + nSCTholes
2804 <<
" nhitsTRT: " << nhitsTRT);
2820 <<
" nBLhits: " << nBLhits
2821 <<
" nhitsPIX: " << nhitsPIX
2822 <<
" nPIXLayers: " << nContribPixLayers
2823 <<
" nhitsSCT: " << nhitsSCT
2824 <<
" Silicon holes: " << nPIXholes + nSCTholes
2825 <<
" nhitsTRT: " << nhitsTRT);
◆ 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
◆ extraOutputDeps()
const DataObjIDColl & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
57 return Algorithm::extraOutputDeps();
◆ FillRecParameters()
Definition at line 1814 of file IDPerfMonZmumu.cxx.
1817 ATH_MSG_DEBUG(
"* FillRecParameters * Empty Track: track. Skipping.");
1818 return StatusCode::FAILURE;
1822 ATH_MSG_DEBUG(
"* FillRecParameters * Empty Track: trackp_for_unbias. Skipping.");
1823 return StatusCode::FAILURE;
1839 double d0_err = 999.;
1840 double z0_err = 999.;
1848 if (trkPerigee !=
nullptr){
1851 px = trkPerigee->momentum().x();
1852 py = trkPerigee->momentum().y();
1853 pt = std::abs(trkPerigee->pT());
1854 pz = trkPerigee->momentum().z();
1856 eta= trkPerigee->eta();
1874 px = atBL->momentum().x();
1875 py = atBL->momentum().y();
1876 pt = std::abs(atBL->pT());
1877 pz = atBL->momentum().z();
1878 eta= trkPerigee->eta();
1888 ATH_MSG_WARNING(
"FillRecParameters::Failed extrapolation to the BeamLine");
1892 TLorentzVector vtrack = TLorentzVector (trkPerigee->momentum().x(),
1893 trkPerigee->momentum().y(),
1894 trkPerigee->momentum().z(),
1895 trkPerigee->momentum().mag());
1896 float trkd0 = trkPerigee->parameters()[
Trk::d0];
1897 float trkz0 = trkPerigee->parameters()[
Trk::z0];
1898 float bsX = position.x();
1899 float bsY = position.y();
1900 float bsZ = position.z();
1901 float btiltX = beamSpotHandleRec->beamTilt(0);
1902 float btiltY = beamSpotHandleRec->beamTilt(1);
1904 float beamX = bsX +
std::tan(btiltX) * (trkz0-bsZ);
1905 float beamY = bsY +
std::tan(btiltY) * (trkz0-bsZ);
1906 float beamD0 = ( -
std::sin(vtrack.Phi())*beamX +
std::cos(vtrack.Phi())*beamY );
1907 float d0bscorr = trkd0 - beamD0;
1908 float z0bscorr = trkz0 - bsZ;
1911 std::unique_ptr<Trk::ImpactParametersAndSigma> iPandSigma(
nullptr);
1914 if( iPandSigma==0 ){
1915 ATH_MSG_WARNING (
"FillRecParameters::trackToVertexIPEstimator failed !");
1916 return StatusCode::FAILURE;
1919 ATH_MSG_DEBUG(
"FillRecParameters::trackToVertexIPEstimator success !");
1920 PVd0 = iPandSigma->IPd0;
1921 PVd0res = iPandSigma->PVsigmad0;
1923 PVz0 = iPandSigma->IPz0;
1924 PVz0res = iPandSigma->PVsigmaz0;
1928 ATH_MSG_INFO(
" FillRecParameters::trackToVertexIPEstimator vertex does exist ");
1957 ATH_MSG_DEBUG(
"(Filled charge == 1 ) (reco)-> px : "<<
px <<
" py: "<<
py <<
" pz: "<<
pz <<
" d0: "<<
d0<<
" z0: "<<
z0);
1978 ATH_MSG_DEBUG(
"(Filled charge == -1 ) (reco)-> px : "<<
px <<
" py: "<<
py <<
" pz: "<<
pz <<
" d0: "<<
d0<<
" z0: "<<
z0 );
1981 return StatusCode::SUCCESS;
◆ FillRecParametersSimple()
Definition at line 1984 of file IDPerfMonZmumu.cxx.
1987 ATH_MSG_DEBUG(
"* FillRecParametersSimple * Empty Track: track. Skipping.");
1988 return StatusCode::FAILURE;
1992 if (not trkPerigee) {
1993 ATH_MSG_ERROR(
"trkPerigee pointer is null in IDPerfMonZmumu::FillRecParametersSimple");
1994 return StatusCode::FAILURE;
2005 double d0_err = 999.;
2006 double z0_err = 999.;
2011 px = trkPerigee->momentum().x();
2012 py = trkPerigee->momentum().y();
2013 pt = std::abs(trkPerigee->pT());
2014 pz = trkPerigee->momentum().z();
2016 eta= trkPerigee->eta();
2024 Amg::Vector3D position (eventInfo->beamPosX(), eventInfo->beamPosY(), eventInfo->beamPosZ());
2025 TLorentzVector vtrack = TLorentzVector (trkPerigee->momentum().x(),
2026 trkPerigee->momentum().y(),
2027 trkPerigee->momentum().z(),
2028 trkPerigee->momentum().mag());
2029 float trkd0 = trkPerigee->parameters()[
Trk::d0];
2030 float trkz0 = trkPerigee->parameters()[
Trk::z0];
2031 float bsX = position.x();
2032 float bsY = position.y();
2033 float bsZ = position.z();
2034 float btiltX = eventInfo->beamTiltXZ();
2035 float btiltY = eventInfo->beamTiltYZ();
2037 float beamX = bsX +
std::tan(btiltX) * (trkz0-bsZ);
2038 float beamY = bsY +
std::tan(btiltY) * (trkz0-bsZ);
2039 float beamD0 = ( -
std::sin(vtrack.Phi())*beamX +
std::cos(vtrack.Phi())*beamY );
2040 float d0bscorr = trkd0 - beamD0;
2041 float z0bscorr = trkz0 - bsZ -
vertex->z();
2074 return StatusCode::SUCCESS;
◆ FillRecParametersTP()
Definition at line 1672 of file IDPerfMonZmumu.cxx.
1679 return StatusCode::FAILURE;
1683 return StatusCode::FAILURE;
1700 double sigma_pt = 0;
1702 double sigma_qOverP = 1.;
1705 px = trackp->
p4().Px();
1706 py = trackp->
p4().Py();
1707 pt = trackp->
p4().Pt();
1708 pz = trackp->
p4().Pz();
1709 phi= trackp->
p4().Phi();
1710 eta= trackp->
p4().Eta();
1713 qoverp = trackp->
qOverP();
1722 double sigma_pt_term1 = (
sin(trackp->
theta()) /
pow(qoverp,2)) * sigma_qOverP;
1723 double sigma_pt_term2 = (1./qoverp) *
cos(trackp->
theta()) * sigma_theta;
1724 double sigma_pt_term3 = (
cos(trackp->
theta()) /
pow(qoverp,2)) * sigma_theta * sigma_qOverP;
1730 return StatusCode::FAILURE;
1733 ATH_MSG_WARNING(
"in FillRecParametersTP. WARNING: m_trackToVertexIPEstimator is NULL");
1734 return StatusCode::FAILURE;
1738 std::unique_ptr<Trk::ImpactParametersAndSigma> iPandSigma(
nullptr);
1745 ATH_MSG_DEBUG(
"return from the trackToVertexIPEstimator->estimate()");
1748 ATH_MSG_WARNING (
"FillRecParametersTP::trackToVertexIPEstimator failed !");
1749 return StatusCode::FAILURE;
1752 ATH_MSG_DEBUG(
"FillRecParametersTP::trackToVertexIPEstimator success !");
1753 PVd0 = iPandSigma->IPd0;
1754 PVd0res = iPandSigma->PVsigmad0;
1755 d0res = iPandSigma->sigmad0;
1756 PVz0 = iPandSigma->IPz0;
1757 PVz0res = iPandSigma->PVsigmaz0;
1758 z0res = iPandSigma->sigmaz0;
1783 <<
" d0: "<<
m_positive_d0 <<
" d0res : "<< d0res <<
" PVd0res : "<< PVd0res <<
" z0: "<<
m_positive_z0 <<
" z0res : " << z0res <<
" PVz0res : "<< PVz0res );
1785 }
else if (
charge == -1) {
1805 ATH_MSG_DEBUG(
"(Filled charge == -1 ) (reco)-> px : "<<
px <<
" py: "<<
py <<
" pt: " <<
pt <<
" pz: "<<
pz
1806 <<
" d0: "<<
m_negative_d0 <<
" d0res : "<< d0res <<
" PVd0res : "<< PVd0res <<
" z0: "<<
m_negative_z0 <<
" z0res : " << z0res <<
" PVz0res : "<< PVz0res );
1809 return StatusCode::SUCCESS;
◆ FillTruthParameters()
Definition at line 2078 of file IDPerfMonZmumu.cxx.
2081 if (!trackParticle ){
2082 ATH_MSG_WARNING(
"-- FillTruthParameters -- Empty Trackparticle. Skipping.");
2083 return StatusCode::FAILURE;
2089 ATH_MSG_DEBUG(
" -- FillTruthParameters -- Failure while retrieving the truth particle. Returning FAILURE.");
2090 return StatusCode::FAILURE;
2096 ATH_MSG_DEBUG(
" -- FillTruthParameters -- reco muon associated to a truth neutral!! Returning FAILURE.");
2097 return StatusCode::FAILURE;
2100 ATH_MSG_DEBUG(
" -- FillTruthParameters -- reco muon associated to a non true muon!! Returning FAILURE.");
2101 return StatusCode::FAILURE;
2108 ATH_MSG_DEBUG(
"A production vertex pointer was retrieved, but it is NULL");
2109 return StatusCode::FAILURE;
2113 if (
particle->parent(0) !=
nullptr) {
2116 if (truthTypeAcc.isAvailable(*
particle)) {
2119 <<
" nparents " <<
particle->nParents()
2120 <<
" parent->pdg: " <<
particle->parent(0)->pdgId()
2121 <<
" truthType: " << truthTypeAcc(*
particle)
2122 <<
" truthOrigin: " << truthOriginAcc(*
particle)
2129 <<
" nparents " <<
particle->nParents()
2130 <<
" parent->pdg: " <<
particle->parent(0)->pdgId()
2131 <<
" truthType & truthOrigin: " <<
" NOT AVAILABLE "
2136 const auto xPos=ptruthVertex->x();
2137 const auto yPos=ptruthVertex->y();
2138 const auto z_truth=ptruthVertex->z();
2146 const EventContext& ctx = Gaudi::Hive::currentContext();
2167 ATH_MSG_DEBUG(
"reco IPs (pos): > d0 : "<<d0recoPos <<
" z0: " << z0recoPos <<
" trackp z0 : " << trackParticle->z0() <<
" trackp d0 : " << trackParticle->d0());
2168 ATH_MSG_DEBUG(
"reco IPs (neg): > d0 : "<<d0recoNeg <<
" z0: " << z0recoNeg <<
" trackp z0 : " << trackParticle->z0() <<
" trackp d0 : " << trackParticle->d0() );
2170 double qOverP_truth = 0.;
2209 bool parentfound =
false;
2211 if (
particle->parent(0) !=
nullptr) {
2226 }
else if (
charge == -1) {
2241 bool parentfound =
false;
2243 if (
particle->parent(0) !=
nullptr) {
2258 return StatusCode::SUCCESS;
◆ finalize()
StatusCode IDPerfMonZmumu::finalize |
( |
| ) |
|
|
virtual |
◆ GetDiMuonVertex()
Definition at line 2351 of file IDPerfMonZmumu.cxx.
2360 for (
int ivtx=0; ivtx< (
int) vxContainer->size();ivtx++) {
2361 myVtx = (*vxContainer)[ivtx];
◆ GetMuonQualityValue()
int IDPerfMonZmumu::GetMuonQualityValue |
( |
std::string |
qualityname | ) |
|
|
private |
◆ getTruthParticle()
A convenience type declaration
A static accessor for the information
Definition at line 2263 of file IDPerfMonZmumu.cxx.
2269 if( !
acc.isAvailable(
p ) ) {
2273 const Link_t& link =
acc(
p );
2275 if( ! link.isValid() ) {
◆ initialize()
StatusCode IDPerfMonZmumu::initialize |
( |
| ) |
|
|
virtual |
Definition at line 170 of file IDPerfMonZmumu.cxx.
182 return StatusCode::FAILURE;
191 return StatusCode::FAILURE;
199 return StatusCode::FAILURE;
210 return StatusCode::FAILURE;
233 ATH_MSG_INFO(
" -- IDPerfMonZmumu::initialize() -- init m_beamSpotKey ");
271 return StatusCode::FAILURE;
279 return StatusCode::FAILURE;
287 return StatusCode::FAILURE;
294 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::Initialize ** Completed **");
295 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.
◆ 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.
◆ RegisterHistograms()
void IDPerfMonZmumu::RegisterHistograms |
( |
| ) |
|
|
private |
◆ renounce()
◆ renounceArray()
◆ ResetCommonNtupleVectors()
void IDPerfMonZmumu::ResetCommonNtupleVectors |
( |
| ) |
|
|
private |
◆ RunFourLeptonAnalysis()
StatusCode IDPerfMonZmumu::RunFourLeptonAnalysis |
( |
| ) |
|
|
private |
Definition at line 2531 of file IDPerfMonZmumu.cxx.
2554 if( electronTruth) {
2555 ATH_MSG_DEBUG (
"retrieving electron Truth container with key: \"egammaTruthParticles\" SUCCESS ");
2557 if( electronTruth->hasStore() ) {
2559 auto tr_itr = electronTruth->
begin();
2560 auto tr_end = electronTruth->
end();
2561 int electronCount = 0;
2562 for(
int i = 0; tr_itr != tr_end; ++tr_itr, ++
i ) {
2563 ATH_MSG_DEBUG(
"Truth : Investigating truth electron #" <<
i <<
" pdgID= " << ( *tr_itr )->pdgId());
2564 if (fabs(( *tr_itr )->pdgId()) == 11) {
2565 if (( *tr_itr )->pt() > 10000 && fabs(( *tr_itr )->eta()) < 2.47) {
2566 ATH_MSG_INFO(
" central electron found --> pt: " << ( *tr_itr )->charge()*( *tr_itr )->pt() <<
" eta " <<( *tr_itr )->eta() );
2571 ATH_MSG_INFO(
"#central electrons: " << electronCount );
2574 ATH_MSG_WARNING (
"electronTruth container has no Store !!! FAILURE");
2578 ATH_MSG_WARNING (
"retrieve electron Truth container with key: \"egammaTruthParticles\" FAILURE");
2582 if (
m_doDebug) std::cout <<
" ** RunFourLeptonAnalysis ** calling m_4mu.Reco() .... " << std::endl;
2586 if(statusOf4LeptReco) {
2587 thisStatus = StatusCode::SUCCESS;
2592 thisStatus = StatusCode::FAILURE;
2593 ATH_MSG_DEBUG (
"4-lepton reconstruction FAILURE. m_4mu.Reco() returned FALSE --> event failed selection");
2594 if (
m_doDebug) std::cout <<
" ** RunFourLeptonAnalysis ** 4-lepton reconstruction FAILURE. m_4mu.Reco() returned FALSE --> event failed selection" << std::endl;
2597 if(statusOf4LeptReco) {
2705 std::string metName =
"MET_Reference_AntiKt4LCTopo";
2706 std::string metRefFinalName =
"FinalClus";
2713 ATH_MSG_WARNING (
"No Collection with name " << metName <<
" found in StoreGate");
2718 if (
sc.isFailure()) {
2719 ATH_MSG_DEBUG (
"Could not retrieve Collection " << metName <<
" from StoreGate");
2724 if (final_met)
met = (*final_met)[metRefFinalName];
2736 <<
" Invariant mass = " <<
m_4mu_minv <<
" GeV ");
2737 if (muon1_pos !=
nullptr)
ATH_MSG_DEBUG(
"mu1+ --> pxyz " << muon1_pos->
p4().Px()
2738 <<
", " << muon1_pos->
p4().Py()
2739 <<
", " << muon1_pos->
p4().Pz()
2740 <<
" pt: " << muon1_pos->
pt()
2741 <<
" d0: " << muon1_pos->
d0()
2742 <<
" z0: " << muon1_pos->
z0()
2745 if (muon1_neg !=
nullptr)
ATH_MSG_DEBUG(
"mu1- --> pxyz " << muon1_neg->
p4().Px()
2746 <<
", " << muon1_neg->
p4().Py()
2747 <<
", " << muon1_neg->
p4().Pz()
2748 <<
" pt: " << muon1_neg->
pt()
2749 <<
" d0: " << muon1_neg->
d0()
2750 <<
" z0: " << muon1_neg->
z0()
2753 if (elec1_pos !=
nullptr)
ATH_MSG_DEBUG(
"el1+ --> pxyz " << elec1_pos->
p4().Px()
2754 <<
", " << elec1_pos->
p4().Py()
2755 <<
", " << elec1_pos->
p4().Pz()
2756 <<
" pt: " << elec1_pos->
pt()
2757 <<
" d0: " << elec1_pos->
d0()
2758 <<
" z0: " << elec1_pos->
z0()
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ 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_4mu
◆ m_4mu_minv
double IDPerfMonZmumu::m_4mu_minv {} |
|
private |
◆ m_beamSpotKey
◆ m_CBTrack_d0
std::vector<float> IDPerfMonZmumu::m_CBTrack_d0 |
|
private |
◆ m_CBTrack_eta
std::vector<float> IDPerfMonZmumu::m_CBTrack_eta |
|
private |
◆ m_CBTrack_phi
std::vector<float> IDPerfMonZmumu::m_CBTrack_phi |
|
private |
◆ m_CBTrack_pt
std::vector<float> IDPerfMonZmumu::m_CBTrack_pt |
|
private |
◆ m_CBTrack_qoverp
std::vector<float> IDPerfMonZmumu::m_CBTrack_qoverp |
|
private |
◆ m_CBTrack_sigma_d0
std::vector<float> IDPerfMonZmumu::m_CBTrack_sigma_d0 |
|
private |
◆ m_CBTrack_sigma_pt
std::vector<float> IDPerfMonZmumu::m_CBTrack_sigma_pt |
|
private |
◆ m_CBTrack_sigma_qoverp
std::vector<float> IDPerfMonZmumu::m_CBTrack_sigma_qoverp |
|
private |
◆ m_CBTrack_sigma_z0
std::vector<float> IDPerfMonZmumu::m_CBTrack_sigma_z0 |
|
private |
◆ m_CBTrack_z0
std::vector<float> IDPerfMonZmumu::m_CBTrack_z0 |
|
private |
◆ m_combTree
TTree* IDPerfMonZmumu::m_combTree |
|
private |
◆ m_combTreeFolder
std::string IDPerfMonZmumu::m_combTreeFolder |
|
private |
◆ m_combTreeName
std::string IDPerfMonZmumu::m_combTreeName |
|
private |
◆ m_commonTree
TTree* IDPerfMonZmumu::m_commonTree |
|
private |
◆ m_commonTreeFolder
std::string IDPerfMonZmumu::m_commonTreeFolder |
|
private |
◆ m_commonTreeName
std::string IDPerfMonZmumu::m_commonTreeName |
|
private |
◆ m_defaultTree
TTree* IDPerfMonZmumu::m_defaultTree |
|
private |
◆ m_defaultTreeFolder
std::string IDPerfMonZmumu::m_defaultTreeFolder |
|
private |
◆ m_defaultTreeName
std::string IDPerfMonZmumu::m_defaultTreeName |
|
private |
◆ m_detStore
◆ m_doDebug
bool IDPerfMonZmumu::m_doDebug {} |
|
private |
◆ m_doFourMuAnalysis
bool IDPerfMonZmumu::m_doFourMuAnalysis {} |
|
private |
◆ m_doIP
bool IDPerfMonZmumu::m_doIP {} |
|
private |
◆ m_doIPSelection
bool IDPerfMonZmumu::m_doIPSelection {true} |
|
private |
◆ m_doIsoSelection
bool IDPerfMonZmumu::m_doIsoSelection {true} |
|
private |
◆ m_doMCPSelection
bool IDPerfMonZmumu::m_doMCPSelection {true} |
|
private |
◆ m_doRefit
bool IDPerfMonZmumu::m_doRefit {} |
|
private |
◆ m_doRemoval
bool IDPerfMonZmumu::m_doRemoval {} |
|
private |
◆ m_el_negative1_d0
double IDPerfMonZmumu::m_el_negative1_d0 {} |
|
private |
◆ m_el_negative1_d0_err
double IDPerfMonZmumu::m_el_negative1_d0_err {} |
|
private |
◆ m_el_negative1_d0_PV
double IDPerfMonZmumu::m_el_negative1_d0_PV {} |
|
private |
◆ m_el_negative1_d0_PVerr
double IDPerfMonZmumu::m_el_negative1_d0_PVerr {} |
|
private |
◆ m_el_negative1_px
double IDPerfMonZmumu::m_el_negative1_px {} |
|
private |
◆ m_el_negative1_py
double IDPerfMonZmumu::m_el_negative1_py {} |
|
private |
◆ m_el_negative1_pz
double IDPerfMonZmumu::m_el_negative1_pz {} |
|
private |
◆ m_el_negative1_vtx
int IDPerfMonZmumu::m_el_negative1_vtx {} |
|
private |
◆ m_el_negative1_z0
double IDPerfMonZmumu::m_el_negative1_z0 {} |
|
private |
◆ m_el_negative1_z0_err
double IDPerfMonZmumu::m_el_negative1_z0_err {} |
|
private |
◆ m_el_negative1_z0_PV
double IDPerfMonZmumu::m_el_negative1_z0_PV {} |
|
private |
◆ m_el_negative1_z0_PVerr
double IDPerfMonZmumu::m_el_negative1_z0_PVerr {} |
|
private |
◆ m_el_negative2_d0
double IDPerfMonZmumu::m_el_negative2_d0 {} |
|
private |
◆ m_el_negative2_d0_err
double IDPerfMonZmumu::m_el_negative2_d0_err {} |
|
private |
◆ m_el_negative2_d0_PV
double IDPerfMonZmumu::m_el_negative2_d0_PV {} |
|
private |
◆ m_el_negative2_d0_PVerr
double IDPerfMonZmumu::m_el_negative2_d0_PVerr {} |
|
private |
◆ m_el_negative2_px
double IDPerfMonZmumu::m_el_negative2_px {} |
|
private |
◆ m_el_negative2_py
double IDPerfMonZmumu::m_el_negative2_py {} |
|
private |
◆ m_el_negative2_pz
double IDPerfMonZmumu::m_el_negative2_pz {} |
|
private |
◆ m_el_negative2_vtx
int IDPerfMonZmumu::m_el_negative2_vtx {} |
|
private |
◆ m_el_negative2_z0
double IDPerfMonZmumu::m_el_negative2_z0 {} |
|
private |
◆ m_el_negative2_z0_err
double IDPerfMonZmumu::m_el_negative2_z0_err {} |
|
private |
◆ m_el_negative2_z0_PV
double IDPerfMonZmumu::m_el_negative2_z0_PV {} |
|
private |
◆ m_el_negative2_z0_PVerr
double IDPerfMonZmumu::m_el_negative2_z0_PVerr {} |
|
private |
◆ m_el_positive1_d0
double IDPerfMonZmumu::m_el_positive1_d0 {} |
|
private |
◆ m_el_positive1_d0_err
double IDPerfMonZmumu::m_el_positive1_d0_err {} |
|
private |
◆ m_el_positive1_d0_PV
double IDPerfMonZmumu::m_el_positive1_d0_PV {} |
|
private |
◆ m_el_positive1_px
double IDPerfMonZmumu::m_el_positive1_px {} |
|
private |
◆ m_el_positive1_py
double IDPerfMonZmumu::m_el_positive1_py {} |
|
private |
◆ m_el_positive1_pz
double IDPerfMonZmumu::m_el_positive1_pz {} |
|
private |
◆ m_el_positive1_vtx
int IDPerfMonZmumu::m_el_positive1_vtx {} |
|
private |
◆ m_el_positive1_z0
double IDPerfMonZmumu::m_el_positive1_z0 {} |
|
private |
◆ m_el_positive1_z0_err
double IDPerfMonZmumu::m_el_positive1_z0_err {} |
|
private |
◆ m_el_positive1_z0_PV
double IDPerfMonZmumu::m_el_positive1_z0_PV {} |
|
private |
◆ m_el_positive1_z0_PVerr
double IDPerfMonZmumu::m_el_positive1_z0_PVerr {} |
|
private |
◆ m_el_positive2_d0
double IDPerfMonZmumu::m_el_positive2_d0 {} |
|
private |
◆ m_el_positive2_d0_err
double IDPerfMonZmumu::m_el_positive2_d0_err {} |
|
private |
◆ m_el_positive2_d0_PV
double IDPerfMonZmumu::m_el_positive2_d0_PV {} |
|
private |
◆ m_el_positive2_px
double IDPerfMonZmumu::m_el_positive2_px {} |
|
private |
◆ m_el_positive2_py
double IDPerfMonZmumu::m_el_positive2_py {} |
|
private |
◆ m_el_positive2_pz
double IDPerfMonZmumu::m_el_positive2_pz {} |
|
private |
◆ m_el_positive2_vtx
int IDPerfMonZmumu::m_el_positive2_vtx {} |
|
private |
◆ m_el_positive2_z0
double IDPerfMonZmumu::m_el_positive2_z0 {} |
|
private |
◆ m_el_positive2_z0_err
double IDPerfMonZmumu::m_el_positive2_z0_err {} |
|
private |
◆ m_el_positive2_z0_PV
double IDPerfMonZmumu::m_el_positive2_z0_PV {} |
|
private |
◆ m_el_positive2_z0_PVerr
double IDPerfMonZmumu::m_el_positive2_z0_PVerr {} |
|
private |
◆ m_el_psoitive1_d0_PVerr
double IDPerfMonZmumu::m_el_psoitive1_d0_PVerr {} |
|
private |
◆ m_el_psoitive2_d0_PVerr
double IDPerfMonZmumu::m_el_psoitive2_d0_PVerr {} |
|
private |
◆ m_event_mu
unsigned int IDPerfMonZmumu::m_event_mu {} |
|
private |
◆ m_event_weight
float IDPerfMonZmumu::m_event_weight {} |
|
private |
◆ m_EventInfoKey
◆ m_evtNumber
unsigned int IDPerfMonZmumu::m_evtNumber {} |
|
private |
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_extrapolator
◆ m_FourMuTree
TTree* IDPerfMonZmumu::m_FourMuTree |
|
private |
◆ m_FourMuTreeFolder
std::string IDPerfMonZmumu::m_FourMuTreeFolder |
|
private |
◆ m_FourMuTreeName
std::string IDPerfMonZmumu::m_FourMuTreeName |
|
private |
◆ m_h_cutflow
TH1F* IDPerfMonZmumu::m_h_cutflow {} |
|
private |
◆ m_IDTrack_d0
std::vector<float> IDPerfMonZmumu::m_IDTrack_d0 |
|
private |
◆ m_IDTrack_eta
std::vector<float> IDPerfMonZmumu::m_IDTrack_eta |
|
private |
◆ m_IDTrack_phi
std::vector<float> IDPerfMonZmumu::m_IDTrack_phi |
|
private |
◆ m_IDTrack_pt
std::vector<float> IDPerfMonZmumu::m_IDTrack_pt |
|
private |
◆ m_IDTrack_qoverp
std::vector<float> IDPerfMonZmumu::m_IDTrack_qoverp |
|
private |
◆ m_IDTrack_sigma_d0
std::vector<float> IDPerfMonZmumu::m_IDTrack_sigma_d0 |
|
private |
◆ m_IDTrack_sigma_pt
std::vector<float> IDPerfMonZmumu::m_IDTrack_sigma_pt |
|
private |
◆ m_IDTrack_sigma_qoverp
std::vector<float> IDPerfMonZmumu::m_IDTrack_sigma_qoverp |
|
private |
◆ m_IDTrack_sigma_z0
std::vector<float> IDPerfMonZmumu::m_IDTrack_sigma_z0 |
|
private |
◆ m_IDTrack_z0
std::vector<float> IDPerfMonZmumu::m_IDTrack_z0 |
|
private |
◆ m_IDTree
TTree* IDPerfMonZmumu::m_IDTree |
|
private |
◆ m_IDTreeFolder
std::string IDPerfMonZmumu::m_IDTreeFolder |
|
private |
◆ m_IDTreeName
std::string IDPerfMonZmumu::m_IDTreeName |
|
private |
◆ m_isMC
bool IDPerfMonZmumu::m_isMC {} |
|
private |
◆ m_LeadingMuonPtCut
double IDPerfMonZmumu::m_LeadingMuonPtCut {20.} |
|
private |
◆ m_lumi_block
unsigned int IDPerfMonZmumu::m_lumi_block {} |
|
private |
◆ m_MassWindowHigh
double IDPerfMonZmumu::m_MassWindowHigh {120.} |
|
private |
◆ m_MassWindowLow
double IDPerfMonZmumu::m_MassWindowLow {60.} |
|
private |
◆ m_maxGoodLumiBlock
int IDPerfMonZmumu::m_maxGoodLumiBlock {} |
|
private |
◆ m_met
double IDPerfMonZmumu::m_met {} |
|
private |
◆ m_metphi
double IDPerfMonZmumu::m_metphi {} |
|
private |
◆ m_minGoodLumiBlock
int IDPerfMonZmumu::m_minGoodLumiBlock {} |
|
private |
◆ m_MSTree
TTree* IDPerfMonZmumu::m_MSTree |
|
private |
◆ m_MSTreeFolder
std::string IDPerfMonZmumu::m_MSTreeFolder |
|
private |
◆ m_MSTreeName
std::string IDPerfMonZmumu::m_MSTreeName |
|
private |
◆ m_MuonQualityName
std::string IDPerfMonZmumu::m_MuonQualityName |
|
private |
◆ m_muonSelector
◆ m_nBLhits
std::vector<int> IDPerfMonZmumu::m_nBLhits |
|
private |
◆ m_negative_1_vtx
int IDPerfMonZmumu::m_negative_1_vtx {} |
|
private |
◆ m_negative_2_d0
double IDPerfMonZmumu::m_negative_2_d0 {} |
|
private |
◆ m_negative_2_d0_err
double IDPerfMonZmumu::m_negative_2_d0_err {} |
|
private |
◆ m_negative_2_d0_PV
double IDPerfMonZmumu::m_negative_2_d0_PV {} |
|
private |
◆ m_negative_2_d0_PVerr
double IDPerfMonZmumu::m_negative_2_d0_PVerr {} |
|
private |
◆ m_negative_2_px
double IDPerfMonZmumu::m_negative_2_px {} |
|
private |
◆ m_negative_2_py
double IDPerfMonZmumu::m_negative_2_py {} |
|
private |
◆ m_negative_2_pz
double IDPerfMonZmumu::m_negative_2_pz {} |
|
private |
◆ m_negative_2_vtx
int IDPerfMonZmumu::m_negative_2_vtx {} |
|
private |
◆ m_negative_2_z0
double IDPerfMonZmumu::m_negative_2_z0 {} |
|
private |
◆ m_negative_2_z0_err
double IDPerfMonZmumu::m_negative_2_z0_err {} |
|
private |
◆ m_negative_2_z0_PV
double IDPerfMonZmumu::m_negative_2_z0_PV {} |
|
private |
◆ m_negative_2_z0_PVerr
double IDPerfMonZmumu::m_negative_2_z0_PVerr {} |
|
private |
◆ m_negative_d0
double IDPerfMonZmumu::m_negative_d0 {} |
|
private |
◆ m_negative_d0_err
double IDPerfMonZmumu::m_negative_d0_err {} |
|
private |
◆ m_negative_d0_manualBS
double IDPerfMonZmumu::m_negative_d0_manualBS {} |
|
private |
◆ m_negative_d0_PV
double IDPerfMonZmumu::m_negative_d0_PV {} |
|
private |
◆ m_negative_d0_PVerr
double IDPerfMonZmumu::m_negative_d0_PVerr {} |
|
private |
◆ m_negative_eta
double IDPerfMonZmumu::m_negative_eta {} |
|
private |
◆ m_negative_parent
int IDPerfMonZmumu::m_negative_parent {} |
|
private |
◆ m_negative_phi
double IDPerfMonZmumu::m_negative_phi {} |
|
private |
◆ m_negative_pt
double IDPerfMonZmumu::m_negative_pt {} |
|
private |
◆ m_negative_px
double IDPerfMonZmumu::m_negative_px {} |
|
private |
◆ m_negative_py
double IDPerfMonZmumu::m_negative_py {} |
|
private |
◆ m_negative_pz
double IDPerfMonZmumu::m_negative_pz {} |
|
private |
◆ m_negative_qoverp
double IDPerfMonZmumu::m_negative_qoverp {} |
|
private |
◆ m_negative_sigma_pt
double IDPerfMonZmumu::m_negative_sigma_pt {} |
|
private |
◆ m_negative_sigma_qoverp
double IDPerfMonZmumu::m_negative_sigma_qoverp {} |
|
private |
◆ m_negative_z0
double IDPerfMonZmumu::m_negative_z0 {} |
|
private |
◆ m_negative_z0_err
double IDPerfMonZmumu::m_negative_z0_err {} |
|
private |
◆ m_negative_z0_manualBS
double IDPerfMonZmumu::m_negative_z0_manualBS {} |
|
private |
◆ m_negative_z0_PV
double IDPerfMonZmumu::m_negative_z0_PV {} |
|
private |
◆ m_negative_z0_PVerr
double IDPerfMonZmumu::m_negative_z0_PVerr {} |
|
private |
◆ m_nPIXhits
std::vector<int> IDPerfMonZmumu::m_nPIXhits |
|
private |
◆ m_nSCThits
std::vector<int> IDPerfMonZmumu::m_nSCThits |
|
private |
◆ m_nTrkInVtx
unsigned int IDPerfMonZmumu::m_nTrkInVtx {} |
|
private |
◆ m_nTRThits
std::vector<int> IDPerfMonZmumu::m_nTRThits |
|
private |
◆ m_nVertex
unsigned int IDPerfMonZmumu::m_nVertex {} |
|
private |
◆ m_OpeningAngleCut
double IDPerfMonZmumu::m_OpeningAngleCut {0.2} |
|
private |
◆ m_outputTracksName
std::string IDPerfMonZmumu::m_outputTracksName |
|
private |
◆ m_positive_1_vtx
int IDPerfMonZmumu::m_positive_1_vtx {} |
|
private |
◆ m_positive_2_d0
double IDPerfMonZmumu::m_positive_2_d0 {} |
|
private |
◆ m_positive_2_d0_err
double IDPerfMonZmumu::m_positive_2_d0_err {} |
|
private |
◆ m_positive_2_d0_PV
double IDPerfMonZmumu::m_positive_2_d0_PV {} |
|
private |
◆ m_positive_2_d0_PVerr
double IDPerfMonZmumu::m_positive_2_d0_PVerr {} |
|
private |
◆ m_positive_2_px
double IDPerfMonZmumu::m_positive_2_px {} |
|
private |
◆ m_positive_2_py
double IDPerfMonZmumu::m_positive_2_py {} |
|
private |
◆ m_positive_2_pz
double IDPerfMonZmumu::m_positive_2_pz {} |
|
private |
◆ m_positive_2_vtx
int IDPerfMonZmumu::m_positive_2_vtx {} |
|
private |
◆ m_positive_2_z0
double IDPerfMonZmumu::m_positive_2_z0 {} |
|
private |
◆ m_positive_2_z0_err
double IDPerfMonZmumu::m_positive_2_z0_err {} |
|
private |
◆ m_positive_2_z0_PV
double IDPerfMonZmumu::m_positive_2_z0_PV {} |
|
private |
◆ m_positive_2_z0_PVerr
double IDPerfMonZmumu::m_positive_2_z0_PVerr {} |
|
private |
◆ m_positive_d0
double IDPerfMonZmumu::m_positive_d0 {} |
|
private |
◆ m_positive_d0_err
double IDPerfMonZmumu::m_positive_d0_err {} |
|
private |
◆ m_positive_d0_manualBS
double IDPerfMonZmumu::m_positive_d0_manualBS {} |
|
private |
◆ m_positive_d0_PV
double IDPerfMonZmumu::m_positive_d0_PV {} |
|
private |
◆ m_positive_d0_PVerr
double IDPerfMonZmumu::m_positive_d0_PVerr {} |
|
private |
◆ m_positive_eta
double IDPerfMonZmumu::m_positive_eta {} |
|
private |
◆ m_positive_parent
int IDPerfMonZmumu::m_positive_parent {} |
|
private |
◆ m_positive_phi
double IDPerfMonZmumu::m_positive_phi {} |
|
private |
◆ m_positive_pt
double IDPerfMonZmumu::m_positive_pt {} |
|
private |
◆ m_positive_px
double IDPerfMonZmumu::m_positive_px {} |
|
private |
◆ m_positive_py
double IDPerfMonZmumu::m_positive_py {} |
|
private |
◆ m_positive_pz
double IDPerfMonZmumu::m_positive_pz {} |
|
private |
◆ m_positive_qoverp
double IDPerfMonZmumu::m_positive_qoverp {} |
|
private |
◆ m_positive_sigma_pt
double IDPerfMonZmumu::m_positive_sigma_pt {} |
|
private |
◆ m_positive_sigma_qoverp
double IDPerfMonZmumu::m_positive_sigma_qoverp {} |
|
private |
◆ m_positive_z0
double IDPerfMonZmumu::m_positive_z0 {} |
|
private |
◆ m_positive_z0_err
double IDPerfMonZmumu::m_positive_z0_err {} |
|
private |
◆ m_positive_z0_manualBS
double IDPerfMonZmumu::m_positive_z0_manualBS {} |
|
private |
◆ m_positive_z0_PV
double IDPerfMonZmumu::m_positive_z0_PV {} |
|
private |
◆ m_positive_z0_PVerr
double IDPerfMonZmumu::m_positive_z0_PVerr {} |
|
private |
◆ m_pv_x
double IDPerfMonZmumu::m_pv_x {} |
|
private |
◆ m_pv_y
double IDPerfMonZmumu::m_pv_y {} |
|
private |
◆ m_pv_z
double IDPerfMonZmumu::m_pv_z {} |
|
private |
◆ m_Refit1_d0
std::vector<float> IDPerfMonZmumu::m_Refit1_d0 |
|
private |
◆ m_Refit1_eta
std::vector<float> IDPerfMonZmumu::m_Refit1_eta |
|
private |
◆ m_Refit1_phi
std::vector<float> IDPerfMonZmumu::m_Refit1_phi |
|
private |
◆ m_Refit1_pt
std::vector<float> IDPerfMonZmumu::m_Refit1_pt |
|
private |
◆ m_Refit1_qoverp
std::vector<float> IDPerfMonZmumu::m_Refit1_qoverp |
|
private |
◆ m_Refit1_sigma_d0
std::vector<float> IDPerfMonZmumu::m_Refit1_sigma_d0 |
|
private |
◆ m_Refit1_sigma_pt
std::vector<float> IDPerfMonZmumu::m_Refit1_sigma_pt |
|
private |
◆ m_Refit1_sigma_qoverp
std::vector<float> IDPerfMonZmumu::m_Refit1_sigma_qoverp |
|
private |
◆ m_Refit1_sigma_z0
std::vector<float> IDPerfMonZmumu::m_Refit1_sigma_z0 |
|
private |
◆ m_Refit1_z0
std::vector<float> IDPerfMonZmumu::m_Refit1_z0 |
|
private |
◆ m_refit1Tree
TTree* IDPerfMonZmumu::m_refit1Tree |
|
private |
◆ m_refit1TreeFolder
std::string IDPerfMonZmumu::m_refit1TreeFolder |
|
private |
◆ m_refit1TreeName
std::string IDPerfMonZmumu::m_refit1TreeName |
|
private |
◆ m_Refit2_d0
std::vector<float> IDPerfMonZmumu::m_Refit2_d0 |
|
private |
◆ m_Refit2_eta
std::vector<float> IDPerfMonZmumu::m_Refit2_eta |
|
private |
◆ m_Refit2_phi
std::vector<float> IDPerfMonZmumu::m_Refit2_phi |
|
private |
◆ m_Refit2_pt
std::vector<float> IDPerfMonZmumu::m_Refit2_pt |
|
private |
◆ m_Refit2_qoverp
std::vector<float> IDPerfMonZmumu::m_Refit2_qoverp |
|
private |
◆ m_Refit2_sigma_d0
std::vector<float> IDPerfMonZmumu::m_Refit2_sigma_d0 |
|
private |
◆ m_Refit2_sigma_pt
std::vector<float> IDPerfMonZmumu::m_Refit2_sigma_pt |
|
private |
◆ m_Refit2_sigma_qoverp
std::vector<float> IDPerfMonZmumu::m_Refit2_sigma_qoverp |
|
private |
◆ m_Refit2_sigma_z0
std::vector<float> IDPerfMonZmumu::m_Refit2_sigma_z0 |
|
private |
◆ m_Refit2_z0
std::vector<float> IDPerfMonZmumu::m_Refit2_z0 |
|
private |
◆ m_refit2Tree
TTree* IDPerfMonZmumu::m_refit2Tree |
|
private |
◆ m_refit2TreeFolder
std::string IDPerfMonZmumu::m_refit2TreeFolder |
|
private |
◆ m_refit2TreeName
std::string IDPerfMonZmumu::m_refit2TreeName |
|
private |
◆ m_runNumber
unsigned int IDPerfMonZmumu::m_runNumber {} |
|
private |
◆ m_SecondMuonPtCut
double IDPerfMonZmumu::m_SecondMuonPtCut {15.} |
|
private |
◆ m_selTool
◆ m_skipMS
bool IDPerfMonZmumu::m_skipMS {} |
|
private |
◆ m_storeZmumuNtuple
bool IDPerfMonZmumu::m_storeZmumuNtuple {true} |
|
private |
◆ m_sTriggerChainName
std::string IDPerfMonZmumu::m_sTriggerChainName |
|
private |
◆ m_trackContainerName
◆ m_trackParticleName
std::string IDPerfMonZmumu::m_trackParticleName |
|
private |
◆ m_TrackRefitter1
◆ m_TrackRefitter2
◆ m_trackToVertexIPEstimator
◆ m_trackToVertexTool
◆ m_triggerDecision
◆ m_triggerMatching
◆ m_triggerName
std::string IDPerfMonZmumu::m_triggerName |
|
private |
◆ m_triggerPrescale
int IDPerfMonZmumu::m_triggerPrescale {} |
|
private |
◆ m_Trk2VtxAssociationTool
◆ m_Truth_d0
std::vector<float> IDPerfMonZmumu::m_Truth_d0 |
|
private |
◆ m_Truth_eta
std::vector<float> IDPerfMonZmumu::m_Truth_eta |
|
private |
◆ m_Truth_parent
std::vector<int> IDPerfMonZmumu::m_Truth_parent |
|
private |
◆ m_Truth_phi
std::vector<float> IDPerfMonZmumu::m_Truth_phi |
|
private |
◆ m_Truth_pt
std::vector<float> IDPerfMonZmumu::m_Truth_pt |
|
private |
◆ m_Truth_qoverp
std::vector<float> IDPerfMonZmumu::m_Truth_qoverp |
|
private |
◆ m_Truth_z0
std::vector<float> IDPerfMonZmumu::m_Truth_z0 |
|
private |
◆ m_truthLinkVecName
std::string IDPerfMonZmumu::m_truthLinkVecName |
|
private |
◆ m_truthName
std::string IDPerfMonZmumu::m_truthName |
|
private |
◆ m_truthTree
TTree* IDPerfMonZmumu::m_truthTree |
|
private |
◆ m_truthTreeFolder
std::string IDPerfMonZmumu::m_truthTreeFolder |
|
private |
◆ m_truthTreeName
std::string IDPerfMonZmumu::m_truthTreeName |
|
private |
◆ m_useCustomMuonSelector
bool IDPerfMonZmumu::m_useCustomMuonSelector {} |
|
private |
◆ m_useTrackSelectionTool
bool IDPerfMonZmumu::m_useTrackSelectionTool {} |
|
private |
◆ m_UseTrigger
bool IDPerfMonZmumu::m_UseTrigger {true} |
|
private |
◆ m_validationMode
bool IDPerfMonZmumu::m_validationMode |
|
private |
< boolean to switch to validation mode
validation tree name - to be acessed by this from root
Definition at line 163 of file IDPerfMonZmumu.h.
◆ m_ValidationTreeDescription
std::string IDPerfMonZmumu::m_ValidationTreeDescription |
|
private |
< validation tree description - second argument in TTree
stream/folder to for the TTree to be written out
Definition at line 179 of file IDPerfMonZmumu.h.
◆ m_varHandleArraysDeclared
◆ m_vertexKey
◆ m_vhka
◆ m_xZmm
◆ m_Z0GapCut
double IDPerfMonZmumu::m_Z0GapCut {5.} |
|
private |
The documentation for this class was generated from the following files:
double m_positive_sigma_qoverp
double m_negative_d0_manualBS
std::vector< float > m_IDTrack_sigma_z0
ToolHandle< InDet::IInDetTrackSelectionTool > m_selTool
The track selection Tool.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
double m_el_positive1_z0_err
std::string m_IDTreeFolder
std::string m_defaultTreeName
std::string m_combTreeName
std::vector< int > m_nSCThits
std::vector< float > m_Refit1_qoverp
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
ToolHandle< Reco::ITrackToVertex > m_trackToVertexTool
tool to extrapolate tracks to BL
std::vector< int > m_nBLhits
ToolHandle< Trig::IMatchingTool > m_triggerMatching
std::string m_truthTreeFolder
std::vector< float > m_Refit1_phi
std::string m_truthLinkVecName
TrackParticle input name.
ToolHandle< CP::ITrackVertexAssociationTool > m_Trk2VtxAssociationTool
const xAOD::TrackParticle * getELTrack(unsigned int uPart)
std::vector< int > m_nPIXhits
Scalar phi() const
phi method
const TrackParticle * trackParticle(TrackParticleType type) const
Returns a pointer (which can be NULL) to the TrackParticle used in identification of this muon.
std::vector< float > m_Refit1_sigma_pt
void SetZ0GapCut(double newvalue)
std::vector< float > m_Truth_d0
std::vector< float > m_CBTrack_d0
void SetMuonSelectionTool(ToolHandle< CP::IMuonSelectionTool > mst)
float charge() const
Returns the charge.
std::vector< float > m_Refit2_z0
Scalar eta() const
pseudorapidity method
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
ToolHandle< IegammaTrkRefitterTool > m_TrackRefitter2
The track refitter.
std::vector< float > m_CBTrack_phi
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
std::vector< float > m_Truth_qoverp
SG::ReadHandleKey< xAOD::EventInfo > m_EventInfoKey
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
std::string m_FourMuTreeName
std::vector< float > m_IDTrack_sigma_qoverp
std::vector< float > m_CBTrack_eta
const xAOD::TrackParticle * getMSTrack(unsigned int uPart)
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackContainerName
IDTtacks.
float z0() const
Returns the parameter.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
std::vector< float > definingParametersCovMatrixVec() const
Returns the length 6 vector containing the elements of defining parameters covariance matrix.
void SetMassWindowHigh(double newvalue)
StatusCode CheckTriggerStatusAndPrescale()
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ numberOfTRTHits
number of TRT hits [unit8_t].
double m_el_positive1_d0_err
std::vector< float > m_CBTrack_sigma_qoverp
std::vector< float > m_CBTrack_pt
unsigned int getNegMuon(ZTYPE eType)
std::vector< float > m_Truth_pt
std::string m_refit1TreeFolder
std::vector< float > m_Refit2_eta
double m_LeadingMuonPtCut
@ numberOfBLayerHits
these are the hits in the first pixel layer, i.e.
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
used for truth parameters
double m_positive_d0_manualBS
float d0() const
Returns the parameter.
double m_positive_z0_manualBS
ToolHandle< IegammaTrkRefitterTool > m_TrackRefitter1
The track refitter.
void SetMaxLumiBlock(int newlumiblock)
std::vector< float > m_Refit1_z0
virtual void setOwner(IDataHandleHolder *o)=0
void doIPSelection(bool doIPsel)
std::vector< float > m_IDTrack_d0
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
bool m_validationMode
< boolean to switch to validation mode
std::string m_trackParticleName
Track(Particle)TruthCollection input name.
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
unsigned int getNegMuon(int eType)
const Trk::Perigee & perigeeParameters() const
Returns the Trk::MeasuredPerigee track parameters.
std::string m_ValidationTreeDescription
< validation tree description - second argument in TTree
std::string m_refit2TreeFolder
StatusCode FillTruthParameters(const xAOD::TrackParticle *track)
double m_el_negative1_z0_err
virtual StatusCode sysInitialize() override
Override sysInitialize.
std::vector< float > m_Refit1_sigma_z0
std::vector< float > m_Refit2_qoverp
std::vector< float > m_CBTrack_sigma_pt
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
unsigned int getPosMuon(int eType)
std::vector< float > m_IDTrack_phi
@ OWN_ELEMENTS
this data object owns its elements
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
double m_positive_2_z0_err
double m_el_positive2_d0_err
std::vector< float > m_CBTrack_sigma_z0
std::string m_combTreeFolder
::StatusCode StatusCode
StatusCode definition for legacy code.
Class describing a truth particle in the MC record.
std::vector< float > m_Refit1_sigma_qoverp
std::vector< float > m_IDTrack_eta
Principal data object for Missing ET.
void SetLeadingMuonPtCut(double newvalue)
std::vector< float > m_IDTrack_z0
std::string m_MuonQualityName
std::vector< float > m_Refit1_eta
std::vector< float > m_IDTrack_sigma_d0
double m_negative_d0_PVerr
std::vector< float > m_IDTrack_sigma_pt
std::vector< float > m_CBTrack_sigma_d0
std::vector< int > m_nTRThits
unsigned int m_lumi_block
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
std::vector< float > m_Refit1_pt
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
@ numberOfSCTHoles
number of SCT holes [unit8_t].
std::string m_outputTracksName
std::vector< float > m_Refit2_phi
void doMCPSelection(bool doMCP)
const xAOD::Muon * getCombMuon(unsigned int uPart)
double m_el_negative2_z0_err
std::vector< float > m_Refit2_d0
double m_positive_2_d0_err
StatusCode FillRecParametersSimple(const Trk::Track *track, float charge, const xAOD::Vertex *vertex)
const xAOD::TruthParticle * getTruthParticle(const xAOD::IParticle &p)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
ElementLink implementation for ROOT usage.
void ResetCommonNtupleVectors()
double m_negative_2_d0_err
const Perigee * perigeeParameters() const
return Perigee.
Class describing a truth vertex in the MC record.
Container for xAOD::MissingET_v1 objects.
void doIPSelection(bool doIPsel)
double pT() const
Access method for transverse momentum.
std::vector< float > m_Truth_z0
float qOverP() const
Returns the parameter.
double m_negative_z0_PVerr
const ParametersCovMatrix_t definingParametersCovMatrix() const
Returns the 5x5 symmetric matrix containing the defining parameters covariance matrix.
void setDebugMode(bool debug)
bool m_useCustomMuonSelector
void SetMuonSelectionTool(ToolHandle< CP::IMuonSelectionTool > mst)
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexKey
void setDebugMode(bool debug)
void doIsoSelection(bool doIso)
std::vector< float > m_Truth_phi
double charge(const T &p)
std::string m_MSTreeFolder
std::vector< float > m_Refit2_sigma_pt
void setContainer(PerfMonServices::CONTAINERS container)
value_type push_back(value_type pElem)
Add an element to the end of the collection.
StatusCode initialize(bool used=true)
std::vector< float > m_Refit1_sigma_d0
Eigen::Matrix< double, 3, 1 > Vector3D
ToolHandle< CP::IMuonSelectionTool > m_muonSelector
used to pass a custom muon selector
std::string m_sTriggerChainName
ToolHandle< Trk::ITrackToVertexIPEstimator > m_trackToVertexIPEstimator
Needed for IP resolution studies.
std::string m_refit1TreeName
void SetSecondMuonPtCut(double newvalue)
void SetMuonQuality(const std::string &newname)
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
std::string m_commonTreeFolder
void SetLeadingMuonPtCut(double newvalue)
const Amg::Vector3D & momentum() const
Access method for the momentum.
double m_positive_d0_PVerr
DataObjIDColl m_extendedExtraObjects
void SetMinLumiBlock(int newlumiblock)
double m_el_positive2_z0_err
StatusCode FillRecParametersTP(const xAOD::TrackParticle *trackp, const xAOD::TrackParticle *trackp_for_unbias, double charge, const xAOD::Vertex *vertex=nullptr)
void Clear4MuNtupleVariables()
bool m_useTrackSelectionTool
Class describing a Vertex.
#define ATH_MSG_WARNING(x)
double m_el_negative1_d0_err
std::vector< float > m_CBTrack_z0
StatusCode RunFourLeptonAnalysis()
std::string m_triggerName
void SetOpeningAngleCut(double newvalue)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
void doMCPSelection(bool doMCP)
double m_negative_sigma_qoverp
int GetVertexElec(unsigned int uPart)
std::vector< float > m_Refit1_d0
@ numberOfContribPixelLayers
number of contributing layers of the pixel detector [unit8_t].
@ numberOfSCTHits
number of hits in SCT [unit8_t].
std::vector< float > m_Truth_eta
std::vector< float > m_Refit2_sigma_qoverp
double eta() const
Access method for pseudorapidity - from momentum.
ToolHandle< Trk::IExtrapolator > m_extrapolator
void SetMassWindowLow(double newvalue)
AthAlgorithm()
Default constructor:
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Class describing a TrackParticle.
void ExtractIDHitsInformation(const xAOD::Muon *muon_pos, const xAOD::Muon *muon_neg)
const Trk::Track * track() const
Returns a pointer (which can be NULL) to the Trk::Track which was used to make this TrackParticle.
ToolHandle< Trig::TrigDecisionTool > m_triggerDecision
TH1F * m_h_cutflow
link vector to map HepMC onto xAOD truth
void SetSkipMSCheck(bool value)
double m_negative_2_z0_err
double m_positive_z0_PVerr
void SetOpeningAngleCut(double newvalue)
void SetMassWindowHigh(double newvalue)
std::vector< float > m_Refit2_pt
constexpr int pow(int base, int exp) noexcept
std::vector< int > m_Truth_parent
std::vector< float > m_Refit2_sigma_d0
void SetZ0GapCut(double newvalue)
std::string m_commonTreeName
float theta() const
Returns the parameter, which has range 0 to .
size_type size() const noexcept
Returns the number of elements in the collection.
std::string m_truthTreeName
unsigned int getPosMuon(ZTYPE eType)
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
std::vector< float > m_Refit2_sigma_z0
double m_negative_z0_manualBS
std::vector< float > m_IDTrack_qoverp
std::string m_refit2TreeName
void SetSecondMuonPtCut(double newvalue)
void setContainer(PerfMonServices::CONTAINERS container)
void SetMassWindowLow(double newvalue)
std::vector< float > m_CBTrack_qoverp
void doIsoSelection(bool doIso)
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
std::string m_defaultTreeFolder
const xAOD::TrackParticle * getIDTrack(unsigned int uPart)
std::vector< float > m_IDTrack_pt
virtual bool Reco(int theLumiBlock=0)
double m_el_negative2_d0_err
double m_negative_sigma_pt
std::string m_FourMuTreeFolder
Root Validation Tree.
double m_positive_sigma_pt