StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StEmcTriggerDetector.h
1 
5 /***************************************************************************
6  *
7  * $Id: StEmcTriggerDetector.h,v 2.5 2007/07/11 23:06:45 perev Exp $
8  *
9  * Author: Alex Suaide, Feb 2002
10  ***************************************************************************
11  *
12  * Description:
13  *
14  ***************************************************************************
15  *
16  * $Log: StEmcTriggerDetector.h,v $
17  * Revision 2.5 2007/07/11 23:06:45 perev
18  * Cleanup+fix StXXXTriggerDetector
19  *
20  * Revision 2.4 2004/08/03 17:22:16 ullrich
21  * Major update by Akio and Marco.
22  *
23  * Revision 2.3 2004/02/11 01:42:09 ullrich
24  * Added new constructor to load data from StTriggerData.
25  *
26  * Revision 2.2 2002/02/22 22:56:47 jeromel
27  * Doxygen basic documentation in all header files. None of this is required
28  * for QM production.
29  *
30  * Revision 2.1 2002/02/20 03:11:46 ullrich
31  * Initial Revision.
32  *
33  **************************************************************************/
34 #ifndef StEmcTriggerDetector_hh
35 #define StEmcTriggerDetector_hh
36 #include "StObject.h"
37 #include "StEnumerations.h"
38 
39 class dst_TrgDet_st;
40 class StTriggerData;
41 
43 public:
45  StEmcTriggerDetector(const dst_TrgDet_st&);
47  // StEmcTriggerDetector(const StEmcTriggerDetector&); use default
48  // StEmcTriggerDetector& operator=(const StEmcTriggerDetector&); use default
50 
51  int numberOfTowers() const;
52 
53  int highTower(unsigned int) const;
54  int patch(unsigned int) const;
55  int highTowerEndcap(unsigned int) const;
56  int patchEndcap(unsigned int) const;
57  unsigned short bemcLayer1(int idx) const;
58  unsigned short eemcLayer1(int idx) const;
59  unsigned short emcLayer2(int idx) const;
60 
61  void setHighTower(unsigned int, int);
62  void setPatch(unsigned int, int);
63  void setHighTowerEndcap(unsigned int, int);
64  void setPatchEndcap(unsigned int, int);
65 
66 protected:
67  enum {mNPatch = 300, mENPatch = 90, mNBemcLayer1 = 48,
68  mNEemcLayer1 = 16, mNEmcLayer2 = 8};
69 
70 private:
71  // Layer0 DSM input (from detector)
72  char mBeg[1];
73  Char_t mHighTower[mNPatch]; // High tower info from trigger patches
74  Char_t mPatch[mNPatch]; // Trigger patch sums
75 
76  Char_t mEHighTower[mENPatch]; // Endcap high tower per patch
77  Char_t mEPatch[mENPatch]; // Endcap trigger patch sums
78 
79  // Higher DSM layer inputs (mainly for experts/debugging)
80  unsigned short mBemcLayer1[mNBemcLayer1]; // Barrel layer 1 input
81  unsigned short mEemcLayer1[mNEemcLayer1]; // Endcap layer 1 input
82  unsigned short mEmcLayer2[mNEmcLayer2]; // Combined EMC layer 2 input
83  char mEnd[1];
84 
85  ClassDef(StEmcTriggerDetector,3)
86 };
87 #endif