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 // see below for class documentation
17 // refer to README to build package
19 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
22 //#include "AliHLTLogging.h"
23 //#include "AliHLTTPCPad.h"
24 #include "AliHLTTPCClusterFinder.h"
27 #include "TObjArray.h"
29 class AliHLTTPCSpacePointData;
30 class AliHLTTPCDigitReader;
32 class AliHLTTPCKryptonClusterFinder : public AliHLTTPCClusterFinder {
35 /** standard constructor */
36 AliHLTTPCKryptonClusterFinder();
38 virtual ~AliHLTTPCKryptonClusterFinder();
40 /** Rebunches the data, use on real data which has "wrong" bunches due to keeping 0 data */
41 void ReBunch(const UInt_t * bunchData,Int_t bunchSize);
43 /** rads the data insorted */
44 void ReadDataUnsorted(void* ptr,unsigned long size);
46 /** compare one pads combining neighbouring clustercandidates to a cluster */
47 Bool_t ComparePads(AliHLTTPCPad *nextPad,AliHLTTPCClusters* cluster,Int_t nextPadToRead);
49 /** Find clusters on the rows */
50 void FindRowClusters();
52 /** combines the row clusters to a krypton cluster */
53 void FindKryptonClusters();
55 /** checks if there is a candidate on the previous row */
56 void CheckForCandidateOnPreviousRow(AliHLTTPCClusters* tmpCluster);
58 /** initialize the histograms */
59 void InitializeHistograms();
61 /** resets the histograms */
62 void ResetHistograms(TString histoName);
64 /*set the selection from minrow to maxrow, used to look at a certain interval of rows */
65 void SetSelection(Int_t minRow, Int_t maxRow);
67 /** puts the histograms in the objarray*/
68 void GetHistogramObjectArray(TObjArray& histos);
70 /** write histograms to a file, filename must also include the path. Used only for debugging by developers */
71 void WriteHistograms(TString filename);
74 /** copy constructor prohibited */
75 AliHLTTPCKryptonClusterFinder(const AliHLTTPCKryptonClusterFinder&);
76 /** assignment operator prohibited */
77 AliHLTTPCKryptonClusterFinder& operator=(const AliHLTTPCKryptonClusterFinder&);
79 vector<Int_t> fTimebinsInBunch; //! transient
81 vector<Int_t> fIndexOfBunchStart; //! transient
84 TH1F * fHKryptonSpectrumFullPatch; //! transient
85 TH1F * fHKryptonSpectrumSelection; //! transient
86 TH1F * fHNumberOfKryptonClusters; //! transient
87 TH1F * fHNumberOfKryptonClustersSelection; //! transient
88 TH1F * fHMaxQofKryptonClusterLast1000; //! transient
89 TH1F * fHMaxQofKryptonClusterSelection; //! transient
91 Int_t fStartBinKryptonSpectrum; //! transient
92 Int_t fEndBinKryptonSpectrum; //! transient
93 Int_t fStartBinMaxQ; //! transient
94 Int_t fEndBinMaxQ; //! transient
95 Int_t fStartBinNumberOfKryptonClusters; //! transient
96 Int_t fEndBinNumberOfKryptonClusters; //! transient
98 Int_t fSelectionMinRowNumber; //! transient
99 Int_t fSelectionMaxRowNumber; //! transient
101 Int_t fMaxQOfCluster; //! transient
102 Int_t fMaxQOfClusterBin; //! transient
104 Int_t fNumberOfKryptonClusters; //! transient
105 Int_t fNumberOfKryptonClustersBin; //! transient
107 Bool_t fHistogramsInitialized; //! transient
109 ClassDef(AliHLTTPCKryptonClusterFinder,1) //Fast cluster finder