Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F10664304
OutputVarUtils.cc
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
OutputVarUtils.cc
View Options
#define OUTPUTVARUTILS_CC
#include
"OutputVarUtils.hh"
namespace
SpartyJet
{
JetVar_Names
::
JetVar_Names
(){
eta
=
"eta"
;
phi
=
"phi"
;
p_T
=
"p_T"
;
e
=
"e"
;
mass
=
"mass"
;
ind
=
"ind"
;
numC
=
"numC"
;
}
template
<
int
NMAX
>
IGenericJetVar
*
OutputVarFactory
::
_get_jet_var
(
std
::
string
name
,
JetMomentMap
*
map
,
IGenericJetVar
*
inputvar
,
bool
onlymoment
){
// Give shortcut names to every possible output types :
typedef
JetVarIndex
<
BranchWrap_simple
<
float
>
,
BranchWrap_array
<
float
,
NMAX
>
,
BranchWrap_array2D
<
float
,
NMAX
,
5
>
,
BranchWrap_array
<
int
,
NMAX
*
100
>
>
array_float_index
;
typedef
JetVarIndex
<
BranchWrap_simple
<
double
>
,
BranchWrap_array
<
double
,
NMAX
>
,
BranchWrap_array2D
<
double
,
NMAX
,
5
>
,
BranchWrap_array
<
int
,
NMAX
*
100
>
>
array_double_index
;
typedef
JetVarIndex
<
BranchWrap_simple
<
float
>
,
BranchWrap_vector
<
float
>
,
BranchWrap_vector2D
<
float
>
,
BranchWrap_vector
<
int
>
>
vector_float_index
;
typedef
JetVarIndex
<
BranchWrap_simple
<
double
>
,
BranchWrap_vector
<
double
>
,
BranchWrap_vector2D
<
double
>
,
BranchWrap_vector
<
int
>
>
vector_double_index
;
typedef
GenericJetVar
<
BranchWrap_simple
<
float
>
,
BranchWrap_array
<
float
,
NMAX
>
,
BranchWrap_array2D
<
float
,
NMAX
,
5
>
>
array_float_gen
;
typedef
GenericJetVar
<
BranchWrap_simple
<
double
>
,
BranchWrap_array
<
double
,
NMAX
>
,
BranchWrap_array2D
<
double
,
NMAX
,
5
>
>
array_double_gen
;
typedef
GenericJetVar
<
BranchWrap_simple
<
float
>
,
BranchWrap_vector
<
float
>
,
BranchWrap_vector2D
<
float
>
>
vector_float_gen
;
typedef
GenericJetVar
<
BranchWrap_simple
<
double
>
,
BranchWrap_vector
<
double
>
,
BranchWrap_vector2D
<
double
>
>
vector_double_gen
;
typedef
JetVar
<
BranchWrap_simple
<
float
>
,
BranchWrap_array
<
float
,
NMAX
>
,
BranchWrap_array2D
<
float
,
NMAX
,
5
>
>
array_float
;
typedef
JetVar
<
BranchWrap_simple
<
double
>
,
BranchWrap_array
<
double
,
NMAX
>
,
BranchWrap_array2D
<
double
,
NMAX
,
5
>
>
array_double
;
typedef
JetVar
<
BranchWrap_simple
<
float
>
,
BranchWrap_vector
<
float
>
,
BranchWrap_vector2D
<
float
>
>
vector_float
;
typedef
JetVar
<
BranchWrap_simple
<
double
>
,
BranchWrap_vector
<
double
>
,
BranchWrap_vector2D
<
double
>
>
vector_double
;
if
(
array_type
==
"array"
)
{
if
(
base_type
==
"float"
)
{
if
(
onlymoment
)
return
new
array_float_gen
(
name
,
map
);
if
(
inputvar
)
{
return
prepare_input
(
new
array_float_index
(
name
,
map
)
,
inputvar
);
}
else
return
new
array_float
(
name
,
map
);
}
else
if
(
base_type
==
"double"
)
{
if
(
onlymoment
)
return
new
array_double_gen
(
name
,
map
);
if
(
inputvar
)
{
return
prepare_input
(
new
array_double_index
(
name
,
map
)
,
inputvar
);
}
else
return
new
array_double
(
name
,
map
);
}
else
{
std
::
cout
<<
" ERROR unknown base type "
<<
base_type
<<
" for output variables"
<<
std
::
endl
;
}
}
// array variables
else
if
(
array_type
==
"vector"
)
{
if
(
base_type
==
"float"
)
{
if
(
onlymoment
)
return
new
vector_float_gen
(
name
,
map
);
if
(
inputvar
)
{
return
prepare_input
(
new
vector_float_index
(
name
,
map
)
,
inputvar
);
}
else
return
new
vector_float
(
name
,
map
);
}
else
if
(
base_type
==
"double"
)
{
if
(
onlymoment
)
return
new
vector_double_gen
(
name
,
map
);
if
(
inputvar
)
{
return
prepare_input
(
new
vector_double_index
(
name
,
map
)
,
inputvar
);
}
else
return
new
vector_double
(
name
,
map
);
}
else
{
std
::
cout
<<
" ERROR unknown base type "
<<
base_type
<<
" for output variables"
<<
std
::
endl
;
}
}
// vector variables
else
{
std
::
cout
<<
" ERROR unknown array type "
<<
array_type
<<
" for output variables"
<<
std
::
endl
;
}
return
0
;
}
IGenericJetVar
*
OutputVarFactory
::
get_jet_var
(
std
::
string
name
,
JetMomentMap
*
map
,
IGenericJetVar
*
inputvar
,
bool
onlymoment
){
return
_get_jet_var
<
100
>
(
name
,
map
,
inputvar
,
onlymoment
);
}
IGenericJetVar
*
OutputVarFactory
::
get_inputjet_var
(
std
::
string
name
,
JetMomentMap
*
map
){
return
_get_jet_var
<
10000
>
(
name
,
map
,
NULL
,
false
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Thu, Apr 24, 6:36 AM (1 d, 19 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4844395
Default Alt Text
OutputVarUtils.cc (3 KB)
Attached To
rSPARTYJETSVN spartyjetsvn
Event Timeline
Log In to Comment