Forked from
atlas / athena
69619 commits behind the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
InDetGlobalPrimaryVertexMonAlg.h 2.65 KiB
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
*/
/** @file InDetGlobalPrimaryVertexMonAlg.h
* Implementation of inner detector global primary vertex monitoring tool
*
*@author
* Leonid Serkin <lserkin@cern.ch> @n
*
* based on InDetGlobalPrimaryVertexMonTool.h
*
****************************************************************************/
#ifndef InDetGlobalPrimaryVertexMonAlg_H
#define InDetGlobalPrimaryVertexMonAlg_H
#include "AthenaMonitoring/AthMonitorAlgorithm.h"
// tracking vertex
#include "StoreGate/ReadHandleKey.h"
#include "xAODTracking/VertexContainer.h"
//Standard c++
#include <string>
//------------------------------
namespace Trk {
class Vertex;
class VxCandidate;
}
class InDetGlobalPrimaryVertexMonAlg : public AthMonitorAlgorithm {
public:
InDetGlobalPrimaryVertexMonAlg( const std::string & name, ISvcLocator* pSvcLocator );
virtual ~InDetGlobalPrimaryVertexMonAlg();
virtual StatusCode initialize() override;
virtual StatusCode fillHistograms( const EventContext& ctx ) const override;
std::string findComponentString(int bec, int ld) const;
private:
SG::ReadHandleKey<xAOD::VertexContainer> m_vxContainerName{this,"vxContainerName","PrimaryVertices","Primary Vertices for Global Monitoring"};
SG::ReadHandleKey<xAOD::VertexContainer> m_vxContainerNameSplit{this,"vxContainerNameSplit","VxPrimaryCandidateSplitStream","Split Vertices for Global Monitoring"};
int m_splitVertexTrkInvFraction; ///< store inverse of the fraction of input tracks used for probe vertex (1:N)
float m_distanceSplitVxMatch; ///< store maximum distance for matching split vertices to original non-BC vertex
/** store metric to be used for split vertex matching in selection efficiency
* Values currently implemented:
* 0: dummy metric; returns zero distance
* 1: simple delta-z metric
* 2: 3-D distance divided by the error (dominated by Delta z)
* 3: quadratic sum of distances divided by their errors in the 3 directions. Expected RMS = 1. Default.
*/
int m_splitMatchingMetric;
bool m_doEnhancedMonitoring; // trigger the enhanced monitoring (to be activated by InDetFlags.doMonitoringPrimaryVertexingEnhanced because split vertexing and vertexing with no beam constraint need to be run as well)
// Helper functions
/** Returns matching distance between split and original vertex.
* @param splitVx pointer to split vertex
* @param originalVx pointer to original non-BC vertex
* @return distance for matching split to original Vertex
*/
double getSplitMatchDistance(const xAOD::Vertex* splitVx, const xAOD::Vertex* originalVx);
};
#endif