]>
Commit | Line | Data |
---|---|---|
998b831f | 1 | #ifndef AliRICHReconstructor_h |
2 | #define AliRICHReconstructor_h | |
121a60bd | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
0422a446 | 6 | #include <AliReconstructor.h> //base class |
7 | #include "AliRICHTracker.h" //CreateTracker() | |
db910db9 | 8 | #include <TMatrixF.h> //UseDig() |
9 | #include <TClonesArray.h> //UseDig() | |
10 | class AliRawReader; //Reconstruct() with raw data | |
11 | class AliRICHDigit; //Dig2Clu(), UseDig() | |
12 | class AliRICHCluster; //Dig2Clu() | |
121a60bd | 13 | |
998b831f | 14 | class AliRICHReconstructor: public AliReconstructor |
15 | { | |
121a60bd | 16 | public: |
0fe8fa07 | 17 | AliRICHReconstructor(): AliReconstructor() {}//default ctor |
18 | virtual ~AliRICHReconstructor() {}//dtor | |
0422a446 | 19 | //framework part |
db910db9 | 20 | AliTracker* CreateTracker (AliRunLoader* )const{return new AliRICHTracker;} //from AliReconstructor for clusters->PID |
21 | void Reconstruct (AliRunLoader* pAL )const; //from AliReconstruction for digits->clusters | |
22 | void Reconstruct (AliRunLoader* pAL,AliRawReader *pRR)const; //from AliReconstruction for raws->clusters | |
84093f6f | 23 | virtual void FillESD (AliRunLoader* pAL,AliESD *pESD)const; //calculate pid for RICH |
24 | virtual void FillESD(AliRunLoader*, AliRawReader*, AliESD*) const { }; | |
25 | virtual void FillESD(AliRawReader*, TTree*, AliESD*) const { }; | |
26 | virtual void FillESD(TTree*, TTree*, AliESD*) const { }; | |
27 | ||
28 | ||
29 | using AliReconstructor::Reconstruct; //to get rid of virtual hidden warning | |
30 | ||
31 | //private part | |
db910db9 | 32 | static void Dig2Clu (TClonesArray*pDigLst,TClonesArray *pCluLst,Bool_t isTryUnfold=kTRUE );//digits list -> clusters list |
33 | static void CluQA (AliRunLoader* pAL );//QA for clusters | |
34 | static void CheckPR ( );//utility-> run staff for stack | |
35 | static void FormClu (AliRICHCluster *pClu,AliRICHDigit *pDig,TClonesArray *pDigLst,TMatrixF *pDigMap);//cluster formation recursive algorithm | |
36 | static inline AliRICHDigit* UseDig (Int_t padX,Int_t padY,TClonesArray *pDigList,TMatrixF *pDigMap );//use this pad's digit to form a cluster | |
db910db9 | 37 | static void Test (Bool_t isTryUnfold=kTRUE );//test digits->clusters conversion |
2714766e | 38 | static void Test (TClonesArray *pDigLst,Bool_t isTryUnfold=kTRUE );//test digits->clusters conversion |
84093f6f | 39 | |
40 | protected: | |
998b831f | 41 | ClassDef(AliRICHReconstructor, 0) //class for the RICH reconstruction |
121a60bd | 42 | }; |
0422a446 | 43 | //__________________________________________________________________________________________________ |
db910db9 | 44 | AliRICHDigit* AliRICHReconstructor::UseDig(Int_t padX,Int_t padY,TClonesArray *pDigLst,TMatrixF *pDigMap) |
0422a446 | 45 | { |
46 | //Digit map contains a matrix if digit numbers. | |
47 | //Main operation in forming initial cluster is done here. Requested digit pointer is returned and this digit marked as taken. | |
48 | //Arguments: padX,padY - pad number | |
db910db9 | 49 | // pDigLst - list of digits for one sector |
0422a446 | 50 | // pDigMap - map of those digits |
51 | // Returns: pointer to digit if not yet used or 0 if used | |
52 | Int_t iDig=(Int_t)(*pDigMap)(padX,padY);(*pDigMap)(padX,padY)=-1;//take digit number from the map and reset this map cell to -1 | |
db910db9 | 53 | if(iDig!=-1) return (AliRICHDigit*)pDigLst->At(iDig); //digit pointer |
54 | else return 0; | |
0422a446 | 55 | } |
121a60bd | 56 | |
57 | #endif |