ATLAS Offline Software
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 
6 #include "MCTruth/TrackHelper.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 
20  : AthMessaging(Gaudi::svcLocator()->service< IMessageSvc >("MessageSvc"), "G4CosmicOrFilter"),
21  m_config(config), m_report()
22  {
23  }
24 
26  {
27  int counterOne(0), counterTwo(0), counterThree(0);
28  //need way to get "and" or "or" in
29  m_report.ntot++;
30 
32  if (! coll.isValid()) {
33  ATH_MSG_WARNING( "Cannot retrieve TrackRecordCollection " );
34  }
35  else {
36  counterOne = coll->size();
37  }
38 
40  if (!coll2.isValid()) {
41  ATH_MSG_WARNING( "Cannot retrieve TrackRecordCollection " );
42  }
43  else {
44  counterTwo = coll2->size();
45  }
46 
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