]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliRecoParam.h
Updates (A. Toia)
[u/mrichter/AliRoot.git] / STEER / AliRecoParam.h
index c2f5d41d685a187b07ecf945d0c5803194e03e43..deff2f39f361c6820090004df370159f6de3b96d 100644 (file)
@@ -5,29 +5,65 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                           //
-// Base Class for Detector reconstruction parameters                         //
+// Steering Class for reconstruction parameters                              //
+// Revision: cvetan.cheshkov@cern.ch 12/06/2008                              //
+// Its structure has been revised and it is interfaced to AliRunInfo and     //
+// AliEventInfo.                                                             //
 //                                                                           //
 ///////////////////////////////////////////////////////////////////////////////
 
 
-#include "TNamed.h"
+#include "TObject.h"
+
 class AliDetectorRecoParam;
+class AliRunInfo;
+class AliEventInfo;
+class THashTable;
 
-class AliRecoParam : public TNamed
+class AliRecoParam : public TObject
 {
-  enum EventType0 {kUndef=0, kPhysic=1, kCalib=2};  
+
  public: 
   AliRecoParam();
   virtual ~AliRecoParam();  
-  static AliRecoParam * Instance();
   //
-  virtual void        Print(Option_t *option="") const;
-  TObjArray * GetRecoParam(const char * detType, Int_t *eventType=0);  
-  void        RegisterRecoParam(AliDetectorRecoParam* param);
-protected:
-  TObjArray *fRecoParamArray;   //array with registerd reconstruction parameters
-  static AliRecoParam* fgInstance; // Reconstruction parameters instance
-  ClassDef(AliRecoParam, 1)
+  enum {
+    kNSpecies = 5,   // number of event species
+    kNDetectors = 16 // number of detectors (last one is GRP!)
+  };
+  enum EventSpecie_t {kDefault = 1,
+                     kLowMult = 2,
+                     kHighMult = 4,
+                     kCosmic = 8,
+                     kCalib = 16};
+
+  static Int_t                  AConvert(EventSpecie_t es) ; 
+  static EventSpecie_t          Convert(Int_t ies) ; 
+  static EventSpecie_t          ConvertIndex(Int_t index) ;
+
+  virtual void                  Print(Option_t *option="") const;
+  const TObjArray              *GetDetRecoParamArray(Int_t iDet) const { return fDetRecoParams[iDet]; }
+  void                          SetEventSpecie(const AliRunInfo*runInfo, const AliEventInfo &evInfo,
+                                              const THashTable*cosmicTriggersList);
+  EventSpecie_t                 GetEventSpecie() const { return fEventSpecie; }
+  static const char*            GetEventSpecieName(EventSpecie_t es);
+  static const char*            GetEventSpecieName(Int_t esIndex);
+  const char*                   PrintEventSpecie() const;
+  const AliDetectorRecoParam   *GetDetRecoParam(Int_t iDet) const;
+  void                          AddDetRecoParam(Int_t iDet, AliDetectorRecoParam* param);
+  Bool_t                        AddDetRecoParamArray(Int_t iDet, TObjArray* parArray);
+
+  AliRecoParam(const AliRecoParam&);
+  AliRecoParam& operator=(const AliRecoParam&);
+
+
+private:
+
+  Int_t      fDetRecoParamsIndex[kNSpecies][kNDetectors]; // index to fDetRecoParams arrays
+  TObjArray *fDetRecoParams[kNDetectors];   // array with reconstruction-parameter objects for all detectors
+  EventSpecie_t fEventSpecie;               // current event specie
+  static TString fkgEventSpecieName[] ; // the names of the event species
+  ClassDef(AliRecoParam, 6)
 };