ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
graphics
VP1
VP1Systems
VP1GuideLineSystems
VP1GuideLineSystems
InDetProjHelper.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
7
// //
8
// Header file for class InDetProjHelper //
9
// //
10
// Description: Helper class for calculating projections //
11
// of data to inner detector surfaces. //
12
// //
13
// Author: Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
14
// Initial version: February 2008 //
15
// //
17
18
#ifndef INDETPROJHELPER_H
19
#define INDETPROJHELPER_H
20
21
#include "
VP1Base/VP1HelperClassBase.h
"
22
#include "
VP1Utils/InDetProjFlags.h
"
23
24
#include "
GeoPrimitives/GeoPrimitives.h
"
25
#include "
GeoPrimitives/GeoPrimitivesHelpers.h
"
26
27
28
#include <vector>
29
#include <set>
30
31
32
33
34
class
InDetProjHelper
:
public
VP1HelperClassBase
{
35
public
:
36
37
//Use one of the following to create an appropriate helper:
38
static
InDetProjHelper
*
createPixelHelper
(
IVP1System
* sys = 0);
39
static
InDetProjHelper
*
createSCTHelper
(
IVP1System
* sys = 0);
40
static
InDetProjHelper
*
createTRTHelper
(
IVP1System
* sys = 0);
41
//(non-zero system pointers to let error messages appear in gui)
42
43
virtual
~InDetProjHelper
();
44
45
InDetProjFlags::InDetProjPartsFlags
setParts
(InDetProjFlags::InDetProjPartsFlags);
//returns old value
46
InDetProjFlags::InDetProjPartsFlags
parts
()
const
;
47
48
//Clip path to volumes of the enabled detector parts, as given by the parts flag.
49
void
clipPath
(
const
std::vector<Amg::Vector3D >& path,
Amg::SetVectorVector3D
& resulting_subpaths )
const
;
50
51
void
clipPath
(
const
std::vector<Amg::Vector3D >& path,
52
Amg::SetVectorVector3D
& resulting_subpaths_barrelA,
53
Amg::SetVectorVector3D
& resulting_subpaths_barrelC,
54
Amg::SetVectorVector3D
& resulting_subpaths_endcapA,
55
Amg::SetVectorVector3D
& resulting_subpaths_endcapC )
const
;
56
57
//Clip path as above, and then project the resulting subpaths to surfaces as given by the current parts flag.
58
void
projectPath
(
const
std::vector<Amg::Vector3D >& path,
Amg::SetVectorVector3D
& resulting_projections )
const
;
59
void
projectPath
(
const
std::vector<Amg::Vector3D >& path,
60
Amg::SetVectorVector3D
& resulting_projections_barrelA,
61
Amg::SetVectorVector3D
& resulting_projections_barrelC,
62
Amg::SetVectorVector3D
& resulting_projections_endcapA,
63
Amg::SetVectorVector3D
& resulting_projections_endcapC )
const
;
64
65
//To figure out which parts a given track crosses (this does NOT depend on the current InDetProjPartsFlags setting).
66
enum
PartsFlag
{
NoParts
= 0x00,
BarrelA
= 0x01,
BarrelC
= 0x02,
EndCapA
= 0x04,
EndCapC
= 0x08 };
67
Q_DECLARE_FLAGS(PartsFlags,
PartsFlag
)
68
PartsFlags
touchedParts
(
const
std::vector<Amg::Vector3D >& path )
const
;
69
70
//Fixme: Projection of points? Projection of driftcircle (get normal and point? Or just get transform?)
71
72
static
void
transformECPointToZPlane_specialZtoR
(
Amg::Vector3D
& p,
73
const
double
& planeZ,
74
const
double
& planeRBegin,
75
const
double
& endcapZBegin,
76
const
double
& squeezeFactor );
77
78
private
:
79
80
InDetProjHelper
(
double
surfacethickness,
81
double
data_disttosurface_epsilon,
82
double
barrel_inner_radius,
83
double
barrel_outer_radius,
84
double
barrel_posneg_z,
85
double
endcap_surface_z,
86
double
endcap_surface_length,
87
double
endcap_inner_radius,
88
double
endcap_outer_radius,
89
double
endcap_zasr_innerradius,
90
double
endcap_zasr_endcapz_begin,
91
double
endcap_zasr_squeezefact,
92
IVP1System
* sys );
93
94
95
96
class
Imp;
97
Imp
*
m_d
;
98
99
};
100
101
Q_DECLARE_OPERATORS_FOR_FLAGS(InDetProjHelper::PartsFlags)
102
103
#endif
GeoPrimitivesHelpers.h
GeoPrimitives.h
InDetProjFlags.h
VP1HelperClassBase.h
IVP1System
Definition
IVP1System.h:36
InDetProjHelper::Imp
Definition
InDetProjHelper.cxx:86
InDetProjHelper::createTRTHelper
static InDetProjHelper * createTRTHelper(IVP1System *sys=0)
Definition
InDetProjHelper.cxx:68
InDetProjHelper::createPixelHelper
static InDetProjHelper * createPixelHelper(IVP1System *sys=0)
Definition
InDetProjHelper.cxx:32
InDetProjHelper::PartsFlag
PartsFlag
Definition
InDetProjHelper.h:66
InDetProjHelper::EndCapC
@ EndCapC
Definition
InDetProjHelper.h:66
InDetProjHelper::BarrelA
@ BarrelA
Definition
InDetProjHelper.h:66
InDetProjHelper::EndCapA
@ EndCapA
Definition
InDetProjHelper.h:66
InDetProjHelper::NoParts
@ NoParts
Definition
InDetProjHelper.h:66
InDetProjHelper::BarrelC
@ BarrelC
Definition
InDetProjHelper.h:66
InDetProjHelper::transformECPointToZPlane_specialZtoR
static void transformECPointToZPlane_specialZtoR(Amg::Vector3D &p, const double &planeZ, const double &planeRBegin, const double &endcapZBegin, const double &squeezeFactor)
Definition
InDetProjHelper.cxx:780
InDetProjHelper::setParts
InDetProjFlags::InDetProjPartsFlags setParts(InDetProjFlags::InDetProjPartsFlags)
Definition
InDetProjHelper.cxx:196
InDetProjHelper::parts
InDetProjFlags::InDetProjPartsFlags parts() const
Definition
InDetProjHelper.cxx:268
InDetProjHelper::createSCTHelper
static InDetProjHelper * createSCTHelper(IVP1System *sys=0)
Definition
InDetProjHelper.cxx:50
InDetProjHelper::~InDetProjHelper
virtual ~InDetProjHelper()
Definition
InDetProjHelper.cxx:190
InDetProjHelper::touchedParts
PartsFlags touchedParts(const std::vector< Amg::Vector3D > &path) const
Definition
InDetProjHelper.cxx:926
InDetProjHelper::InDetProjHelper
InDetProjHelper(double surfacethickness, double data_disttosurface_epsilon, double barrel_inner_radius, double barrel_outer_radius, double barrel_posneg_z, double endcap_surface_z, double endcap_surface_length, double endcap_inner_radius, double endcap_outer_radius, double endcap_zasr_innerradius, double endcap_zasr_endcapz_begin, double endcap_zasr_squeezefact, IVP1System *sys)
Definition
InDetProjHelper.cxx:151
InDetProjHelper::clipPath
void clipPath(const std::vector< Amg::Vector3D > &path, Amg::SetVectorVector3D &resulting_subpaths) const
Definition
InDetProjHelper.cxx:274
InDetProjHelper::projectPath
void projectPath(const std::vector< Amg::Vector3D > &path, Amg::SetVectorVector3D &resulting_projections) const
Definition
InDetProjHelper.cxx:819
InDetProjHelper::m_d
Imp * m_d
Definition
InDetProjHelper.h:97
VP1HelperClassBase::VP1HelperClassBase
VP1HelperClassBase(IVP1System *sys=0, QString helpername="")
Definition
VP1HelperClassBase.cxx:28
Amg::SetVectorVector3D
std::set< std::vector< Amg::Vector3D >, VectorVector3DComparer > SetVectorVector3D
Definition
GeoPrimitivesHelpers.h:36
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Generated on
for ATLAS Offline Software by
1.17.0