]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - EMCAL/AliEMCALLoader.h
syst. check that reads the MC information for the case of TPC-only
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALLoader.h
... / ...
CommitLineData
1#ifndef ALIEMCALLOADER_H
2#define ALIEMCALLOADER_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// A singleton that returns various objects
10// Should be used on the analysis stage to avoid confusing between different
11// branches of reconstruction tree: e.g. reading RecPoints and TS made from
12// another set of RecPoints.
13//
14// The objects are retrived from folders.
15//*-- Author: Yves Schutz (SUBATECH) & Dmitri Peressounko (RRC KI & SUBATECH)
16//
17
18
19// --- ROOT system ---
20#include "TClonesArray.h"
21#include "TFolder.h"
22#include "TTree.h"
23class TString ;
24class TParticle ;
25class TTask ;
26
27// --- AliRoot header files ---
28#include "AliLoader.h"
29#include "AliEMCALCalibData.h"
30#include "AliEMCALRecParam.h"
31
32class AliLoader ;
33class AliEMCAL ;
34class AliEMCALHit ;
35class AliEMCALDigit ;
36class AliEMCALSDigit ;
37class AliEMCALRecPoint ;
38
39class AliEMCALLoader : public AliLoader {
40
41 public:
42
43 AliEMCALLoader();
44 AliEMCALLoader(const AliEMCALLoader & obj);
45 AliEMCALLoader(const Char_t *detname,const Char_t *eventfoldername);
46 AliEMCALLoader(const Char_t *name,TFolder *topfolder);
47
48 virtual ~AliEMCALLoader() ;
49
50 // assignement operator requested by coding convention, but not needed
51 const AliEMCALLoader & operator = (const AliEMCALLoader & ) {return *this;}
52
53 virtual Int_t GetEvent(); // Overload to fill TClonesArray
54
55 virtual void CleanHits() const
56 { if (fHits) fHits->Clear(); AliLoader::CleanHits(); }
57 virtual void CleanSDigits() const
58 { if (fSDigits) fSDigits->Clear(); AliLoader::CleanSDigits(); }
59 virtual void CleanDigits() const
60 { if (fDigits) fDigits->Clear(); AliLoader::CleanDigits(); }
61 virtual void CleanRecPoints() const
62 { if (fRecPoints) fRecPoints->Clear(); AliLoader::CleanRecPoints(); }
63
64 // This does not work due to const
65 /*
66 virtual void MakeHitsContainer() const { AliLoader::MakeHitsContainer(); TreeH()->Branch(fDetectorName,"TClonesArray",&fHits); }
67 virtual void MakeSDigitsContainer() const { AliLoader::MakeSDigitsContainer(); TreeS()->SetBranchAddress(fDetectorName,&fSDigits); }
68 virtual void MakeDigitsContainer() const { AliLoader::MakeDigitsContainer(); TreeD()->SetBranchAddress(fDetectorName,&fDigits); }
69 virtual void MakeRecPointsContainer() const { AliLoader::MakeRecPointsContainer(); TreeR()->SetBranchAddress(fgkECARecPointsBranchName,&fRecPoints); }
70 */
71
72 // ************ TClonesArrays Access functions
73
74 TClonesArray* Hits(void) { return fHits;}
75
76 const AliEMCALHit* Hit(Int_t index) {
77 if (fHits)
78 return (const AliEMCALHit*) fHits->At(index);
79 return 0x0;
80 }
81
82 TClonesArray* SDigits() { return fSDigits;}
83 const AliEMCALDigit* SDigit(Int_t index) {
84 if (fSDigits)
85 return (const AliEMCALDigit*) fSDigits->At(index);
86 return 0x0;
87 }
88
89 TClonesArray* Digits() { return fDigits;}
90 const AliEMCALDigit * Digit(Int_t index) {
91 if (fDigits)
92 return (const AliEMCALDigit*) fDigits->At(index);
93 return 0x0;
94 }
95
96 TObjArray * RecPoints() { return fRecPoints;}
97 const AliEMCALRecPoint * RecPoint(Int_t index) {
98 if (fRecPoints)
99 return (const AliEMCALRecPoint*) fRecPoints->At(index);
100 return 0x0;
101 }
102
103 void SetDebug(Int_t level) {fDebug = level;} // Set debug level
104
105 //Calibration
106
107 Int_t CalibrateRaw (Double_t energy, Int_t module, Int_t column, Int_t row);//take real calibration coefficients
108
109 void SetCalibData(AliEMCALCalibData* calibda) { fgCalibData = calibda; }
110 AliEMCALCalibData * CalibData(); // to get the calibration CDB object
111
112 AliEMCALRecParam * RecParam(); // to get rec.parameters from CDB
113
114private:
115
116 static const TString fgkECARecPointsBranchName; //! Name of branch with ECA Reconstructed Points
117
118 Int_t fDebug ; // Debug level
119
120 // All data are stored in TTrees on file.
121 // These TCLonesArrays are temporary storage for reading or writing
122 // (connected to TTrees with SetBranchAddress)
123 TClonesArray *fHits; //! TClonesArray of hits (for tree reading)
124 TClonesArray *fDigits; //! TClonesArray of digits (for tree reading)
125 TClonesArray *fSDigits; //! TClonesArray of sdigits (for tree reading)
126 TObjArray *fRecPoints; //! TClonesArray of recpoints (for tree reading)
127
128 static AliEMCALCalibData * fgCalibData; // calibration data
129 static AliEMCALRecParam * fgRecParam ; // reconstruction parameters
130
131 ClassDef(AliEMCALLoader,1) // Algorithm class that provides methods to retrieve objects from a list knowing the index
132
133};
134
135#endif // AliEMCALLOADER_H