1#include "Identifier/MdcID.h"
11 const unsigned int wire ) {
13 if ( wireType != AXIAL_WIRE && wireType != STEREO_WIRE )
return false;
15 if ( wireType == STEREO_WIRE )
17 if (
layer < INNER_STEREO_LAYER_MAX ||
18 layer < ( INNER_STEREO_LAYER_MAX + INNER_AXIAL_LAYER_MAX + OUTER_STEREO_LAYER_MAX ) &&
19 layer >= ( INNER_STEREO_LAYER_MAX + INNER_AXIAL_LAYER_MAX ) )
23 if ( wireType == AXIAL_WIRE )
25 if (
layer >= INNER_STEREO_LAYER_MAX &&
26 layer < ( INNER_STEREO_LAYER_MAX + INNER_AXIAL_LAYER_MAX ) ||
28 ( INNER_STEREO_LAYER_MAX + INNER_AXIAL_LAYER_MAX + OUTER_STEREO_LAYER_MAX ) &&
34 std::cout <<
" ++ MdcID::values_ok++ wiretype = " << wireType <<
" layer = " <<
layer
35 <<
" wire = " <<
wire << std::endl;
42 unsigned int type = (
id.get_value() & MdcID::WIRETYPE_MASK ) >> MdcID::WIRETYPE_INDEX;
43 return (
type == AXIAL_WIRE ) ? true :
false;
48 return (
id.get_value() & MdcID::LAYER_MASK ) >> MdcID::LAYER_INDEX;
53 return (
id.get_value() & MdcID::WIRE_MASK ) >> MdcID::WIRE_INDEX;
58 if (
is_axial(
id ) ) {
return AXIAL_LAYER_MAX; }
59 else {
return STEREO_LAYER_MAX; }
64 if (
is_axial(
id ) ) {
return AXIAL_WIRE_MAX; }
65 else {
return STEREO_WIRE_MAX; }
72 (
layer << LAYER_INDEX ) | (
wire << WIRE_INDEX );
78 if (
layer < INNER_STEREO_LAYER_MAX ||
79 layer < ( INNER_STEREO_LAYER_MAX + INNER_AXIAL_LAYER_MAX + OUTER_STEREO_LAYER_MAX ) &&
80 layer >= ( INNER_STEREO_LAYER_MAX + INNER_AXIAL_LAYER_MAX ) )
87 unsigned int wireType;
89 if (
layer < INNER_STEREO_LAYER_MAX ||
90 layer < ( INNER_STEREO_LAYER_MAX + INNER_AXIAL_LAYER_MAX + OUTER_STEREO_LAYER_MAX ) &&
91 layer >= ( INNER_STEREO_LAYER_MAX + INNER_AXIAL_LAYER_MAX ) )
92 wireType = STEREO_WIRE;
93 else wireType = AXIAL_WIRE;
96 ( ( wireType << WIRETYPE_INDEX ) & WIRETYPE_MASK ) |
97 ( (
layer << LAYER_INDEX ) & LAYER_MASK ) | ( (
wire << WIRE_INDEX ) & WIRE_MASK );
104 ( ( wireType << WIRETYPE_INDEX ) & WIRETYPE_MASK ) |
105 ( (
layer << LAYER_INDEX ) & LAYER_MASK ) |
106 ( (
wire << WIRE_INDEX ) & WIRE_MASK );
static const unsigned int MDC_MASK
static const unsigned int MDC_INDEX
static const unsigned int MDC_ID
static value_type getAXIAL_LAYER_MAX()
static Identifier wire_id(int wireType, int layer, int wire)
For a single wire.
int layer_max(const Identifier &id)
Max/Min values for each field (error returns -999).
bool is_axial(const Identifier &id)
Test for axial and stereo wire.
static value_type getSTEREO_WIRE()
static bool values_ok(const unsigned int wireType, const unsigned int layer, const unsigned int wire)
static int layer(const Identifier &id)
Values of different levels (failure returns 0).
int wire_max(const Identifier &id)
static value_type getAXIAL_WIRE_MAX()
static int wire(const Identifier &id)
static value_type getIntID(unsigned int wireType, unsigned int layer, unsigned int wire)
static value_type getSTEREO_WIRE_MAX()
static value_type getSTEREO_LAYER_MAX()
static value_type getAXIAL_WIRE()