Creation of TClonesArray in constructor only, instead of per-event.
[u/mrichter/AliRoot.git] / PHOS / AliPHOSReconstructor.h
CommitLineData
f444a19f 1#ifndef ALIPHOSRECONSTRUCTOR_H
2#define ALIPHOSRECONSTRUCTOR_H
d15a28e7 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6ad0bfa0 6/* $Id$ */
7
702ab87e 8/* History of cvs commits:
9 *
10 * $Log$
ea3d6a78 11 * Revision 1.15 2007/10/01 20:24:08 kharlov
12 * Memory leaks fixed
13 *
e68222ce 14 * Revision 1.14 2007/09/26 14:22:18 cvetan
15 * Important changes to the reconstructor classes. Complete elimination of the run-loaders, which are now steered only from AliReconstruction. Removal of the corresponding Reconstruct() and FillESD() methods.
16 *
d76c31f4 17 * Revision 1.13 2007/08/30 10:40:27 cvetan
18 * Minor
19 *
64c8ff4e 20 * Revision 1.12 2007/08/28 12:55:08 policheh
21 * Loaders removed from the reconstruction code (C.Cheshkov)
22 *
9a2cdbdf 23 * Revision 1.11 2007/07/24 17:20:35 policheh
24 * Usage of RecoParam objects instead of hardcoded parameters in reconstruction.
25 * (See $ALICE_ROOT/PHOS/macros/BeamTest2006/RawReconstruction.C).
26 *
3799bcb5 27 * Revision 1.10 2007/07/11 13:43:30 hristov
28 * New class AliESDEvent, backward compatibility with the old AliESD (Christian)
29 *
af885e0f 30 * Revision 1.9 2006/11/15 16:05:03 kharlov
31 * New FillESD() for raw data is added
32 *
dd7ee508 33 * Revision 1.8 2005/05/28 14:19:04 schutz
34 * Compilation warnings fixed by T.P.
35 *
702ab87e 36 */
37
b2a60966 38//_________________________________________________________________________
9a6ec61a 39// Wrapping class for reconstruction
e68222ce 40//--
41//-- Author: Yves Schutz (SUBATECH)
dfe0be07 42// Reconstruction class. Redesigned from the old AliReconstructionner class and
43// derived from STEER/AliReconstructor.
44//_________________________________________________________________________
d15a28e7 45
46// --- ROOT system ---
47
ea3d6a78 48#include <Riostream.h>
dfe0be07 49#include "AliReconstructor.h"
ea3d6a78 50#include "AliPHOSRecoParamEmc.h"
51#include "AliPHOSRecoParamCpv.h"
7acf6008 52class AliPHOSDigitizer ;
53class AliPHOSClusterizer ;
8d8258f6 54class AliPHOSClusterizerv1 ;
7acf6008 55class AliPHOSTrackSegmentMaker ;
56class AliPHOSPID ;
57class AliPHOSSDigitizer ;
af885e0f 58class AliESDEvent ;
dd7ee508 59class AliRawReader;
3799bcb5 60class AliPHOSRecoParam;
9a2cdbdf 61class AliPHOSGeometry;
d15a28e7 62
63// --- Standard library ---
64
65// --- AliRoot header files ---
66
dfe0be07 67class AliPHOSReconstructor : public AliReconstructor {
d15a28e7 68
69public:
70
f444a19f 71 AliPHOSReconstructor() ; //ctor
9a2cdbdf 72 AliPHOSReconstructor(const AliPHOSReconstructor & rec) :
73 AliReconstructor(rec),
74 fGeom(rec.fGeom)
75 {
7acf6008 76 // cpy ctor:
839ffcb3 77 // requested by the Coding Convention
f1611b7c 78 Fatal("cpy ctor", "not implemented") ;
839ffcb3 79 }
e68222ce 80 virtual ~AliPHOSReconstructor() ; //dtor
81
2e60107f 82 static void SetDebug() { fgDebug = kTRUE ; }
83 static void ResetDebug() { fgDebug = kFALSE ; }
84 static Bool_t Debug() { return fgDebug ; }
d76c31f4 85 AliTracker *CreateTracker() const;
702ab87e 86 using AliReconstructor::FillESD;
9a2cdbdf 87 virtual void FillESD(TTree* digitsTree, TTree* clustersTree,
88 AliESDEvent* esd) const;
702ab87e 89 using AliReconstructor::Reconstruct;
9a2cdbdf 90 virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
9a2cdbdf 91
92 virtual Bool_t HasDigitConversion() const {return kTRUE;};
64c8ff4e 93 virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
364de5c6 94
f444a19f 95 AliPHOSReconstructor & operator = (const AliPHOSReconstructor & /*rvalue*/) {
a3dfe79c 96 // assignement operator requested by coding convention but not needed
35293055 97 Fatal("operator =", "not implemented") ;
839ffcb3 98 return *this ;
99 }
100
c3824700 101 static void SetRecoParamEmc(AliPHOSRecoParam * param){ fgkRecoParamEmc = param;}
102 static void SetRecoParamCpv(AliPHOSRecoParam * param){ fgkRecoParamCpv = param;}
3799bcb5 103
ea3d6a78 104 static const AliPHOSRecoParam* GetRecoParamEmc(){
105 if (!fgkRecoParamEmc) {
106 cerr<<"The Reconstruction parameters for EMC nonitialized - Used default one"<<endl;
107 fgkRecoParamEmc = AliPHOSRecoParamEmc::GetEmcDefaultParameters();
108 }
109 return fgkRecoParamEmc;
110 }
111 static const AliPHOSRecoParam* GetRecoParamCpv(){
112 if (!fgkRecoParamCpv) {
113 cerr<<"The Reconstruction parameters for CPV nonitialized - Used default one"<<endl;
114 fgkRecoParamCpv = AliPHOSRecoParamCpv::GetCpvDefaultParameters();
115 }
116 return fgkRecoParamCpv;
117 }
3799bcb5 118
d15a28e7 119private:
120
2e60107f 121 static Bool_t fgDebug ; //! verbosity controller
dcab1c7e 122 static AliPHOSRecoParam *fgkRecoParamEmc; // reconstruction parameters for EMC
123 static AliPHOSRecoParam *fgkRecoParamCpv; // reconstruction parameters for EMC
124 AliPHOSGeometry *fGeom; // pointer to the PHOS geometry
125 AliPHOSClusterizerv1 *fClusterizer; //! PHOS clusterizer
126 AliPHOSTrackSegmentMaker *fTSM; //! PHOS TrackSegmentMaker
127 AliPHOSPID *fPID; //! PHOS PID maker
6483babc 128 static TClonesArray *fgDigitsArray; //! Array of PHOS digits
129 static TObjArray *fgEMCRecPoints; //! Array of EMC rec.points
dcab1c7e 130
6483babc 131 ClassDef(AliPHOSReconstructor,7) // PHOS Reconstruction class
d15a28e7 132
133};
134
f444a19f 135#endif // ALIPHOSRECONSTRUCTOR_H