ATLAS Offline Software
Loading...
Searching...
No Matches
D3PDMaker/TileD3PDMaker/src/TrackTools.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5/*
6 * File: TrackTools.h
7 * Author: Marco van Woerden <mvanwoer@cern.ch>
8 * Description: Track tools.
9 *
10 * Created in February 2013, based on TrackInCaloTools.
11 */
12
13#ifndef TrackTools_H
14#define TrackTools_H
15#include "ITrackTools.h"
16
17
18//==========================================================================================================================
19class TrackTools: public AthAlgTool, virtual public ITrackTools{
20//==========================================================================================================================
21 public:
22 TrackTools (const std::string& type,const std::string& name,const IInterface* parent);
24
25 StatusCode initialize();
26 StatusCode finalize();
27
28 // METHOD FOR CALOCELL FILTERING
30 const CaloCellContainer* input,
32 double cone,
33 bool includelar);
34
35 std::vector< double > getXYZEtaPhiInCellSampling(const TRACK* track, const CaloCell *cell);
36 std::vector< double > getXYZEtaPhiInCellSampling(const TRACK* track, CaloSampling::CaloSample sampling);
37 std::unique_ptr<const Trk::TrackParameters> getTrackInCellSampling(const TRACK* track, CaloSampling::CaloSample sampling);
38 std::vector< std::vector<double> > getXYZEtaPhiPerLayer(const TRACK* track);
39 std::vector< std::vector<double> > getXYZEtaPhiPerSampling(const TRACK* track);
40 double getPathInsideCell(const TRACK *track, const CaloCell *cell);
41 int retrieveIndex(int sampling, float eta);
42
43 bool trackIsolation( xAOD::TrackIsolation& result, const xAOD::TrackParticle &tp, const std::vector<xAOD::Iso::IsolationType>& cones )
44 {
45 if(!m_trackIsolationTool.empty()) {
46 xAOD::TrackCorrection corrlist;
47 corrlist.trackbitset.set(static_cast<unsigned int>(xAOD::Iso::IsolationTrackCorrection::coreTrackPtr));
48 return m_trackIsolationTool->trackIsolation(result, tp, cones, corrlist);
49 }
50 return false;
51 };
52
53/* THIS IS GOING TO BE USED
54 bool caloTopoClusterIsolation( xAOD::CaloIsolation& result, const xAOD::TrackParticle& tp,
55 const std::vector<xAOD::Iso::IsolationType>& cones, xAOD::CaloIso::SubtractionStrategy strategy)
56 {
57 if(!m_caloIsolationTool.empty()) ; //GOING TO CALL PROPER FUNCTION
58 return false;
59 };
60 bool caloCellIsolation( xAOD::CaloIsolation& result, const xAOD::TrackParticle& tp,
61 const std::vector<xAOD::Iso::IsolationType>& cones, xAOD::CaloIso::SubtractionStrategy strategy)
62 {
63 if(!m_caloIsolationTool.empty()) ; //GOING TO CALL PROPER FUNCTION
64 return false;
65 };
66 bool neutralEflowIsolation( xAOD::CaloIsolation& result, const xAOD::TrackParticle& tp,
67 const std::vector<xAOD::Iso::IsolationType>& cones, xAOD::CaloIso::SubtractionStrategy strategy)
68 {
69 if(!m_caloIsolationTool.empty()) ; //GOING TO CALL PROPER FUNCTION
70 return false;
71 };
72*/
73 private:
74
75 ToolHandle <Trk::IParticleCaloExtensionTool> m_caloExtensionTool;
76 ToolHandle <Rec::IParticleCaloCellAssociationTool> m_caloCellAssociationTool;
77 //ToolHandle <Trk::ITrackSelectorTool> m_trackSelector; //!< Tool to select tracks
78
79 ToolHandle<xAOD::ITrackIsolationTool> m_trackIsolationTool;
80 ToolHandle<xAOD::INeutralEFlowIsolationTool> m_neutralEFlowIsolationTool;
81
82 // JOBOPTIONS PROPERTIES
84 double getPath(const CaloCell* cell, const Trk::TrackParameters *entrance, const Trk::TrackParameters *exit);
85
86 // DEFAULT CONSTRUCTOR
89};
90
91#endif //TrackTools_H
Scalar eta() const
pseudorapidity method
xAOD::TrackParticle TRACK
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Container class for CaloCell.
Data object for each calorimeter readout cell.
Definition CaloCell.h:57
DataVector adapter that acts like it holds const pointers.
std::unique_ptr< const Trk::TrackParameters > getTrackInCellSampling(const TRACK *track, CaloSampling::CaloSample sampling)
double getPathInsideCell(const TRACK *track, const CaloCell *cell)
TrackTools & operator=(const TrackTools &)
std::vector< std::vector< double > > getXYZEtaPhiPerLayer(const TRACK *track)
std::vector< std::vector< double > > getXYZEtaPhiPerSampling(const TRACK *track)
ToolHandle< xAOD::INeutralEFlowIsolationTool > m_neutralEFlowIsolationTool
TrackTools(const TrackTools &)
TrackTools(const std::string &type, const std::string &name, const IInterface *parent)
ToolHandle< Rec::IParticleCaloCellAssociationTool > m_caloCellAssociationTool
Tool to make the step-wise extrapolation.
ToolHandle< xAOD::ITrackIsolationTool > m_trackIsolationTool
int retrieveIndex(int sampling, float eta)
void getCellsWithinConeAroundTrack(const xAOD::TrackParticle *track, const CaloCellContainer *input, ConstDataVector< CaloCellContainer > *output, double cone, bool includelar)
double getPath(const CaloCell *cell, const Trk::TrackParameters *entrance, const Trk::TrackParameters *exit)
ToolHandle< Trk::IParticleCaloExtensionTool > m_caloExtensionTool
Tool to make the step-wise extrapolation.
std::vector< double > getXYZEtaPhiInCellSampling(const TRACK *track, const CaloCell *cell)
bool trackIsolation(xAOD::TrackIsolation &result, const xAOD::TrackParticle &tp, const std::vector< xAOD::Iso::IsolationType > &cones)
ParametersBase< TrackParametersDim, Charged > TrackParameters
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Iso::IsolationTrackCorrectionBitset trackbitset