When Pt is bad defined (ex. no field), the multiple scattering effect is calculated...
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCKryptonClusterFinder.h
CommitLineData
187229ab 1// $Id$
2
3#ifndef AliHLTTPC_KRYPTONCLUSTERFINDER
4#define AliHLTTPC_KRYPTONCLUSTERFINDER
297174de 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 *
187229ab 8
9/** @file AliHLTTPCKryptonClusterFinder.h
98034d0d 10 @author Kenneth Aamodt kenneth.aamodt@student.uib.no
187229ab 11 @date
98034d0d 12 @brief Krypton Cluster Finder for the TPC
187229ab 13*/
14
98034d0d 15//#include "AliHLTLogging.h"
16//#include "AliHLTTPCPad.h"
17#include "AliHLTTPCClusterFinder.h"
b7625c4d 18#include "TString.h"
19#include "TH1F.h"
20#include "TObjArray.h"
21
187229ab 22class AliHLTTPCSpacePointData;
23class AliHLTTPCDigitReader;
24
297174de 25/**
26 * @class AliHLTTPCKryptonClusterFinder
27 *
28 * @ingroup alihlt_tpc
29 */
98034d0d 30class AliHLTTPCKryptonClusterFinder : public AliHLTTPCClusterFinder {
187229ab 31
32 public:
187229ab 33 /** standard constructor */
34 AliHLTTPCKryptonClusterFinder();
35 /** destructor */
b7625c4d 36 virtual ~AliHLTTPCKryptonClusterFinder();
187229ab 37
b7625c4d 38 /** Rebunches the data, use on real data which has "wrong" bunches due to keeping 0 data */
98034d0d 39 void ReBunch(const UInt_t * bunchData,Int_t bunchSize);
187229ab 40
b7625c4d 41 /** rads the data insorted */
98034d0d 42 void ReadDataUnsorted(void* ptr,unsigned long size);
187229ab 43
b7625c4d 44 /** compare one pads combining neighbouring clustercandidates to a cluster */
45 Bool_t ComparePads(AliHLTTPCPad *nextPad,AliHLTTPCClusters* cluster,Int_t nextPadToRead);
46
47 /** Find clusters on the rows */
98034d0d 48 void FindRowClusters();
187229ab 49
b7625c4d 50 /** combines the row clusters to a krypton cluster */
187229ab 51 void FindKryptonClusters();
98034d0d 52
b7625c4d 53 /** checks if there is a candidate on the previous row */
54 void CheckForCandidateOnPreviousRow(AliHLTTPCClusters* tmpCluster);
55
0efebbac 56 /** set the selection from minrow to maxrow, used to look at a certain interval of rows */
b7625c4d 57 void SetSelection(Int_t minRow, Int_t maxRow);
58
0efebbac 59 /** returns the number of krypton clusters found */
60 AliHLTUInt32_t GetNKryptonClusters(){ return fNKryptonClusters;}
98034d0d 61
0efebbac 62 /** sets the maximum size of the output buffer */
63 void SetMaxOutputSize(AliHLTUInt32_t size){fMaxOutputSize=size;}
64
65 vector<AliHLTUInt16_t> fHWAddressVector; //! transient
98034d0d 66
187229ab 67 private:
68 /** copy constructor prohibited */
69 AliHLTTPCKryptonClusterFinder(const AliHLTTPCKryptonClusterFinder&);
70 /** assignment operator prohibited */
71 AliHLTTPCKryptonClusterFinder& operator=(const AliHLTTPCKryptonClusterFinder&);
72
187229ab 73 vector<Int_t> fTimebinsInBunch; //! transient
74
75 vector<Int_t> fIndexOfBunchStart; //! transient
b7625c4d 76
0efebbac 77 Int_t fMaxQOfCluster; //! transient
78
b7625c4d 79 Int_t fSelectionMinRowNumber; //! transient
80 Int_t fSelectionMaxRowNumber; //! transient
81
0efebbac 82 AliHLTUInt32_t fNKryptonClusters; //! transient
b7625c4d 83
0efebbac 84 AliHLTUInt32_t fMaxOutputSize; //! transient
b7625c4d 85
0efebbac 86 ClassDef(AliHLTTPCKryptonClusterFinder,2) //TPC Krypton cluster finder
187229ab 87};
88#endif