#define ALIL3_HOUGHTRANSFORMER
#include "AliL3RootTypes.h"
-
-struct AliL3Digits
-{
- UShort_t fCharge;
- UChar_t fPad;
- UShort_t fTime;
- Int_t fIndex;
- AliL3Digits *fNextVolumePixel;
- //AliL3Digits *nextPhiRowPixel;
- AliL3Digits *nextRowPixel;
-};
-
-struct AliL3HoughContainer
-{
- void *first;
- void *last;
-};
-
-
+#include "AliL3HoughBaseTransformer.h"
class AliL3Histogram;
-class AliL3Transform;
-class AliL3HoughEvaluate;
-class AliL3TrackArray;
-class AliL3DigitRowData;
-class AliL3HoughTransformer : public TObject {
+class AliL3HoughTransformer : public AliL3HoughBaseTransformer {
private:
-
- friend class AliL3HoughEval;
- AliL3Transform *fTransform; //!
-
- Int_t fNPhiSegments; //Number of patches in phi.
- Float_t fEtaMin;
- Float_t fEtaMax;
- Int_t fNumEtaSegments;
- Int_t fNumOfPadRows;
- Int_t fNRowsInPatch;
- Int_t fBinTableBounds;
+ AliL3Histogram **fParamSpace; //!
+#ifdef do_mc
+ TrackIndex **fTrackID; //!
+#endif
+ Bool_t fDoMC;
- UInt_t fNDigitRowData; //!
- AliL3DigitRowData *fDigitRowData; //!
-
- AliL3HoughContainer *fRowContainer; //!
- AliL3HoughContainer *fPhiRowContainer; //!
- AliL3HoughContainer *fVolume; //!
-
- Int_t fContainerBounds;
- Int_t fNDigits;
- Int_t **fBinTable; //!
- Int_t *fEtaIndex; //!
- Char_t **fTrackTable; //!
- AliL3Histogram *fHistoPt;
-
- Int_t fSlice;
- Int_t fPatch;
+ void DeleteHistograms();
public:
AliL3HoughTransformer();
- AliL3HoughTransformer(Int_t slice,Int_t patch,Float_t *etarange);
- AliL3HoughTransformer(Int_t slice,Int_t patch,Double_t *etarange=0,Int_t n_eta_segments=90);
+ AliL3HoughTransformer(Int_t slice,Int_t patch,Int_t n_eta_segments);
virtual ~AliL3HoughTransformer();
-
- void InitTables();
- void TransformTables(AliL3Histogram **histos,AliL3Histogram **images=0);
- void SetInputData(UInt_t ndigits,AliL3DigitRowData *ptr);
- void WriteTables();
- void SetHistogram(AliL3Histogram *hist) {fHistoPt = hist;}
- Double_t CpuTime();
- Int_t GetNumEtaSegments() {return fNumEtaSegments;}
- /*
- void Transform2Circle(TH2F *hist,Int_t eta_index);
- void Transform2Circle(TH2F **histos,Int_t n_eta_segments,UInt_t ndigits,AliL3DigitRowData *ptr);
- void Transform2Line(TH2F *hist,Int_t ref_row,Int_t *rowrange,Double_t *phirange,TH2F *raw=0);
- void TransformLines2Circle(TH2F *hist,AliL3TrackArray *tracks);
- void GetPixels(Char_t *rootfile,TH2F *hist=0);
- void InitTemplates(TH2F *hist);
- */
- ClassDef(AliL3HoughTransformer,1)
+
+ void CreateHistograms(Int_t nxbin,Double_t ptmin,Int_t nybin,Double_t phimin,Double_t phimax);
+ void CreateHistograms(Int_t nxbin,Double_t xmin,Double_t xmax,
+ Int_t nybin,Double_t ymin,Double_t ymax);
+ void Reset();
+ void TransformCircle();
+ void TransformCircleC(Int_t row_range);
+ void TransformLine();
+
+ Int_t GetEtaIndex(Double_t eta);
+ AliL3Histogram *GetHistogram(Int_t eta_index);
+ Double_t GetEta(Int_t eta_index,Int_t slice);
+ Int_t GetTrackID(Int_t eta_index,Double_t kappa,Double_t psi);
+
+ //void Init(Int_t slice=0,Int_t patch=0,Int_t n_eta_segments=100);
+
+ ClassDef(AliL3HoughTransformer,1) //Normal Hough transformation class
};
#endif
+
+
+
+