]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCKryptonClusterFinder.h
Compilation on Windows/Cygwin
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCKryptonClusterFinder.h
1 // $Id$
2
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                               */
8
9 /** @file   AliHLTTPCKryptonClusterFinder.h
10     @author Kenneth Aamodt kenneth.aamodt@student.uib.no
11     @date   
12     @brief  Krypton Cluster Finder for the TPC
13 */
14
15 // see below for class documentation
16 // or
17 // refer to README to build package
18 // or
19 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
20
21
22 //#include "AliHLTLogging.h"
23 //#include "AliHLTTPCPad.h"
24 #include "AliHLTTPCClusterFinder.h"
25 #include "TString.h"
26 #include "TH1F.h"
27 #include "TObjArray.h"
28
29 class AliHLTTPCSpacePointData;
30 class AliHLTTPCDigitReader;
31
32 class AliHLTTPCKryptonClusterFinder : public AliHLTTPCClusterFinder {
33
34  public:
35   /** standard constructor */
36   AliHLTTPCKryptonClusterFinder();
37   /** destructor */
38   virtual ~AliHLTTPCKryptonClusterFinder();
39
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);
42
43   /** rads the data insorted */
44   void ReadDataUnsorted(void* ptr,unsigned long size);
45
46   /** compare one pads combining neighbouring clustercandidates to a cluster */
47   Bool_t ComparePads(AliHLTTPCPad *nextPad,AliHLTTPCClusters* cluster,Int_t nextPadToRead);
48
49   /** Find clusters on the rows */
50   void FindRowClusters();
51
52   /** combines the row clusters to a krypton cluster */
53   void FindKryptonClusters();
54
55   /** checks if there is a candidate on the previous row */
56   void CheckForCandidateOnPreviousRow(AliHLTTPCClusters* tmpCluster);
57
58   /** initialize the histograms */
59   void InitializeHistograms();
60
61   /** resets the histograms */
62   void ResetHistograms(TString histoName);
63
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);
66
67   /** puts the histograms in the objarray*/
68   void GetHistogramObjectArray(TObjArray& histos);
69
70   /** write histograms to a file, filename must also include the path. Used only for debugging by developers */
71   void WriteHistograms(TString filename);
72
73  private: 
74   /** copy constructor prohibited */
75   AliHLTTPCKryptonClusterFinder(const AliHLTTPCKryptonClusterFinder&);
76   /** assignment operator prohibited */
77   AliHLTTPCKryptonClusterFinder& operator=(const AliHLTTPCKryptonClusterFinder&);
78
79   vector<Int_t> fTimebinsInBunch;                                  //! transient
80
81   vector<Int_t> fIndexOfBunchStart;                                //! transient
82
83   //histograms
84   TH1F * fHKryptonSpectrumFullPatch;                                //! transient
85   TH1F * fHKryptonSpectrumSelection;                                //! transient
86   TH1F * fHNumberOfKryptonClusters;                                 //! transient
87   TH1F * fHNumberOfKryptonClustersSelection;                        //! transient
88   TH1F * fHMaxQofKryptonClusterLast1000;                            //! transient
89   TH1F * fHMaxQofKryptonClusterSelection;                           //! transient
90   
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
97
98   Int_t fSelectionMinRowNumber;                                    //! transient
99   Int_t fSelectionMaxRowNumber;                                    //! transient
100
101   Int_t fMaxQOfCluster;                                            //! transient
102   Int_t fMaxQOfClusterBin;                                         //! transient
103   
104   Int_t fNumberOfKryptonClusters;                                  //! transient
105   Int_t fNumberOfKryptonClustersBin;                               //! transient
106
107   Bool_t fHistogramsInitialized;                                   //! transient                 
108   
109   ClassDef(AliHLTTPCKryptonClusterFinder,1) //Fast cluster finder
110 };
111 #endif