Line data Source code
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 0 : 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 12 : ClassDef(AliMFTClusterFinder,1)
74 :
75 : };
76 :
77 : //====================================================================================================================================================
78 :
79 : #endif
|