3 #ifndef AliHLTTPC_KRYPTONCLUSTERFINDER
4 #define AliHLTTPC_KRYPTONCLUSTERFINDER
5 //* This file is property of and copyright by the ALICE HLT Project *
6 //* ALICE Experiment at CERN, All rights reserved. *
7 //* See cxx source for full Copyright notice *
9 /** @file AliHLTTPCKryptonClusterFinder.h
10 @author Kenneth Aamodt kenneth.aamodt@student.uib.no
12 @brief Krypton Cluster Finder for the TPC
15 //#include "AliHLTLogging.h"
16 //#include "AliHLTTPCPad.h"
17 #include "AliHLTTPCClusterFinder.h"
20 #include "TObjArray.h"
22 class AliHLTTPCSpacePointData;
23 class AliHLTTPCDigitReader;
26 * @class AliHLTTPCKryptonClusterFinder
30 class AliHLTTPCKryptonClusterFinder : public AliHLTTPCClusterFinder {
33 /** standard constructor */
34 AliHLTTPCKryptonClusterFinder();
36 virtual ~AliHLTTPCKryptonClusterFinder();
38 /** Rebunches the data, use on real data which has "wrong" bunches due to keeping 0 data */
39 void ReBunch(const UInt_t * bunchData,Int_t bunchSize);
41 /** rads the data insorted */
42 void ReadDataUnsorted(void* ptr,unsigned long size);
44 /** compare one pads combining neighbouring clustercandidates to a cluster */
45 Bool_t ComparePads(AliHLTTPCPad *nextPad,AliHLTTPCClusters* cluster,Int_t nextPadToRead);
47 /** Find clusters on the rows */
48 void FindRowClusters();
50 /** combines the row clusters to a krypton cluster */
51 void FindKryptonClusters();
53 /** checks if there is a candidate on the previous row */
54 void CheckForCandidateOnPreviousRow(AliHLTTPCClusters* tmpCluster);
56 /** set the selection from minrow to maxrow, used to look at a certain interval of rows */
57 void SetSelection(Int_t minRow, Int_t maxRow);
59 /** returns the number of krypton clusters found */
60 AliHLTUInt32_t GetNKryptonClusters(){ return fNKryptonClusters;}
62 /** sets the maximum size of the output buffer */
63 void SetMaxOutputSize(AliHLTUInt32_t size){fMaxOutputSize=size;}
65 vector<AliHLTUInt16_t> fHWAddressVector; //! transient
68 /** copy constructor prohibited */
69 AliHLTTPCKryptonClusterFinder(const AliHLTTPCKryptonClusterFinder&);
70 /** assignment operator prohibited */
71 AliHLTTPCKryptonClusterFinder& operator=(const AliHLTTPCKryptonClusterFinder&);
73 vector<Int_t> fTimebinsInBunch; //! transient
75 vector<Int_t> fIndexOfBunchStart; //! transient
77 Int_t fMaxQOfCluster; //! transient
79 Int_t fSelectionMinRowNumber; //! transient
80 Int_t fSelectionMaxRowNumber; //! transient
82 AliHLTUInt32_t fNKryptonClusters; //! transient
84 AliHLTUInt32_t fMaxOutputSize; //! transient
86 ClassDef(AliHLTTPCKryptonClusterFinder,2) //TPC Krypton cluster finder