ATLAS Offline Software
AthTileTripReader.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /*
6  * File: AthTileTripReader.cxx
7  * Author: Stephen Cole <stephen.cole@cern.ch>
8  *
9  * Created on August 21, 2012, 11:32 AM
10  */
11 
17 #include "GaudiKernel/MsgStream.h"
18 
19 #include "TSystem.h"
20 
22 
23 using namespace std;
24 using namespace Root;
25 using xAOD::EventInfo;
26 
28  const std::string& name,
29  const IInterface* parent): AthAlgTool(type,name,parent) {
30 
32  declareInterface<AthTileTripReader>(this);
33 
34  declareProperty("TileTripFile",
35  m_tripFile="/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/TileTripReader/CompleteTripList_2015-2018.root",
36  "Path to the trip list file");
37 
38  declareProperty("dR",m_dR=0.4);
39 
40 }
41 
42 
44  if(m_tripReader)delete m_tripReader;
45 }
46 
47 
49  MsgStream mslog( msgSvc(), name() );
50  const char* fname;
51  if(m_tripFile[0] == '/' || m_tripFile[0] == '$' ||
52  m_tripFile[0] == '.' || m_tripFile.find(":")!=string::npos){
53  fname = gSystem->ExpandPathName( m_tripFile.c_str() );
54  }
55  else{
56  m_tripFile = PathResolverFindXMLFile( m_tripFile );
57  if ( m_tripFile.empty() )
58  ATH_MSG_WARNING("Could NOT resolve file name "<<m_tripFile);
59  fname=m_tripFile.data();
60  }
61 
62  if(!m_tripReader->setTripFile(fname)){
63  ATH_MSG_ERROR("ERROR! No trip file loaded!");
64  return StatusCode::FAILURE;
65  }
66  MSG::Level cLevel=mslog.currentLevel();
67  if(cLevel<=MSG::DEBUG)
68  m_tripReader->setVerbosity(1);
69  else m_tripReader->setVerbosity(0);
70  m_tripReader->initialize();
71  return StatusCode::SUCCESS;
72 }
73 
75  if(!m_tripReader->finalize()){
76  ATH_MSG_ERROR ( "ERROR! Something went wrong at finalize!" );
77  return StatusCode::FAILURE;
78  }
79  return StatusCode::SUCCESS;
80 }
81 
83  const EventInfo* evt=0;
84  StatusCode sc=evtStore()->retrieve(evt,"ByteStreamEventInfo");
85  if(sc.isFailure()){
86  ATH_MSG_ERROR ( "ERROR! Could not retrieve event info from store gate!");
87  return asg::AcceptData(&m_tripReader->getAcceptInfo());
88  }
89  if(!part) return m_tripReader->accept(evt->runNumber(),
90  evt->lumiBlock(),
91  evt->eventNumber());
92 
93  int tileFlags=evt->eventFlags(EventInfo::Tile);
94  int tileError=evt->errorState(EventInfo::Tile);
95  return m_tripReader->accept(evt->runNumber(),
96  evt->lumiBlock(),
97  evt->eventNumber(),
98  part->eta(),
99  part->phi(),
100  tileError,
101  tileFlags);
102 }
103 
105  const EventInfo* evt=0;
106  StatusCode sc=evtStore()->retrieve(evt,"ByteStreamEventInfo");
107  if(sc.isFailure()){
108  ATH_MSG_ERROR ( "ERROR! Could not retrieve event info from store gate!");
109  return 0;
110  }
111 
112  int tileFlags=evt->eventFlags(EventInfo::Tile);
113  int tileError=evt->errorState(EventInfo::Tile);
114  return m_tripReader->calculate(evt->runNumber(),
115  evt->lumiBlock(),
116  part->eta(),
117  part->phi(),
118  m_dR,
119  tileError,
120  tileFlags);
121 }
122 
124  const EventInfo* evt=0;
125  StatusCode sc=evtStore()->retrieve(evt,"ByteStreamEventInfo");
126  if(sc.isFailure()){
127  ATH_MSG_ERROR ( "ERROR! Could not retrieve event info from store gate!");
128  return false;
129  }
130 
131  return m_tripReader->checkEvent(evt->runNumber(),
132  evt->lumiBlock(),
133  evt->eventNumber());
134 
135 }
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
AthTileTripReader::m_tripFile
std::string m_tripFile
Definition: AthTileTripReader.h:65
Root
Definition: GoodRunsListSelectorTool.h:30
xAOD::EventInfo
EventInfo_v1 EventInfo
Definition of the latest event info version.
Definition: IEventInfoCnvTool.h:17
AthTileTripReader::checkEvent
bool checkEvent()
Definition: AthTileTripReader.cxx:123
INavigable4Momentum.h
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
EventInfo::Tile
@ Tile
Definition: EventInfo/EventInfo/EventInfo.h:54
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
AthTileTripReader::finalize
virtual StatusCode finalize() override
Definition: AthTileTripReader.cxx:74
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
AthTileTripReader::calculate
float calculate(const INavigable4Momentum *part)
Definition: AthTileTripReader.cxx:104
AthTileTripReader::initialize
virtual StatusCode initialize() override
Definition: AthTileTripReader.cxx:48
AthAlgorithm.h
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
AthTileTripReader::m_tripReader
Root::TTileTripReader * m_tripReader
Definition: AthTileTripReader.h:66
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
PathResolverFindXMLFile
std::string PathResolverFindXMLFile(const std::string &logical_file_name)
Definition: PathResolver.cxx:374
test_pyathena.parent
parent
Definition: test_pyathena.py:15
AthTileTripReader::~AthTileTripReader
virtual ~AthTileTripReader()
Definition: AthTileTripReader.cxx:43
AthTileTripReader::AthTileTripReader
AthTileTripReader(const std::string &type, const std::string &name, const IInterface *parent)
Definition: AthTileTripReader.cxx:27
PathResolver.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
errorcheck.h
Helpers for checking error return status codes and reporting errors.
EventInfo
This class provides general information about an event. Event information is provided by the accessor...
Definition: EventInfo/EventInfo/EventInfo.h:42
AthTileTripReader::m_dR
double m_dR
Definition: AthTileTripReader.h:67
EventInfo.h
python.AthDsoLogger.fname
string fname
Definition: AthDsoLogger.py:67
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
INavigable4Momentum
Definition: INavigable4Momentum.h:21
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
AthTileTripReader::accept
asg::AcceptData accept(const INavigable4Momentum *part=0)
Definition: AthTileTripReader.cxx:82
DEBUG
#define DEBUG
Definition: page_access.h:11
AthAlgTool
Definition: AthAlgTool.h:26
asg::AcceptData
Definition: AcceptData.h:30
Root::TTileTripReader
Definition: TTileTripReader.h:41
AthTileTripReader.h