PandaRoot
FTSCATES.h
Go to the documentation of this file.
1 //-*- Mode: C++ -*-
2 // *****************************************************************************
3 // *
4 // @Autors: I.Kulakov; M.Pugach; M.Zyzak; I.Kisel *
5 // @e-mail: I.Kulakov@gsi.de; M.Pugach@gsi.de; M.Zyzak@gsi.de; I.Kisel@compeng.uni-frankfurt.de *
6 // *
7 // *****************************************************************************
8 
9 #ifndef FTSCATES_H
10 #define FTSCATES_H
11 
12 struct TES { // Type for an Element on Station
13  TES() : s(-1), e(-1) {}
14  TES(char is, unsigned int ie) : s(is), e(ie) {}
15  TES(unsigned int ie, char is) : s(is), e(ie) {} // to prevent confusion
16 
17  operator unsigned int() { return e; }
18 
19  friend bool operator!=(const TES &a, const TES &b) { return (a.s != b.s) || (a.e != b.e); }
20 
21  char s; // index of station
22  unsigned int e; // index of element
23 };
24 
25 struct TESV { // Type for an Element on Station
26  TESV() : s(-1), e(-1) {}
27  TESV(const TES &i) : s(i.s), e(i.e) {}
28  TESV(int_v is, uint_v ie) : s(is), e(ie) {}
29  TESV(uint_v ie, int_v is) : s(is), e(ie) {} // to prevent confusion
30 
31  operator uint_v() const { return e; }
32  TES operator[](int i) const { return TES(s[i], e[i]); }
33  float_m IsValid() const { return static_cast<float_m>(s >= Vc::Zero); }
34 
35  friend float_m operator==(const TESV &a, const TES &b) { return (a.s == static_cast<unsigned int>(b.s)) & (a.e == b.e); }
36 
37  int_v s; // index of station
38  uint_v e; // index of element
39 };
40 
41 #endif
int_v s
Definition: FTSCATES.h:37
TESV(uint_v ie, int_v is)
Definition: FTSCATES.h:29
TES()
Definition: FTSCATES.h:13
Definition: FTSCATES.h:25
unsigned int i
Definition: P4_F32vec4.h:21
TESV(int_v is, uint_v ie)
Definition: FTSCATES.h:28
TES(char is, unsigned int ie)
Definition: FTSCATES.h:14
TES(unsigned int ie, char is)
Definition: FTSCATES.h:15
TES operator[](int i) const
Definition: FTSCATES.h:32
TESV(const TES &i)
Definition: FTSCATES.h:27
uint_v e
Definition: FTSCATES.h:38
char s
Definition: FTSCATES.h:21
friend float_m operator==(const TESV &a, const TES &b)
Definition: FTSCATES.h:35
unsigned int e
Definition: FTSCATES.h:22
friend bool operator!=(const TES &a, const TES &b)
Definition: FTSCATES.h:19
Definition: FTSCATES.h:12
float_m IsValid() const
Definition: FTSCATES.h:33
TESV()
Definition: FTSCATES.h:26