StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StSvtHybridData.hh
1 /***************************************************************************
2  *
3  * $Id: StSvtHybridData.hh,v 1.5 2005/07/23 03:37:33 perev Exp $
4  *
5  * Author: Marcelo Munhoz
6  ***************************************************************************
7  *
8  * Description: SVT Hybrid Data BASE class
9  *
10  ***************************************************************************
11  *
12  * $Log: StSvtHybridData.hh,v $
13  * Revision 1.5 2005/07/23 03:37:33 perev
14  * IdTruth + Cleanup
15  *
16  * Revision 1.4 2001/10/24 16:48:50 munhoz
17  * adding capability to retrieve t0 and first SCA
18  *
19  * Revision 1.3 2001/04/30 22:20:42 caines
20  * Add Anode to setList fn so works with ZSP data
21  *
22  * Revision 1.2 2000/11/30 20:39:12 caines
23  * Changed to allow us of database
24  *
25  * Revision 1.1.1.1 2000/03/10 14:26:21 munhoz
26  * SVT Class Library
27  *
28  **************************************************************************/
29 
30 #ifndef STSVTHYBRIDDATA_HH
31 #define STSVTHYBRIDDATA_HH
32 #include <vector>
33 
34 #include "StSvtHybridObject.hh"
35 #include "StSequence.hh"
36 #include "StMCTruth.h"
37 
38 class StSvtSeq :public std::vector<StSequence>
39 {
40 public:
41  StSvtSeq(){mAnode=0;}
42 
43 public:
44 int mAnode;
45 std::vector<StMCTruth> mTruth;
46 };
47 typedef std::vector<StSvtSeq> StSvtSeqV;
48 
49 class StSequence;
50 
52 {
53 public:
55  StSvtHybridData(int barrel, int ladder, int wafer, int hybrid);
56  virtual ~StSvtHybridData();
57 
59  StSvtHybridData& operator = (const StSvtHybridData&);
60 
61  int getAnodeList(int*& list); // Returns the number of anodes that have at least one sequence. The list of anodes that have sequences is passed through reference to the argument of this method
62  int getSequences(int anodeID, int& nSequences, StSequence*& sequence); // Pass through reference the sequences of a particular anode
63  int getListSequences(int listID, int& nSequence,StSequence*& sequence); // Pass through reference the sequences of a particular list item of the anode list (used mainly in the cluster finder)
64  int getListTruth (int listID, int& nSequence,StMCTruth*& sequence); //
65 
66  unsigned char getSCAZero(){return mSCAZero;}
67  unsigned char getTimeZero(){return mTimeZero;}
68 
69  void setSCAZero(unsigned char sca){mSCAZero = sca;}
70  void setTimeZero(unsigned char t0){mTimeZero = t0;}
71 
72  int setListSequences(int listID, int Anode, int& nSequence, StSequence* tempSeq); // resets the sequence list
73  int setListTruth (int listID, int Anode, int& nSequence, StMCTruth* tempTru);
74  int setAnodeList(); // Allows to reset the anodelist
75 
76 protected:
77 
78  unsigned char mSCAZero; // Number of SCA capacitor for time bucket zero
79  unsigned char mTimeZero; // Time zero given by each read out box (fiber header)
80 
81 // int nAnodes; // Number of anodes with one or more sequences
82 // int* anodeList; //! List of anodes with one or more sequences
83 // int* nSeq; //! Number of sequences for each anode
84 // StSequence** seq; //! List of sequences for each anode
85 std::vector<int> anodeList;
86 std::vector<int> lookUp;
87 StSvtSeqV seq;
88  ClassDef(StSvtHybridData,1)
89 };
90 
91 #endif