Added AliEMCALReconstructioner
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALReconstructioner.h
1 #ifndef ALIEMCALRECONSTRUCTIONER_H
2 #define ALIEMCALRECONSTRUCTIONER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //_________________________________________________________________________
9 //  Wrapping class for reconstruction
10 //*--
11 //*-- Author: Yves Schutz (SUBATECH) 
12 //*--         Dmitri Peressounko (SUBATECH & Kurchatov Institute)
13
14   //#include <stdlib.h>
15
16 // --- ROOT system ---
17
18 #include "TTask.h"
19 class AliEMCALDigitizer ;
20 class AliEMCALClusterizer ;
21 class AliEMCALPID ;
22 class AliEMCALSDigitizer ;
23 class AliESD ;
24
25 // --- Standard library ---
26
27 // --- AliRoot header files ---
28
29 class AliEMCALReconstructioner : public TTask {
30
31 public:
32
33   AliEMCALReconstructioner() ; //ctor            
34   AliEMCALReconstructioner(const char * headreFile, const char * branchName = "Default");
35   AliEMCALReconstructioner(const AliEMCALReconstructioner & rec) : TTask(rec) {
36     // cpy ctor: 
37     // requested by the Coding Convention
38     Fatal("cpy ctor", "not implemented") ;
39   }
40    
41   virtual ~AliEMCALReconstructioner() ;
42
43   virtual void Exec(Option_t *) ;
44   void Clusters2Tracks(Int_t ievent, AliESD *event);
45
46   AliEMCALDigitizer         * GetDigitizer()  const { return fDigitizer   ; }
47   AliEMCALClusterizer       * GetClusterizer()const { return fClusterizer ; }
48   AliEMCALPID               * GetPID()        const { return fPID;          }
49   AliEMCALSDigitizer        * GetSDigitizer() const { return fSDigitizer  ; }
50
51   void Print()const ;
52   
53   //  void SetBranchTitle(const char* branch,const char * title) ;
54   //            // Sets the branch titles to separate different reconstruction flows 
55   //
56   //  void StartFrom(char * module = "SDigitizer",char * title = "Default") ;
57   //            // From wich step reconstruction begins, 
58   //            // title to be set to all reconstructed branches
59
60   AliEMCALReconstructioner & operator = (const AliEMCALReconstructioner & /*rvalue*/)  {
61     // assignement operator requested by coding convention but not needed
62     Fatal("operator =", "not implemented") ;
63     return *this ; 
64   }
65   
66
67 private:
68   void Init() ;  
69
70 private:
71   
72   TString  fDigitsBranch ;      // Title of digits branch
73   TString  fRecPointBranch ;    // Title of RecPoints branch   
74   TString  fRecPartBranch ;     // Title of RecParticles branch 
75   TString  fSDigitsBranch ;     // Title of SDigits branch      
76
77
78   AliEMCALDigitizer         * fDigitizer ;   //! Pointer to AliEMCALDigitizer
79   AliEMCALClusterizer       * fClusterizer ; //! Pointer to AliEMCALClusterizer
80   AliEMCALPID               * fPID ;         //! Pointer to AliEMCALPID
81   AliEMCALSDigitizer        * fSDigitizer ;  //! Pointer to AliEMCALSDigitizer
82
83   Bool_t   fIsInitialized ; // kTRUE if reconstructioner is initialized
84  
85   ClassDef(AliEMCALReconstructioner,1)  // Reconstruction algorithm class (Base Class)
86
87 }; 
88
89 #endif // ALIEMCALRECONSTRUCTIONER_H