FairRoot/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 
10 #ifndef FTSCATES_H
11 #define FTSCATES_H
12 
13 struct TES { // Type for an Element on Station
14  TES(): s(-1), e(-1){}
15  TES( char is, unsigned int ie ): s(is), e(ie){}
16  TES( unsigned int ie, char is ): s(is), e(ie){} // to prevent confusion
17 
18  operator unsigned int() { return e; }
19 
20  friend bool operator!=( const TES& a, const TES& b ) {
21  return (a.s != b.s) || (a.e != b.e);
22  }
23 
24  char s; // index of station
25  unsigned int e; // index of element
26 };
27 
28 struct TESV { // Type for an Element on Station
29  TESV(): s(-1), e(-1){}
30  TESV( const TES& i ): s(i.s), e(i.e){}
31  TESV( int_v is, uint_v ie ): s(is), e(ie){}
32  TESV( uint_v ie, int_v is ): s(is), e(ie){} // to prevent confusion
33 
34  operator uint_v() const { return e; }
35  TES operator[](int i) const { return TES(s[i],e[i]); }
36  float_m IsValid() const { return static_cast<float_m>(s >= Vc::Zero); }
37 
38  friend float_m operator==( const TESV& a, const TES& b ) {
39  return (a.s == static_cast<unsigned int>(b.s)) & (a.e == b.e);
40  }
41 
42  int_v s; // index of station
43  uint_v e; // index of element
44 };
45 
46 
47 
48 #endif
49 
int_v s
Definition: FTSCATES.h:42
Int_t i
Definition: run_full.C:25
TTree * b
TESV(uint_v ie, int_v is)
Definition: FTSCATES.h:32
TES()
Definition: FTSCATES.h:14
Definition: FTSCATES.h:28
static const fvec Zero
TESV(int_v is, uint_v ie)
Definition: FTSCATES.h:31
TES(char is, unsigned int ie)
Definition: FTSCATES.h:15
TES(unsigned int ie, char is)
Definition: FTSCATES.h:16
Int_t a
Definition: anaLmdDigi.C:126
TES operator[](int i) const
Definition: FTSCATES.h:35
float_m IsValid() const
Definition: FTSCATES.h:36
static int is
Definition: ranlxd.cxx:374
TESV(const TES &i)
Definition: FTSCATES.h:30
uint_v e
Definition: FTSCATES.h:43
char s
Definition: FTSCATES.h:24
friend float_m operator==(const TESV &a, const TES &b)
Definition: FTSCATES.h:38
unsigned int e
Definition: FTSCATES.h:25
friend bool operator!=(const TES &a, const TES &b)
Definition: FTSCATES.h:20
Definition: FTSCATES.h:13
TESV()
Definition: FTSCATES.h:29