]>
Commit | Line | Data |
---|---|---|
1 | #ifndef AliRICHReconstructor_h | |
2 | #define AliRICHReconstructor_h | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | #include <AliReconstructor.h> //base class | |
7 | #include "AliRICHTracker.h" //CreateTracker() | |
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() | |
13 | ||
14 | class AliRICHReconstructor: public AliReconstructor | |
15 | { | |
16 | public: | |
17 | AliRICHReconstructor(): AliReconstructor() {}//default ctor | |
18 | virtual ~AliRICHReconstructor() {}//dtor | |
19 | //framework part | |
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 | |
23 | using AliReconstructor::Reconstruct; //to get rid of virtual hidden warning | |
24 | //private part | |
25 | static void Dig2Clu (TClonesArray*pDigLst,TClonesArray *pCluLst,Bool_t isTryUnfold=kTRUE );//digits list -> clusters list | |
26 | static void CluQA (AliRunLoader* pAL );//QA for clusters | |
27 | static void CheckPR ( );//utility-> run staff for stack | |
28 | static void FormClu (AliRICHCluster *pClu,AliRICHDigit *pDig,TClonesArray *pDigLst,TMatrixF *pDigMap);//cluster formation recursive algorithm | |
29 | static inline AliRICHDigit* UseDig (Int_t padX,Int_t padY,TClonesArray *pDigList,TMatrixF *pDigMap );//use this pad's digit to form a cluster | |
30 | static void RichAna (Int_t iNevMin=0,Int_t iNevMax=99999,Bool_t isPatRec=kFALSE );//utility-> create ntuples for analysis | |
31 | static void Test (Bool_t isTryUnfold=kTRUE );//test digits->clusters conversion | |
32 | static void Test (TClonesArray *pDigLst,Bool_t isTryUnfold=kTRUE );//test digits->clusters conversion | |
33 | protected: | |
34 | ClassDef(AliRICHReconstructor, 0) //class for the RICH reconstruction | |
35 | }; | |
36 | //__________________________________________________________________________________________________ | |
37 | AliRICHDigit* AliRICHReconstructor::UseDig(Int_t padX,Int_t padY,TClonesArray *pDigLst,TMatrixF *pDigMap) | |
38 | { | |
39 | //Digit map contains a matrix if digit numbers. | |
40 | //Main operation in forming initial cluster is done here. Requested digit pointer is returned and this digit marked as taken. | |
41 | //Arguments: padX,padY - pad number | |
42 | // pDigLst - list of digits for one sector | |
43 | // pDigMap - map of those digits | |
44 | // Returns: pointer to digit if not yet used or 0 if used | |
45 | 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 | |
46 | if(iDig!=-1) return (AliRICHDigit*)pDigLst->At(iDig); //digit pointer | |
47 | else return 0; | |
48 | } | |
49 | ||
50 | #endif |