4 #ifndef ALIHLTTPCPADARRAY_H
5 #define ALIHLTTPCPADARRAY_H
6 /* This file is property of and copyright by the ALICE HLT Project *
7 * ALICE Experiment at CERN, All rights reserved. *
8 * See cxx source for full Copyright notice */
10 /** @file AliHLTTPCPadArray.h
11 @author Kenneth Aamodt
13 @brief Class containing arrays of TPC Pads.
16 // see below for class documentation
18 // refer to README to build package
20 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
22 #include "AliHLTLogging.h"
23 #include "AliHLTTPCTransform.h"
24 #include "AliHLTTPCClusters.h"
27 typedef Int_t AliHLTTPCSignal_t;
28 class AliHLTTPCDigitReader;
32 * @class AliHLTTPCPadArray
36 class AliHLTTPCPadArray : public AliHLTLogging {
40 /** standard constructor */
45 * @param patch Patch number, either use this constructor or
46 * use the default constructor and the SetPatch method
49 AliHLTTPCPadArray(Int_t patch);
51 /** standard destructor */
52 virtual ~AliHLTTPCPadArray();
55 * Initialize the pad vector for the patch set.
57 Int_t InitializeVector();
60 * Deinitialize the pad vector for the patch set.
62 Int_t DeInitializeVector();
65 * Loop over all pads setting their data array to -1.
70 * Set the patch number.
72 void SetPatch(Int_t patch);
75 * Set the digit reader.
77 void SetDigitReader(AliHLTTPCDigitReader* digitReader);
80 * Reads the data, and set it in the Pad objects.
85 * Retuns number of pads in this row.
87 Int_t GetNumberOfPads(Int_t row) const {return fNumberOfPadsInRow[row];}
90 * Loop over all pads, checking for clustercandidates.
92 void FindClusterCandidates();
96 * Loop over all pads looking for clusters, if cluster candidates on two neighbouring
97 * pads have a mean time difference of <match it is said to be a cluster.
100 void FindClusters(Int_t match);
103 * Print the values of the cluster, used for debugging purposes.
105 void PrintClusters();
107 typedef vector<AliHLTTPCPad*> AliHLTTPCPadVector;
109 vector<AliHLTTPCPadVector> fRowPadVector; //! transient
111 vector<AliHLTTPCClusters> fClusters; //! transient
114 /** copy constructor prohibited */
115 AliHLTTPCPadArray(const AliHLTTPCPadArray&);
116 /** assignment operator prohibited */
117 AliHLTTPCPadArray& operator=(const AliHLTTPCPadArray&);
119 /** The patch number */
120 Int_t fPatch; //! transient
122 Int_t fFirstRow; //! transient
124 Int_t fLastRow; //! transient
126 //TODO: I suggest making the following UInt_t if it is never supposed to be negative.
127 Int_t fThreshold; //! transient
129 Int_t* fNumberOfPadsInRow; //! transient
131 Int_t fNumberOfRows; //! transient
133 AliHLTTPCDigitReader* fDigitReader; //! transient
135 ClassDef(AliHLTTPCPadArray, 0);
137 #endif // ALIHLTTPCPADARRAY_H