Trigger inputs for AOD MC
[u/mrichter/AliRoot.git] / MFT / AliMFTClusterFinder.h
1 /* Copyright(c) 2004-2006, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice     */
3
4 //====================================================================================================================================================
5 //
6 //      Class for finding and building the clusters of the ALICE Muon Forward Tracker
7 //
8 //      Contact author: antonio.uras@cern.ch
9 //
10 //====================================================================================================================================================
11
12 #ifndef AliMFTClusterFinder_H
13 #define AliMFTClusterFinder_H
14
15 #include "AliLog.h"
16 #include "TObjArray.h"
17 #include "TClonesArray.h"
18 #include "AliMFTDigit.h"
19 #include "AliMFTCluster.h"
20 #include "AliMFTSegmentation.h"
21 #include "TTree.h"
22 #include "TMath.h"
23 #include "AliMFTConstants.h"
24 #include "TStopwatch.h"
25
26 //====================================================================================================================================================
27
28 class AliMFTClusterFinder : public TObject {
29
30 public:
31
32   AliMFTClusterFinder();
33   ~AliMFTClusterFinder();
34   virtual void Clear(const Option_t* /*opt*/);
35   void Init(const Char_t *nameGeomFile);
36   
37   void MakeClusterBranch(TTree *treeCluster);
38   void SetClusterTreeAddress(TTree *treeCluster);
39   void CreateClusters();
40
41   void ApplyMisalignment(Bool_t applyMisalignment) { fApplyMisalignment = applyMisalignment; }
42
43   void DigitsToClusters(const TObjArray *pDigitList);
44
45   void StartEvent();
46
47 private:
48  
49   static const Int_t fNMaxDigitsPerCluster = AliMFTConstants::fNMaxDigitsPerCluster;
50   static const Int_t fNMaxPlanes = AliMFTConstants::fNMaxPlanes;
51   static const Int_t fNMaxDetElemPerPlane = AliMFTConstants::fNMaxDetElemPerPlane;
52   static const Double_t fCutForAvailableDigits;
53   static const Double_t fCutForAttachingDigits;
54   static const Double_t fMisalignmentMagnitude;
55
56   TClonesArray *fClustersPerPlane[fNMaxPlanes];    //! [fNPlanes] list of clusters [per plane]
57
58   TClonesArray *fDigitsInCluster;                  //!
59   AliMFTDigit *fCurrentDigit;                      //!
60   AliMFTCluster *fCurrentCluster;                  //!
61
62   AliMFTSegmentation *fSegmentation;               //!
63  
64   Int_t fNPlanes;
65
66   Bool_t fApplyMisalignment;                       // For MC, waiting for OCDB...
67
68   TStopwatch *fStopWatch;                          //!
69
70   AliMFTClusterFinder(const AliMFTClusterFinder &source);
71   AliMFTClusterFinder& operator=(const AliMFTClusterFinder &source);
72
73   ClassDef(AliMFTClusterFinder,1) 
74
75 };
76
77 //====================================================================================================================================================
78
79 #endif