ATLAS Offline Software
Loading...
Searching...
No Matches
BeamSpotStatusCode.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#ifndef INDET_BEAMSPOTSTATUSCODE
6#define INDET_BEAMSPOTSTATUSCODE
11
12namespace InDet {
20 public:
22 m_word(0)
23 {}
25 //Online/offline
26 bool isOnline() const {return isOnline(m_word);}
27 static bool isOnline(int word){
28 int i = getItem(word, m_onlineBit, m_onlineLength);
29 return ( i > 0 ? true : false );
30 }
32 static void setOnlineStatus(bool isOnline, int & word){
33 setWordBit( formBit( m_onlineBit, (isOnline?1:0)), word);}
34
35 //fit status
36 int fitStatus() const {return fitStatus(m_word);}
37 static int fitStatus(int word) { return getItem(word, m_fitStatusBit, m_fitStatusLength);}
38 void setFitStatus(int status){setFitStatus(status, m_word);}
39 static void setFitStatus(int status, int & word) {
40 setWordBit( formBit( m_fitStatusBit, status), word); }
41
42 //algorthim type
43 int algType() const { return algType(m_word);}
44 static int algType(int word) { return getItem(word, m_algorithmTypeBit, m_algorithmTypeLength);}
46 static void setAlgType(int type, int & word) {
48
49 //width
50 bool fitWidth() const {return fitWidth(m_word);}
51 static bool fitWidth(int word){ return getItem(word, m_widthBit, m_widthLength);}
53 static void setFitWidth(bool fitWidth, int & word) {
54 setWordBit( formBit( m_widthBit, (fitWidth?1:0)),word); }
55
56
57 void clearWord() { m_word = 0;}
58 void setWord(int word) { m_word = word;}
59 int getWord() const {return m_word;}
60
61private:
62 int getItem( int bit, int length) const {return getItem(m_word, bit,length);}
63 static int getItem( int word, int bit, int length) {
64 int temp = 0;
65 for (int i =0; i < length; ++i) {
66 temp = (temp << 1) + 1;
67 }
68 return (word >> bit) & temp;
69 }
70
71 static int formBit( int bit, int word) {
72 return (word << bit);
73 }
74 static void setWordBit(int flag, int & word) {
75 word = (word | flag);
76 }
77
78 static const int m_onlineBit,m_onlineLength;
81 static const int m_widthBit, m_widthLength;
82
83 int m_word;
84
85};
86
87}
88
89
90#endif
91
double length(const pvec &v)
static void setOnlineStatus(bool isOnline, int &word)
static const int m_algorithmTypeBit
static const int m_algorithmTypeLength
static int getItem(int word, int bit, int length)
static void setAlgType(int type, int &word)
int getItem(int bit, int length) const
static bool fitWidth(int word)
static int formBit(int bit, int word)
static const int m_fitStatusLength
void setOnlineStatus(bool isOnline)
static bool isOnline(int word)
static int fitStatus(int word)
static void setFitStatus(int status, int &word)
static void setFitWidth(bool fitWidth, int &word)
void setFitWidth(bool fitWidth)
static int algType(int word)
static void setWordBit(int flag, int &word)
Primary Vertex Finder.