Skip to content
Snippets Groups Projects
Commit 07c1acb6 authored by Zach Marshall's avatar Zach Marshall Committed by Graeme Stewart
Browse files

Moving to linked_library , should have no effect except to remove warnings...

Moving to linked_library , should have no effect except to remove warnings (G4CosmicFilter-00-00-31)

	* Tagging: G4CosmicFilter-00-00-31
	* Moving to linked_library , should have no effect

2015-02-11  Zach Marshall <ZLMarshall@lbl.gov>

	* Tagging: G4CosmicFilter-00-00-30
	* Better auto for loop - cleanliness, next to godliness

2015-02-11  Zach Marshall <ZLMarshall@lbl.gov>

	* Tagging: G4CosmicFilter-00-00-29
	* Significant code cleanup, use of proper baseclass and macros
parent 6b3c6db6
No related merge requests found
......@@ -10,13 +10,14 @@
#ifndef G4CosmicAndFilter_H
#define G4CosmicAndFilter_H
#include "FadsActions/ActionsBase.h"
#include "FadsActions/UserAction.h"
#include <string>
#include "GaudiKernel/ISvcLocator.h"
#include "GaudiKernel/Bootstrap.h"
#include "StoreGate/StoreGateSvc.h"
class G4CosmicAndFilter: public FADS::UserAction {
class G4CosmicAndFilter: public FADS::ActionsBase , public FADS::UserAction {
private:
int ntracks;
......@@ -29,7 +30,7 @@ private:
std::string m_collectionName2;
public:
G4CosmicAndFilter(std::string s):FADS::UserAction(s),ntracks(0),m_storeGate(0),m_ntot(0),m_npass(0){};
G4CosmicAndFilter(std::string s):FADS::ActionsBase(s),FADS::UserAction(s),ntracks(0),m_storeGate(0),m_ntot(0),m_npass(0){};
void BeginOfEventAction(const G4Event*);
void EndOfEventAction(const G4Event*);
void BeginOfRunAction(const G4Run*);
......
......@@ -11,12 +11,13 @@
#define G4CosmicFilter_H
#include "FadsActions/UserAction.h"
#include "FadsActions/ActionsBase.h"
#include <string>
#include "GaudiKernel/ISvcLocator.h"
#include "GaudiKernel/Bootstrap.h"
#include "StoreGate/StoreGateSvc.h"
class G4CosmicFilter: public FADS::UserAction {
class G4CosmicFilter: public FADS::ActionsBase , public FADS::UserAction {
private:
StoreGateSvc* m_storeGate;
......@@ -30,7 +31,7 @@ private:
bool m_init;
public:
G4CosmicFilter(std::string s):FADS::UserAction(s),m_storeGate(0),m_ntot(0),m_npass(0),m_magicID(0),m_ptMin(-1),m_ptMax(-1),m_init(false){};
G4CosmicFilter(std::string s):FADS::ActionsBase(s),FADS::UserAction(s),m_storeGate(0),m_ntot(0),m_npass(0),m_magicID(0),m_ptMin(-1),m_ptMax(-1),m_init(false){};
void BeginOfEventAction(const G4Event*);
void EndOfEventAction(const G4Event*);
void BeginOfRunAction(const G4Run*);
......
......@@ -10,13 +10,14 @@
#ifndef G4CosmicOrFilter_H
#define G4CosmicOrFilter_H
#include "FadsActions/ActionsBase.h"
#include "FadsActions/UserAction.h"
#include <string>
#include "GaudiKernel/ISvcLocator.h"
#include "GaudiKernel/Bootstrap.h"
#include "StoreGate/StoreGateSvc.h"
class G4CosmicOrFilter: public FADS::UserAction {
class G4CosmicOrFilter: public FADS::ActionsBase , public FADS::UserAction {
private:
int ntracks;
......@@ -30,7 +31,7 @@ private:
std::string m_collectionName3;
public:
G4CosmicOrFilter(std::string s):FADS::UserAction(s),ntracks(0),m_storeGate(0),m_ntot(0),m_npass(0){};
G4CosmicOrFilter(std::string s):FADS::ActionsBase(s),FADS::UserAction(s),ntracks(0),m_storeGate(0),m_ntot(0),m_npass(0){};
void BeginOfEventAction(const G4Event*);
void EndOfEventAction(const G4Event*);
void BeginOfRunAction(const G4Run*);
......
......@@ -8,21 +8,20 @@ branches src cmt
use AtlasPolicy AtlasPolicy-*
use GaudiInterface GaudiInterface-* External
use FadsActions FadsActions-* Simulation/G4Sim/FADS
use FadsActions FadsActions-* Simulation/G4Sim/FADS
use StoreGate StoreGate-* Control
use StoreGate StoreGate-* Control
private
use FadsSensitiveDetector FadsSensitiveDetector-* Simulation/G4Sim/FADS
use Geant4 Geant4-* External
use TrackRecord TrackRecord-* Simulation/G4Sim
use MCTruth MCTruth-* Simulation/G4Sim
use TrackRecord TrackRecord-* Simulation/G4Sim
use MCTruth MCTruth-* Simulation/G4Sim
end_private
include_dirs "$(G4CosmicFilter_root)"
library G4CosmicFilter ../src/*.cxx
apply_pattern component_library
apply_pattern linked_library
apply_pattern declare_joboptions files="*.py"
......@@ -3,17 +3,11 @@
*/
#include "G4CosmicFilter/G4CosmicAndFilter.h"
#include <iostream>
#include "G4UImanager.hh"
#include "MCTruth/TrackHelper.h"
#include "MCTruth/TrackRecorderSD.h"
#include "FadsSensitiveDetector/FadsSensitiveDetector.h"
#include "TrackRecord/TrackRecordCollection.h"
#include "FadsSensitiveDetector/SensitiveDetectorCatalog.h"
#include "TrackRecord/TrackRecordCollection.h"
#include "G4RunManager.hh"
#include "G4Event.hh"
#include "GaudiKernel/MsgStream.h"
static G4CosmicAndFilter ts1("G4CosmicAndFilter");
......@@ -29,11 +23,10 @@ void G4CosmicAndFilter::EndOfEventAction(const G4Event*)
StatusCode sc = m_storeGate->retrieve(coll,m_collectionName);
if (sc.isFailure()) {
std::cout<< " G4CosmicAndFilter: EndOfEventAction Cannot retrieve TrackRecordCollection " << m_collectionName << std::endl;
ATH_MSG_WARNING( "Cannot retrieve TrackRecordCollection " << m_collectionName );
}
int counter = coll->size();
// std::cout<< " G4CosmicAndFilter: EndOfEventAction counter is " <<counter<< std::endl;
if (counter==0){
G4RunManager::GetRunManager()->AbortEvent();
......@@ -44,14 +37,12 @@ void G4CosmicAndFilter::EndOfEventAction(const G4Event*)
StatusCode sc = m_storeGate->retrieve(coll2,m_collectionName2);
if (sc.isFailure()) {
std::cout<< " G4CosmicAndFilter: EndOfEventAction Cannot retrieve TrackRecordCollection " << m_collectionName2 << std::endl;
ATH_MSG_INFO( "Cannot retrieve TrackRecordCollection " << m_collectionName2 );
}
counter = coll2->size();
// std::cout<< " G4CosmicAndFilter: EndOfEventAction counter is " <<counter<< std::endl;
if (counter==0){
// std::cout<< " G4CosmicAndFilter: counter is 0 aborting event ..."<< std::endl;
G4RunManager::GetRunManager()->AbortEvent();
} else m_npass++;
......@@ -61,29 +52,28 @@ void G4CosmicAndFilter::EndOfEventAction(const G4Event*)
void G4CosmicAndFilter::BeginOfRunAction(const G4Run*)
{
if(theProperties.find("VolumeName")==theProperties.end()){
std::cout<<"G4CosmicAndFilter: no VolumeName specified, setting to default (=TRTBarrelEntryLayer)"<<std::endl;
ATH_MSG_INFO( "no VolumeName specified, setting to default (=TRTBarrelEntryLayer)" );
theProperties["VolumeName"]="TRTBarrelEntryLayer";
};
m_collectionName = theProperties["VolumeName"].c_str();
if(theProperties.find("VolumeName2")==theProperties.end()){
std::cout<<"G4CosmicAndFilter: no VolumeName2 specified, setting to default (=CaloEntryLayer)"<<std::endl;
ATH_MSG_INFO( "no VolumeName2 specified, setting to default (=CaloEntryLayer)" );
theProperties["VolumeName2"]="CaloEntryLayer";
};
m_collectionName2 = theProperties["VolumeName2"].c_str();
std::cout<<"G4CosmicAndFilter: using collectionName "<<m_collectionName << " and " <<m_collectionName2 <<std::endl;
ATH_MSG_INFO( "using collectionName "<<m_collectionName << " and " <<m_collectionName2 );
ISvcLocator* svcLocator = Gaudi::svcLocator(); // from Bootstrap
StatusCode status = svcLocator->service("StoreGateSvc", m_storeGate);
if (status.isFailure())
{
std::cout<< " G4CosmicAndFilter: BeginOfRunAction could not access StoreGateSvc!"<<std::endl;
}
if (status.isFailure()) {
ATH_MSG_WARNING( "Could not access StoreGateSvc!" );
}
}
void G4CosmicAndFilter::EndOfRunAction(const G4Run*)
{
std::cout<<"G4CosmicAndFilter: processed "<< m_ntot <<" events, "<< m_npass<<" events passed filter "<<std::endl;
ATH_MSG_INFO( "processed "<< m_ntot <<" events, "<< m_npass<<" events passed filter " );
}
void G4CosmicAndFilter::SteppingAction(const G4Step*)
......
......@@ -3,18 +3,12 @@
*/
#include "G4CosmicFilter/G4CosmicFilter.h"
#include <iostream>
#include <stdexcept>
#include "G4UImanager.hh"
#include "MCTruth/TrackHelper.h"
#include "MCTruth/TrackRecorderSD.h"
#include "FadsSensitiveDetector/FadsSensitiveDetector.h"
#include "TrackRecord/TrackRecordCollection.h"
#include "FadsSensitiveDetector/SensitiveDetectorCatalog.h"
#include "TrackRecord/TrackRecordCollection.h"
#include "G4RunManager.hh"
#include "G4Event.hh"
#include "GaudiKernel/MsgStream.h"
static G4CosmicFilter ts1("G4CosmicFilter");
......@@ -33,7 +27,7 @@ void G4CosmicFilter::EndOfEventAction(const G4Event*)
StatusCode sc = m_storeGate->retrieve(coll,m_collectionName);
if (sc.isFailure() || !coll) {
std::cout<< " G4CosmicFilter: EndOfEventAction Cannot retrieve TrackRecordCollection " << m_collectionName << std::endl;
ATH_MSG_WARNING( "Cannot retrieve TrackRecordCollection " << m_collectionName );
counter = 0;
G4RunManager::GetRunManager()->AbortEvent();
return;
......@@ -42,10 +36,10 @@ void G4CosmicFilter::EndOfEventAction(const G4Event*)
if (m_magicID!=0 || m_ptMin>0 || m_ptMax>0){
counter=0;
for (unsigned int i=0;i<coll->size();++i){
if (m_magicID!=0 && m_magicID != fabs(coll->operator[](i).GetPDGCode())) continue;
if (m_ptMin>0 && m_ptMin > coll->operator[](i).GetMomentum().perp() ) continue;
if (m_ptMax>0 && m_ptMax < coll->operator[](i).GetMomentum().perp() ) continue;
for (const auto& a_tr : *coll){
if (m_magicID!=0 && m_magicID != fabs(a_tr.GetPDGCode())) continue;
if (m_ptMin>0 && m_ptMin > a_tr.GetMomentum().perp() ) continue;
if (m_ptMax>0 && m_ptMax < a_tr.GetMomentum().perp() ) continue;
counter++;
}
}
......@@ -63,14 +57,14 @@ void G4CosmicFilter::BeginOfRunAction(const G4Run*)
void G4CosmicFilter::ParseProperties(){
if(theProperties.find("VolumeName")==theProperties.end()){
std::cout<<"G4CosmicFilter: no VolumeName specified, setting to default (=CaloEntryLayer)"<<std::endl;
ATH_MSG_INFO( "no VolumeName specified, setting to default (=CaloEntryLayer)" );
theProperties["VolumeName"]="CaloEntryLayer";
}
m_collectionName = theProperties["VolumeName"].c_str();
std::cout<<"G4CosmicFilter: using collectionName "<<m_collectionName <<std::endl;
ATH_MSG_INFO( "using collectionName "<<m_collectionName );
if(theProperties.find("PDG_ID")==theProperties.end()){
std::cout<<"G4CosmicFilter: no PDG ID specified, setting to default (=none)"<<std::endl;
ATH_MSG_INFO( "G4CosmicFilter: no PDG ID specified, setting to default (=none)" );
theProperties["PDG_ID"]="0";
}
char *endptr;
......@@ -78,10 +72,10 @@ void G4CosmicFilter::ParseProperties(){
if (endptr[0] != '\0') {
throw std::invalid_argument("Could not convert string to int: " + theProperties["PDG_ID"]);
}
std::cout<<"G4CosmicFilter: using PDG ID "<<m_magicID<<std::endl;
ATH_MSG_INFO( "using PDG ID "<<m_magicID );
if(theProperties.find("pTmin")==theProperties.end()){
std::cout<<"G4CosmicFilter: no pTmin specified, setting to default (=-1)"<<std::endl;
ATH_MSG_INFO( "no pTmin specified, setting to default (=-1)" );
theProperties["pTmin"]="-1";
}
m_ptMin = strtol(theProperties["pTmin"].c_str(), &endptr, 0);
......@@ -89,29 +83,29 @@ void G4CosmicFilter::ParseProperties(){
throw std::invalid_argument("Could not convert string to int: " + theProperties["pTmin"]);
}
std::cout<<"G4CosmicFilter: using pTmin "<<m_ptMin<<std::endl;
ATH_MSG_INFO( "using pTmin "<<m_ptMin );
if(theProperties.find("pTmax")==theProperties.end()){
std::cout<<"G4CosmicFilter: no pTmax specified, setting to default (=-1)"<<std::endl;
ATH_MSG_INFO( "G4CosmicFilter: no pTmax specified, setting to default (=-1)" );
theProperties["pTmax"]="-1";
}
m_ptMax = strtol(theProperties["pTmax"].c_str(), &endptr, 0);
if (endptr[0] != '\0') {
throw std::invalid_argument("Could not convert string to int: " + theProperties["pTmax"]);
}
std::cout<<"G4CosmicFilter: using pTmax "<<m_ptMax<<std::endl;
ATH_MSG_INFO( "using pTmax "<<m_ptMax );
ISvcLocator* svcLocator = Gaudi::svcLocator(); // from Bootstrap
StatusCode status = svcLocator->service("StoreGateSvc", m_storeGate);
if (status.isFailure()){
std::cout<< " G4CosmicFilter: BeginOfRunAction could not access StoreGateSvc!"<<std::endl;
ATH_MSG_WARNING( "Could not access StoreGateSvc!" );
}
m_init=true;
}
void G4CosmicFilter::EndOfRunAction(const G4Run*)
{
std::cout<<"G4CosmicFilter: processed "<< m_ntot <<" events, "<< m_npass<<" events passed filter "<<std::endl;
ATH_MSG_INFO( "processed "<< m_ntot <<" events, "<< m_npass<<" events passed filter" );
}
void G4CosmicFilter::SteppingAction(const G4Step*){;}
......
......@@ -3,134 +3,86 @@
*/
#include "G4CosmicFilter/G4CosmicOrFilter.h"
#include <iostream>
#include "G4UImanager.hh"
#include "MCTruth/TrackHelper.h"
#include "MCTruth/TrackRecorderSD.h"
#include "FadsSensitiveDetector/FadsSensitiveDetector.h"
#include "TrackRecord/TrackRecordCollection.h"
#include "FadsSensitiveDetector/SensitiveDetectorCatalog.h"
#include "TrackRecord/TrackRecordCollection.h"
#include "G4RunManager.hh"
#include "G4Event.hh"
#include "GaudiKernel/MsgStream.h"
static G4CosmicOrFilter ts1("G4CosmicOrFilter");
void G4CosmicOrFilter::BeginOfEventAction(const G4Event*)
{
// MsgStream log(msgSvc(), "G4CosmicOrFilter");
// log << MSG::DEBUG << "BeginOfEventAction " << endreq;
}
{;}
void G4CosmicOrFilter::EndOfEventAction(const G4Event*)
{
// MsgStream log(msgSvc(), "G4CosmicOrFilter");
// log << MSG::INFO << "EndOfEventAction " << endreq;
//std::cout<< " G4CosmicOrFilter: in EndOfEventAction " << std::endl;
int counterOne(0), counterTwo(0), counterThree(0);
//need way to get "and" or "or" in
m_ntot++;
const DataHandle <TrackRecordCollection> coll;
StatusCode sc = m_storeGate->retrieve(coll,m_collectionName);
if (sc.isFailure()) {
//log << MSG::DEBUG << " EndOfEventAction Cannot retrieve TrackRecordCollection " << endreq;
// std::cout<< " G4CosmicOrFilter: EndOfEventAction Cannot retrieve TrackRecordCollection " << std::endl;
ATH_MSG_WARNING( "Cannot retrieve TrackRecordCollection " );
} else {
counterOne = coll->size();
}
// std::cout<< " G4CosmicOrFilter: EndOfEventAction retrieved TrackRecordCollection ok " << std::endl;
counterOne = coll->size();
const DataHandle <TrackRecordCollection> coll2;
StatusCode sc2 = m_storeGate->retrieve(coll2,m_collectionName2);
if (sc2.isFailure()) {
// log << MSG::WARNING << " EndOfEventAction Cannot retrieve TrackRecordCollection " << endreq;
// std::cout<< " G4CosmicOrFilter: EndOfEventAction Cannot retrieve TrackRecordCollection " << std::endl;
sc = m_storeGate->retrieve(coll2,m_collectionName2);
if (sc.isFailure()) {
ATH_MSG_WARNING( "Cannot retrieve TrackRecordCollection " );
} else {
counterTwo = coll2->size();
}
// std::cout<< " G4CosmicOrFilter: EndOfEventAction retrieved TrackRecordCollection ok " << std::endl;
counterTwo = coll2->size();
const DataHandle <TrackRecordCollection> coll3;
StatusCode sc3 = m_storeGate->retrieve(coll3,m_collectionName3);
if (sc3.isFailure()) {
// log << MSG::WARNING << " EndOfEventAction Cannot retrieve TrackRecordCollection " << endreq;
// std::cout<< " G4CosmicOrFilter: EndOfEventAction Cannot retrieve TrackRecordCollection " << std::endl;
sc = m_storeGate->retrieve(coll3,m_collectionName3);
if (sc.isFailure()) {
ATH_MSG_WARNING( "Cannot retrieve TrackRecordCollection" );
} else {
counterThree = coll3->size();
}
// std::cout<< " G4CosmicOrFilter: EndOfEventAction retrieved TrackRecordCollection ok " << std::endl;
counterThree = coll3->size();
//std::cout << " G4CosmicOrFilter: EndOfEventAction " << counterOne << ", " << counterTwo << ", " << counterThree << std::endl;
if (counterOne==0 && counterTwo==0 && counterThree==0){
// std::cout<< " G4CosmicOrFilter: counter is 0 aborting event ..."<< std::endl;
ATH_MSG_DEBUG( "counter is 0 aborting event ..." );
G4RunManager::GetRunManager()->AbortEvent();
} else {
// std::cout<< " G4CosmicOrFilter: counter is> 0 not aborting event ... passed events "<<m_npass<< std::endl;
m_npass++;}
ATH_MSG_VERBOSE( "counter is> 0 not aborting event ... passed events "<<m_npass );
m_npass++;
}
}
void G4CosmicOrFilter::BeginOfRunAction(const G4Run*)
{
// MsgStream log(msgSvc(), "G4CosmicOrFilter");
// log << MSG::DEBUG << "BeginOfRunAction " << endreq;
//std::cout<< " G4CosmicOrFilter: in BeginOfRunAction " << std::endl;
if(theProperties.find("VolumeName")==theProperties.end()){
std::cout<<"G4CosmicOrFilter: no VolumeName specified, setting to default (=TRTBarrelEntryLayer)"<<std::endl;
ATH_MSG_INFO( "no VolumeName specified, setting to default (=TRTBarrelEntryLayer)" );
theProperties["VolumeName"]="TRTBarrelEntryLayer";
};
}
m_collectionName = theProperties["VolumeName"].c_str();
if(theProperties.find("VolumeName2")==theProperties.end()){
std::cout<<"G4CosmicOrFilter: no VolumeName2 specified, setting to default (=CaloEntryLayer)"<<std::endl;
ATH_MSG_INFO( "no VolumeName2 specified, setting to default (=CaloEntryLayer)" );
theProperties["VolumeName2"]="CaloEntryLayer";
};
}
m_collectionName2 = theProperties["VolumeName2"].c_str();
m_collectionName3 = theProperties["VolumeName3"].c_str();
std::cout<<"G4CosmicOrFilter: using collectionName(s) "<<m_collectionName << " and " <<m_collectionName2 << "and, with OR " << m_collectionName3 << std::endl;
ATH_MSG_INFO( "G4CosmicOrFilter: using collectionName(s) "<<m_collectionName << " and " <<m_collectionName2 << "and, with OR " << m_collectionName3 );
ISvcLocator* svcLocator = Gaudi::svcLocator(); // from Bootstrap
StatusCode status = svcLocator->service("StoreGateSvc", m_storeGate);
if (status.isFailure())
{
// std::cout<< " G4CosmicOrFilter: BeginOfRunAction could not access StoreGateSvc!"<<std::endl;
// log << MSG::WARNING <<"G4CosmicOrFilter::BeginOfRunAction could not access StoreGateSvc!"<<endreq;
}
if (status.isFailure()){
ATH_MSG_WARNING( "Could not access StoreGateSvc!" );
}
}
void G4CosmicOrFilter::EndOfRunAction(const G4Run*)
{
/*
MsgStream log(msgSvc(), "G4CosmicOrFilter");
log << MSG::DEBUG << "BeginOfRunAction " << endreq;
log << MSG::INFO << " processed "<< m_ntot <<" events, "<< m_npass<<" events passed filter "<<endreq;
*/
std::cout<<"G4CosmicOrFilter: processed "<< m_ntot <<" events, "<< m_npass<<" events passed filter "<<std::endl;
ATH_MSG_INFO( "Processed "<< m_ntot <<" events, "<< m_npass<<" events passed filter " );
}
void G4CosmicOrFilter::SteppingAction(const G4Step*)
{
}
{;}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment