ATLAS Offline Software
OnlineEventDisplaysSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ONLINEEVENTDISPLAYSSVC_H
6 #define ONLINEEVENTDISPLAYSSVC_H
7 
10 #include "GaudiKernel/IIncidentListener.h"
11 #include "StoreGate/ReadHandle.h"
13 #include <iostream>
14 #include <sys/stat.h>
15 #include <sys/types.h>
16 #include <unistd.h>
17 #include <grp.h>
18 
19 template <class TYPE> class SvcFactory;
20 
21 class OnlineEventDisplaysSvc : public AthService, virtual public IOnlineEventDisplaysSvc, virtual public IIncidentListener {
22 
23 protected:
24  friend class SvcFactory<OnlineEventDisplaysSvc>;
25 
26 public:
27 
28  OnlineEventDisplaysSvc( const std::string& name, ISvcLocator* pSvcLocator );
29 
30  static const InterfaceID& interfaceID();
31 
32  //To allow access to the IOnlineEventDisplaysSvc interface
33  StatusCode queryInterface( const InterfaceID& riid, void** ppvIf ) override;
34 
35  StatusCode initialize() override;
36  StatusCode finalize() override;
37  void beginEvent();
38  void endEvent();
39  void handle(const Incident& incident ) override;
40  void createWriteableDir(std::string directory, gid_t zpgid);
42  std::string getFileNamePrefix() override;
43  std::string getEntireOutputStr() override;
44  std::string getStreamName() override;
45 
46 private:
48  SG::ReadHandleKey<xAOD::EventInfo> m_evt{this, "EventInfo", "EventInfo", "Input event information"};
49  Gaudi::Property<std::string> m_outputDirectory {this, "OutputDirectory", "/atlas/EventDisplayEvents", "Output Directory"};
50  Gaudi::Property<std::vector<std::string>> m_streamsWanted {this, "StreamsWanted", {}, "Desired trigger streams"};
51  Gaudi::Property<std::vector<std::string>> m_publicStreams {this, "PublicStreams", {}, "Streams that can be seen by the public"};
52  Gaudi::Property<std::string> m_projectTag {this, "ProjectTag", "", "Is needed to add streams to the Public trigger streams"};
53  Gaudi::Property<bool> m_BeamSplash {this, "BeamSplash", false, "Is a beam splash event"};
54  Gaudi::Property<bool> m_CheckPair {this, "CheckPair", false, "Check for matching ESD and JiveXML files"};
55  Gaudi::Property<int> m_maxEvents {this, "MaxEvents", 200, "Number of events to keep per stream"};
56  std::string m_FileNamePrefix = "JiveXML";
57  std::string m_outputStreamDir = ".Unknown";
58  std::string m_entireOutputStr = ".";
61 
62 };
63 
64 inline const InterfaceID& OnlineEventDisplaysSvc::interfaceID()
65 {
67 }
68 
69 #endif
OnlineEventDisplaysSvc::interfaceID
static const InterfaceID & interfaceID()
Definition: OnlineEventDisplaysSvc.h:64
OnlineEventDisplaysSvc::m_CheckPair
Gaudi::Property< bool > m_CheckPair
Definition: OnlineEventDisplaysSvc.h:54
OnlineEventDisplaysSvc::getEntireOutputStr
std::string getEntireOutputStr() override
Definition: OnlineEventDisplaysSvc.cxx:177
OnlineEventDisplaysSvc::m_eventNumber
long m_eventNumber
Definition: OnlineEventDisplaysSvc.h:60
SvcFactory
Definition: AthCnvSvc.h:28
IOnlineEventDisplaysSvc::interfaceID
static const InterfaceID & interfaceID()
Definition: IOnlineEventDisplaysSvc.h:22
IOnlineEventDisplaysSvc.h
OnlineEventDisplaysSvc::m_outputStreamDir
std::string m_outputStreamDir
Definition: OnlineEventDisplaysSvc.h:57
OnlineEventDisplaysSvc::finalize
StatusCode finalize() override
Definition: OnlineEventDisplaysSvc.cxx:244
OnlineEventDisplaysSvc
Definition: OnlineEventDisplaysSvc.h:21
SG::ReadHandleKey< xAOD::EventInfo >
OnlineEventDisplaysSvc::m_outputDirectory
Gaudi::Property< std::string > m_outputDirectory
Definition: OnlineEventDisplaysSvc.h:49
OnlineEventDisplaysSvc::beginEvent
void beginEvent()
Definition: OnlineEventDisplaysSvc.cxx:18
OnlineEventDisplaysSvc::initialize
StatusCode initialize() override
Definition: OnlineEventDisplaysSvc.cxx:224
IOnlineEventDisplaysSvc
Definition: IOnlineEventDisplaysSvc.h:10
OnlineEventDisplaysSvc::setOwnershipToZpGrpOrDefault
gid_t setOwnershipToZpGrpOrDefault()
Definition: OnlineEventDisplaysSvc.cxx:212
OnlineEventDisplaysSvc::m_runNumber
int m_runNumber
Definition: OnlineEventDisplaysSvc.h:59
OnlineEventDisplaysSvc::m_maxEvents
Gaudi::Property< int > m_maxEvents
Definition: OnlineEventDisplaysSvc.h:55
DeMoScan.directory
string directory
Definition: DeMoScan.py:80
OnlineEventDisplaysSvc::endEvent
void endEvent()
Definition: OnlineEventDisplaysSvc.cxx:115
OnlineEventDisplaysSvc::OnlineEventDisplaysSvc
OnlineEventDisplaysSvc()
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthService
Definition: AthService.h:32
OnlineEventDisplaysSvc::m_entireOutputStr
std::string m_entireOutputStr
Definition: OnlineEventDisplaysSvc.h:58
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
EventInfo.h
OnlineEventDisplaysSvc::m_projectTag
Gaudi::Property< std::string > m_projectTag
Definition: OnlineEventDisplaysSvc.h:52
OnlineEventDisplaysSvc::queryInterface
StatusCode queryInterface(const InterfaceID &riid, void **ppvIf) override
Definition: OnlineEventDisplaysSvc.cxx:260
OnlineEventDisplaysSvc::createWriteableDir
void createWriteableDir(std::string directory, gid_t zpgid)
Definition: OnlineEventDisplaysSvc.cxx:184
OnlineEventDisplaysSvc::m_streamsWanted
Gaudi::Property< std::vector< std::string > > m_streamsWanted
Definition: OnlineEventDisplaysSvc.h:50
AthService.h
OnlineEventDisplaysSvc::m_BeamSplash
Gaudi::Property< bool > m_BeamSplash
Definition: OnlineEventDisplaysSvc.h:53
ReadHandle.h
Handle class for reading from StoreGate.
OnlineEventDisplaysSvc::m_evt
SG::ReadHandleKey< xAOD::EventInfo > m_evt
Definition: OnlineEventDisplaysSvc.h:48
OnlineEventDisplaysSvc::m_publicStreams
Gaudi::Property< std::vector< std::string > > m_publicStreams
Definition: OnlineEventDisplaysSvc.h:51
OnlineEventDisplaysSvc::getFileNamePrefix
std::string getFileNamePrefix() override
Definition: OnlineEventDisplaysSvc.cxx:173
OnlineEventDisplaysSvc::getStreamName
std::string getStreamName() override
Definition: OnlineEventDisplaysSvc.cxx:181
OnlineEventDisplaysSvc::handle
void handle(const Incident &incident) override
Definition: OnlineEventDisplaysSvc.cxx:250
OnlineEventDisplaysSvc::m_FileNamePrefix
std::string m_FileNamePrefix
Definition: OnlineEventDisplaysSvc.h:56