|
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 |
|
bool | m_doIsoSelection |
|
bool | m_doIPSelection |
|
bool | m_doMCPSelection |
|
double | m_MassWindowLow |
|
double | m_MassWindowHigh |
|
double | m_LeadingMuonPtCut |
|
double | m_SecondMuonPtCut |
|
double | m_OpeningAngleCut |
|
double | m_Z0GapCut |
|
bool | m_isMC |
|
bool | m_doRefit |
|
bool | m_useTrackSelectionTool |
|
bool | m_doIP |
|
bool | m_doFourMuAnalysis |
|
bool | m_storeZmumuNtuple |
|
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 {} |
|
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 312 of file IDPerfMonZmumu.cxx.
314 m_h_cutflow =
new TH1F(
"h_cutflow",
"cut flow histogram",11, -0.5, 9.5);
432 bool isTreeNone =
false;
433 if (
m_IDTreeName.find(
"none") != std::string::npos) isTreeNone =
true;
607 if (
m_combTreeName.find(
"none") != std::string::npos) isTreeNone =
true;
663 if (
m_MSTreeName.find(
"none") != std::string::npos) isTreeNone =
true;
665 ATH_MSG_INFO(
"initialize() ** defining IDPerfMon MSTree ");
828 ATH_MSG_INFO(
"initialize() Going to register the mu+mu- trees");
829 ITHistSvc* tHistSvc =
nullptr;
830 if (service(
"THistSvc",tHistSvc).isFailure()){
831 ATH_MSG_ERROR(
"initialize() Could not find Hist Service -> Switching ValidationMode Off !");
837 ATH_MSG_INFO(
"initialize() commonTree succesfully registered!");
840 ATH_MSG_ERROR(
"initialize() Could not register the validation commonTree -> Switching ValidationMode Off !");
848 ATH_MSG_INFO(
"initialize() IDTree succesfully registered!");
851 ATH_MSG_ERROR(
"initialize() Could not register the validation IDTree -> Switching ValidationMode Off !");
864 ATH_MSG_INFO(
"initialize() CBTree succesfully registered!");
867 ATH_MSG_ERROR(
"initialize() Could not register the validation CBTree -> Switching ValidationMode Off !");
881 ATH_MSG_INFO(
"initialize() MSTree succesfully registered!");
884 ATH_MSG_ERROR(
"initialize() Could not register the validation MSTree -> Switching ValidationMode Off !");
894 ATH_MSG_INFO(
"initialize() Refit1 Tree succesfully registered!");
897 ATH_MSG_ERROR(
"initialize() Could not register the validation Tree -> Switching ValidationMode Off !");
905 ATH_MSG_INFO(
"initialize() Refit2 Tree succesfully registered!");
908 ATH_MSG_ERROR(
"initialize() Could not register the validation Tree -> Switching ValidationMode Off !");
917 ATH_MSG_INFO(
"initialize() truthTree Tree succesfully registered!");
920 ATH_MSG_ERROR(
"initialize() Could not register the validation truth Tree -> Switching ValidationMode Off !");
928 ATH_MSG_INFO(
"initialize() FourMu Tree succesfully registered!");
931 ATH_MSG_ERROR(
"initialize() Could not register the validation FourMu Tree -> Switching ValidationMode Off !");
937 return StatusCode::SUCCESS;
◆ CheckTriggerStatusAndPrescale()
StatusCode IDPerfMonZmumu::CheckTriggerStatusAndPrescale |
( |
| ) |
|
|
private |
Definition at line 2292 of file IDPerfMonZmumu.cxx.
2299 return StatusCode::FAILURE;
2305 float thisEventTriggerPrescale = 999999.9;
2306 float thisHLTTriggerPrescale = 999999.9;
2307 bool thisHLTIsPassed =
false;
2308 std::string thisHLTTriggerName;
2309 std::string thisEventTriggerName;
2312 const std::vector<std::string> myHLTtriglist =
m_triggerDecision->getChainGroup(
"HLT_mu.*, HLT_2mu.*")->getListOfTriggers();
2313 for (
int i=0;
i < (
int) myHLTtriglist.size();
i++) {
2315 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() );
2318 thisHLTIsPassed =
true;
2319 float thisprescale =
m_triggerDecision->getChainGroup(myHLTtriglist.at(
i))->getPrescale();
2320 if (thisprescale < thisHLTTriggerPrescale) {
2321 thisHLTTriggerPrescale = thisprescale;
2322 thisHLTTriggerName = myHLTtriglist.at(
i);
2326 if (thisHLTTriggerPrescale < 1) thisHLTTriggerPrescale = 1;
2327 ATH_MSG_DEBUG(
"Event HLT trigger prescale = " << thisHLTTriggerPrescale);
2330 if (thisHLTIsPassed) {
2335 return StatusCode::FAILURE;
2339 thisEventTriggerPrescale = thisHLTTriggerPrescale;
2340 thisEventTriggerName = thisHLTTriggerName;
2341 ATH_MSG_DEBUG(
"Event trigger prescale = " << thisEventTriggerPrescale);
2342 ATH_MSG_DEBUG(
"Event trigger name = " << thisEventTriggerName);
2347 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);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode IDPerfMonZmumu::execute |
( |
| ) |
|
|
virtual |
– START 4 lepton analysis
– END 4 lepton analysis
Definition at line 949 of file IDPerfMonZmumu.cxx.
954 if(eventInfo.isValid()) {
958 m_event_mu = eventInfo->actualInteractionsPerCrossing();
962 ATH_MSG_DEBUG(
" IDPerfMonZmumu::execute evtStore->retrieve (eventInfo) failed .. trying another strategy.. ");
964 if (eventInfo2.isValid()) {
968 m_event_mu = eventInfo2->actualInteractionsPerCrossing();
973 ATH_MSG_ERROR(
"** IDPerfMonZmumu::execute ** Could not retrieve event info.");
979 ATH_MSG_DEBUG(
" ** IDPerfMonZmumu::execute ** calling FourLeptonAnalysis()...");
981 if (fourLeptAnaStatus.isSuccess())
ATH_MSG_INFO (
" ** IDPerfMonZmumu::execute ** RunFourLeptonAnalysis() SUCCESS -> found a new event");
987 ATH_MSG_DEBUG(
" ** IDPerfMonZmumu::execute ** calling dimuon analysis m_xZmm.Reco()...");
998 <<
" Failed dimuon reconstruction. m_xZmm.Reco() returned FALSE ");
999 return StatusCode::SUCCESS;
1008 if (isTriggerPassed == StatusCode::SUCCESS) {
1012 ATH_MSG_DEBUG(
"Trigger Failed -> reject event --> leave event");
1013 return StatusCode::SUCCESS;
1025 StatusCode success_pos = StatusCode::FAILURE;
1026 StatusCode success_neg = StatusCode::FAILURE;
1028 if (muon_pos && muon_neg) {
1032 ATH_MSG_INFO(
"** IDPerfMonZmumu::execute ** Retrieving InnerDetectorTrackParticles of the accepted muons");
1033 ppos_comb = muon_pos->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle);
1034 pneg_comb = muon_neg->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle);
1036 if (!ppos_comb || !pneg_comb) {
1037 ATH_MSG_WARNING(
"** IDPerfMonZmumu::execute ** InnerDetectorTrackParticles are requested but they are not present. Exiting event.");
1038 return StatusCode::SUCCESS;
1043 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Retrieving CombinedTrackParticles of the accepted muons");
1044 ppos_comb = muon_pos->
trackParticle(xAOD::Muon::CombinedTrackParticle);
1045 pneg_comb = muon_neg->
trackParticle(xAOD::Muon::CombinedTrackParticle);
1047 if (!ppos_comb || !pneg_comb){
1048 ATH_MSG_WARNING(
"** IDPerfMonZmumu::execute ** CombinedTrackParticles are requested but they are not present. Exiting event.");
1049 return StatusCode::SUCCESS;
1055 if (ppos_comb && pneg_comb) {
1064 const EventContext& ctx = Gaudi::Hive::currentContext();
1066 for (
const auto V : *vertices) {
1076 if (!ppos_comb_v || !pneg_comb_v){
1077 ATH_MSG_WARNING(
"Some or all of the requested particles have no vertex. Exiting event");
1078 return StatusCode::SUCCESS;
1082 ATH_MSG_WARNING(
"** IDPerfMonZmumu::execute ** Could not find CombinedMuon pos/neg in event"
1086 return StatusCode::SUCCESS;
1097 <<
" Invariant mass = " <<
m_xZmm.
GetInvMass() <<
" GeV ** some preliminaries are due though...");
1102 ATH_MSG_DEBUG(
"Exiting because the ID segment of muon_pos do not pass the TrackSelection");
1103 return StatusCode::SUCCESS;
1106 ATH_MSG_DEBUG(
"Exiting because the ID segment of muon_neg do not pass the TrackSelection");
1107 return StatusCode::SUCCESS;
1109 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Good news ** pos and neg muon->trackParticle(xAOD::Muon::InnerDetectorTrackParticle) pass the trackSelection :)");
1112 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Track selection is not in use ");
1124 muon_pos->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle),
1128 muon_neg->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle),
1132 if (success_pos && success_neg) {
1147 <<
" pt: " << muon_pos->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle)->
pt()
1155 <<
" pt: " << muon_neg->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle)->
pt()
1187 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** not filling IDTracks in combTree due to problems with muon_xxx->trackParticle(xAOD::Muon::InnerDetectorTrackParticle)");
1195 muon_pos->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle),
1200 muon_neg->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle),
1205 if (success_pos && success_neg) {
1260 muon_pos->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle),
1265 muon_neg->
trackParticle(xAOD::Muon::InnerDetectorTrackParticle),
1268 if (success_pos && success_neg) {
1301 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Going to build TrackCollections: muonTrks, muonTrksRefit1 and muonTrksRefit2");
1306 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Going to refit and store the track parameters ");
1316 const EventContext& ctx = Gaudi::Hive::currentContext();
1317 if( ppos_comb->
track() ) {
1322 if (fitStatus.isFailure()) {
1323 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Track Refit1 Failed for ppos_comb->track(). Skipping Event");
1324 return StatusCode::SUCCESS;
1326 refit1MuonTrk1 = fitResult.refittedTrack.release();
1327 muonTrksRefit1->
push_back(refit1MuonTrk1);
1328 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Track Refit1 Success of ppos_comb->track()."
1330 <<
" track refit pt: " << refit1MuonTrk1->perigeeParameters()->pT() );
1335 if (fitStatus.isFailure()) {
1336 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Track Refit2 Failed for ppos_comb->track(). Skipping Event");
1337 return StatusCode::SUCCESS;
1339 refit2MuonTrk1 = fitResult.refittedTrack.release();
1340 muonTrksRefit2->
push_back(refit2MuonTrk1);
1341 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Track Refit2 Success of ppos_comb->track()."
1343 <<
" track refit pt: " << refit1MuonTrk1->perigeeParameters()->pT() );
1347 if( pneg_comb->
track() ) {
1352 if (fitStatus.isFailure()) {
1353 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Track Refit1 Failed. Skipping Event");
1354 return StatusCode::SUCCESS;
1356 refit1MuonTrk2 = fitResult.refittedTrack.release();
1357 muonTrksRefit1->
push_back(refit1MuonTrk2);
1358 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Track Refit1 Success of pneg_comb->track()."
1360 <<
" track refit pt: " << refit1MuonTrk2->perigeeParameters()->pT() );
1365 if (fitStatus.isFailure()) {
1367 return StatusCode::SUCCESS;
1369 refit2MuonTrk2 = fitResult.refittedTrack.release();
1370 muonTrksRefit2->
push_back(refit2MuonTrk2);
1371 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** Track Refit2 Success of pneg_comb->track()."
1373 <<
" track refit pt: " << refit2MuonTrk2->perigeeParameters()->pT() );
1376 if (muonTrksRefit1->
size() != 2)
ATH_MSG_WARNING(
"** IDPerfMonZmumu::execute ** WARNING ** size of muonTrksRefit1: " << muonTrksRefit1->
size());
1377 if (muonTrksRefit2->
size() != 2)
ATH_MSG_WARNING(
"** IDPerfMonZmumu::execute ** WARNING ** size of muonTrksRefit2: " << muonTrksRefit2->
size());
1385 if (
sc.isSuccess()) {
1392 if (muonTrksRefit1->
size() > 1) {
1394 if (
sc.isSuccess()) {
1401 if (muonTrksRefit2->
size() > 1) {
1403 if (
sc.isSuccess()) {
1412 if (muonTrksRefit1->
size()<2) {
1413 ATH_MSG_WARNING(
"** IDPerfMonZmumu::execute ** Refit1 muon tracks are missing!");
1416 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::execute ** going to fill refit1tree ");
1421 if (success_pos && success_neg) {
1467 if (muonTrksRefit2->
size()<2) {
1468 ATH_MSG_WARNING(
"** IDPerfMonZmumu::execute ** Refit2 muon tracks are missing!");
1476 if (success_pos && success_neg) {
1529 return StatusCode::SUCCESS;
1536 bool truthStatusIsGood =
true;
1538 truthStatusIsGood =
false;
1542 truthStatusIsGood =
false;
1545 if (truthStatusIsGood) {
1592 bool dofill =
false;
1628 for (
auto muon : *muons) {
1653 if (scid.isSuccess()) {
1664 return StatusCode::SUCCESS;
◆ ExtractIDHitsInformation()
Definition at line 2773 of file IDPerfMonZmumu.cxx.
2780 int nBLhits, nhitsPIX, nhitsSCT, nhitsTRT, nContribPixLayers;
2781 int nPIXholes, nSCTholes;
2782 if (IDTrkMuPos && IDTrkMuNeg) {
2800 <<
" nBLhits: " << nBLhits
2801 <<
" nhitsPIX: " << nhitsPIX
2802 <<
" nPIXLayers: " << nContribPixLayers
2803 <<
" nhitsSCT: " << nhitsSCT
2804 <<
" Silicon holes: " << nPIXholes + nSCTholes
2805 <<
" nhitsTRT: " << nhitsTRT);
2821 <<
" nBLhits: " << nBLhits
2822 <<
" nhitsPIX: " << nhitsPIX
2823 <<
" nPIXLayers: " << nContribPixLayers
2824 <<
" nhitsSCT: " << nhitsSCT
2825 <<
" Silicon holes: " << nPIXholes + nSCTholes
2826 <<
" 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 1810 of file IDPerfMonZmumu.cxx.
1813 ATH_MSG_DEBUG(
"* FillRecParameters * Empty Track: track. Skipping.");
1814 return StatusCode::FAILURE;
1818 ATH_MSG_DEBUG(
"* FillRecParameters * Empty Track: trackp_for_unbias. Skipping.");
1819 return StatusCode::FAILURE;
1835 double d0_err = 999.;
1836 double z0_err = 999.;
1844 if (trkPerigee !=
nullptr){
1847 px = trkPerigee->momentum().x();
1848 py = trkPerigee->momentum().y();
1849 pt = std::abs(trkPerigee->pT());
1850 pz = trkPerigee->momentum().z();
1852 eta= trkPerigee->eta();
1870 px = atBL->momentum().x();
1871 py = atBL->momentum().y();
1872 pt = std::abs(atBL->pT());
1873 pz = atBL->momentum().z();
1874 eta= trkPerigee->eta();
1884 ATH_MSG_WARNING(
"FillRecParameters::Failed extrapolation to the BeamLine");
1888 TLorentzVector vtrack = TLorentzVector (trkPerigee->momentum().x(),
1889 trkPerigee->momentum().y(),
1890 trkPerigee->momentum().z(),
1891 trkPerigee->momentum().mag());
1892 float trkd0 = trkPerigee->parameters()[
Trk::d0];
1893 float trkz0 = trkPerigee->parameters()[
Trk::z0];
1894 float bsX = position.x();
1895 float bsY = position.y();
1896 float bsZ = position.z();
1897 float btiltX = beamSpotHandleRec->beamTilt(0);
1898 float btiltY = beamSpotHandleRec->beamTilt(1);
1900 float beamX = bsX +
std::tan(btiltX) * (trkz0-bsZ);
1901 float beamY = bsY +
std::tan(btiltY) * (trkz0-bsZ);
1902 float beamD0 = ( -
std::sin(vtrack.Phi())*beamX +
std::cos(vtrack.Phi())*beamY );
1903 float d0bscorr = trkd0 - beamD0;
1904 float z0bscorr = trkz0 - bsZ;
1907 std::unique_ptr<Trk::ImpactParametersAndSigma> iPandSigma(
nullptr);
1910 if( iPandSigma==0 ){
1911 ATH_MSG_WARNING (
"FillRecParameters::trackToVertexIPEstimator failed !");
1912 return StatusCode::FAILURE;
1915 ATH_MSG_DEBUG(
"FillRecParameters::trackToVertexIPEstimator success !");
1916 PVd0 = iPandSigma->IPd0;
1917 PVd0res = iPandSigma->PVsigmad0;
1919 PVz0 = iPandSigma->IPz0;
1920 PVz0res = iPandSigma->PVsigmaz0;
1924 ATH_MSG_INFO(
" FillRecParameters::trackToVertexIPEstimator vertex does exist ");
1953 ATH_MSG_DEBUG(
"(Filled charge == 1 ) (reco)-> px : "<<
px <<
" py: "<<
py <<
" pz: "<<
pz <<
" d0: "<<
d0<<
" z0: "<<
z0);
1974 ATH_MSG_DEBUG(
"(Filled charge == -1 ) (reco)-> px : "<<
px <<
" py: "<<
py <<
" pz: "<<
pz <<
" d0: "<<
d0<<
" z0: "<<
z0 );
1977 return StatusCode::SUCCESS;
◆ FillRecParametersSimple()
Definition at line 1980 of file IDPerfMonZmumu.cxx.
1983 ATH_MSG_DEBUG(
"* FillRecParametersSimple * Empty Track: track. Skipping.");
1984 return StatusCode::FAILURE;
1988 if (not trkPerigee) {
1989 ATH_MSG_ERROR(
"trkPerigee pointer is null in IDPerfMonZmumu::FillRecParametersSimple");
1990 return StatusCode::FAILURE;
2001 double d0_err = 999.;
2002 double z0_err = 999.;
2007 px = trkPerigee->momentum().x();
2008 py = trkPerigee->momentum().y();
2009 pt = std::abs(trkPerigee->pT());
2010 pz = trkPerigee->momentum().z();
2012 eta= trkPerigee->eta();
2020 Amg::Vector3D position (eventInfo->beamPosX(), eventInfo->beamPosY(), eventInfo->beamPosZ());
2021 TLorentzVector vtrack = TLorentzVector (trkPerigee->momentum().x(),
2022 trkPerigee->momentum().y(),
2023 trkPerigee->momentum().z(),
2024 trkPerigee->momentum().mag());
2025 float trkd0 = trkPerigee->parameters()[
Trk::d0];
2026 float trkz0 = trkPerigee->parameters()[
Trk::z0];
2027 float bsX = position.x();
2028 float bsY = position.y();
2029 float bsZ = position.z();
2030 float btiltX = eventInfo->beamTiltXZ();
2031 float btiltY = eventInfo->beamTiltYZ();
2033 float beamX = bsX +
std::tan(btiltX) * (trkz0-bsZ);
2034 float beamY = bsY +
std::tan(btiltY) * (trkz0-bsZ);
2035 float beamD0 = ( -
std::sin(vtrack.Phi())*beamX +
std::cos(vtrack.Phi())*beamY );
2036 float d0bscorr = trkd0 - beamD0;
2037 float z0bscorr = trkz0 - bsZ -
vertex->z();
2070 return StatusCode::SUCCESS;
◆ FillRecParametersTP()
Definition at line 1668 of file IDPerfMonZmumu.cxx.
1675 return StatusCode::FAILURE;
1679 return StatusCode::FAILURE;
1696 double sigma_pt = 0;
1698 double sigma_qOverP = 1.;
1701 px = trackp->
p4().Px();
1702 py = trackp->
p4().Py();
1703 pt = trackp->
p4().Pt();
1704 pz = trackp->
p4().Pz();
1705 phi= trackp->
p4().Phi();
1706 eta= trackp->
p4().Eta();
1709 qoverp = trackp->
qOverP();
1718 double sigma_pt_term1 = (
sin(trackp->
theta()) /
pow(qoverp,2)) * sigma_qOverP;
1719 double sigma_pt_term2 = (1./qoverp) *
cos(trackp->
theta()) * sigma_theta;
1720 double sigma_pt_term3 = (
cos(trackp->
theta()) /
pow(qoverp,2)) * sigma_theta * sigma_qOverP;
1726 return StatusCode::FAILURE;
1729 ATH_MSG_WARNING(
"in FillRecParametersTP. WARNING: m_trackToVertexIPEstimator is NULL");
1730 return StatusCode::FAILURE;
1734 std::unique_ptr<Trk::ImpactParametersAndSigma> iPandSigma(
nullptr);
1741 ATH_MSG_DEBUG(
"return from the trackToVertexIPEstimator->estimate()");
1744 ATH_MSG_WARNING (
"FillRecParametersTP::trackToVertexIPEstimator failed !");
1745 return StatusCode::FAILURE;
1748 ATH_MSG_DEBUG(
"FillRecParametersTP::trackToVertexIPEstimator success !");
1749 PVd0 = iPandSigma->IPd0;
1750 PVd0res = iPandSigma->PVsigmad0;
1751 d0res = iPandSigma->sigmad0;
1752 PVz0 = iPandSigma->IPz0;
1753 PVz0res = iPandSigma->PVsigmaz0;
1754 z0res = iPandSigma->sigmaz0;
1779 <<
" d0: "<<
m_positive_d0 <<
" d0res : "<< d0res <<
" PVd0res : "<< PVd0res <<
" z0: "<<
m_positive_z0 <<
" z0res : " << z0res <<
" PVz0res : "<< PVz0res );
1781 }
else if (
charge == -1) {
1801 ATH_MSG_DEBUG(
"(Filled charge == -1 ) (reco)-> px : "<<
px <<
" py: "<<
py <<
" pt: " <<
pt <<
" pz: "<<
pz
1802 <<
" d0: "<<
m_negative_d0 <<
" d0res : "<< d0res <<
" PVd0res : "<< PVd0res <<
" z0: "<<
m_negative_z0 <<
" z0res : " << z0res <<
" PVz0res : "<< PVz0res );
1805 return StatusCode::SUCCESS;
◆ FillTruthParameters()
Definition at line 2074 of file IDPerfMonZmumu.cxx.
2077 if (!trackParticle ){
2078 ATH_MSG_WARNING(
"-- FillTruthParameters -- Empty Trackparticle. Skipping.");
2079 return StatusCode::FAILURE;
2083 float result = truthMatchProbabilityAcc.withDefault(*trackParticle,
2084 std::numeric_limits<float>::quiet_NaN());
2085 ATH_MSG_DEBUG(
" -- FillTruthParameters -- TruthMatchProbablity of trackpartile : > " <<
result);
2091 ATH_MSG_DEBUG(
" -- FillTruthParameters -- Failure while retrieving the truth particle. Returning FAILURE.");
2092 return StatusCode::FAILURE;
2098 ATH_MSG_DEBUG(
" -- FillTruthParameters -- reco muon associated to a truth neutral!! Returning FAILURE.");
2099 return StatusCode::FAILURE;
2102 ATH_MSG_DEBUG(
" -- FillTruthParameters -- reco muon associated to a non true muon!! Returning FAILURE.");
2103 return StatusCode::FAILURE;
2110 ATH_MSG_DEBUG(
"A production vertex pointer was retrieved, but it is NULL");
2111 return StatusCode::FAILURE;
2115 if (
particle->parent(0) !=
nullptr) {
2118 if (truthTypeAcc.isAvailable(*
particle)) {
2121 <<
" nparents " <<
particle->nParents()
2122 <<
" parent->pdg: " <<
particle->parent(0)->pdgId()
2123 <<
" truthType: " << truthTypeAcc(*
particle)
2124 <<
" truthOrigin: " << truthOriginAcc(*
particle)
2131 <<
" nparents " <<
particle->nParents()
2132 <<
" parent->pdg: " <<
particle->parent(0)->pdgId()
2133 <<
" truthType & truthOrigin: " <<
" NOT AVAILABLE "
2138 const auto xPos=ptruthVertex->x();
2139 const auto yPos=ptruthVertex->y();
2140 const auto z_truth=ptruthVertex->z();
2148 const EventContext& ctx = Gaudi::Hive::currentContext();
2169 ATH_MSG_DEBUG(
"reco IPs (pos): > d0 : "<<d0recoPos <<
" z0: " << z0recoPos <<
" trackp z0 : " << trackParticle->z0() <<
" trackp d0 : " << trackParticle->d0());
2170 ATH_MSG_DEBUG(
"reco IPs (neg): > d0 : "<<d0recoNeg <<
" z0: " << z0recoNeg <<
" trackp z0 : " << trackParticle->z0() <<
" trackp d0 : " << trackParticle->d0() );
2172 double qOverP_truth = 0.;
2211 bool parentfound =
false;
2213 if (
particle->parent(0) !=
nullptr) {
2228 }
else if (
charge == -1) {
2243 bool parentfound =
false;
2245 if (
particle->parent(0) !=
nullptr) {
2260 return StatusCode::SUCCESS;
◆ finalize()
StatusCode IDPerfMonZmumu::finalize |
( |
| ) |
|
|
virtual |
◆ GetDiMuonVertex()
Definition at line 2352 of file IDPerfMonZmumu.cxx.
2361 for (
int ivtx=0; ivtx< (
int) vxContainer->size();ivtx++) {
2362 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 2265 of file IDPerfMonZmumu.cxx.
2271 if( !
acc.isAvailable(
p ) ) {
2275 const Link_t& link =
acc(
p );
2277 if( ! link.isValid() ) {
◆ initialize()
StatusCode IDPerfMonZmumu::initialize |
( |
| ) |
|
|
virtual |
Definition at line 170 of file IDPerfMonZmumu.cxx.
174 ISvcLocator* pxServiceLocator = serviceLocator();
175 if ( pxServiceLocator !=
nullptr ) {
177 if ( xSC == StatusCode::FAILURE ) {
179 return StatusCode::FAILURE;
182 ATH_MSG_DEBUG(
"PerfMonServices::InitialiseServices( pxServiceLocator ); SUCCESS ");
193 return StatusCode::FAILURE;
202 return StatusCode::FAILURE;
210 return StatusCode::FAILURE;
221 return StatusCode::FAILURE;
244 ATH_MSG_INFO(
" -- IDPerfMonZmumu::initialize() -- init m_beamSpotKey ");
282 return StatusCode::FAILURE;
290 return StatusCode::FAILURE;
298 return StatusCode::FAILURE;
305 ATH_MSG_DEBUG(
"** IDPerfMonZmumu::Initialize ** Completed **");
306 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 2532 of file IDPerfMonZmumu.cxx.
2555 if( electronTruth) {
2556 ATH_MSG_DEBUG (
"retrieving electron Truth container with key: \"egammaTruthParticles\" SUCCESS ");
2558 if( electronTruth->hasStore() ) {
2560 auto tr_itr = electronTruth->
begin();
2561 auto tr_end = electronTruth->
end();
2562 int electronCount = 0;
2563 for(
int i = 0; tr_itr != tr_end; ++tr_itr, ++
i ) {
2564 ATH_MSG_DEBUG(
"Truth : Investigating truth electron #" <<
i <<
" pdgID= " << ( *tr_itr )->pdgId());
2565 if (fabs(( *tr_itr )->pdgId()) == 11) {
2566 if (( *tr_itr )->pt() > 10000 && fabs(( *tr_itr )->eta()) < 2.47) {
2567 ATH_MSG_INFO(
" central electron found --> pt: " << ( *tr_itr )->charge()*( *tr_itr )->pt() <<
" eta " <<( *tr_itr )->eta() );
2572 ATH_MSG_INFO(
"#central electrons: " << electronCount );
2575 ATH_MSG_WARNING (
"electronTruth container has no Store !!! FAILURE");
2579 ATH_MSG_WARNING (
"retrieve electron Truth container with key: \"egammaTruthParticles\" FAILURE");
2583 if (
m_doDebug) std::cout <<
" ** RunFourLeptonAnalysis ** calling m_4mu.Reco() .... " << std::endl;
2587 if(statusOf4LeptReco) {
2588 thisStatus = StatusCode::SUCCESS;
2593 thisStatus = StatusCode::FAILURE;
2594 ATH_MSG_DEBUG (
"4-lepton reconstruction FAILURE. m_4mu.Reco() returned FALSE --> event failed selection");
2595 if (
m_doDebug) std::cout <<
" ** RunFourLeptonAnalysis ** 4-lepton reconstruction FAILURE. m_4mu.Reco() returned FALSE --> event failed selection" << std::endl;
2598 if(statusOf4LeptReco) {
2706 std::string metName =
"MET_Reference_AntiKt4LCTopo";
2707 std::string metRefFinalName =
"FinalClus";
2714 ATH_MSG_WARNING (
"No Collection with name " << metName <<
" found in StoreGate");
2719 if (
sc.isFailure()) {
2720 ATH_MSG_DEBUG (
"Could not retrieve Collection " << metName <<
" from StoreGate");
2725 if (final_met)
met = (*final_met)[metRefFinalName];
2737 <<
" Invariant mass = " <<
m_4mu_minv <<
" GeV ");
2738 if (muon1_pos !=
nullptr)
ATH_MSG_DEBUG(
"mu1+ --> pxyz " << muon1_pos->
p4().Px()
2739 <<
", " << muon1_pos->
p4().Py()
2740 <<
", " << muon1_pos->
p4().Pz()
2741 <<
" pt: " << muon1_pos->
pt()
2742 <<
" d0: " << muon1_pos->
d0()
2743 <<
" z0: " << muon1_pos->
z0()
2746 if (muon1_neg !=
nullptr)
ATH_MSG_DEBUG(
"mu1- --> pxyz " << muon1_neg->
p4().Px()
2747 <<
", " << muon1_neg->
p4().Py()
2748 <<
", " << muon1_neg->
p4().Pz()
2749 <<
" pt: " << muon1_neg->
pt()
2750 <<
" d0: " << muon1_neg->
d0()
2751 <<
" z0: " << muon1_neg->
z0()
2754 if (elec1_pos !=
nullptr)
ATH_MSG_DEBUG(
"el1+ --> pxyz " << elec1_pos->
p4().Px()
2755 <<
", " << elec1_pos->
p4().Py()
2756 <<
", " << elec1_pos->
p4().Pz()
2757 <<
" pt: " << elec1_pos->
pt()
2758 <<
" d0: " << elec1_pos->
d0()
2759 <<
" 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 |
|
private |
◆ m_doIsoSelection
bool IDPerfMonZmumu::m_doIsoSelection |
|
private |
◆ m_doMCPSelection
bool IDPerfMonZmumu::m_doMCPSelection |
|
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_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 |
|
private |
◆ m_lumi_block
unsigned int IDPerfMonZmumu::m_lumi_block {} |
|
private |
◆ m_MassWindowHigh
double IDPerfMonZmumu::m_MassWindowHigh |
|
private |
◆ m_MassWindowLow
double IDPerfMonZmumu::m_MassWindowLow |
|
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 |
|
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 |
|
private |
◆ m_selTool
◆ m_skipMS
bool IDPerfMonZmumu::m_skipMS |
|
private |
◆ m_storeZmumuNtuple
bool IDPerfMonZmumu::m_storeZmumuNtuple |
|
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 |
|
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 |
|
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
static StatusCode InitialiseServices(ISvcLocator *pxSvcLocator)
void SetOpeningAngleCut(double newvalue)
void SetMassWindowHigh(double newvalue)
std::vector< float > m_Refit2_pt
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