ATLAS Offline Software
Simulation
G4Extensions
G4CosmicFilter
src
G4CosmicOrFilter.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
G4CosmicFilter/G4CosmicOrFilter.h
"
6
#include "
MCTruth/TrackHelper.h
"
7
#include "
TrackRecord/TrackRecordCollection.h
"
8
#include "G4RunManager.hh"
9
#include "G4Event.hh"
10
#include "
StoreGate/ReadHandle.h
"
11
12
#include "GaudiKernel/Bootstrap.h"
13
#include "GaudiKernel/ISvcLocator.h"
14
#include "GaudiKernel/IMessageSvc.h"
15
16
namespace
G4UA
17
{
18
19
G4CosmicOrFilter::G4CosmicOrFilter
(
const
Config
&
config
)
20
:
AthMessaging
(
Gaudi
::svcLocator()->service< IMessageSvc >(
"MessageSvc"
),
"G4CosmicOrFilter"
),
21
m_config(
config
), m_report()
22
{
23
}
24
25
void
G4CosmicOrFilter::EndOfEventAction
(
const
G4Event*)
26
{
27
int
counterOne(0), counterTwo(0), counterThree(0);
28
//need way to get "and" or "or" in
29
m_report
.
ntot
++;
30
31
SG::ReadHandle <TrackRecordCollection>
coll(
m_config
.
collectionName
);
32
if
(! coll.
isValid
()) {
33
ATH_MSG_WARNING
(
"Cannot retrieve TrackRecordCollection "
);
34
}
35
else
{
36
counterOne = coll->
size
();
37
}
38
39
SG::ReadHandle <TrackRecordCollection>
coll2(
m_config
.
collectionName2
);
40
if
(!coll2.
isValid
()) {
41
ATH_MSG_WARNING
(
"Cannot retrieve TrackRecordCollection "
);
42
}
43
else
{
44
counterTwo = coll2->
size
();
45
}
46
47
SG::ReadHandle <TrackRecordCollection>
coll3(
m_config
.
collectionName3
);
48
if
(! coll3.
isValid
()) {
49
ATH_MSG_WARNING
(
"Cannot retrieve TrackRecordCollection"
);
50
}
51
else
{
52
counterThree = coll3->
size
();
53
}
54
55
if
(counterOne==0 && counterTwo==0 && counterThree==0) {
56
ATH_MSG_INFO
(
"aborting event due to failing OR filter"
);
57
G4RunManager::GetRunManager()->AbortEvent();
58
}
59
else
{
60
m_report
.
npass
++;
61
}
62
}
63
64
}
// namespace G4UA
G4CosmicOrFilter.h
G4UA::G4CosmicOrFilter::G4CosmicOrFilter
G4CosmicOrFilter(const Config &config)
Definition:
G4CosmicOrFilter.cxx:19
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition:
AthMsgStreamMacros.h:31
G4UA
for nSW
Definition:
CalibrationDefaultProcessing.h:19
SG::ReadHandle
Definition:
StoreGate/StoreGate/ReadHandle.h:70
G4UA::G4CosmicOrFilter::Report::npass
int npass
Definition:
G4CosmicOrFilter.h:33
TrackHelper.h
config
Definition:
PhysicsAnalysis/AnalysisCommon/AssociationUtils/python/config.py:1
G4UA::G4CosmicOrFilter::Config::collectionName
std::string collectionName
Definition:
G4CosmicOrFilter.h:25
G4UA::G4CosmicOrFilter::EndOfEventAction
virtual void EndOfEventAction(const G4Event *) override
Definition:
G4CosmicOrFilter.cxx:25
G4UA::G4CosmicOrFilter::Config::collectionName2
std::string collectionName2
Definition:
G4CosmicOrFilter.h:26
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition:
AthMessaging.h:55
G4UA::G4CosmicOrFilter::Report::ntot
int ntot
Definition:
G4CosmicOrFilter.h:32
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
G4UA::G4CosmicOrFilter::m_config
Config m_config
Definition:
G4CosmicOrFilter.h:49
TrackRecordCollection.h
G4UA::G4CosmicOrFilter::m_report
Report m_report
Definition:
G4CosmicOrFilter.h:50
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition:
AthMsgStreamMacros.h:32
G4UA::G4CosmicOrFilter::Config::collectionName3
std::string collectionName3
Definition:
G4CosmicOrFilter.h:27
Gaudi
=============================================================================
Definition:
CaloGPUClusterAndCellDataMonitorOptions.h:273
AtlasHitsVector::size
size_type size() const
Definition:
AtlasHitsVector.h:143
ReadHandle.h
Handle class for reading from StoreGate.
G4UA::G4CosmicOrFilter::Config
Definition:
G4CosmicOrFilter.h:24
Generated on Thu Jul 4 2024 21:16:04 for ATLAS Offline Software by
1.8.18