]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - RICH/AliRICHReconstructor.h
MAJOR UPGRADE: 1. all objects are counted from 0 2. new AliRICHRecon 3. calib off...
[u/mrichter/AliRoot.git] / RICH / AliRICHReconstructor.h
index 4d28e88e60eb8f1218d95746269009595767628a..136ae34d312153d968a4470d3127b9fee55d36de 100644 (file)
@@ -5,10 +5,11 @@
 
 #include <AliReconstructor.h>       //base class
 #include "AliRICHTracker.h"         //CreateTracker()
-#include "AliRICHClusterFinder.h"   //Reconstruct()
-
-class AliRawReader;
-class TTree;
+#include <TMatrixF.h>               //UseDig()
+#include <TClonesArray.h>           //UseDig()
+class AliRawReader;                 //Reconstruct() with raw data   
+class AliRICHDigit;                 //Dig2Clu(), UseDig()
+class AliRICHCluster;               //Dig2Clu()
 
 class AliRICHReconstructor: public AliReconstructor 
 {
@@ -16,31 +17,38 @@ public:
            AliRICHReconstructor(): AliReconstructor()              {}//default ctor
   virtual ~AliRICHReconstructor()                                  {}//dtor  
 //framework part  
-  AliTracker*  CreateTracker         (AliRunLoader*                      )const{return new AliRICHTracker;}                 //interface from AliReconstructor
-  void         Reconstruct           (AliRunLoader* pAL                  )const{AliRICHClusterFinder cf(pAL);    cf.Exec();}//from AliReconstruction for digits->clusters
-  void         Reconstruct           (AliRunLoader* pAL,AliRawReader *pRR)const;                                            //from AliReconstruction for raw->clusters
-  using AliReconstructor::Reconstruct;                                                                            //to get rid of virtual hidden warning 
-//private part  
-         void          Dig2Clu   (TClonesArray*pDigList,TClonesArray *pCluList                                     )const;//form clusters out of provided digits list
-         void          FormCluster(AliRICHCluster *pClu,AliRICHDigit *pDig,TClonesArray *pDigList,TMatrixF *pDigMap)const;//form cluster recursive algorithm
-  inline AliRICHDigit *UseDig    (Int_t padX,Int_t padY,TClonesArray *pDigList,TMatrixF *pDigMap                   )const;//use this pad's digit to form a cluster
-protected:
+  AliTracker*  CreateTracker         (AliRunLoader*                      )const{return new AliRICHTracker;}            //from AliReconstructor for clusters->PID
+  void         Reconstruct           (AliRunLoader* pAL                  )const;                                       //from AliReconstruction for digits->clusters
+  void         Reconstruct           (AliRunLoader* pAL,AliRawReader *pRR)const;                                       //from AliReconstruction for raws->clusters
+  virtual void FillESD               (AliRunLoader* pAL,AliESD *pESD)const;                                    //calculate pid for RICH
+  virtual void FillESD(AliRunLoader*, AliRawReader*, AliESD*) const { };
+  virtual void FillESD(AliRawReader*, TTree*, AliESD*) const { };
+  virtual void FillESD(TTree*, TTree*, AliESD*) const { };
+
+  
+   using AliReconstructor::Reconstruct;                                                                                 //to get rid of virtual hidden warning 
+
+  //private part  
+  static        void          Dig2Clu (TClonesArray*pDigLst,TClonesArray *pCluLst,Bool_t isTryUnfold=kTRUE            );//digits list -> clusters list
+  static        void          CluQA   (AliRunLoader* pAL                                                              );//QA for clusters
+  static        void          FormClu (AliRICHCluster *pClu,AliRICHDigit *pDig,TClonesArray *pDigLst,TMatrixF *pDigMap);//cluster formation recursive algorithm
+  static inline AliRICHDigit* UseDig  (Int_t padX,Int_t padY,TClonesArray *pDigList,TMatrixF *pDigMap                 );//use this pad's digit to form a cluster
+
+  protected:
   ClassDef(AliRICHReconstructor, 0)   //class for the RICH reconstruction
 };
 //__________________________________________________________________________________________________
-AliRICHDigit* AliRICHReconstructor::UseDig(Int_t padX,Int_t padY,TClonesArray *pDigList,TMatrixF *pDigMap)const
+AliRICHDigit* AliRICHReconstructor::UseDig(Int_t padX,Int_t padY,TClonesArray *pDigLst,TMatrixF *pDigMap)
 {
 //Digit map contains a matrix if digit numbers.
 //Main operation in forming initial cluster is done here. Requested digit pointer is returned and this digit marked as taken.
 //Arguments: padX,padY - pad number
-//           pDigList  - list of digits for one sector
+//           pDigLst   - list of digits for one sector
 //           pDigMap   - map of those digits
 //  Returns: pointer to digit if not yet used or 0 if used
   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
-  if(iDig!=-1)
-    return (AliRICHDigit*)pDigList->At(iDig);    //digit pointer
-  else      
-    return 0;
+  if(iDig!=-1)    return (AliRICHDigit*)pDigLst->At(iDig);         //digit pointer
+  else            return 0;
 }
 
 #endif