]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/EMCAL/AliHLTEMCALUtils.h
### files: AliTPCTempMap.h (.cxx)
[u/mrichter/AliRoot.git] / HLT / EMCAL / AliHLTEMCALUtils.h
1 #ifndef ALIHLTEMCALUTILS_H
2 #define ALIHLTEMCALUTILS_H
3
4 //* This file is property of and copyright by the ALICE HLT Project        * 
5 //* ALICE Experiment at CERN, All rights reserved.                         *
6 //* See cxx source for full Copyright notice                               */
7
8 /** @file   AliHLTEMCALUtils.h
9     @author m. ploskon
10     @date   
11     @brief  Utils for EMCAL-HLT
12 */
13
14 #include <TObject.h>
15
16 /**
17  * @class AliHLTEMCALUtils
18  */
19
20 class AliEMCALGeometry; 
21 class AliEMCALClusterizerv1;
22 class AliEMCALRecParam;    
23 class AliEMCALRawUtils;
24 class AliRawReader;
25 class AliESDEvent;
26
27 class TString;
28 class TFile;
29 class TGeoManager;
30 class TTree;
31 class TClonesArray;
32 class TBranch;
33
34 class AliHLTEMCALUtils : public TObject
35 {
36  public:
37   AliHLTEMCALUtils();
38   AliHLTEMCALUtils(const AliHLTEMCALUtils & /*t*/);
39   AliHLTEMCALUtils & operator = (const AliHLTEMCALUtils & /*t*/);
40   virtual ~AliHLTEMCALUtils();
41
42   static void                   SetDebug(Int_t idbg) {fgDebug = idbg;}
43
44   static void                   DeleteStaticMembers();
45   static void                   Cleanup();
46   
47   static void                   InitRecParam();
48   static AliEMCALRecParam*      GetRecParam();
49
50   static AliEMCALRawUtils*      GetRawUtils(AliEMCALGeometry *pGeometry = 0);
51   static AliEMCALClusterizerv1* GetClusterizer();
52   static AliEMCALGeometry*      GetGeometry();
53
54   static void                   DeleteGeoManager();
55   static Bool_t                 LoadGeoManagerFromFile(const char *fname);
56   static TGeoManager*           GetGeoManager() {return fgGeoManager;}
57
58   static Bool_t                 InitFakeCDB(const char *cdbpath = "", Int_t runid = 0);
59   static Bool_t                 ConvertDigits(AliRawReader* rawReader, TTree* digitsTree, Option_t* sOption);
60   static Bool_t                 Raw2Clusters(AliRawReader* rawReader, TTree* clustersTree, Option_t* sDigitsOption);
61   static Bool_t                 RawBuffer2Clusters(UChar_t *buffer, ULong_t buffSize, 
62                                                    Int_t eqID, 
63                                                    TTree* clustersTree, Option_t* sDigitsOption);
64   static TTree*                 RawBuffer2Clusters(UChar_t *buffer, ULong_t buffSize, 
65                                                    Int_t eqID, 
66                                                    Option_t* sDigitsOption);
67
68   static TTree*                 GetDigitsTree();
69   static TTree*                 GetClustersTree();
70
71   static UChar_t *              FileToMemory(const char *fname, UChar_t *outpbuffer, ULong_t &buffSize);
72
73   static void                   ResetReconstructionTrees();
74   static void                   DeleteReconstructionTrees();
75
76   static Bool_t                 FillESD(TTree* digitsTree, TTree* clustersTree, AliESDEvent* esd);
77     
78  protected:
79
80  private:
81   
82   static Int_t                  fgDebug; // debug flag
83
84   static AliEMCALGeometry*      fgGeom;        // EMCAL geometry
85   static AliEMCALClusterizerv1* fgClusterizer; // ECMAL clusterizer
86   static AliEMCALRecParam*      fgRecParam;    // EMCAL reconstruction parameters
87   static AliEMCALRawUtils*      fgRawUtils;    // EMCAL raw utilities 
88   
89   static TFile*                 fgGeometryFile; //! // Pointer to the geom root file
90   static TGeoManager*           fgGeoManager; //! Pointer to geometry manager 
91
92   static TTree*                 fgClustersTreeTmp; //! Clusters tree - depending on the reco scheme 
93                                                    //  use ResetReconstructionTrees
94   static TTree*                 fgDigitsTreeTmp;   //! Digits tree  - reset on each Raw2Clusters call
95   static TClonesArray*          fgDigitsArrTmp;    //! Digits array - reset on each Raw2Clusters call
96   static TBranch*               fgDigitsBranchTmp; //! Digits branch - reset on each Raw2Clusters call
97
98   ClassDef(AliHLTEMCALUtils, 0)
99 };
100
101 #endif