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 124 of file FTSCAHits.h.

Constructor & Destructor Documentation

◆ FTSCAElementsOnStation() [1/2]

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

Definition at line 27 of file FTSCAStationArray.h.

27 : 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 28 of file FTSCAStationArray.h.

28 : 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 42 of file FTSCAStationArray.h.

References FTSCAElementsOnStation< T >::fFirstElementIByHit0.

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

◆ FirstElementIByHit0() [2/2]

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

Definition at line 43 of file FTSCAStationArray.h.

References FTSCAElementsOnStation< T >::fFirstElementIByHit0.

43 { 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 38 of file FTSCAStationArray.h.

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

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

◆ GetHit() [2/2]

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

Definition at line 40 of file FTSCAStationArray.h.

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

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

◆ HitsRef()

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

Definition at line 45 of file FTSCAStationArray.h.

References FTSCAElementsOnStation< T >::fHitsRef.

45 { return fHitsRef; }
const FTSCAHits * fHitsRef

◆ IStation()

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

Definition at line 36 of file FTSCAStationArray.h.

References FTSCAElementsOnStation< T >::fISta.

Referenced by FTSCAHits::Clean().

36 { return fISta; }

◆ operator+()

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

Definition at line 56 of file FTSCAStationArray.h.

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

57  {
58  if (a.size() <= 0)
59  return *this;
61  const FTSCAElementsOnStation<T> &b = *this;
62  const vector<int> &bf = fFirstElementIByHit0;
63 
64  assert(a.fFirstElementIByHit0.size() == bf.size());
65  r.SetStation(fISta);
66 
67  // find size
68  unsigned int n = 0;
69  for (unsigned int i = 0; i < a.fFirstElementIByHit0.size() - 1; i++) {
70  if (a.fFirstElementIByHit0[i] >= 0)
71  for (int e = a.fFirstElementIByHit0[i]; e < a.fFirstElementIByHit0[i + 1]; e++) {
72  n++;
73  }
74  if (bf[i] >= 0)
75  for (int e = bf[i]; e < bf[i + 1]; e++) {
76  n++;
77  }
78  }
79  const T sample(a[0].N());
80  r.resize((n - 1) / float_v::Size + 1, sample);
81 
82  // copy by hits
83  n = 0;
84  for (unsigned int i = 0; i < a.fFirstElementIByHit0.size() - 1; i++) {
85  r.fFirstElementIByHit0[i] = n;
86  r.fFirstElementIByHit0[i + 1] = n;
87  if (a.fFirstElementIByHit0[i] >= 0)
88  for (int e = a.fFirstElementIByHit0[i]; e < a.fFirstElementIByHit0[i + 1]; e++) {
89  const int nV = e / float_v::Size;
90  const int iV = e % float_v::Size;
91  if (!a[nV].IsValid()[iV])
92  continue;
93 
94  const int nVt = n / float_v::Size;
95  const int iVt = n % float_v::Size;
96  r[nVt].CopyOne(iVt, a[nV], iV);
97  n++;
98  }
99  if (bf[i] >= 0)
100  for (int e = bf[i]; e < bf[i + 1]; e++) {
101  const int nV = e / float_v::Size;
102  const int iV = e % float_v::Size;
103  if (!b[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, b[nV], iV);
109  n++;
110  }
111  r.fFirstElementIByHit0[i + 1] = n;
112  }
113 
114  return r;
115  }
unsigned int i
Definition: P4_F32vec4.h:21
vector< int > fFirstElementIByHit0
const FTSCAHits * fHitsRef

◆ operator=()

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

Definition at line 47 of file FTSCAStationArray.h.

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

48  { // do not copy fHitsRef
49  vector<T>::operator=(a);
50  fHitsRef = (a.fHitsRef == 0) ? fHitsRef : a.fHitsRef; // copy only of set
51  fISta = (a.fISta == -1) ? fISta : a.fISta;
53  return *this;
54  }
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: