a468909d0cd777de07889e92acc8afe9a0f1aa02
[u/mrichter/AliRoot.git] / STEER / AliRecoParam.h
1 #ifndef ALIRECOPARAM_H
2 #define ALIRECOPARAM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 ///////////////////////////////////////////////////////////////////////////////
7 //                                                                           //
8 // Steering Class for reconstruction parameters                              //
9 // Revision: cvetan.cheshkov@cern.ch 12/06/2008                              //
10 // Its structure has been revised and it is interfaced to AliRunInfo and     //
11 // AliEventInfo.                                                             //
12 //                                                                           //
13 ///////////////////////////////////////////////////////////////////////////////
14
15
16 #include "TObject.h"
17
18 class AliDetectorRecoParam;
19 class AliRunInfo;
20 class AliEventInfo;
21
22 class AliRecoParam : public TObject
23 {
24
25  public: 
26   AliRecoParam();
27   virtual ~AliRecoParam();  
28   //
29   enum {
30     kNSpecies = 5,   // number of event species
31     kNDetectors = 16 // number of detectors (last one is GRP!)
32   };
33   enum EventSpecie_t {kDefault = 1,
34                       kLowMult = 2,
35                       kHighMult = 4,
36                       kCosmic = 8,
37                       kCalib = 16};
38
39   static Int_t                  AConvert(EventSpecie_t es) ; 
40   static EventSpecie_t          Convert(Int_t ies) ; 
41   static EventSpecie_t          ConvertIndex(Int_t index) ;
42
43   virtual void                  Print(Option_t *option="") const;
44   const TObjArray              *GetDetRecoParamArray(Int_t iDet) const { return fDetRecoParams[iDet]; }
45   void                          SetEventSpecie(const AliRunInfo*runInfo, const AliEventInfo &evInfo);
46   EventSpecie_t                 GetEventSpecie() const { return fEventSpecie; }
47   static const char*            GetEventSpecieName(EventSpecie_t es);
48   static const char*            GetEventSpecieName(Int_t esIndex);
49   const char*                   PrintEventSpecie() const;
50   const AliDetectorRecoParam   *GetDetRecoParam(Int_t iDet) const;
51   void                          AddDetRecoParam(Int_t iDet, AliDetectorRecoParam* param);
52   Bool_t                        AddDetRecoParamArray(Int_t iDet, TObjArray* parArray);
53
54   AliRecoParam(const AliRecoParam&);
55   AliRecoParam& operator=(const AliRecoParam&);
56
57
58 private:
59
60   Int_t      fDetRecoParamsIndex[kNSpecies][kNDetectors]; // index to fDetRecoParams arrays
61   TObjArray *fDetRecoParams[kNDetectors];   // array with reconstruction-parameter objects for all detectors
62   EventSpecie_t fEventSpecie;               // current event specie
63   static TString fkgEventSpecieName[] ; // the names of the event species
64   ClassDef(AliRecoParam, 6)
65 };
66
67
68 #endif