FairRoot/PandaRoot
Public Member Functions | Public Attributes | List of all members
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< Toperator+ (const FTSCAElementsOnStation< T > &a)
 

Public Attributes

const FTSCAHitsfHitsRef
 
char fISta
 
vector< int > fFirstElementIByHit0
 

Detailed Description

template<typename T>
class FTSCAElementsOnStation< T >

Definition at line 117 of file FTSCAHits.h.

Constructor & Destructor Documentation

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

Definition at line 28 of file FTSCAStationArray.h.

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

Definition at line 29 of file FTSCAStationArray.h.

vector< int > fFirstElementIByHit0
const FTSCAHits * fHitsRef

Member Function Documentation

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

Definition at line 43 of file FTSCAStationArray.h.

References FTSCAElementsOnStation< T >::fFirstElementIByHit0.

43 { return fFirstElementIByHit0[iH]; }
vector< int > fFirstElementIByHit0
template<typename T>
vector<int>& FTSCAElementsOnStation< T >::FirstElementIByHit0 ( )
inline

Definition at line 44 of file FTSCAStationArray.h.

References FTSCAElementsOnStation< T >::fFirstElementIByHit0.

44 { return fFirstElementIByHit0; }
vector< int > fFirstElementIByHit0
template<typename T>
const FTSCAHit& FTSCAElementsOnStation< T >::GetHit ( int  iV,
int  IH,
int  i 
) const
inline

Definition at line 35 of file FTSCAStationArray.h.

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

Referenced by PndFTSCADisplay::DrawGBNPlets().

35  {
36  return (*fHitsRef)[ (*this)[i].IHit(IH)[iV] ];
37  }
Int_t i
Definition: run_full.C:25
const FTSCAHits * fHitsRef
template<typename T>
const FTSCAHit& FTSCAElementsOnStation< T >::GetHit ( int  IH,
int  i 
) const
inline

Definition at line 39 of file FTSCAStationArray.h.

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

39  {
40  return (*fHitsRef)[ (*this)[i].IHit(IH) ];
41  }
Int_t i
Definition: run_full.C:25
const FTSCAHits * fHitsRef
template<typename T>
const FTSCAHits* FTSCAElementsOnStation< T >::HitsRef ( ) const
inline
template<typename T>
const char& FTSCAElementsOnStation< T >::IStation ( ) const
inline
template<typename T>
FTSCAElementsOnStation<T> FTSCAElementsOnStation< T >::operator+ ( const FTSCAElementsOnStation< T > &  a)
inline

Definition at line 56 of file FTSCAStationArray.h.

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

56  {
57  if (a.size() <= 0) return *this;
59  const FTSCAElementsOnStation<T> &b = *this;
60  const vector<int> &bf = fFirstElementIByHit0;
61 
62  assert( a.fFirstElementIByHit0.size() == bf.size() );
63  r.SetStation(fISta);
64 
65  // find size
66  unsigned int n = 0;
67  for( unsigned int i = 0; i < a.fFirstElementIByHit0.size() - 1; i++ ) {
68  if ( a.fFirstElementIByHit0[i] >= 0 )
69  for( int e = a.fFirstElementIByHit0[i]; e < a.fFirstElementIByHit0[i+1]; e++ ) {
70  n++;
71  }
72  if ( bf[i] >= 0 )
73  for( int e = bf[i]; e < bf[i+1]; e++ ) {
74  n++;
75  }
76  }
77  const T sample( a[0].N() );
78  r.resize( (n-1)/float_v::Size + 1, sample );
79 
80  // copy by hits
81  n = 0;
82  for( unsigned int i = 0; i < a.fFirstElementIByHit0.size()-1; i++ ) {
83  r.fFirstElementIByHit0[i] = n;
84  r.fFirstElementIByHit0[i+1] = n;
85  if ( a.fFirstElementIByHit0[i] >= 0 )
86  for( int e = a.fFirstElementIByHit0[i]; e < a.fFirstElementIByHit0[i+1]; e++ ) {
87  const int nV = e/float_v::Size;
88  const int iV = e%float_v::Size;
89  if ( !a[nV].IsValid()[iV] ) continue;
90 
91  const int nVt = n/float_v::Size;
92  const int iVt = n%float_v::Size;
93  r[nVt].CopyOne( iVt, a[nV], iV );
94  n++;
95  }
96  if ( bf[i] >= 0 )
97  for( int e = bf[i]; e < bf[i+1]; e++ ) {
98  const int nV = e/float_v::Size;
99  const int iV = e%float_v::Size;
100  if ( !b[nV].IsValid()[iV] ) continue;
101 
102  const int nVt = n/float_v::Size;
103  const int iVt = n%float_v::Size;
104  r[nVt].CopyOne( iVt, b[nV], iV );
105  n++;
106  }
107  r.fFirstElementIByHit0[i+1] = n;
108  }
109 
110  return r;
111  }
double r
Definition: RiemannTest.C:14
Int_t i
Definition: run_full.C:25
TTree * b
int n
TTree * T
Definition: anaLmdReco.C:32
vector< int > fFirstElementIByHit0
const FTSCAHits * fHitsRef
template<typename T>
FTSCAElementsOnStation<T>& FTSCAElementsOnStation< T >::operator= ( const FTSCAElementsOnStation< T > &  a)
inline

Definition at line 48 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
template<typename T>
void FTSCAElementsOnStation< T >::SetStation ( char  s)
inline

Member Data Documentation

template<typename T>
vector<int> FTSCAElementsOnStation< T >::fFirstElementIByHit0
template<typename T>
const FTSCAHits* FTSCAElementsOnStation< T >::fHitsRef
template<typename T>
char FTSCAElementsOnStation< T >::fISta

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