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 30 of file TruthMuonTrackRetriever.cxx.

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

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 46 of file TruthMuonTrackRetriever.cxx.

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

◆ 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 56 of file TruthMuonTrackRetriever.cxx.

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

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
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
JiveXML::DataVect
std::vector< DataType > DataVect
Defines a map with a key and a vector of DataType objects e.g.
Definition: DataType.h:58
DataType
OFFLINE_FRAGMENTS_NAMESPACE::PointerType DataType
Definition: RoIBResultByteStreamTool.cxx:25
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
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
pmontree.code
code
Definition: pmontree.py:443
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:194
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
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:56
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
AtlasHitsVector::size
size_type size() const
Definition: AtlasHitsVector.h:143
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30