ATLAS Offline Software
Loading...
Searching...
No Matches
InDet::InDetBeamSpotFinder Class Reference

#include <InDetBeamSpotFinder.h>

Inheritance diagram for InDet::InDetBeamSpotFinder:

Classes

struct  beamSpotNtuple_struct
struct  vertexNtuple_struct

Public Member Functions

 InDetBeamSpotFinder (const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode initialize () override
virtual StatusCode execute () override
virtual StatusCode finalize () override
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

bool passEventSelection (const xAOD::EventInfo &)
BeamSpot::Event readEvent (const xAOD::EventInfo &, const xAOD::VertexContainer &)
void writeToVertexTree (BeamSpot::Event &, BeamSpot::VrtHolder &)
void writeToBeamSpotTree (const IInDetBeamSpotTool *bs, std::vector< BeamSpot::Event > &, std::vector< BeamSpot::VrtHolder > &)
void sortEvents ()
StatusCode setupVertexTree ()
StatusCode setupBeamSpotTree ()
StatusCode performFits ()
bool iequals (const std::string &, const std::string &)
int min_lb (std::vector< BeamSpot::Event > &)
int max_lb (std::vector< BeamSpot::Event > &)
int min_run (std::vector< BeamSpot::Event > &)
int max_run (std::vector< BeamSpot::Event > &)
void convertVtxTypeNames ()
IInDetBeamSpotToolcloneTool (int)
bool passVertexSelection (const xAOD::Vertex *)
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

ServiceHandle< IToolSvc > m_toolSvc {this, "ToolSvc", "ToolSvc"}
ServiceHandle< ITHistSvc > m_thistSvc {this, "THistSvc", "THistSvc"}
ToolHandleArray< IInDetBeamSpotToolm_beamSpotToolList
SG::ReadCondHandleKey< BunchCrossingCondDatam_bcDataKey {this, "BunchCrossingCondDataKey", "BunchCrossingData" ,"SG Key of BunchCrossing CDO"}
SG::ReadHandleKey< xAOD::EventInfom_eventInfo {this, "EvtInfo", "EventInfo", "EventInfo name"}
SG::ReadHandleKey< xAOD::VertexContainerm_vertexContainer {this, "VertexContainer", "PrimaryVertices", "Vertex container name"}
unsigned int m_maxRunsPerFit
unsigned int m_maxEventsPerFit
unsigned int m_maxLBsPerFit
std::vector< unsigned int > m_BCIDsToAccept
bool m_writeVertexNtuple
std::string m_beamSpotNtupleName
TTree * m_root_bs =0
TTree * m_root_vrt =0
beamSpotNtuple_struct m_beamSpotNtuple
vertexNtuple_struct m_root_vtx
BeamSpotStatusCode m_BeamStatusCode
std::string m_vertexTreeName
std::vector< BeamSpot::Eventm_eventList
std::map< BeamSpot::ID, std::vector< BeamSpot::Event > > m_eventMap
std::vector< std::vector< BeamSpot::Event > > m_sortedEventList
std::vector< std::vector< BeamSpot::VrtHolder > > m_sortedVertices
int m_minTrackNum {}
int m_maxTrackNum {}
double m_maxChi2Vertex {}
double m_maxTransverseError {}
double m_maxAbsCorrelXY {}
double m_minVtxProb {}
unsigned int m_minVertexNum {}
std::vector< std::string > m_vertexTypeNames {}
std::vector< xAOD::VxType::VertexTypem_vertexTypes {}
bool m_useFilledBCIDsOnly {}
std::string m_fitSortingKey {}
bool m_writeAllVertices {}
unsigned long m_secondsPerFit {}
DataObjIDColl m_extendedExtraObjects
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 35 of file InDetBeamSpotFinder.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ InDetBeamSpotFinder()

InDet::InDetBeamSpotFinder::InDetBeamSpotFinder ( const std::string & name,
ISvcLocator * pSvcLocator )

Definition at line 30 of file InDetBeamSpotFinder.cxx.

30 :
31 AthAlgorithm(name, pSvcLocator)
32{
33 declareProperty( "BeamSpotToolList" , m_beamSpotToolList );
34 declareProperty( "RunRange" , m_maxRunsPerFit = 0 );
35 declareProperty( "LumiRange" , m_maxLBsPerFit = 0 );
36 declareProperty( "EventRange" , m_maxEventsPerFit = 0);
37 declareProperty( "UseBCID" , m_BCIDsToAccept );
38 declareProperty( "UseFilledBCIDsOnly", m_useFilledBCIDsOnly = true );
39 declareProperty( "MinTracksPerVtx", m_minTrackNum = 5);
40 declareProperty( "MaxTracksPerVtx", m_maxTrackNum = 1000000);
41 declareProperty( "MinVtxNum" , m_minVertexNum = 100);
42 declareProperty( "MaxVtxChi2" , m_maxChi2Vertex = 10);
43 declareProperty( "MaxTransverseErr", m_maxTransverseError=1000000);
44 declareProperty( "MaxAbsCorrelXY", m_maxAbsCorrelXY=0.8);
45 declareProperty( "VertexTypes" , m_vertexTypeNames);
46 declareProperty( "MinVtxProb" , m_minVtxProb=0.001);
47 declareProperty( "GroupFitsBy" , m_fitSortingKey = "none");
48 declareProperty( "VertexNtuple" , m_writeVertexNtuple = true);
49 declareProperty( "WriteAllVertices" , m_writeAllVertices=false);
50 declareProperty( "VertexTreeName" , m_vertexTreeName = "Vertices");
51 declareProperty( "SecondsPerFit", m_secondsPerFit = 1);
52}
AthAlgorithm()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
std::vector< std::string > m_vertexTypeNames
ToolHandleArray< IInDetBeamSpotTool > m_beamSpotToolList
std::vector< unsigned int > m_BCIDsToAccept

Member Function Documentation

◆ cloneTool()

InDet::IInDetBeamSpotTool * InDet::InDetBeamSpotFinder::cloneTool ( int i)
private

Definition at line 446 of file InDetBeamSpotFinder.cxx.

446 {
447 IInDetBeamSpotTool * orig = &(*m_beamSpotToolList[i]);
448 IInDetBeamSpotTool * temp = orig->Clone();
449 return temp;
450}

◆ convertVtxTypeNames()

void InDet::InDetBeamSpotFinder::convertVtxTypeNames ( )
private

Definition at line 207 of file InDetBeamSpotFinder.cxx.

207 {
208 if ( not m_vertexTypeNames.empty() ) {
209 for ( std::vector<std::string>::const_iterator it = m_vertexTypeNames.begin();
210 it != m_vertexTypeNames.end(); ++it) {
211 if ((*it) == "NoVtx") ;
212 else if ((*it) == "PriVtx") m_vertexTypes.push_back(xAOD::VxType::PriVtx);
213 else if ((*it) == "SecVtx") m_vertexTypes.push_back(xAOD::VxType::SecVtx);
214 else if ((*it) == "PileUp") m_vertexTypes.push_back(xAOD::VxType::PileUp);
215 else if ((*it) == "ConvVtx") m_vertexTypes.push_back(xAOD::VxType::ConvVtx);
216 else if ((*it) == "V0Vtx") m_vertexTypes.push_back(xAOD::VxType::V0Vtx);
217 else if ((*it) == "KinkVtx") m_vertexTypes.push_back(xAOD::VxType::KinkVtx);
218 else if ((*it) =="NotSpecified")m_vertexTypes.push_back(xAOD::VxType::NotSpecified) ;
219 }
220 ATH_MSG_INFO("Allowing " << m_vertexTypes.size() << " Vertex types" );
221 }
222 else {
223 ATH_MSG_DEBUG( "No selection based on vertexType will be done" );
224 }
225}
#define ATH_MSG_INFO(x)
#define ATH_MSG_DEBUG(x)
std::vector< xAOD::VxType::VertexType > m_vertexTypes
@ KinkVtx
Kink vertex.
@ PileUp
Pile-up vertex.
@ V0Vtx
Vertex from V0 decay.
@ ConvVtx
Conversion vertex.
@ NotSpecified
Default value, no explicit type set.
@ PriVtx
Primary vertex.
@ SecVtx
Secondary vertex.

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode InDet::InDetBeamSpotFinder::execute ( )
overridevirtual

Definition at line 76 of file InDetBeamSpotFinder.cxx.

76 {
77 SG::ReadHandle<xAOD::EventInfo> eventInfo(m_eventInfo);
78 SG::ReadHandle<xAOD::VertexContainer> vertexContainer(m_vertexContainer);
79 if ( !passEventSelection( *eventInfo ) ) return StatusCode::SUCCESS;
80 BeamSpot::Event currentEvent = readEvent(*eventInfo, *vertexContainer);
81
82 m_eventList.push_back( currentEvent );
84 for( auto & thisVertex: currentEvent.vertices){
85 if( thisVertex.passed || m_writeAllVertices ){
86 writeToVertexTree( currentEvent, thisVertex );
87 }
88 }
89 }
90 return StatusCode::SUCCESS;
91}
std::vector< BeamSpot::Event > m_eventList
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexContainer
void writeToVertexTree(BeamSpot::Event &, BeamSpot::VrtHolder &)
BeamSpot::Event readEvent(const xAOD::EventInfo &, const xAOD::VertexContainer &)
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo
bool passEventSelection(const xAOD::EventInfo &)
std::vector< BeamSpot::VrtHolder > vertices

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

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.

51{
52 // If we didn't find any symlinks to add, just return the collection
53 // from the base class. Otherwise, return the extended collection.
54 if (!m_extendedExtraObjects.empty()) {
56 }
57 return Algorithm::extraOutputDeps();
58}
DataObjIDColl m_extendedExtraObjects

◆ finalize()

StatusCode InDet::InDetBeamSpotFinder::finalize ( )
overridevirtual

Definition at line 93 of file InDetBeamSpotFinder.cxx.

93 {
94 ATH_MSG_DEBUG( "in finalize()" );
95 sortEvents();
97 return StatusCode::SUCCESS;
98}
#define ATH_CHECK
Evaluate an expression and check for errors.

◆ iequals()

bool InDet::InDetBeamSpotFinder::iequals ( const std::string & a,
const std::string & b )
private

Definition at line 381 of file InDetBeamSpotFinder.cxx.

382{
383 unsigned int sz = a.size();
384 if (b.size() != sz)
385 return false;
386 for (unsigned int i = 0; i < sz; ++i)
387 if (tolower(a[i]) != tolower(b[i]))
388 return false;
389 return true;
390}
void tolower(std::string &s)
static Double_t sz
static Double_t a

◆ initialize()

StatusCode InDet::InDetBeamSpotFinder::initialize ( )
overridevirtual

Definition at line 54 of file InDetBeamSpotFinder.cxx.

54 {
55 ATH_MSG_DEBUG( "in initialize()");
56 if ( m_beamSpotToolList.empty() ){
57 ATH_MSG_FATAL("FATAL ERROR: must provide at least one beamspot tool in beamSpotToolList");
58 return StatusCode::FAILURE;
59 }
60
61 ATH_CHECK( m_thistSvc.retrieve() );
62 ATH_CHECK( m_toolSvc.retrieve() );
63
65
66 ATH_CHECK( m_eventInfo.initialize() );
67 ATH_CHECK( m_vertexContainer.initialize() );
68
69 for ( unsigned int i = 0; i < m_beamSpotToolList.size(); i++){ ATH_CHECK( m_beamSpotToolList[i].retrieve() );}
73 return StatusCode::SUCCESS;
74}
#define ATH_MSG_FATAL(x)
ServiceHandle< IToolSvc > m_toolSvc
SG::ReadCondHandleKey< BunchCrossingCondData > m_bcDataKey
ServiceHandle< ITHistSvc > m_thistSvc
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::inputHandles ( ) const
overridevirtualinherited

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.

◆ max_lb()

int InDet::InDetBeamSpotFinder::max_lb ( std::vector< BeamSpot::Event > & eventList)
private

Definition at line 457 of file InDetBeamSpotFinder.cxx.

457 {
458 const auto largestLbEvent=std::max_element(eventList.begin(),eventList.end(), lesserLumiBlock);
459 return largestLbEvent->lumiBlock;
460}

◆ max_run()

int InDet::InDetBeamSpotFinder::max_run ( std::vector< BeamSpot::Event > & eventList)
private

Definition at line 467 of file InDetBeamSpotFinder.cxx.

467 {
468 const auto largestRunEvent=std::max_element(eventList.begin(),eventList.end(), lesserRunNumber);
469 return largestRunEvent->runNumber;
470}

◆ min_lb()

int InDet::InDetBeamSpotFinder::min_lb ( std::vector< BeamSpot::Event > & eventList)
private

Definition at line 452 of file InDetBeamSpotFinder.cxx.

452 {
453 const auto smallestLbEvent=std::min_element(eventList.begin(),eventList.end(), lesserLumiBlock);
454 return smallestLbEvent->lumiBlock;
455}

◆ min_run()

int InDet::InDetBeamSpotFinder::min_run ( std::vector< BeamSpot::Event > & eventList)
private

Definition at line 462 of file InDetBeamSpotFinder.cxx.

462 {
463 const auto smallestRunEvent=std::min_element(eventList.begin(),eventList.end(), lesserRunNumber);
464 return smallestRunEvent->runNumber;
465}

◆ msg()

MsgStream & AthCommonMsg< Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< Algorithm >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles ( ) const
overridevirtualinherited

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.

◆ passEventSelection()

bool InDet::InDetBeamSpotFinder::passEventSelection ( const xAOD::EventInfo & eventInfo)
private

Definition at line 227 of file InDetBeamSpotFinder.cxx.

227 {
228 const int bcid = eventInfo.bcid();
230 SG::ReadCondHandle<BunchCrossingCondData> bcData(m_bcDataKey);
231 if ( !bcData->isFilled(bcid) ) return false;
232 }
233 if( m_BCIDsToAccept.begin() != m_BCIDsToAccept.end() )
234 return ( std::find(m_BCIDsToAccept.begin(), m_BCIDsToAccept.end(), bcid) != m_BCIDsToAccept.end());
235 else
236 return true;
237}
uint32_t bcid() const
The bunch crossing ID of the event.
setEventNumber setTimeStamp bcid

◆ passVertexSelection()

bool InDet::InDetBeamSpotFinder::passVertexSelection ( const xAOD::Vertex * vtx)
private

Definition at line 239 of file InDetBeamSpotFinder.cxx.

239 {
240 if(!vtx) { return false; }
241 if(m_vertexTypes.end() == std::find( m_vertexTypes.begin(), m_vertexTypes.end(), vtx->vertexType() ) ) { return false; }
242 if(vtx->chiSquared()/vtx->numberDoF() > m_maxChi2Vertex) { return false; }
243 if(static_cast<int>(vtx->nTrackParticles()) < m_minTrackNum ){ return false; }
244 if(static_cast<int>(vtx->nTrackParticles()) > m_maxTrackNum ){ return false; }
245 if(TMath::Prob(vtx->chiSquared(), vtx->numberDoF()) < m_minVtxProb ) { return false; }
246 if(vtx->covariancePosition()(0,0) <= 0 || vtx->covariancePosition()(1,1) <= 0 || vtx->covariancePosition()(2,2) <= 0 ) { return false; }
247 double maxTransverseError2 = m_maxTransverseError * m_maxTransverseError;
248 if(vtx->covariancePosition()(0,0) > maxTransverseError2 || vtx->covariancePosition()(1,1) > maxTransverseError2) {return false;}
249 return true;
250}
size_t nTrackParticles() const
Get the number of tracks associated with this vertex.
float numberDoF() const
Returns the number of degrees of freedom of the vertex fit as float.
VxType::VertexType vertexType() const
The type of the vertex.
float chiSquared() const
Returns the of the vertex fit as float.

◆ performFits()

StatusCode InDet::InDetBeamSpotFinder::performFits ( )
private

Definition at line 260 of file InDetBeamSpotFinder.cxx.

260 {
262 std::vector<BeamSpot::VrtHolder> verticesToFit;
263
264 for( auto & eventList: m_sortedEventList){
265 verticesToFit.clear();
266 if(eventList.size() > 0) {
267 BeamSpot::Event ev = *eventList.begin();
268 ATH_MSG_INFO( "Event list size/LB/bcid: " << eventList.size() << " " << ev.lumiBlock << " " << ev.bcid);
269 }
270 for( const auto & thisEvent: eventList){
271 for( const auto & thisVertex: thisEvent.vertices){
272 if( thisVertex.passed ) {
273 verticesToFit.push_back( thisVertex );
274 }
275 }
276 }
277
278 for( unsigned int j = 0; j < m_beamSpotToolList.size(); j++){
279 IInDetBeamSpotTool * bs(nullptr);
280 bs = cloneTool(j);
281 if(!bs){ return StatusCode::FAILURE; }
282 if(not verticesToFit.empty()) { bsFitStatus = bs->fit(verticesToFit); }
283 else { bsFitStatus = IInDetBeamSpotTool::unsolved; }
284
285 m_BeamStatusCode.clearWord();
286 m_BeamStatusCode.setOnlineStatus(false);
287 m_BeamStatusCode.setAlgType( bs->getFitID() );
288 int fitStat;
289 if ( bsFitStatus == IInDetBeamSpotTool::successful)
290 fitStat = 3;
291 else if ( bsFitStatus == IInDetBeamSpotTool::problems)
292 fitStat = 1;
293 else if ( bsFitStatus == IInDetBeamSpotTool::failed || bsFitStatus == IInDetBeamSpotTool::unsolved)
294 fitStat = 0;
295 else
296 fitStat = 0;
297 m_BeamStatusCode.setFitStatus(fitStat);
298 if (bs->getParamMap()["sigmaX"] == 0 && bs->getParamMap()["sigmaY"] ==0 ) { m_BeamStatusCode.setFitWidth( false); }
299 else { m_BeamStatusCode.setFitWidth(true); }
300
301 if(not eventList.empty()) writeToBeamSpotTree( bs, eventList, verticesToFit );
302 }
303 }
304 return StatusCode::SUCCESS;
305}
FitStatus
Internally used enum for fit status.
void writeToBeamSpotTree(const IInDetBeamSpotTool *bs, std::vector< BeamSpot::Event > &, std::vector< BeamSpot::VrtHolder > &)
std::vector< std::vector< BeamSpot::Event > > m_sortedEventList
IInDetBeamSpotTool * cloneTool(int)
BeamSpotStatusCode m_BeamStatusCode
int ev
Definition globals.cxx:25

◆ readEvent()

BeamSpot::Event InDet::InDetBeamSpotFinder::readEvent ( const xAOD::EventInfo & eventInfo,
const xAOD::VertexContainer & vertexContainer )
private

Definition at line 100 of file InDetBeamSpotFinder.cxx.

100 {
101 BeamSpot::Event event;
102 BeamSpot::VrtHolder vertex;
103 event.pileup = ceil(eventInfo.actualInteractionsPerCrossing());
104 event.runNumber = eventInfo.runNumber();
105 event.lumiBlock = eventInfo.lumiBlock();
106 event.bcid = eventInfo.bcid();
107 event.eventTime = eventInfo.timeStamp();
108 event.eventTime_NS = eventInfo.timeStampNSOffset();
109 event.eventNumber = eventInfo.eventNumber();
110 const EventInfo* BSeventInfo;
111 //This is required for pseudo lumiblocks
112
114 {
115 if( evtStore()->retrieve(BSeventInfo) != StatusCode::SUCCESS){
116 ATH_MSG_ERROR("Cannot get event info.");
117 return event;
118 }
119
120 // Remove the redundent logic, event.lumiBlock != BSeventInfo->event_ID()->lumi_block()
121 event.lumiBlock = BSeventInfo->event_ID()->lumi_block();
122 };
123
124 for(const xAOD::Vertex* vtx:vertexContainer) {
125 if (vtx->vertexType() == xAOD::VxType::NoVtx) continue;
126 vertex.x = vtx->x();
127 vertex.y = vtx->y();
128 vertex.z = vtx->z();
129 vertex.vxx = vtx->covariancePosition()(0,0);
130 vertex.vxy = vtx->covariancePosition()(0,1);
131 vertex.vyy = vtx->covariancePosition()(1,1);
132 vertex.vzz = vtx->covariancePosition()(2,2);
133 vertex.vertexType = vtx->vertexType();
134 vertex.nTracks = vtx->nTrackParticles();
135 vertex.passed = passVertexSelection( vtx );
136 vertex.valid = vertex.passed;
137 //Remove vertices with wrong x-y correlation
138 if(vertex.vxy*vertex.vxy/vertex.vxx/vertex.vyy > 1.0 ||
139 vertex.vzz < 0. ||
140 vertex.vyy < 0. ||
141 vertex.vxx < 0.) {
142 ATH_MSG_DEBUG("Bad vertex: " << event.eventNumber << " " << vtx->vertexType() << " "
143 << vertex.x << " " << vertex.y << " " << vertex.z << " "
144 << vertex.vxx << " " << vertex.vyy << " " << vertex.vzz << " "
145 << vertex.nTracks << " " << vertex.vxy*vertex.vxy/vertex.vxx/vertex.vyy);
146 }
148 vertex.vzz < 0. ||
149 vertex.vyy < 0. ||
150 vertex.vxx < 0.) continue;
151 event.vertices.push_back( vertex );
152 }
153 return event;
154}
#define ATH_MSG_ERROR(x)
EventID * event_ID()
the unique identification of the event.
bool passVertexSelection(const xAOD::Vertex *)
uint32_t lumiBlock() const
The current event's luminosity block number.
bool eventType(EventType type) const
Check for one particular bitmask value.
float actualInteractionsPerCrossing() const
Average interactions per crossing for the current BCID - for in-time pile-up.
uint32_t timeStamp() const
POSIX time in seconds from 1970. January 1st.
@ IS_SIMULATION
true: simulation, false: data
uint32_t runNumber() const
The current event's run number.
uint32_t timeStampNSOffset() const
Nanosecond time offset wrt. the time stamp.
uint64_t eventNumber() const
The current event's event number.
@ NoVtx
Dummy vertex. TrackParticle was not used in vertex fit.
EventInfo_v1 EventInfo
Definition of the latest event info version.
Vertex_v1 Vertex
Define the latest version of the vertex class.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ setupBeamSpotTree()

StatusCode InDet::InDetBeamSpotFinder::setupBeamSpotTree ( )
private

Definition at line 307 of file InDetBeamSpotFinder.cxx.

307 {
308 const std::string inRootID = "/INDETBEAMSPOTFINDER/";
309 const std::string sbs = "BeamSpotNt";//m_root_beamspotName;
310 m_root_bs = new TTree(sbs.data(),"Beamspot Solutions");
311 m_root_bs->Branch("bcid", &m_beamSpotNtuple.bcid,"bcid/I");
312 m_root_bs->Branch("pileup", &m_beamSpotNtuple.pileup,"pileup/I");
313 m_root_bs->Branch("defectWord", &m_beamSpotNtuple.defectWord, "defectWord/I");
314 m_root_bs->Branch("fill", &m_beamSpotNtuple.fill, "fill/I");
315 m_root_bs->Branch("lbEnd", &m_beamSpotNtuple.lbEnd, "lbEnd/I");
316 m_root_bs->Branch("lbStart", &m_beamSpotNtuple.lbStart, "lbStart/I");
317 m_root_bs->Branch("nEvents", &m_beamSpotNtuple.nEvents, "nEvents/I");
318 m_root_bs->Branch("nValid", &m_beamSpotNtuple.nValid, "nValid/I");
319 m_root_bs->Branch("nVtxAll", &m_beamSpotNtuple.nVtxAll, "nVtxAll/I");
320 m_root_bs->Branch("nVtxPrim", &m_beamSpotNtuple.nVtxPrim, "nVtxPrim/I");
321 m_root_bs->Branch("separation", &m_beamSpotNtuple.separation, "separation/I");
322 m_root_bs->Branch("status", &m_beamSpotNtuple.status, "status/I");
323 m_root_bs->Branch("timeEnd", &m_beamSpotNtuple.timeEnd, "timeEnd/I");
324 m_root_bs->Branch("timeStart", &m_beamSpotNtuple.timeStart, "timeStart/I");
325 m_root_bs->Branch("run", &m_beamSpotNtuple.run, "run/I");
326 m_root_bs->Branch("runEnd", &m_beamSpotNtuple.runEnd, "runEnd/I");
327
328 for( auto &tool : m_beamSpotToolList ){
329 std::map<std::string,double> paramMap = tool->getParamMap();
330 std::map<std::string,double> covMap = tool->getCovMap();
331
332 std::string slashD = "/D";
333 std::string keySlashD;
334
335 //Loop over the parameters for a given fit tool, and create a branch for each if it doesn't exist
336 for( std::map<std::string,double>::iterator iter = paramMap.begin(); iter != paramMap.end(); ++iter){
337 std::string key = iter->first;
338 //double val = iter->second;
339 if( !(m_root_bs->GetBranch(key.c_str())) ){
340 m_beamSpotNtuple.paramMap[key] = 0;
341 keySlashD = key + slashD;
342 m_root_bs->Branch(key.c_str(), &m_beamSpotNtuple.paramMap[key], keySlashD.c_str());
343 }
344 }
345 //Loop over the covariance matrix for a given fit tool and create a branch for each element, if it doesn't already exist.
346 for( std::map<std::string,double>::iterator iter = covMap.begin(); iter != covMap.end(); ++iter){
347 const std::string & key = iter->first;
348 //double val = iter->second;
349 if( !(m_root_bs->GetBranch(key.c_str())) ){
350 m_beamSpotNtuple.covMap[key] = 0;
351 keySlashD = key + slashD;
352 m_root_bs->Branch( key.c_str(), &m_beamSpotNtuple.covMap[key], keySlashD.c_str());
353 }
354 }
355 }
356 return m_thistSvc->regTree(inRootID+sbs,m_root_bs);
357}
beamSpotNtuple_struct m_beamSpotNtuple

◆ setupVertexTree()

StatusCode InDet::InDetBeamSpotFinder::setupVertexTree ( )
private

Definition at line 252 of file InDetBeamSpotFinder.cxx.

252 {
253 const std::string inRootID = "/INDETBEAMSPOTFINDER/";
254 const std::string svrts = m_vertexTreeName;
255 m_root_vrt = new TTree(svrts.data(),"Vertices");
256 m_root_vrt->Branch("vrt",&m_root_vtx,"x/D:y:z:vxx:vxy:vyy:vzz:vType/i:run:lb:bcid:pileup:nTracks:eventNumber/l:eventTime:eventTime_NS:passed/O:valid");
257 return m_thistSvc->regTree(inRootID+svrts,m_root_vrt);
258}

◆ sortEvents()

void InDet::InDetBeamSpotFinder::sortEvents ( )
private

Definition at line 156 of file InDetBeamSpotFinder.cxx.

156 {
157 for( const auto & thisEvent: m_eventList){
158 BeamSpot::ID id;
159 id.runNumber( (m_maxRunsPerFit > 0) ? thisEvent.runNumber : 0 );
160 id.lumiBlock( (m_maxLBsPerFit > 0) ? thisEvent.lumiBlock : 0 );
161 id.pileup ( iequals(m_fitSortingKey,"pileup") ? thisEvent.pileup : 0 );
162 id.bcid ( iequals(m_fitSortingKey,"bcid" ) ? thisEvent.bcid : 0 );
163 id.timeStamp( iequals(m_fitSortingKey,"time" ) ? thisEvent.eventTime/m_secondsPerFit : 0 );
164 m_eventMap[id].push_back( thisEvent );
165 }
166 auto iter = m_eventMap.begin();
167 BeamSpot::ID lastID = iter->first;
168 BeamSpot::ID currentID = iter->first;
169 unsigned int nRuns = 0;
170 unsigned int nLBs = 0;
171 unsigned int nFits = 1;
172 m_sortedEventList.resize( nFits );
173
174 for( iter = m_eventMap.begin(); iter != m_eventMap.end(); ++iter){
175 currentID = iter->first;
176 if( iter == m_eventMap.begin() || currentID.runNumber() != lastID.runNumber() ){ nRuns++; }
177 if( iter == m_eventMap.begin() || currentID.lumiBlock() != lastID.lumiBlock() ){ nLBs++; }
178 if( currentID.timeStamp() != lastID.timeStamp() ||
179 currentID.pileup() != lastID.pileup()
180 || currentID.bcid() != lastID.bcid()
181 || ( m_maxRunsPerFit > 0 && nRuns > m_maxRunsPerFit )
182 || ( m_maxLBsPerFit > 0 && nLBs > m_maxLBsPerFit )){
183 ATH_MSG_INFO( "New Fit " << currentID.timeStamp() << "<--"<< lastID.timeStamp() << "\n\t"
184 << currentID.pileup() << " <-- " << lastID.pileup() << "\n\t"
185 << currentID.bcid() << " <-- " << lastID.bcid() << "\n\t"
186 << nRuns << " " << m_maxRunsPerFit << "\n\t"
187 << nLBs << " " << m_maxLBsPerFit );
188
189 nFits++;
190 m_sortedEventList.resize(nFits);
191 nRuns = 1; nLBs = 1;
192 }
193 for( unsigned int i = 0; i < iter->second.size(); i++){
194 if( m_sortedEventList.at(nFits-1).size() == m_maxEventsPerFit && m_maxEventsPerFit > 0 ){
195 nFits++;
196 m_sortedEventList.resize(nFits);
197 nRuns = 1; nLBs = 1;
198 }
199
200 m_sortedEventList.at(nFits-1).push_back( iter->second.at(i) );
201 }
202 lastID = iter->first;
203 }
204}
unsigned int pileup() const
Definition BeamSpotID.h:15
unsigned int lumiBlock() const
Definition BeamSpotID.h:14
unsigned int bcid() const
Definition BeamSpotID.h:16
unsigned long timeStamp() const
Definition BeamSpotID.h:17
unsigned int runNumber() const
Definition BeamSpotID.h:13
std::map< BeamSpot::ID, std::vector< BeamSpot::Event > > m_eventMap
bool iequals(const std::string &, const std::string &)

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, AthHistogramAlgorithm, and PyAthena::Alg.

Definition at line 66 of file AthAlgorithm.cxx.

66 {
68
69 if (sc.isFailure()) {
70 return sc;
71 }
72 ServiceHandle<ICondSvc> cs("CondSvc",name());
73 for (auto h : outputHandles()) {
74 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75 // do this inside the loop so we don't create the CondSvc until needed
76 if ( cs.retrieve().isFailure() ) {
77 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78 return StatusCode::SUCCESS;
79 }
80 if (cs->regHandle(this,*h).isFailure()) {
81 sc = StatusCode::FAILURE;
82 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83 << " with CondSvc");
84 }
85 }
86 }
87 return sc;
88}
#define ATH_MSG_WARNING(x)
static Double_t sc
virtual StatusCode sysInitialize() override
Override sysInitialize.
AthCommonDataStore(const std::string &name, T... args)
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

◆ writeToBeamSpotTree()

void InDet::InDetBeamSpotFinder::writeToBeamSpotTree ( const IInDetBeamSpotTool * bs,
std::vector< BeamSpot::Event > & eventList,
std::vector< BeamSpot::VrtHolder > & vertexList )
private

leave these here; illustrates coverity defect 29456 for( std::map<std::string,double>::iterator iter = m_beamSpotNtuple.paramMap.begin(); iter != m_beamSpotNtuple.paramMap.end(); ++iter){
std::string key = iter->first; iter->second = ( bs->getParamMap().find(key) == bs->getParamMap().end() ) ? 0 : bs->getParamMap()[key]; }

leave these here; illustrates coverity defect 29456 for( std::map<std::string,double>::iterator iter = m_beamSpotNtuple.covMap.begin(); iter != m_beamSpotNtuple.covMap.end(); ++iter){
std::string key = iter->first; iter->second = ( bs->getCovMap().find(key) == bs->getCovMap().end() ) ? 0 : bs->getCovMap()[key]; }

Definition at line 392 of file InDetBeamSpotFinder.cxx.

392 {
393 m_beamSpotNtuple.pileup = iequals(m_fitSortingKey,"pileup") ? eventList.at(0).pileup : 0;
394 m_beamSpotNtuple.bcid = iequals(m_fitSortingKey,"bcid") ? eventList.at(0).bcid : 0;
395 m_beamSpotNtuple.defectWord = 0;
396 m_beamSpotNtuple.fill = 0;
397 m_beamSpotNtuple.lbEnd = max_lb( eventList );
398 m_beamSpotNtuple.lbStart = min_lb( eventList );
399 m_beamSpotNtuple.nEvents = eventList.size();
400 m_beamSpotNtuple.nValid = vertexList.size();
401 unsigned int nVtxAll = 0;
402 unsigned int nVtxPrim = 0;
403 auto isPrimaryVertex=[](const BeamSpot::VrtHolder & vertex){ return (vertex.vertexType == xAOD::VxType::PriVtx); };
404 for( const auto & thisEvent : eventList){
405 const auto & theseVertices=thisEvent.vertices;
406 nVtxAll += theseVertices.size();
407 nVtxPrim+= std::count_if(theseVertices.begin(), theseVertices.end(), isPrimaryVertex);
408 }
409 m_beamSpotNtuple.nVtxAll = nVtxAll;
410 m_beamSpotNtuple.nVtxPrim = nVtxPrim;
411 m_beamSpotNtuple.run = min_run( eventList );
412 m_beamSpotNtuple.status = m_BeamStatusCode.getWord();
413 m_beamSpotNtuple.separation = 0;
414 m_beamSpotNtuple.timeEnd = iequals(m_fitSortingKey,"time") ? eventList.back().eventTime : 0;
415 m_beamSpotNtuple.timeStart = iequals(m_fitSortingKey,"time") ? eventList.front().eventTime : 0;
416 m_beamSpotNtuple.runEnd = max_run( eventList );
417 const auto & bsToolParamMap = bs->getParamMap();
418 const auto & bsToolCovMap= bs->getCovMap();
419 for (auto & param:m_beamSpotNtuple.paramMap){
420 const std::string & key = param.first;
421 const auto & bsToolEquivalent =bsToolParamMap.find(key);
422 param.second = ( bsToolEquivalent == bsToolParamMap.end() ) ? 0 : bsToolEquivalent->second;
423 }
431 for (auto & covariance:m_beamSpotNtuple.covMap){
432 const std::string & key = covariance.first;
433 const auto & bsToolEquivalent = bsToolCovMap.find(key);
434 covariance.second = ( bsToolEquivalent == bsToolCovMap.end() ) ? 0 : bsToolEquivalent->second;
435 }
443 m_root_bs->Fill();
444}
int min_run(std::vector< BeamSpot::Event > &)
int max_run(std::vector< BeamSpot::Event > &)
int min_lb(std::vector< BeamSpot::Event > &)
int max_lb(std::vector< BeamSpot::Event > &)

◆ writeToVertexTree()

void InDet::InDetBeamSpotFinder::writeToVertexTree ( BeamSpot::Event & evt,
BeamSpot::VrtHolder & vtx )
private

Definition at line 359 of file InDetBeamSpotFinder.cxx.

359 {
360 m_root_vtx.x = vtx.x;
361 m_root_vtx.y = vtx.y;
362 m_root_vtx.z = vtx.z;
363 m_root_vtx.vxx = vtx.vxx;
364 m_root_vtx.vxy = vtx.vxy;
365 m_root_vtx.vyy = vtx.vyy;
366 m_root_vtx.vzz = vtx.vzz;
367 m_root_vtx.vType = vtx.vertexType;
368 m_root_vtx.run = evt.runNumber;
369 m_root_vtx.lb = evt.lumiBlock;
370 m_root_vtx.bcid = evt.bcid;
371 m_root_vtx.pileup = evt.pileup;
372 m_root_vtx.nTracks = vtx.nTracks;
373 m_root_vtx.passed = vtx.passed;
374 m_root_vtx.valid = vtx.valid;
375 m_root_vtx.eventNumber = evt.eventNumber;
376 m_root_vtx.eventTime = evt.eventTime;
377 m_root_vtx.eventTime_NS = evt.eventTime_NS;
378 m_root_vrt->Fill();
379}
xAOD::VxType::VertexType vertexType

Member Data Documentation

◆ m_bcDataKey

SG::ReadCondHandleKey<BunchCrossingCondData> InDet::InDetBeamSpotFinder::m_bcDataKey {this, "BunchCrossingCondDataKey", "BunchCrossingData" ,"SG Key of BunchCrossing CDO"}
private

Definition at line 50 of file InDetBeamSpotFinder.h.

51{this, "BunchCrossingCondDataKey", "BunchCrossingData" ,"SG Key of BunchCrossing CDO"};

◆ m_BCIDsToAccept

std::vector<unsigned int> InDet::InDetBeamSpotFinder::m_BCIDsToAccept
private

Definition at line 63 of file InDetBeamSpotFinder.h.

◆ m_beamSpotNtuple

beamSpotNtuple_struct InDet::InDetBeamSpotFinder::m_beamSpotNtuple
private

Definition at line 87 of file InDetBeamSpotFinder.h.

◆ m_beamSpotNtupleName

std::string InDet::InDetBeamSpotFinder::m_beamSpotNtupleName
private

Definition at line 66 of file InDetBeamSpotFinder.h.

◆ m_beamSpotToolList

ToolHandleArray<IInDetBeamSpotTool> InDet::InDetBeamSpotFinder::m_beamSpotToolList
private

Definition at line 48 of file InDetBeamSpotFinder.h.

◆ m_BeamStatusCode

BeamSpotStatusCode InDet::InDetBeamSpotFinder::m_BeamStatusCode
private

Definition at line 89 of file InDetBeamSpotFinder.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_eventInfo

SG::ReadHandleKey<xAOD::EventInfo> InDet::InDetBeamSpotFinder::m_eventInfo {this, "EvtInfo", "EventInfo", "EventInfo name"}
private

Definition at line 53 of file InDetBeamSpotFinder.h.

54{this, "EvtInfo", "EventInfo", "EventInfo name"};

◆ m_eventList

std::vector<BeamSpot::Event> InDet::InDetBeamSpotFinder::m_eventList
private

Definition at line 92 of file InDetBeamSpotFinder.h.

◆ m_eventMap

std::map< BeamSpot::ID, std::vector<BeamSpot::Event> > InDet::InDetBeamSpotFinder::m_eventMap
private

Definition at line 93 of file InDetBeamSpotFinder.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_fitSortingKey

std::string InDet::InDetBeamSpotFinder::m_fitSortingKey {}
private

Definition at line 131 of file InDetBeamSpotFinder.h.

131{};

◆ m_maxAbsCorrelXY

double InDet::InDetBeamSpotFinder::m_maxAbsCorrelXY {}
private

Definition at line 118 of file InDetBeamSpotFinder.h.

118{}; //max absolute XY correlation of a vertex to be added

◆ m_maxChi2Vertex

double InDet::InDetBeamSpotFinder::m_maxChi2Vertex {}
private

Definition at line 116 of file InDetBeamSpotFinder.h.

116{}; //maxChi2 of vertex

◆ m_maxEventsPerFit

unsigned int InDet::InDetBeamSpotFinder::m_maxEventsPerFit
private

Definition at line 60 of file InDetBeamSpotFinder.h.

◆ m_maxLBsPerFit

unsigned int InDet::InDetBeamSpotFinder::m_maxLBsPerFit
private

Definition at line 61 of file InDetBeamSpotFinder.h.

◆ m_maxRunsPerFit

unsigned int InDet::InDetBeamSpotFinder::m_maxRunsPerFit
private

Definition at line 59 of file InDetBeamSpotFinder.h.

◆ m_maxTrackNum

int InDet::InDetBeamSpotFinder::m_maxTrackNum {}
private

Definition at line 115 of file InDetBeamSpotFinder.h.

115{}; //max Tracks in a vertex to be added

◆ m_maxTransverseError

double InDet::InDetBeamSpotFinder::m_maxTransverseError {}
private

Definition at line 117 of file InDetBeamSpotFinder.h.

117{}; // max transverse vertex resolution

◆ m_minTrackNum

int InDet::InDetBeamSpotFinder::m_minTrackNum {}
private

Definition at line 114 of file InDetBeamSpotFinder.h.

114{}; //min Tracks in a vertex to be added

◆ m_minVertexNum

unsigned int InDet::InDetBeamSpotFinder::m_minVertexNum {}
private

Definition at line 120 of file InDetBeamSpotFinder.h.

120{}; //min vertex count for solution

◆ m_minVtxProb

double InDet::InDetBeamSpotFinder::m_minVtxProb {}
private

Definition at line 119 of file InDetBeamSpotFinder.h.

119{}; // probability cut on chi2/ndf

◆ m_root_bs

TTree* InDet::InDetBeamSpotFinder::m_root_bs =0
private

Definition at line 68 of file InDetBeamSpotFinder.h.

◆ m_root_vrt

TTree* InDet::InDetBeamSpotFinder::m_root_vrt =0
private

Definition at line 69 of file InDetBeamSpotFinder.h.

◆ m_root_vtx

vertexNtuple_struct InDet::InDetBeamSpotFinder::m_root_vtx
private

Definition at line 88 of file InDetBeamSpotFinder.h.

◆ m_secondsPerFit

unsigned long InDet::InDetBeamSpotFinder::m_secondsPerFit {}
private

Definition at line 137 of file InDetBeamSpotFinder.h.

137{};

◆ m_sortedEventList

std::vector<std::vector<BeamSpot::Event> > InDet::InDetBeamSpotFinder::m_sortedEventList
private

Definition at line 94 of file InDetBeamSpotFinder.h.

◆ m_sortedVertices

std::vector<std::vector<BeamSpot::VrtHolder> > InDet::InDetBeamSpotFinder::m_sortedVertices
private

Definition at line 95 of file InDetBeamSpotFinder.h.

◆ m_thistSvc

ServiceHandle<ITHistSvc> InDet::InDetBeamSpotFinder::m_thistSvc {this, "THistSvc", "THistSvc"}
private

Definition at line 47 of file InDetBeamSpotFinder.h.

47{this, "THistSvc", "THistSvc"};

◆ m_toolSvc

ServiceHandle<IToolSvc> InDet::InDetBeamSpotFinder::m_toolSvc {this, "ToolSvc", "ToolSvc"}
private

Definition at line 46 of file InDetBeamSpotFinder.h.

46{this, "ToolSvc", "ToolSvc"};

◆ m_useFilledBCIDsOnly

bool InDet::InDetBeamSpotFinder::m_useFilledBCIDsOnly {}
private

Definition at line 130 of file InDetBeamSpotFinder.h.

130{}; // Only use filled BCIDs not empty ones (data)

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vertexContainer

SG::ReadHandleKey<xAOD::VertexContainer> InDet::InDetBeamSpotFinder::m_vertexContainer {this, "VertexContainer", "PrimaryVertices", "Vertex container name"}
private

Definition at line 55 of file InDetBeamSpotFinder.h.

56{this, "VertexContainer", "PrimaryVertices", "Vertex container name"};

◆ m_vertexTreeName

std::string InDet::InDetBeamSpotFinder::m_vertexTreeName
private

Definition at line 91 of file InDetBeamSpotFinder.h.

◆ m_vertexTypeNames

std::vector<std::string> InDet::InDetBeamSpotFinder::m_vertexTypeNames {}
private

Definition at line 122 of file InDetBeamSpotFinder.h.

122{}; //names of vertexTypes

◆ m_vertexTypes

std::vector<xAOD::VxType::VertexType> InDet::InDetBeamSpotFinder::m_vertexTypes {}
private

Definition at line 123 of file InDetBeamSpotFinder.h.

123{};

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_writeAllVertices

bool InDet::InDetBeamSpotFinder::m_writeAllVertices {}
private

Definition at line 133 of file InDetBeamSpotFinder.h.

133{};

◆ m_writeVertexNtuple

bool InDet::InDetBeamSpotFinder::m_writeVertexNtuple
private

Definition at line 65 of file InDetBeamSpotFinder.h.


The documentation for this class was generated from the following files: