PandaRoot
FTSCAElementsOnStation< T > Class Template Reference

#include <FTSCAHits.h>

Inheritance diagram for FTSCAElementsOnStation< T >:

Public Member Functions

 FTSCAElementsOnStation ()
 
 FTSCAElementsOnStation (const FTSCAHits *hits)
 
void SetStation (char s)
 
const char & IStation () const
 
const FTSCAHitGetHit (int iV, int IH, int i) const
 
const FTSCAHitGetHit (int IH, int i) const
 
int FirstElementIByHit0 (int iH) const
 
vector< int > & FirstElementIByHit0 ()
 
const FTSCAHitsHitsRef () const
 
FTSCAElementsOnStation< T > & operator= (const FTSCAElementsOnStation< T > &a)
 
FTSCAElementsOnStation< T > operator+ (const FTSCAElementsOnStation< T > &a)
 

Public Attributes

const FTSCAHitsfHitsRef
 
char fISta
 
vector< int > fFirstElementIByHit0
 

Detailed Description

template<typename T>
class FTSCAElementsOnStation< T >

Definition at line 136 of file FTSCAHits.h.

Constructor & Destructor Documentation

◆ FTSCAElementsOnStation() [1/2]

template<typename T>
FTSCAElementsOnStation< T >::FTSCAElementsOnStation ( )
inline

Definition at line 39 of file FTSCAStationArray.h.

39 : fHitsRef(nullptr), fISta(-1), fFirstElementIByHit0() {}
vector< int > fFirstElementIByHit0
const FTSCAHits * fHitsRef

◆ FTSCAElementsOnStation() [2/2]

template<typename T>
FTSCAElementsOnStation< T >::FTSCAElementsOnStation ( const FTSCAHits hits)
inline

Definition at line 40 of file FTSCAStationArray.h.

40 : fHitsRef(hits), fFirstElementIByHit0() {}
vector< int > fFirstElementIByHit0
const FTSCAHits * fHitsRef

Member Function Documentation

◆ FirstElementIByHit0() [1/2]

template<typename T>
int FTSCAElementsOnStation< T >::FirstElementIByHit0 ( int  iH) const
inline

Definition at line 54 of file FTSCAStationArray.h.

References FTSCAElementsOnStation< T >::fFirstElementIByHit0.

54 { return fFirstElementIByHit0[iH]; }
vector< int > fFirstElementIByHit0

◆ FirstElementIByHit0() [2/2]

template<typename T>
vector<int>& FTSCAElementsOnStation< T >::FirstElementIByHit0 ( )
inline

Definition at line 55 of file FTSCAStationArray.h.

References FTSCAElementsOnStation< T >::fFirstElementIByHit0.

55 { return fFirstElementIByHit0; }
vector< int > fFirstElementIByHit0

◆ GetHit() [1/2]

template<typename T>
const FTSCAHit& FTSCAElementsOnStation< T >::GetHit ( int  iV,
int  IH,
int  i 
) const
inline

Definition at line 50 of file FTSCAStationArray.h.

References FTSCAElementsOnStation< T >::fHitsRef, and i.

50 { return (*fHitsRef)[(*this)[i].IHit(IH)[iV]]; }
unsigned int i
Definition: P4_F32vec4.h:33
const FTSCAHits * fHitsRef

◆ GetHit() [2/2]

template<typename T>
const FTSCAHit& FTSCAElementsOnStation< T >::GetHit ( int  IH,
int  i 
) const
inline

Definition at line 52 of file FTSCAStationArray.h.

References FTSCAElementsOnStation< T >::fHitsRef, and i.

52 { return (*fHitsRef)[(*this)[i].IHit(IH)]; }
unsigned int i
Definition: P4_F32vec4.h:33
const FTSCAHits * fHitsRef

◆ HitsRef()

template<typename T>
const FTSCAHits* FTSCAElementsOnStation< T >::HitsRef ( ) const
inline

Definition at line 57 of file FTSCAStationArray.h.

References FTSCAElementsOnStation< T >::fHitsRef.

57 { return fHitsRef; }
const FTSCAHits * fHitsRef

◆ IStation()

template<typename T>
const char& FTSCAElementsOnStation< T >::IStation ( ) const
inline

Definition at line 48 of file FTSCAStationArray.h.

References FTSCAElementsOnStation< T >::fISta.

Referenced by FTSCAHits::Clean().

48 { return fISta; }

◆ operator+()

template<typename T>
FTSCAElementsOnStation<T> FTSCAElementsOnStation< T >::operator+ ( const FTSCAElementsOnStation< T > &  a)
inline

Definition at line 68 of file FTSCAStationArray.h.

References FTSCAElementsOnStation< T >::fFirstElementIByHit0, FTSCAElementsOnStation< T >::fHitsRef, FTSCAElementsOnStation< T >::fISta, i, and FTSCAElementsOnStation< T >::SetStation().

69  {
70  if (a.size() <= 0)
71  return *this;
73  const FTSCAElementsOnStation<T> &b = *this;
74  const vector<int> &bf = fFirstElementIByHit0;
75 
76  assert(a.fFirstElementIByHit0.size() == bf.size());
77  r.SetStation(fISta);
78 
79  // find size
80  unsigned int n = 0;
81  for (unsigned int i = 0; i < a.fFirstElementIByHit0.size() - 1; i++) {
82  if (a.fFirstElementIByHit0[i] >= 0)
83  for (int e = a.fFirstElementIByHit0[i]; e < a.fFirstElementIByHit0[i + 1]; e++) {
84  n++;
85  }
86  if (bf[i] >= 0)
87  for (int e = bf[i]; e < bf[i + 1]; e++) {
88  n++;
89  }
90  }
91  const T sample(a[0].N());
92  r.resize((n - 1) / float_v::Size + 1, sample);
93 
94  // copy by hits
95  n = 0;
96  for (unsigned int i = 0; i < a.fFirstElementIByHit0.size() - 1; i++) {
97  r.fFirstElementIByHit0[i] = n;
98  r.fFirstElementIByHit0[i + 1] = n;
99  if (a.fFirstElementIByHit0[i] >= 0)
100  for (int e = a.fFirstElementIByHit0[i]; e < a.fFirstElementIByHit0[i + 1]; e++) {
101  const int nV = e / float_v::Size;
102  const int iV = e % float_v::Size;
103  if (!a[nV].IsValid()[iV])
104  continue;
105 
106  const int nVt = n / float_v::Size;
107  const int iVt = n % float_v::Size;
108  r[nVt].CopyOne(iVt, a[nV], iV);
109  n++;
110  }
111  if (bf[i] >= 0)
112  for (int e = bf[i]; e < bf[i + 1]; e++) {
113  const int nV = e / float_v::Size;
114  const int iV = e % float_v::Size;
115  if (!b[nV].IsValid()[iV])
116  continue;
117 
118  const int nVt = n / float_v::Size;
119  const int iVt = n % float_v::Size;
120  r[nVt].CopyOne(iVt, b[nV], iV);
121  n++;
122  }
123  r.fFirstElementIByHit0[i + 1] = n;
124  }
125 
126  return r;
127  }
unsigned int i
Definition: P4_F32vec4.h:33
vector< int > fFirstElementIByHit0
const FTSCAHits * fHitsRef

◆ operator=()

template<typename T>
FTSCAElementsOnStation<T>& FTSCAElementsOnStation< T >::operator= ( const FTSCAElementsOnStation< T > &  a)
inline

Definition at line 59 of file FTSCAStationArray.h.

References FTSCAElementsOnStation< T >::fFirstElementIByHit0, FTSCAElementsOnStation< T >::fHitsRef, and FTSCAElementsOnStation< T >::fISta.

60  { // do not copy fHitsRef
61  vector<T>::operator=(a);
62  fHitsRef = (a.fHitsRef == 0) ? fHitsRef : a.fHitsRef; // copy only of set
63  fISta = (a.fISta == -1) ? fISta : a.fISta;
65  return *this;
66  }
vector< int > fFirstElementIByHit0
const FTSCAHits * fHitsRef

◆ SetStation()

template<typename T>
void FTSCAElementsOnStation< T >::SetStation ( char  s)
inline

Member Data Documentation

◆ fFirstElementIByHit0

◆ fHitsRef

◆ fISta


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