ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
AlfaLocalHits Class Reference

#include <AlfaLocalHits.h>

Inheritance diagram for AlfaLocalHits:
Collaboration diagram for AlfaLocalHits:

Public Member Functions

 AlfaLocalHits ()
 
void update ()
 
int AddHit (const AlfaLocalHit &h)
 
void Reset ()
 
void ResetPaths ()
 
int size ()
 
int GetNhits ()
 
int GetNpaths ()
 
void Dump ()
 
void DumpPaths ()
 
void ApplyPathPattern (const char *pattern)
 
AlfaLocalHitsGetPathHits (int ipath)
 
AlfaLocalHitGetHit (int ihit)
 
void SetPathPattern (const char *pattern)
 
TString GetPathPattern ()
 
void SetHit (const ALFA_LocRecCorrEvent *LocRecCorrHit)
 
void AssignZ ()
 
int GetPotNum () const
 
float GetX () const
 
float GetY () const
 
float GetZ () const
 
int IsHi () const
 
int GetMDindex (const char *name)
 
TString GetPotName () const
 
TString GetMDname (int i)
 
const ALFA_LocRecCorrEventGetLocRecCorr () const
 
void Print ()
 

Private Attributes

std::vector< AlfaLocalHitm_hits
 
int m_nhits
 
std::vector< AlfaLocalHitsm_paths
 
int m_npaths
 
TString m_pathpattern
 
int m_pot = 0
 
TString m_potname
 
int m_ishit = 0
 
Float_t m_x = 0.0F
 
Float_t m_y = 0.0F
 
Float_t m_z = 0.0F
 
const ALFA_LocRecCorrEventm_LocRecCorr = nullptr
 

Detailed Description

Definition at line 67 of file AlfaLocalHits.h.

Constructor & Destructor Documentation

◆ AlfaLocalHits()

AlfaLocalHits::AlfaLocalHits ( )

Definition at line 124 of file AlfaLocalHits.cxx.

124  {
125  m_hits.clear();
126  m_paths.clear();
127  m_nhits = m_hits.size();
128  m_npaths = m_paths.size();
129  m_pathpattern ="";
130 }

Member Function Documentation

◆ AddHit()

int AlfaLocalHits::AddHit ( const AlfaLocalHit h)

Definition at line 135 of file AlfaLocalHits.cxx.

135  {
136  m_hits.push_back(h);
137  update();
138  return m_hits.size();
139 }

◆ ApplyPathPattern()

void AlfaLocalHits::ApplyPathPattern ( const char *  pattern)

Definition at line 179 of file AlfaLocalHits.cxx.

179  {
181 // ... apply path pattern to all the hits
182 // paths will be the same objects contaioning
183 // only the wanted hits
184 // pattern examples: B7L1U_A7L1U_X_B7R1L etc. X ... anything
187  TString ts_pattern(pattern);
188  TObjArray toa_tokenized_pattern(4,0);
189  toa_tokenized_pattern = * ts_pattern.Tokenize("_");
190  if(toa_tokenized_pattern.GetEntries() != 4){
191  std::runtime_error("AlfaLocalHits: Pattern of wrong length!!! " + ts_pattern);
192  }
193  TString patternitem("");
194  AlfaLocalHits alh_tmp;
195  for(int i1 = 0; i1 < m_nhits; i1++){
196  int i1last = (i1 == m_nhits-1);
197  AlfaLocalHit h1(m_hits.at(i1));
198  TString patternitem0 = TString(((TObjString*) toa_tokenized_pattern.At(0))->GetString());
199  if((h1.GetPotName().Contains(patternitem0))
200  || (i1last && patternitem0.Contains("X"))
201  ){
202  for(int i2 = 0; i2 < m_nhits; i2++){
203  int i2last = (i2 == m_nhits-1);
204  if(i2 == i1 && !i2last) continue;
205  AlfaLocalHit h2(m_hits.at(i2));
206  TString patternitem1 = TString(((TObjString*) toa_tokenized_pattern.At(1))->GetString());
207  if((h2.GetPotName().Contains(patternitem1))
208  ||(i2last && patternitem1.Contains("X"))
209  ){
210  for(int i3 = 0; i3 < m_nhits; i3++){
211  int i3last = (i3 == m_nhits-1);
212  if(i3 == i1 && !i3last) continue;
213  if(i3 == i2 && !i3last) continue;
214  AlfaLocalHit h3(m_hits.at(i3));
215  TString patternitem2 = TString(((TObjString*) toa_tokenized_pattern.At(2))->GetString());
216  if((h3.GetPotName().Contains(patternitem2))
217  ||(i3last && patternitem2.Contains("X"))
218  ){
219  for(int i4 = 0; i4 < m_nhits; i4++){
220  int i4last = (i4 == m_nhits-1);
221  if(i4 == i1 && !i4last) continue;
222  if(i4 == i2 && !i4last) continue;
223  if(i4 == i3 && !i4last) continue;
224  AlfaLocalHit h4(m_hits.at(i4));
225  TString patternitem3 = TString(((TObjString*) toa_tokenized_pattern.At(3))->GetString());
226  if((h4.GetPotName().Contains(patternitem3))
227  ||(i4last && patternitem3.Contains("X"))
228  ){
229  if(patternitem0!='X') {alh_tmp.AddHit(h1);}
230  if(patternitem1!='X') {alh_tmp.AddHit(h2);}
231  if(patternitem2!='X') {alh_tmp.AddHit(h3);}
232  if(patternitem3!='X') {alh_tmp.AddHit(h4);}
233  }
234  }
235  }
236  }
237  }
238  }
239  }
240  }
241  alh_tmp.SetPathPattern(m_pathpattern.Data());
242  m_paths.push_back(alh_tmp);
243  update();
244 }

◆ AssignZ()

void AlfaLocalHit::AssignZ ( )
inherited

Definition at line 65 of file AlfaLocalHits.cxx.

65  {
66  if(m_pot < 0) {
67  throw std::runtime_error("AlfaLocalHit::AssignZ() m_pot not assigned");
68  }
69  m_z = 1.e10;
70  if(m_potname.Contains("B7L1U")) m_z = 241528.;
71  if(m_potname.Contains("A7L1U")) m_z = 237388.;
72  if(m_potname.Contains("B7L1L")) m_z = 241538.;
73  if(m_potname.Contains("A7L1L")) m_z = 237398.;
74  if(m_potname.Contains("B7R1U")) m_z = -241548.;
75  if(m_potname.Contains("A7R1U")) m_z = -237408.;
76  if(m_potname.Contains("B7R1L")) m_z = -241538.;
77  if(m_potname.Contains("A7R1L")) m_z = -237398.;
78  if(!(m_z < 1.e10)){
79  throw std::runtime_error("AlfaLocalHit::AssignZ: z coordinate was not assigned for the hit");
80  }
81 }

◆ Dump()

void AlfaLocalHits::Dump ( )

Definition at line 160 of file AlfaLocalHits.cxx.

160  {
161  if(m_nhits == 0){
162  cout << "Cannot dump the AlfaLocalHits object, it has zero size." << endl;
163  }else{
164  cout << "Dumping object of AlfaLocalHits class:" << endl;
165  for(Int_t i = 0; i < m_nhits; i++){
166  cout << "at " << i << " ";
167  m_hits.at(i).Print();
168  cout << endl;
169  }
170  }
171 }

◆ DumpPaths()

void AlfaLocalHits::DumpPaths ( )

Definition at line 172 of file AlfaLocalHits.cxx.

172  {
173  cout << "Dumping paths for " << m_pathpattern.Data() << " pattern" << endl;
174  for(int i = 0; i < m_npaths; i++){
175  m_paths.at(i).Dump();
176  }
177 }

◆ GetHit()

AlfaLocalHit * AlfaLocalHits::GetHit ( int  ihit)

Definition at line 258 of file AlfaLocalHits.cxx.

258  {
259  if(ihit >= m_nhits){
260  throw std::runtime_error("Requesting hit with overflow index");
261  }
262  return &(m_hits.at(ihit));
263 }

◆ GetLocRecCorr()

const ALFA_LocRecCorrEvent* AlfaLocalHit::GetLocRecCorr ( ) const
inlineinherited

Definition at line 53 of file AlfaLocalHits.h.

53 {return m_LocRecCorr;};

◆ GetMDindex()

int AlfaLocalHit::GetMDindex ( const char *  name)
inherited

Definition at line 91 of file AlfaLocalHits.cxx.

91  {
92  TString n(name);
93  if(n.Contains("B7L1U")) return 0;
94  if(n.Contains("B7L1L")) return 1;
95  if(n.Contains("A7L1U")) return 2;
96  if(n.Contains("A7L1L")) return 3;
97  if(n.Contains("A7R1U")) return 4;
98  if(n.Contains("A7R1L")) return 5;
99  if(n.Contains("B7R1U")) return 6;
100  if(n.Contains("B7R1L")) return 7;
101  throw std::runtime_error("AlfaLocalHit::GetMDindex ... Not recognised detector name: " + n);
102 }

◆ GetMDname()

TString AlfaLocalHit::GetMDname ( int  i)
inherited

Definition at line 103 of file AlfaLocalHits.cxx.

103  {
104  if(i == 0) return {"B7L1U"};
105  if(i == 1) return {"B7L1L"};
106  if(i == 2) return {"A7L1U"};
107  if(i == 3) return {"A7L1L"};
108  if(i == 4) return {"A7R1U"};
109  if(i == 5) return {"A7R1L"};
110  if(i == 6) return {"B7R1U"};
111  if(i == 7) return {"B7R1L"};
112  throw std::runtime_error("AlfaLocalHit::GetMDname ... Not recognised detector number: " + std::to_string(i));
113 }

◆ GetNhits()

int AlfaLocalHits::GetNhits ( )
inline

Definition at line 81 of file AlfaLocalHits.h.

81 {return m_nhits;}

◆ GetNpaths()

int AlfaLocalHits::GetNpaths ( )
inline

Definition at line 82 of file AlfaLocalHits.h.

82 {return m_npaths;}

◆ GetPathHits()

AlfaLocalHits * AlfaLocalHits::GetPathHits ( int  ipath)

Definition at line 250 of file AlfaLocalHits.cxx.

250  {
251  if(ipath >= m_npaths){
252  throw std::runtime_error("Requesting path with overflow index");
253  }
254  return &(m_paths.at(ipath));
255 }

◆ GetPathPattern()

TString AlfaLocalHits::GetPathPattern ( )
inline

Definition at line 89 of file AlfaLocalHits.h.

89 {return m_pathpattern;}

◆ GetPotName()

TString AlfaLocalHit::GetPotName ( ) const
inlineinherited

Definition at line 51 of file AlfaLocalHits.h.

51 {return m_potname;};

◆ GetPotNum()

int AlfaLocalHit::GetPotNum ( ) const
inlineinherited

Definition at line 45 of file AlfaLocalHits.h.

45 {return m_pot;};

◆ GetX()

float AlfaLocalHit::GetX ( ) const
inlineinherited

Definition at line 46 of file AlfaLocalHits.h.

46 {return m_x;};

◆ GetY()

float AlfaLocalHit::GetY ( ) const
inlineinherited

Definition at line 47 of file AlfaLocalHits.h.

47 {return m_y;};

◆ GetZ()

float AlfaLocalHit::GetZ ( ) const
inlineinherited

Definition at line 48 of file AlfaLocalHits.h.

48 {return m_z;};

◆ IsHi()

int AlfaLocalHit::IsHi ( ) const
inlineinherited

Definition at line 49 of file AlfaLocalHits.h.

49 {return m_ishit;};

◆ Print()

void AlfaLocalHit::Print ( )
inherited

Definition at line 83 of file AlfaLocalHits.cxx.

83  {
84  cout << "pot = " << m_pot
85  << " i.e " << m_potname.Data()
86  << " x = " << m_x
87  << " m_y = " << m_y
88  ;
89 }

◆ Reset()

void AlfaLocalHits::Reset ( )

Definition at line 140 of file AlfaLocalHits.cxx.

140  {
141  m_hits.clear();
142  m_paths.clear();
143  m_pathpattern ="";
144  update();
145 }

◆ ResetPaths()

void AlfaLocalHits::ResetPaths ( )

Definition at line 146 of file AlfaLocalHits.cxx.

146  {
147  m_paths.clear();
148  m_pathpattern ="";
149  update();
150 }

◆ SetHit()

void AlfaLocalHit::SetHit ( const ALFA_LocRecCorrEvent LocRecCorrHit)
inherited

Definition at line 53 of file AlfaLocalHits.cxx.

53  {
54  m_pot = LocRecCorrHit->getPotNum();
55  //cout << "AlfaLocalHit::SetHit... m_pot = " << m_pot << endl;
57  m_ishit = 1;
58  m_x = LocRecCorrHit->getXpositionLHC();
59  m_y = LocRecCorrHit->getYpositionLHC();
60  m_LocRecCorr = LocRecCorrHit;
61  AssignZ();
62 }

◆ SetPathPattern()

void AlfaLocalHits::SetPathPattern ( const char *  pattern)

Definition at line 246 of file AlfaLocalHits.cxx.

246  {
248 }

◆ size()

int AlfaLocalHits::size ( )

Definition at line 153 of file AlfaLocalHits.cxx.

153  {
154  if(m_nhits != (int) m_hits.size()){
155  throw std::runtime_error("Class AlfaLocalHits: m_nhits != m_hits.size() !!! ");
156  }
157  return m_nhits;
158 }

◆ update()

void AlfaLocalHits::update ( )

Definition at line 131 of file AlfaLocalHits.cxx.

131  {
132  m_nhits = m_hits.size();
133  m_npaths = m_paths.size();
134 }

Member Data Documentation

◆ m_hits

std::vector<AlfaLocalHit> AlfaLocalHits::m_hits
private

Definition at line 69 of file AlfaLocalHits.h.

◆ m_ishit

int AlfaLocalHit::m_ishit = 0
privateinherited

Definition at line 36 of file AlfaLocalHits.h.

◆ m_LocRecCorr

const ALFA_LocRecCorrEvent* AlfaLocalHit::m_LocRecCorr = nullptr
privateinherited

Definition at line 38 of file AlfaLocalHits.h.

◆ m_nhits

int AlfaLocalHits::m_nhits
private

Definition at line 70 of file AlfaLocalHits.h.

◆ m_npaths

int AlfaLocalHits::m_npaths
private

Definition at line 72 of file AlfaLocalHits.h.

◆ m_pathpattern

TString AlfaLocalHits::m_pathpattern
private

Definition at line 73 of file AlfaLocalHits.h.

◆ m_paths

std::vector<AlfaLocalHits> AlfaLocalHits::m_paths
private

Definition at line 71 of file AlfaLocalHits.h.

◆ m_pot

int AlfaLocalHit::m_pot = 0
privateinherited

Definition at line 34 of file AlfaLocalHits.h.

◆ m_potname

TString AlfaLocalHit::m_potname
privateinherited

Definition at line 35 of file AlfaLocalHits.h.

◆ m_x

Float_t AlfaLocalHit::m_x = 0.0F
privateinherited

Definition at line 37 of file AlfaLocalHits.h.

◆ m_y

Float_t AlfaLocalHit::m_y = 0.0F
privateinherited

Definition at line 37 of file AlfaLocalHits.h.

◆ m_z

Float_t AlfaLocalHit::m_z = 0.0F
privateinherited

Definition at line 37 of file AlfaLocalHits.h.


The documentation for this class was generated from the following files:
mergePhysValFiles.pattern
pattern
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:26
AlfaLocalHit::m_z
Float_t m_z
Definition: AlfaLocalHits.h:37
AlfaLocalHit::m_x
Float_t m_x
Definition: AlfaLocalHits.h:37
AlfaLocalHits::m_pathpattern
TString m_pathpattern
Definition: AlfaLocalHits.h:73
AlfaLocalHits::AddHit
int AddHit(const AlfaLocalHit &h)
Definition: AlfaLocalHits.cxx:135
ALFA_LocRecCorrEvent::getYpositionLHC
float getYpositionLHC() const
Definition: ALFA_LocRecCorrEvent.h:20
AlfaLocalHits::m_paths
std::vector< AlfaLocalHits > m_paths
Definition: AlfaLocalHits.h:71
AlfaLocalHit::m_potname
TString m_potname
Definition: AlfaLocalHits.h:35
AlfaLocalHits
Definition: AlfaLocalHits.h:67
read_hist_ntuple.h1
h1
Definition: read_hist_ntuple.py:21
AlfaLocalHit::m_ishit
int m_ishit
Definition: AlfaLocalHits.h:36
lumiFormat.i
int i
Definition: lumiFormat.py:85
AlfaLocalHit::m_LocRecCorr
const ALFA_LocRecCorrEvent * m_LocRecCorr
Definition: AlfaLocalHits.h:38
beamspotman.n
n
Definition: beamspotman.py:731
AlfaLocalHits::SetPathPattern
void SetPathPattern(const char *pattern)
Definition: AlfaLocalHits.cxx:246
AlfaLocalHit::AssignZ
void AssignZ()
Definition: AlfaLocalHits.cxx:65
AlfaLocalHits::m_npaths
int m_npaths
Definition: AlfaLocalHits.h:72
ALFA_LocRecCorrEvent::getXpositionLHC
float getXpositionLHC() const
Definition: ALFA_LocRecCorrEvent.h:19
AlfaLocalHits::m_hits
std::vector< AlfaLocalHit > m_hits
Definition: AlfaLocalHits.h:69
AlfaLocalHit::GetMDname
TString GetMDname(int i)
Definition: AlfaLocalHits.cxx:103
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
ALFA_LocRecCorrEvent::getPotNum
int getPotNum() const
Definition: ALFA_LocRecCorrEvent.h:18
AlfaLocalHit
Definition: AlfaLocalHits.h:32
h
AlfaLocalHits::m_nhits
int m_nhits
Definition: AlfaLocalHits.h:70
AlfaLocalHit::m_pot
int m_pot
Definition: AlfaLocalHits.h:34
AlfaLocalHits::update
void update()
Definition: AlfaLocalHits.cxx:131
AlfaLocalHit::m_y
Float_t m_y
Definition: AlfaLocalHits.h:37