ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
RpcHitIdHelper Class Reference

#include <RpcHitIdHelper.h>

Inheritance diagram for RpcHitIdHelper:
Collaboration diagram for RpcHitIdHelper:

Public Member Functions

std::string GetStationName (const int &hid) const
 
void SetStationName (const std::string &name, int &hid) const
 
int GetPhiSector (const int &hid) const
 
int GetZSector (const int &hid) const
 
int GetDoubletR (const int &hid) const
 
int GetGasGapLayer (const int &hid) const
 
int GetDoubletPhi (const int &hid) const
 
int GetDoubletZ (const int &hid) const
 
int GetMeasuresPhi (const int &hid) const
 
int BuildRpcHitId (const std::string &, const int, const int, const int, const int, const int, const int, const int) const
 
void InitializeField (const std::string &n, int vmn, int vmx)
 
void InitializeField (const std::string &n, int nb)
 
void SetFieldValue (const std::string &name, int n, HitID &targetID) const
 
int GetFieldValue (const std::string &name, HitID targetID) const
 
void PrintFields ()
 

Static Public Member Functions

static const RpcHitIdHelperGetHelper (unsigned int nGasGaps=2)
 
static void Print (int id)
 

Static Protected Member Functions

static void SetBit (int &i, int bitpos)
 
static void UnsetBit (int &i, int bitpos)
 
static void Store (int &id, int value, int first, int field)
 
static int Retrieve (int id, int first, int field)
 

Protected Attributes

IdFields m_IDs
 
int m_currentStorage
 

Private Member Functions

 RpcHitIdHelper (unsigned int nGasGaps)
 
void Initialize (unsigned int nGasGaps)
 
void InitializeStationName ()
 

Detailed Description

Definition at line 13 of file RpcHitIdHelper.h.

Constructor & Destructor Documentation

◆ RpcHitIdHelper()

RpcHitIdHelper::RpcHitIdHelper ( unsigned int  nGasGaps)
private

Definition at line 17 of file RpcHitIdHelper.cxx.

17  : HitIdHelper()
18 {
20  Initialize(nGasGaps);
21 }

Member Function Documentation

◆ BuildRpcHitId()

int RpcHitIdHelper::BuildRpcHitId ( const std::string &  statName,
const int  phiSect,
const int  zSect,
const int  doubZ,
const int  doubR,
const int  gasGap,
const int  doubPhi,
const int  measPhi 
) const

Definition at line 102 of file RpcHitIdHelper.cxx.

105 {
106 
107  int theID(0);
108  this->SetStationName(statName, theID);
109  this->SetFieldValue("PhiSector", phiSect, theID);
110  this->SetFieldValue("ZSector", zSect, theID);
111  this->SetFieldValue("DoubletZ", doubZ, theID);
112  this->SetFieldValue("DoubletR", doubR, theID);
113  this->SetFieldValue("GasGapLayer", gasGap, theID);
114  this->SetFieldValue("DoubletPhi", doubPhi, theID);
115  this->SetFieldValue("MeasuresPhi", measPhi, theID);
116  return theID;
117 }

◆ GetDoubletPhi()

int RpcHitIdHelper::GetDoubletPhi ( const int &  hid) const

Definition at line 88 of file RpcHitIdHelper.cxx.

89 {
90  return this->GetFieldValue("DoubletPhi", hid);
91 }

◆ GetDoubletR()

int RpcHitIdHelper::GetDoubletR ( const int &  hid) const

Definition at line 80 of file RpcHitIdHelper.cxx.

81 {
82  return this->GetFieldValue("DoubletR", hid);
83 }

◆ GetDoubletZ()

int RpcHitIdHelper::GetDoubletZ ( const int &  hid) const

Definition at line 92 of file RpcHitIdHelper.cxx.

93 {
94  return this->GetFieldValue("DoubletZ", hid);
95 }

◆ GetFieldValue()

int HitIdHelper::GetFieldValue ( const std::string &  name,
HitID  targetID 
) const
inherited

Definition at line 48 of file HitIdHelper.cxx.

49 {
50  for (unsigned int i=0;i<m_IDs.size();i++)
51  {
52  if (m_IDs[i].fieldName==name)
53  {
54  int n=Retrieve(targetID,m_IDs[i].firstBit,m_IDs[i].nBits);
55  return n+m_IDs[i].vMin;
56  }
57  }
58  std::cout<<"HitIdHelper: field "<<name<<" not found: returning 0"<<
59  std::endl;
60  return 0;
61 }

◆ GetGasGapLayer()

int RpcHitIdHelper::GetGasGapLayer ( const int &  hid) const

Definition at line 84 of file RpcHitIdHelper.cxx.

85 {
86  return this->GetFieldValue("GasGapLayer", hid);
87 }

◆ GetHelper()

const RpcHitIdHelper * RpcHitIdHelper::GetHelper ( unsigned int  nGasGaps = 2)
static

Definition at line 23 of file RpcHitIdHelper.cxx.

24 {
25  static const RpcHitIdHelper helper(nGasGaps);
26  return &helper;
27 }

◆ GetMeasuresPhi()

int RpcHitIdHelper::GetMeasuresPhi ( const int &  hid) const

Definition at line 96 of file RpcHitIdHelper.cxx.

97 {
98  return this->GetFieldValue("MeasuresPhi", hid);
99 }

◆ GetPhiSector()

int RpcHitIdHelper::GetPhiSector ( const int &  hid) const

Definition at line 69 of file RpcHitIdHelper.cxx.

70 {
71  return this->GetFieldValue("PhiSector", hid);
72 }

◆ GetStationName()

std::string RpcHitIdHelper::GetStationName ( const int &  hid) const

Definition at line 58 of file RpcHitIdHelper.cxx.

59 {
60  char v[4];
61  v[0]=v1[this->GetFieldValue("Station[1]", hid)];
62  v[1]=v2[this->GetFieldValue("Station[2]", hid)];
63  v[2]=v3[this->GetFieldValue("Station[3]", hid)];
64  v[3]='\0';
65  std::string temp=v;
66  return temp;
67 }

◆ GetZSector()

int RpcHitIdHelper::GetZSector ( const int &  hid) const

Definition at line 74 of file RpcHitIdHelper.cxx.

75 {
76  return this->GetFieldValue("ZSector", hid);
77 }

◆ Initialize()

void RpcHitIdHelper::Initialize ( unsigned int  nGasGaps)
private

Definition at line 29 of file RpcHitIdHelper.cxx.

30 {
31  InitializeField("PhiSector",1,8);
32  InitializeField("ZSector",-8,8);
33  InitializeField("DoubletR",1,2);
34  InitializeField("GasGapLayer",1,nGasGaps);
35  InitializeField("DoubletPhi",1,2);
36  InitializeField("DoubletZ",1,3);
37  InitializeField("MeasuresPhi",0,1);
38 
39 }

◆ InitializeField() [1/2]

void HitIdHelper::InitializeField ( const std::string &  n,
int  nb 
)
inherited

Definition at line 21 of file HitIdHelper.cxx.

22 {
23  int vmn=0;
24  int vmx=int(pow(2,nb))-1;
25  IdField id={n,vmn,vmx,nb,m_currentStorage+1};
26  m_IDs.push_back(id);
28  assert (m_currentStorage<33);
29 }

◆ InitializeField() [2/2]

void HitIdHelper::InitializeField ( const std::string &  n,
int  vmn,
int  vmx 
)
inherited

Definition at line 10 of file HitIdHelper.cxx.

11 {
12  int field = vmx -vmn+1;
13  int nb=1;
14  while (field>pow(2,nb)) nb++;
15  IdField id={n,vmn,vmx,nb,m_currentStorage+1};
16  m_IDs.push_back(id);
18  assert (m_currentStorage<33);
19 }

◆ InitializeStationName()

void RpcHitIdHelper::InitializeStationName ( )
private

Definition at line 41 of file RpcHitIdHelper.cxx.

42 {
43  InitializeField("Station[1]",0,sizeof(v1));
44  InitializeField("Station[2]",0,sizeof(v2));
45  InitializeField("Station[3]",0,sizeof(v3));
46 }

◆ Print()

void HitIdHelper::Print ( int  id)
staticinherited

Definition at line 73 of file HitIdHelper.cxx.

74 {
75  for (unsigned int i=0;i<8*sizeof(int);i++)
76  {
77  if ((id & (1u<<i))) std::cout<<"1";
78  else std::cout<<"0";
79  }
80  std::cout<<std::endl;
81 }

◆ PrintFields()

void HitIdHelper::PrintFields ( )
inherited

Definition at line 63 of file HitIdHelper.cxx.

64 {
65  for (unsigned int i=0;i<m_IDs.size();i++)
66  {
67  std::cout<<"-- Field "<<m_IDs[i].fieldName<<"\t["<<m_IDs[i].vMin
68  <<","<<m_IDs[i].vMax<<"]\tnBits "<<m_IDs[i].nBits
69  <<"\tfirst Bit "<<m_IDs[i].firstBit<<std::endl;
70  }
71 }

◆ Retrieve()

int HitIdHelper::Retrieve ( int  id,
int  first,
int  field 
)
staticprotectedinherited

Definition at line 106 of file HitIdHelper.cxx.

107 {
108  int j=0;
109  for (int i=0;i<field;i++)
110  SetBit(j,(i+first));
111  int l=id&j;
112  return l>>(first-1);
113 }

◆ SetBit()

void HitIdHelper::SetBit ( int &  i,
int  bitpos 
)
staticprotectedinherited

Definition at line 83 of file HitIdHelper.cxx.

84 {
85  int l=1;
86  l<<=(bitpos-1);
87  i|=l;
88 }

◆ SetFieldValue()

void HitIdHelper::SetFieldValue ( const std::string &  name,
int  n,
HitID targetID 
) const
inherited

Definition at line 31 of file HitIdHelper.cxx.

32 {
33  for (unsigned int i=0;i<m_IDs.size();i++)
34  {
35  if (m_IDs[i].fieldName==name)
36  {
37  if (n<m_IDs[i].vMin || n>m_IDs[i].vMax)
38  std::cout<<"HitIdHelper: field "<<name<<": supplied value "<<n<<
39  " is not within the allowed range ["<<m_IDs[i].vMin<<","<<m_IDs[i].vMax
40  <<"] : the result of this action is unpredictable "<<std::endl;
41  n-=m_IDs[i].vMin;
42  Store(targetID,n,m_IDs[i].firstBit,m_IDs[i].nBits);
43  break;
44  }
45  }
46 }

◆ SetStationName()

void RpcHitIdHelper::SetStationName ( const std::string &  name,
int &  hid 
) const

Definition at line 48 of file RpcHitIdHelper.cxx.

49 {
50  for (unsigned int i=0;i<sizeof(v1);i++)
51  if (v1[i]==name[0]) SetFieldValue("Station[1]",i,hid);
52  for (unsigned int i=0;i<sizeof(v2);i++)
53  if (v2[i]==name[1]) SetFieldValue("Station[2]",i,hid);
54  for (unsigned int i=0;i<sizeof(v3);i++)
55  if (v3[i]==name[2]) SetFieldValue("Station[3]",i,hid);
56 }

◆ Store()

void HitIdHelper::Store ( int &  id,
int  value,
int  first,
int  field 
)
staticprotectedinherited

Definition at line 97 of file HitIdHelper.cxx.

98 {
99  int l=0;
100  for (int i=0;i<field;i++)
101  UnsetBit(id,i+firstbit);
102  l=value<<(firstbit-1);
103  id |= l;
104 }

◆ UnsetBit()

void HitIdHelper::UnsetBit ( int &  i,
int  bitpos 
)
staticprotectedinherited

Definition at line 89 of file HitIdHelper.cxx.

90 {
91  int l=0;
92  SetBit(l,bitpos);
93  int k=~l;
94  i&=k;
95 }

Member Data Documentation

◆ m_currentStorage

int HitIdHelper::m_currentStorage
protectedinherited

Definition at line 35 of file HitIdHelper.h.

◆ m_IDs

IdFields HitIdHelper::m_IDs
protectedinherited

Definition at line 34 of file HitIdHelper.h.


The documentation for this class was generated from the following files:
RpcHitIdHelper::InitializeStationName
void InitializeStationName()
Definition: RpcHitIdHelper.cxx:41
HitIdHelper::m_IDs
IdFields m_IDs
Definition: HitIdHelper.h:34
dumpTgcDigiDeadChambers.gasGap
list gasGap
Definition: dumpTgcDigiDeadChambers.py:33
IdField
Definition: HitIdHelper.h:13
HitIdHelper::SetFieldValue
void SetFieldValue(const std::string &name, int n, HitID &targetID) const
Definition: HitIdHelper.cxx:31
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
HitIdHelper::InitializeField
void InitializeField(const std::string &n, int vmn, int vmx)
Definition: HitIdHelper.cxx:10
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
athena.value
value
Definition: athena.py:124
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
HitIdHelper::SetBit
static void SetBit(int &i, int bitpos)
Definition: HitIdHelper.cxx:83
ReadOfcFromCool.field
field
Definition: ReadOfcFromCool.py:48
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:77
runBeamSpotCalibration.helper
helper
Definition: runBeamSpotCalibration.py:112
HitIdHelper::GetFieldValue
int GetFieldValue(const std::string &name, HitID targetID) const
Definition: HitIdHelper.cxx:48
lumiFormat.i
int i
Definition: lumiFormat.py:85
HitIdHelper::Store
static void Store(int &id, int value, int first, int field)
Definition: HitIdHelper.cxx:97
RpcHitIdHelper::Initialize
void Initialize(unsigned int nGasGaps)
Definition: RpcHitIdHelper.cxx:29
beamspotman.n
n
Definition: beamspotman.py:731
HitIdHelper::UnsetBit
static void UnsetBit(int &i, int bitpos)
Definition: HitIdHelper.cxx:89
HitIdHelper::Retrieve
static int Retrieve(int id, int first, int field)
Definition: HitIdHelper.cxx:106
taskman.fieldName
fieldName
Definition: taskman.py:492
RpcHitIdHelper::SetStationName
void SetStationName(const std::string &name, int &hid) const
Definition: RpcHitIdHelper.cxx:48
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
HitIdHelper::HitIdHelper
HitIdHelper()
Definition: HitIdHelper.h:25
ReadCellNoiseFromCoolCompare.v2
v2
Definition: ReadCellNoiseFromCoolCompare.py:364
python.PyAthena.v
v
Definition: PyAthena.py:154
DeMoScan.first
bool first
Definition: DeMoScan.py:536
RpcHitIdHelper
Definition: RpcHitIdHelper.h:13
HitIdHelper::m_currentStorage
int m_currentStorage
Definition: HitIdHelper.h:35
hotSpotInTAG.nb
nb
Definition: hotSpotInTAG.py:164
fitman.k
k
Definition: fitman.py:528