CGEM BOSS 6.6.5.h
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcID Class Reference

#include <MdcID.h>

+ Inheritance diagram for MdcID:

Public Types

typedef Identifier::size_type size_type
 
typedef Identifier::value_type value_type
 

Public Member Functions

 MdcID ()
 constructor
 
 ~MdcID ()
 destructor
 
bool is_axial (const Identifier &id)
 Test for axial and stereo wire.
 
int layer_max (const Identifier &id)
 Max/Min values for each field (error returns -999)
 
int wire_max (const Identifier &id)
 
- Public Member Functions inherited from BesDetectorID
 BesDetectorID (void)
 
 ~BesDetectorID (void)
 
Identifier mdc (void) const
 
Identifier tof (void) const
 
Identifier emc (void) const
 
Identifier muc (void) const
 
Identifier hlt (void) const
 
Identifier mrpc (void) const
 
Identifier cgem (void) const
 
bool is_mdc (const Identifier &id) const
 
bool is_tof (const Identifier &id) const
 
bool is_emc (const Identifier &id) const
 
bool is_muc (const Identifier &id) const
 
bool is_hlt (const Identifier &id) const
 
bool is_mrpc (const Identifier &id) const
 
bool is_cgem (const Identifier &id) const
 

Static Public Member Functions

static Identifier wire_id (int wireType, int layer, int wire)
 For a single wire.
 
static Identifier wire_id (int layer, int wire)
 
static value_type getIntID (unsigned int wireType, unsigned int layer, unsigned int wire)
 
static value_type getIntID (unsigned int layer, unsigned int wire)
 
static value_type getAXIAL_LAYER_MAX ()
 
static value_type getSTEREO_LAYER_MAX ()
 
static value_type getAXIAL_WIRE_MAX ()
 
static value_type getSTEREO_WIRE_MAX ()
 
static value_type getAXIAL_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)
 
static int wire (const Identifier &id)
 

Additional Inherited Members

- Protected Member Functions inherited from BesDetectorID
int mdc_field_value () const
 Provide efficient access to individual field values.
 
int cgem_field_value () const
 
int tof_field_value () const
 
int emc_field_value () const
 
int muc_field_value () const
 
int hlt_field_value () const
 
int mrpc_field_value () const
 
int get_detectorID (const Identifier &id) const
 
- Static Protected Attributes inherited from BesDetectorID
static const unsigned int MDC_ID = 0x10
 
static const unsigned int MDC_INDEX = 24
 
static const unsigned int MDC_MASK = 0xFF000000
 
static const unsigned int TOF_ID = 0x20
 
static const unsigned int TOF_INDEX = 24
 
static const unsigned int TOF_MASK = 0xFF000000
 
static const unsigned int EMC_ID = 0x30
 
static const unsigned int EMC_INDEX = 24
 
static const unsigned int EMC_MASK = 0xFF000000
 
static const unsigned int MUC_ID = 0x40
 
static const unsigned int MUC_INDEX = 24
 
static const unsigned int MUC_MASK = 0xFF000000
 
static const unsigned int HLT_ID = 0x50
 
static const unsigned int HLT_INDEX = 24
 
static const unsigned int HLT_MASK = 0xFF000000
 
static const unsigned int CGEM_ID = 0x60
 
static const unsigned int CGEM_INDEX = 24
 
static const unsigned int CGEM_MASK = 0xFF000000
 
static const unsigned int MRPC_ID = 0x70
 
static const unsigned int MRPC_INDEX = 24
 
static const unsigned int MRPC_MASK = 0xFF000000
 

Detailed Description

Definition at line 8 of file MdcID.h.

Member Typedef Documentation

◆ size_type

Definition at line 11 of file MdcID.h.

◆ value_type

Definition at line 12 of file MdcID.h.

Constructor & Destructor Documentation

◆ MdcID()

MdcID::MdcID ( void )

constructor

Definition at line 5 of file MdcID.cxx.

5 {
6}

◆ ~MdcID()

MdcID::~MdcID ( void )

destructor

Definition at line 8 of file MdcID.cxx.

8 {
9}

Member Function Documentation

◆ getAXIAL_LAYER_MAX()

unsigned int MdcID::getAXIAL_LAYER_MAX ( )
static

Definition at line 138 of file MdcID.cxx.

139{
140 return AXIAL_LAYER_MAX;
141}

Referenced by MdcBuilder::initialize().

◆ getAXIAL_WIRE()

unsigned int MdcID::getAXIAL_WIRE ( )
static

Definition at line 155 of file MdcID.cxx.

156{
157 return AXIAL_WIRE;
158}

◆ getAXIAL_WIRE_MAX()

unsigned int MdcID::getAXIAL_WIRE_MAX ( )
static

Definition at line 146 of file MdcID.cxx.

147{
148 return AXIAL_WIRE_MAX;
149}

Referenced by MdcBuilder::initialize().

◆ getIntID() [1/2]

unsigned int MdcID::getIntID ( unsigned int layer,
unsigned int wire )
static

Definition at line 102 of file MdcID.cxx.

104{
105 unsigned int value;
106 unsigned int wireType;
107
108 if ( layer < INNER_STEREO_LAYER_MAX
109 || layer < (INNER_STEREO_LAYER_MAX + INNER_AXIAL_LAYER_MAX + OUTER_STEREO_LAYER_MAX)
110 && layer >= (INNER_STEREO_LAYER_MAX + INNER_AXIAL_LAYER_MAX )
111 )
112 wireType = STEREO_WIRE;
113 else wireType = AXIAL_WIRE;
114
116 ((wireType << WIRETYPE_INDEX)&WIRETYPE_MASK) |
117 ((layer << LAYER_INDEX)&LAYER_MASK) |
118 ((wire << WIRE_INDEX)&WIRE_MASK);
119
120 return value;
121
122}
static const unsigned int MDC_MASK
static const unsigned int MDC_INDEX
static const unsigned int MDC_ID
static int layer(const Identifier &id)
Values of different levels (failure returns 0)
Definition MdcID.cxx:49
static int wire(const Identifier &id)
Definition MdcID.cxx:54

◆ getIntID() [2/2]

unsigned int MdcID::getIntID ( unsigned int wireType,
unsigned int layer,
unsigned int wire )
static

Definition at line 124 of file MdcID.cxx.

127{
128 unsigned int value = ((BesDetectorID::MDC_ID << MDC_INDEX)&MDC_MASK) |
129 ((wireType << WIRETYPE_INDEX)&WIRETYPE_MASK) |
130 ((layer << LAYER_INDEX)&LAYER_MASK) |
131 ((wire << WIRE_INDEX)&WIRE_MASK);
132 return value;
133
134}

Referenced by MdcBuilder::initialize(), and MdcBuilder::pack().

◆ getSTEREO_LAYER_MAX()

unsigned int MdcID::getSTEREO_LAYER_MAX ( )
static

Definition at line 142 of file MdcID.cxx.

143{
144 return STEREO_LAYER_MAX;
145}

Referenced by MdcBuilder::initialize().

◆ getSTEREO_WIRE()

unsigned int MdcID::getSTEREO_WIRE ( )
static

Definition at line 160 of file MdcID.cxx.

161{
162 return STEREO_WIRE;
163}

◆ getSTEREO_WIRE_MAX()

unsigned int MdcID::getSTEREO_WIRE_MAX ( )
static

Definition at line 150 of file MdcID.cxx.

151{
152 return STEREO_WIRE_MAX;
153}

◆ is_axial()

bool MdcID::is_axial ( const Identifier & id)

Test for axial and stereo wire.

Definition at line 43 of file MdcID.cxx.

43 {
44 unsigned int type = (id.get_value() & MdcID::WIRETYPE_MASK) >> MdcID::WIRETYPE_INDEX;
45 return (type == AXIAL_WIRE) ? true : false;
46}

Referenced by layer_max(), RecMdcTrack::updateStatistics(), and wire_max().

◆ layer()

int MdcID::layer ( const Identifier & id)
static

Values of different levels (failure returns 0)

Definition at line 49 of file MdcID.cxx.

49 {
50 return (id.get_value() & MdcID::LAYER_MASK) >> MdcID::LAYER_INDEX;
51}

Referenced by DotsHelixFitter::calculateCirclePar_Taubin(), DotsHelixFitter::calculateNewHelix(), BesEvent::ConstructMdcTrackFromRec(), MdcConverter::convert(), DotsHelixFitter::deactiveHits(), DotsHelixFitter::deactiveHits(), MdcMergeDups::doMergeCurl(), MdcTrkRecon::dumpDigi(), MdcMergeDups::dumpRecMdcTrack(), MdcTrkRecon::dumpTdsTrack(), BesTrigL1::execute(), BhabhaPreSelect::execute(), CgemMdcFitAlg::execute(), EFSectorHits::execute(), EsTimeAlg::execute(), EventPreSelect::execute(), KalFitAlg::execute(), MdcDedxRecon::execute(), MdcxCosmicSewer::execute(), TrkReco::execute(), ValidRecMdcTrackAlg::execute(), MdcCalRecTrk::fgNoiseRatio(), MdcTrkRecon::fillEvent(), IniMdcCalib::fillHist(), PreXtMdcCalib::fillHist(), MdcTrkRecon::fillMcTruth(), CgemMdcFitAlg::fit(), DedxCalibEvent::genNtuple(), getIntID(), getIntID(), MdcRawDataProvider::getMdcDigiVec(), HoughHit::HoughHit(), HoughHit::HoughHit(), MdcROOTGeo::IsHit(), MdcDedxRecon::kaltrackrec(), MdcDetector::Layer(), DotsHelixFitter::loadOneDcDigi(), TTrackManager::makeTds(), MdcHit::MdcHit(), MdcDedxRecon::mdctrackrec(), MdcxCosmicSewer::MdcxHitsToHots(), MdcBuilder::pack(), MdcPrintSvc::printDigi(), PrintMcInfo::printDigi(), PrintMcInfo::printHit(), MdcPrintSvc::printMdcMcHitCol(), HoughTrack::printRecMdcHitVec(), MdcPrintSvc::printRecMdcTrack(), HoughFinder::printTdsTrack(), MdcxHit::process(), McTestAlg::RetrieveMdc(), MdcROOTGeo::SetHits(), MdcAliRecHit::setKalHit(), MdcCalRecHit::setKalHit(), MdcAliRecHit::setRecHit(), MdcCalRecHit::setRecHit(), HoughFinder::storeRecTracks(), MdcMergeDups::testByOverlapHit(), RecMdcDedxCnv::TObjectToDataObject(), RecMdcKalTrackCnv::TObjectToDataObject(), RecMdcTrackCnv::TObjectToDataObject(), RecMdcTrack::updateStatistics(), values_ok(), MdcDetector::Wire(), wire_id(), and wire_id().

◆ layer_max()

int MdcID::layer_max ( const Identifier & id)

Max/Min values for each field (error returns -999)

Definition at line 59 of file MdcID.cxx.

59 {
60 if (is_axial(id)) {
61 return AXIAL_LAYER_MAX;
62 } else {
63 return STEREO_LAYER_MAX;
64 }
65}
bool is_axial(const Identifier &id)
Test for axial and stereo wire.
Definition MdcID.cxx:43

◆ values_ok()

bool MdcID::values_ok ( const unsigned int wireType,
const unsigned int layer,
const unsigned int wire )
static

Definition at line 12 of file MdcID.cxx.

15 {
16 // Check values
17 if ( wireType != AXIAL_WIRE && wireType != STEREO_WIRE ) return false;
18
19 if ( wireType == STEREO_WIRE ) {
20 if ( layer < INNER_STEREO_LAYER_MAX
21 || layer < ( INNER_STEREO_LAYER_MAX
22 + INNER_AXIAL_LAYER_MAX
23 + OUTER_STEREO_LAYER_MAX )
24 && layer >= (INNER_STEREO_LAYER_MAX + INNER_AXIAL_LAYER_MAX ))
25 return true;
26 }
27
28 if ( wireType == AXIAL_WIRE ) {
29 if ( layer >= INNER_STEREO_LAYER_MAX
30 && layer < ( INNER_STEREO_LAYER_MAX + INNER_AXIAL_LAYER_MAX )
31 || layer >= ( INNER_STEREO_LAYER_MAX + INNER_AXIAL_LAYER_MAX
32 + OUTER_STEREO_LAYER_MAX ) && layer < LAYER_MAX )
33
34 return true;
35 }
36
37 std::cout << " ++ MdcID::values_ok++ wiretype = " << wireType << " layer = " << layer << " wire = " << wire << std::endl;
38
39 return false;
40}

Referenced by wire_id().

◆ wire()

int MdcID::wire ( const Identifier & id)
static

Definition at line 54 of file MdcID.cxx.

54 {
55 return (id.get_value() & MdcID::WIRE_MASK) >> MdcID::WIRE_INDEX;
56}

Referenced by DotsHelixFitter::calculateCirclePar_Taubin(), DotsHelixFitter::calculateNewHelix(), BesEvent::ConstructMdcTrackFromRec(), MdcConverter::convert(), MdcTrkRecon::dumpDigi(), MdcMergeDups::dumpRecMdcTrack(), MdcTrkRecon::dumpTdsTrack(), BesTrigL1::execute(), BhabhaPreSelect::execute(), CgemMdcFitAlg::execute(), EFSectorHits::execute(), EsTimeAlg::execute(), EventPreSelect::execute(), KalFitAlg::execute(), MdcDedxRecon::execute(), MdcxCosmicSewer::execute(), TrkReco::execute(), ValidRecMdcTrackAlg::execute(), MdcCalRecTrk::fgNoiseRatio(), MdcTrkRecon::fillEvent(), IniMdcCalib::fillHist(), MdcTrkRecon::fillMcTruth(), CgemMdcFitAlg::fit(), DedxCalibEvent::genNtuple(), KalFitTrack::getDriftDist(), getIntID(), getIntID(), MdcRawDataProvider::getMdcDigiVec(), HoughHit::HoughHit(), HoughHit::HoughHit(), MdcROOTGeo::IsHit(), MdcDedxRecon::kaltrackrec(), DotsHelixFitter::loadOneDcDigi(), TTrackManager::makeTds(), MdcHit::MdcHit(), MdcDedxRecon::mdctrackrec(), MdcxCosmicSewer::MdcxHitsToHots(), MdcBuilder::pack(), MdcPrintSvc::printDigi(), PrintMcInfo::printDigi(), PrintMcInfo::printHit(), MdcPrintSvc::printMdcMcHitCol(), HoughTrack::printRecMdcHitVec(), MdcPrintSvc::printRecMdcTrack(), HoughFinder::printTdsTrack(), MdcxHit::process(), McTestAlg::RetrieveMdc(), MdcROOTGeo::SetHits(), MdcAliRecHit::setKalHit(), MdcCalRecHit::setKalHit(), MdcAliRecHit::setRecHit(), MdcCalRecHit::setRecHit(), HoughFinder::storeRecTracks(), RecMdcDedxCnv::TObjectToDataObject(), RecMdcKalTrackCnv::TObjectToDataObject(), RecMdcTrackCnv::TObjectToDataObject(), values_ok(), MdcDetector::Wire(), wire_id(), and wire_id().

◆ wire_id() [1/2]

Identifier MdcID::wire_id ( int layer,
int wire )
static

Definition at line 90 of file MdcID.cxx.

92 {
93 if ( layer < INNER_STEREO_LAYER_MAX
94 || layer < (INNER_STEREO_LAYER_MAX + INNER_AXIAL_LAYER_MAX + OUTER_STEREO_LAYER_MAX)
95 && layer >= (INNER_STEREO_LAYER_MAX + INNER_AXIAL_LAYER_MAX )
96 )
97 return MdcID::wire_id ( STEREO_WIRE, layer, wire );
98 else return MdcID::wire_id (AXIAL_WIRE, layer, wire );
99
100}
static Identifier wire_id(int wireType, int layer, int wire)
For a single wire.
Definition MdcID.cxx:77

◆ wire_id() [2/2]

Identifier MdcID::wire_id ( int wireType,
int layer,
int wire )
static

For a single wire.

Definition at line 77 of file MdcID.cxx.

80 {
81 assert ( values_ok(wireType, layer, wire) );
82 int value = (BesDetectorID::MDC_ID << MDC_INDEX) |
83 (wireType << WIRETYPE_INDEX) |
84 (layer << LAYER_INDEX) |
85 (wire << WIRE_INDEX);
86 return Identifier(value);
87}
static bool values_ok(const unsigned int wireType, const unsigned int layer, const unsigned int wire)
Definition MdcID.cxx:12

Referenced by RawDataMdcMcHitCnv::createObj(), TTrackManager::makeTds(), BesRawDataWriter::SaveMdcDigits(), BesMcTruthWriter::SaveMdcTruth(), and wire_id().

◆ wire_max()

int MdcID::wire_max ( const Identifier & id)

Definition at line 68 of file MdcID.cxx.

68 {
69 if (is_axial(id)) {
70 return AXIAL_WIRE_MAX;
71 } else {
72 return STEREO_WIRE_MAX;
73 }
74}

The documentation for this class was generated from the following files: