]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliRecoParam.h
mag. field and geometry initialised from GRP
[u/mrichter/AliRoot.git] / STEER / AliRecoParam.h
index 0f9dadfee93be1d40af68049e95d7ae3efd6aaf9..deff2f39f361c6820090004df370159f6de3b96d 100644 (file)
@@ -5,40 +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 AliEventInfo.      //
+// 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
 {
 
  public: 
   AliRecoParam();
-  AliRecoParam(const char *detector);
   virtual ~AliRecoParam();  
   //
+  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;
-  TObjArray                    *GetAllRecoParams() const { return fRecoParamArray; }
-  virtual AliDetectorRecoParam *GetRecoParam(const AliEventInfo &evInfo) const = 0;
-  void                          AddRecoParam(AliDetectorRecoParam* param);
+  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);
 
-protected:
+  AliRecoParam(const AliRecoParam&);
+  AliRecoParam& operator=(const AliRecoParam&);
 
-  TObjArray *fRecoParamArray;   //array with reconstruction-parameter objects
 
 private:
 
-  AliRecoParam(const AliRecoParam&); // Not implemented
-  AliRecoParam& operator=(const AliRecoParam&); // Not implemented
-
-  ClassDef(AliRecoParam, 2)
+  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)
 };