ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
JiveXML::TruthMuonTrackRetriever Class Reference

Retrieves the muons information from the TrackRecordCollection. More...

#include <TruthMuonTrackRetriever.h>

Inheritance diagram for JiveXML::TruthMuonTrackRetriever:
Collaboration diagram for JiveXML::TruthMuonTrackRetriever:

Public Member Functions

 TruthMuonTrackRetriever (const std::string &type, const std::string &name, const IInterface *parent)
 Standard Constructor. More...
 
virtual StatusCode retrieve (ToolHandle< IFormatTool > &FormatTool)
 Retrieve all the data. More...
 
virtual std::string dataTypeName () const
 Return the name of the data type. More...
 
StatusCode initialize ()
 Default AthAlgTool methods. More...
 

Private Attributes

const std::string m_typeName
 The data type that is generated by this retriever. More...
 
std::vector< std::string > m_TrackRecCollNames
 A list of StoreGate names to probe in this order for the muon record collecton. More...
 

Detailed Description

Retrieves the muons information from the TrackRecordCollection.

Definition at line 38 of file TruthMuonTrackRetriever.h.

Constructor & Destructor Documentation

◆ TruthMuonTrackRetriever()

JiveXML::TruthMuonTrackRetriever::TruthMuonTrackRetriever ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Standard Constructor.

This is the standard AthAlgTool constructor.

Parameters
typeAlgTool type name
nameAlgTool instance name
parentAlgTools parent owning this tool

Definition at line 28 of file TruthMuonTrackRetriever.cxx.

28  :
29  base_class(type, name, parent),
30  m_typeName("SMTr") {
31  //Fill the list with the names of track record collections to try
32  m_TrackRecCollNames.push_back("MuonEntryLayer");
33  m_TrackRecCollNames.push_back("MuonEntryRecord");
34 
35  //Declare the properties
36  declareProperty("TrackRecCollNames",m_TrackRecCollNames,"List of track records collections to try in this order - only one is retrieved");
37 
38  }

Member Function Documentation

◆ dataTypeName()

virtual std::string JiveXML::TruthMuonTrackRetriever::dataTypeName ( ) const
inlinevirtual

Return the name of the data type.

Definition at line 49 of file TruthMuonTrackRetriever.h.

49 { return m_typeName; };

◆ initialize()

StatusCode JiveXML::TruthMuonTrackRetriever::initialize ( )

Default AthAlgTool methods.

Initialize before event loop.

Definition at line 44 of file TruthMuonTrackRetriever.cxx.

44  {
45 
46  //Nothing to be done here
47  return StatusCode::SUCCESS;
48  }

◆ retrieve()

StatusCode JiveXML::TruthMuonTrackRetriever::retrieve ( ToolHandle< IFormatTool > &  FormatTool)
virtual

Retrieve all the data.

Loop over all true particles, find the muons and get their basic parameters.

Parameters
FormatToolthe tool that will create formated output from the DataMap

Definition at line 54 of file TruthMuonTrackRetriever.cxx.

54  {
55 
56  ATH_MSG_DEBUG( "Retrieving " << dataTypeName() );
57 
58  //Try to retrieve the track record collection
59  const TrackRecordCollection* TrackRecordColl = NULL ;
60  //Loop over all the collections and try a retrieve (more efficenct than
61  //contain-retrieve combination)
62  for (auto CollNameItr : m_TrackRecCollNames ) {
63  //be verbose
64  ATH_MSG_DEBUG( "Trying to retrieve " << CollNameItr );
65  //try to retrive
66  if ( !evtStore()->contains<TrackRecordCollection>( CollNameItr )){ continue; } // skip if not in SG
67  if (evtStore()->retrieve(TrackRecordColl, CollNameItr).isSuccess()) break ;
68  }
69 
70  //If we didnt' get any, return
71  if (TrackRecordColl == NULL ) {
72  ATH_MSG_WARNING( "Unable to retrieve any track collection from " << m_TrackRecCollNames );
73  return StatusCode::RECOVERABLE;
74  }
75 
76  //Reserve space for the output
77  DataVect pt; pt.reserve(TrackRecordColl->size());
78  DataVect phi; phi.reserve(TrackRecordColl->size());
79  DataVect eta; eta.reserve(TrackRecordColl->size());
80  DataVect rhoVertex; rhoVertex.reserve(TrackRecordColl->size());
81  DataVect phiVertex; phiVertex.reserve(TrackRecordColl->size());
82  DataVect zVertex; zVertex.reserve(TrackRecordColl->size());
83  DataVect code; code.reserve(TrackRecordColl->size());
84  DataVect id; id.reserve(TrackRecordColl->size());
85 
86  //Now loop over the collection and retrieve data
87  for (const auto & record : *TrackRecordColl ) {
88 
89  //Get the pdg code
90  int pdgCode = record.GetPDGCode();
91 
92  //Only accept muons
93  if (abs(pdgCode) != 13) {
94  ATH_MSG_DEBUG( "Reject non-muon track with PDG ID " << pdgCode );
95  continue;
96  }
97 
98  //Get vertex and momentum
99  HepGeom::Point3D<double> vertex = record.GetPosition();
100  HepGeom::Vector3D<double> momentum = record.GetMomentum();
101 
102  //And store output
103  pt.emplace_back( momentum.perp()/CLHEP::GeV );
104  phi.emplace_back( momentum.phi() < 0 ? momentum.phi() + 2*M_PI : momentum.phi() );
105  eta.emplace_back( momentum.pseudoRapidity() );
106  rhoVertex.emplace_back( vertex.perp()*CLHEP::mm/CLHEP::cm );
107  phiVertex.emplace_back( vertex.phi() < 0 ? vertex.phi() + 2*M_PI : vertex.phi() );
108  zVertex.emplace_back( vertex.z()*CLHEP::mm/CLHEP::cm );
109  code.emplace_back( pdgCode );
110  id.emplace_back( HepMC::barcode(record) ); // FIXME barcode-based
111  }
112 
113  //Finall add everything to the datamap
115  const auto nEntries = pt.size();
116  dataMap["pt"] = std::move(pt);
117  dataMap["phi"] = std::move(phi);
118  dataMap["eta"] = std::move(eta);
119  dataMap["rhoVertex"] = std::move(rhoVertex);
120  dataMap["phiVertex"] = std::move(phiVertex);
121  dataMap["zVertex"] = std::move(zVertex);
122  dataMap["code"] = std::move(code);
123  dataMap["id"] = std::move(id);
124 
125  //some summary
126  ATH_MSG_DEBUG( dataTypeName() << ": "<< nEntries );
127 
128  //forward data to formating tool
129  //return FormatTool->AddToEvent(dataTypeName(), (*CollNameItr), &dataMap);
132  std::string emptyStr="";
133  return FormatTool->AddToEvent(dataTypeName(), emptyStr, &dataMap);
134  }

Member Data Documentation

◆ m_TrackRecCollNames

std::vector<std::string> JiveXML::TruthMuonTrackRetriever::m_TrackRecCollNames
private

A list of StoreGate names to probe in this order for the muon record collecton.

Definition at line 59 of file TruthMuonTrackRetriever.h.

◆ m_typeName

const std::string JiveXML::TruthMuonTrackRetriever::m_typeName
private

The data type that is generated by this retriever.

Definition at line 56 of file TruthMuonTrackRetriever.h.


The documentation for this class was generated from the following files:
JiveXML::TruthMuonTrackRetriever::dataTypeName
virtual std::string dataTypeName() const
Return the name of the data type.
Definition: TruthMuonTrackRetriever.h:49
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
JiveXML::DataVect
std::vector< DataType > DataVect
Defines a map with a key and a vector of DataType objects e.g.
Definition: DataType.h:58
AtlasHitsVector
Definition: AtlasHitsVector.h:33
test_pyathena.pt
pt
Definition: test_pyathena.py:11
M_PI
#define M_PI
Definition: ActiveFraction.h:11
JiveXML::DataMap
std::map< std::string, DataVect > DataMap
Definition: DataType.h:59
cm
const double cm
Definition: Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/tools/FCAL_ChannelMap.cxx:25
histSizes.code
code
Definition: histSizes.py:129
ParticleGun_EoverP_Config.momentum
momentum
Definition: ParticleGun_EoverP_Config.py:63
LArHistMerge_trf.dataMap
dataMap
Definition: LArHistMerge_trf.py:218
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
HepMC::barcode
int barcode(const T *p)
Definition: Barcode.h:16
test_pyathena.parent
parent
Definition: test_pyathena.py:15
JiveXML::TruthMuonTrackRetriever::m_typeName
const std::string m_typeName
The data type that is generated by this retriever.
Definition: TruthMuonTrackRetriever.h:56
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:227
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
JiveXML::TruthMuonTrackRetriever::m_TrackRecCollNames
std::vector< std::string > m_TrackRecCollNames
A list of StoreGate names to probe in this order for the muon record collecton.
Definition: TruthMuonTrackRetriever.h:59
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
JiveXML::TruthMuonTrackRetriever::retrieve
virtual StatusCode retrieve(ToolHandle< IFormatTool > &FormatTool)
Retrieve all the data.
Definition: TruthMuonTrackRetriever.cxx:54
AtlasHitsVector::size
size_type size() const
Definition: AtlasHitsVector.h:143
dqBeamSpot.nEntries
int nEntries
Definition: dqBeamSpot.py:73