ATLAS Offline Software
Loading...
Searching...
No Matches
IFPGATrackSimEventInputHeaderTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
10
11#ifndef IFPGATrackSimEventInputHeaderTool_H
12#define IFPGATrackSimEventInputHeaderTool_H
13
14#include "GaudiKernel/IAlgTool.h"
15#include "TFile.h"
16#include "TTree.h"
17
18
19// to do: merge this with FPGATrackSimSGInput/IFPGATrackSimInputTool
20// since they are both abstract interfaces
21
23class IFPGATrackSimEventInputHeaderTool : virtual public ::IAlgTool
24{
25 public:
28
29
30 virtual StatusCode readData(FPGATrackSimEventInputHeader* header, bool &last) const = 0;
31 virtual StatusCode writeData(FPGATrackSimEventInputHeader* header) const = 0;
32 virtual FPGATrackSimEventInputHeader* getEventInputHeader() {return m_eventHeader; };
33 virtual TTree* getEventTree() {return m_EventTree;};
34
35 protected:
36
37 // ROOT I/O objects modified in const readData()/writeData() methods.
38 // - Modified in const methods: openFile() and readData()
39 // - Thread-safety: Protected by m_fileMutex (or m_readMutex) in derived classes (FPGATrackSimInputHeaderTool, FPGATrackSimReadRawRandomHitsTool)
40 mutable FPGATrackSimEventInputHeader* m_eventHeader ATLAS_THREAD_SAFE = nullptr;
41 mutable TFile* m_infile ATLAS_THREAD_SAFE = nullptr;
42 mutable TTree* m_EventTree ATLAS_THREAD_SAFE = nullptr;
43};
44
45
46#endif // IFPGATrackSimEventInputHeaderTool_H
DeclareInterfaceID(IFPGATrackSimEventInputHeaderTool, 1, 0)
virtual FPGATrackSimEventInputHeader * getEventInputHeader()
virtual StatusCode writeData(FPGATrackSimEventInputHeader *header) const =0
virtual StatusCode readData(FPGATrackSimEventInputHeader *header, bool &last) const =0
virtual ~IFPGATrackSimEventInputHeaderTool()=default
FPGATrackSimEventInputHeader *m_eventHeader ATLAS_THREAD_SAFE