ATLAS Offline Software
DerivationFramework/DerivationFrameworkTileCal/src/ITrackTools.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /*
6  * File: ITrackTools.h
7  * Author: Marco van Woerden <mvanwoer@cern.ch>, Archil Durglishvili <archil.durglishvili@cern.ch>
8  * Description: Track tools interface.
9  *
10  * Created in February 2013
11  * updated in November 2014
12  */
13 
14 #ifndef ITrackTools_H
15 #define ITrackTools_H
16 //C++
17 #include <vector>
18 #include <math.h>
19 
20 //Base algorithm
21 #include "GaudiKernel/IAlgTool.h"
23 
26 
27 // xAOD tracks and clusters
30 
32 
33 
34 //Type definitions
35 typedef CaloCell CELL;
41 
42 
43 namespace KinematicUtils {
44  inline
45  void EnsurePhiInMinusPiToPi(double& phi) {
46  phi = fmod(phi, (2*M_PI));
47  if (phi < -M_PI) phi += 2*M_PI;
48  if (phi > M_PI) phi -= 2*M_PI;
49  return;
50  }
51 
52  inline
53  double deltaPhi(double phi1, double phi2) {
56  double dPhi=phi1-phi2;
57  if (dPhi>M_PI) dPhi=2*M_PI-dPhi;
58  else if(dPhi<-M_PI) dPhi=2*M_PI+dPhi;
59  return dPhi;
60  }
61 
62  inline
63  double deltaR(double eta1, double eta2, double phi1, double phi2) {
64  double dPhi=KinematicUtils::deltaPhi(phi1,phi2);
65  double dEta=std::fabs(eta1-eta2);
66  double dR=std::sqrt(std::pow(dEta,2)+std::pow(dPhi,2));
67  return dR;
68  }
69 }
70 
71 namespace TileCal {
72 
73 //========================================
74 class ITrackTools: virtual public IAlgTool{
75 //========================================
76  public:
77 
79 
80  // METHOD FOR FILTERING ALGORITHM
82  const CaloCellContainer* input,
84  double cone,
85  bool includelar) const = 0;
86  virtual double getPathInsideCell(const TRACK *track, const CaloCell *cell) const = 0;
87  virtual double getPath(const CaloCell* cell, const Trk::TrackParameters *entrance, const Trk::TrackParameters *exit) const = 0;
88  virtual std::vector< double > getXYZEtaPhiInCellSampling(const TRACK* track, const CaloCell *cell) const = 0;
89  virtual std::vector< double > getXYZEtaPhiInCellSampling(const TRACK* track, CaloSampling::CaloSample sampling) const = 0;
90  virtual std::unique_ptr<const Trk::TrackParameters> getTrackInCellSampling(const TRACK* track, CaloSampling::CaloSample sampling) const = 0;
91  virtual std::vector< std::vector<double> > getXYZEtaPhiPerLayer(const TRACK* track) const = 0;
92  virtual std::vector< std::vector<double> > getXYZEtaPhiPerSampling(const TRACK* track) const = 0;
93  virtual int retrieveIndex(int sampling, float eta) const = 0;
94 
95 };
96 
97 } // TileCal namespace
98 #endif //ITrackTools_H
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
TrackParameters.h
ParticleGun_SamplingFraction.eta2
eta2
Definition: ParticleGun_SamplingFraction.py:96
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
ConstDataVector.h
DataVector adapter that acts like it holds const pointers.
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
M_PI
#define M_PI
Definition: ActiveFraction.h:11
TileCal::ITrackTools::getPathInsideCell
virtual double getPathInsideCell(const TRACK *track, const CaloCell *cell) const =0
xAOD::eta1
setEt setPhi setE277 setWeta2 eta1
Definition: TrigEMCluster_v1.cxx:41
TileCal
Definition: DerivationFramework/DerivationFrameworkTileCal/src/ITrackTools.h:71
TileCal::ITrackTools::DeclareInterfaceID
DeclareInterfaceID(ITrackTools, 1, 0)
KinematicUtils
Definition: D3PDMaker/TileD3PDMaker/src/ITrackTools.h:94
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
TileCal::ITrackTools::getXYZEtaPhiInCellSampling
virtual std::vector< double > getXYZEtaPhiInCellSampling(const TRACK *track, const CaloCell *cell) const =0
CaloSampling::CaloSample
CaloSample
Definition: Calorimeter/CaloGeoHelpers/CaloGeoHelpers/CaloSampling.h:22
TauGNNUtils::Variables::Track::dPhi
bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:530
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
TileCal::ITrackTools::getPath
virtual double getPath(const CaloCell *cell, const Trk::TrackParameters *entrance, const Trk::TrackParameters *exit) const =0
Trk::ParametersBase
Definition: ParametersBase.h:55
CLUSTER
xAOD::CaloCluster CLUSTER
Definition: DerivationFramework/DerivationFrameworkTileCal/src/ITrackTools.h:39
TileCal::ITrackTools::retrieveIndex
virtual int retrieveIndex(int sampling, float eta) const =0
TRACKCONTAINER
xAOD::TrackParticleContainer TRACKCONTAINER
Definition: DerivationFramework/DerivationFrameworkTileCal/src/ITrackTools.h:38
DataVector< xAOD::TrackParticle_v1 >
calibdata.exit
exit
Definition: calibdata.py:236
KinematicUtils::deltaPhi
double deltaPhi(double phi1, double phi2)
Definition: D3PDMaker/TileD3PDMaker/src/ITrackTools.h:104
merge.output
output
Definition: merge.py:17
TileCal::ITrackTools::getCellsWithinConeAroundTrack
virtual void getCellsWithinConeAroundTrack(const xAOD::TrackParticle *track, const CaloCellContainer *input, ConstDataVector< CaloCellContainer > *output, double cone, bool includelar) const =0
TileCal::ITrackTools::getXYZEtaPhiInCellSampling
virtual std::vector< double > getXYZEtaPhiInCellSampling(const TRACK *track, CaloSampling::CaloSample sampling) const =0
KinematicUtils::EnsurePhiInMinusPiToPi
void EnsurePhiInMinusPiToPi(double &phi)
Definition: D3PDMaker/TileD3PDMaker/src/ITrackTools.h:96
CaloCellContainer.h
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
CELL
CaloCell CELL
CALORIMETER INCLUDES.
Definition: DerivationFramework/DerivationFrameworkTileCal/src/ITrackTools.h:35
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
TileCal::ITrackTools::getTrackInCellSampling
virtual std::unique_ptr< const Trk::TrackParameters > getTrackInCellSampling(const TRACK *track, CaloSampling::CaloSample sampling) const =0
ConstDataVector< CaloCellContainer >
TileCal::ITrackTools
Definition: DerivationFramework/DerivationFrameworkTileCal/src/ITrackTools.h:74
CaloClusterContainer.h
CLUSTERCONTAINER
xAOD::CaloClusterContainer CLUSTERCONTAINER
Definition: DerivationFramework/DerivationFrameworkTileCal/src/ITrackTools.h:40
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
KinematicUtils::deltaR
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: D3PDMaker/TileD3PDMaker/src/ITrackTools.h:114
TRACK
xAOD::TrackParticle TRACK
Definition: DerivationFramework/DerivationFrameworkTileCal/src/ITrackTools.h:37
TauGNNUtils::Variables::Track::dEta
bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:525
CELLCONTAINER
CaloCellContainer CELLCONTAINER
Definition: DerivationFramework/DerivationFrameworkTileCal/src/ITrackTools.h:36
TileCal::ITrackTools::getXYZEtaPhiPerSampling
virtual std::vector< std::vector< double > > getXYZEtaPhiPerSampling(const TRACK *track) const =0
TileCal::ITrackTools::getXYZEtaPhiPerLayer
virtual std::vector< std::vector< double > > getXYZEtaPhiPerLayer(const TRACK *track) const =0
TrackParticleContainer.h