ROOT logo
#ifndef ALIMUONTRACKERCONDITIONDATAMAKER_H
#define ALIMUONTRACKERCONDITIONDATAMAKER_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup rec
/// \class AliMUONTrackerConditionDataMaker
/// \brief Producer of AliMUONVTrackerData from OCDB or ASCII condition files
/// 
//  Author Laurent Aphecetche

#ifndef ALIMUONVTRACKERDATAMAKER_H
#  include "AliMUONVTrackerDataMaker.h"
#endif
#ifndef ROOT_TString
#  include "TString.h"
#endif

class AliMUONVStore;
class TMap;

class AliMUONTrackerConditionDataMaker : public AliMUONVTrackerDataMaker
{
public:
  AliMUONTrackerConditionDataMaker();
  AliMUONTrackerConditionDataMaker(Int_t runNumber, const char* ocdbPath, const char* type);
  AliMUONTrackerConditionDataMaker(const char* filename, const char* type);
  AliMUONTrackerConditionDataMaker(const char* data, const char* type, Bool_t);
  virtual ~AliMUONTrackerConditionDataMaker();
  
  static AliMUONVStore* CreateStore(Int_t runNumber, const char* source, const char* type, Int_t& startOfValidity);
  
  static AliMUONVTrackerData* CreateData(const char* type, AliMUONVStore& source, Int_t startOfValidity);
    
  virtual void SetOwnerOfData(Bool_t flag) { fIsOwnerOfData = flag; }

  /// Whether we've been properly initialized or not
  Bool_t IsValid() const { return (fData != 0x0); }
  
  /// Return our data
  virtual AliMUONVTrackerData* Data() const { return fData; }
  
  /// We are not runnable (i.e. # of event is fixed = 1)
  virtual Bool_t IsRunnable() const { return kFALSE; }
  
  /// We cannot be running as we are not runnable...
  virtual Bool_t IsRunning() const { return kFALSE; }
  
  /// N/A
  virtual void SetRunning(Bool_t /*flag*/) {}
  
  /// N/A
  virtual Bool_t ProcessEvent() { return kTRUE; }
  
  /// N/A
  virtual void Rewind() { }
  
  /// Set our source URI
  virtual void SetSource(const char* source) { fSource = source; }
  
  /// Get our source URI
  virtual TString Source() const { return fSource.Data(); }
  
  /// Number of events is always 1
  Int_t NumberOfEvents() const { return 1; }
  
  virtual Long64_t Merge(TCollection* li);

private:
  /// Not implemented
  AliMUONTrackerConditionDataMaker(const AliMUONTrackerConditionDataMaker& rhs);
  /// Not implemented
  AliMUONTrackerConditionDataMaker& operator=(const AliMUONTrackerConditionDataMaker& rhs);
  
  static AliMUONVStore* CreateHVStore(TMap& m);
  static AliMUONVStore* CreateStatusMapStore(Int_t runNumber);
  static AliMUONVStore* CreateStatusStore(Int_t runNumber);
  static AliMUONVStore* PatchGainStore(const AliMUONVStore& gains);
  static AliMUONVStore* ExpandConfig(const AliMUONVStore& config);
  
private:
  AliMUONVTrackerData* fData; ///< our data
  TString fSource; ///< source name
  Bool_t fIsOwnerOfData; ///< is fData ours or not
  
  ClassDef(AliMUONTrackerConditionDataMaker,2) // Producer of AliMUONVTrackerData from condition data (either OCDB or ascii files)
};

#endif

 AliMUONTrackerConditionDataMaker.h:1
 AliMUONTrackerConditionDataMaker.h:2
 AliMUONTrackerConditionDataMaker.h:3
 AliMUONTrackerConditionDataMaker.h:4
 AliMUONTrackerConditionDataMaker.h:5
 AliMUONTrackerConditionDataMaker.h:6
 AliMUONTrackerConditionDataMaker.h:7
 AliMUONTrackerConditionDataMaker.h:8
 AliMUONTrackerConditionDataMaker.h:9
 AliMUONTrackerConditionDataMaker.h:10
 AliMUONTrackerConditionDataMaker.h:11
 AliMUONTrackerConditionDataMaker.h:12
 AliMUONTrackerConditionDataMaker.h:13
 AliMUONTrackerConditionDataMaker.h:14
 AliMUONTrackerConditionDataMaker.h:15
 AliMUONTrackerConditionDataMaker.h:16
 AliMUONTrackerConditionDataMaker.h:17
 AliMUONTrackerConditionDataMaker.h:18
 AliMUONTrackerConditionDataMaker.h:19
 AliMUONTrackerConditionDataMaker.h:20
 AliMUONTrackerConditionDataMaker.h:21
 AliMUONTrackerConditionDataMaker.h:22
 AliMUONTrackerConditionDataMaker.h:23
 AliMUONTrackerConditionDataMaker.h:24
 AliMUONTrackerConditionDataMaker.h:25
 AliMUONTrackerConditionDataMaker.h:26
 AliMUONTrackerConditionDataMaker.h:27
 AliMUONTrackerConditionDataMaker.h:28
 AliMUONTrackerConditionDataMaker.h:29
 AliMUONTrackerConditionDataMaker.h:30
 AliMUONTrackerConditionDataMaker.h:31
 AliMUONTrackerConditionDataMaker.h:32
 AliMUONTrackerConditionDataMaker.h:33
 AliMUONTrackerConditionDataMaker.h:34
 AliMUONTrackerConditionDataMaker.h:35
 AliMUONTrackerConditionDataMaker.h:36
 AliMUONTrackerConditionDataMaker.h:37
 AliMUONTrackerConditionDataMaker.h:38
 AliMUONTrackerConditionDataMaker.h:39
 AliMUONTrackerConditionDataMaker.h:40
 AliMUONTrackerConditionDataMaker.h:41
 AliMUONTrackerConditionDataMaker.h:42
 AliMUONTrackerConditionDataMaker.h:43
 AliMUONTrackerConditionDataMaker.h:44
 AliMUONTrackerConditionDataMaker.h:45
 AliMUONTrackerConditionDataMaker.h:46
 AliMUONTrackerConditionDataMaker.h:47
 AliMUONTrackerConditionDataMaker.h:48
 AliMUONTrackerConditionDataMaker.h:49
 AliMUONTrackerConditionDataMaker.h:50
 AliMUONTrackerConditionDataMaker.h:51
 AliMUONTrackerConditionDataMaker.h:52
 AliMUONTrackerConditionDataMaker.h:53
 AliMUONTrackerConditionDataMaker.h:54
 AliMUONTrackerConditionDataMaker.h:55
 AliMUONTrackerConditionDataMaker.h:56
 AliMUONTrackerConditionDataMaker.h:57
 AliMUONTrackerConditionDataMaker.h:58
 AliMUONTrackerConditionDataMaker.h:59
 AliMUONTrackerConditionDataMaker.h:60
 AliMUONTrackerConditionDataMaker.h:61
 AliMUONTrackerConditionDataMaker.h:62
 AliMUONTrackerConditionDataMaker.h:63
 AliMUONTrackerConditionDataMaker.h:64
 AliMUONTrackerConditionDataMaker.h:65
 AliMUONTrackerConditionDataMaker.h:66
 AliMUONTrackerConditionDataMaker.h:67
 AliMUONTrackerConditionDataMaker.h:68
 AliMUONTrackerConditionDataMaker.h:69
 AliMUONTrackerConditionDataMaker.h:70
 AliMUONTrackerConditionDataMaker.h:71
 AliMUONTrackerConditionDataMaker.h:72
 AliMUONTrackerConditionDataMaker.h:73
 AliMUONTrackerConditionDataMaker.h:74
 AliMUONTrackerConditionDataMaker.h:75
 AliMUONTrackerConditionDataMaker.h:76
 AliMUONTrackerConditionDataMaker.h:77
 AliMUONTrackerConditionDataMaker.h:78
 AliMUONTrackerConditionDataMaker.h:79
 AliMUONTrackerConditionDataMaker.h:80
 AliMUONTrackerConditionDataMaker.h:81
 AliMUONTrackerConditionDataMaker.h:82
 AliMUONTrackerConditionDataMaker.h:83
 AliMUONTrackerConditionDataMaker.h:84
 AliMUONTrackerConditionDataMaker.h:85
 AliMUONTrackerConditionDataMaker.h:86
 AliMUONTrackerConditionDataMaker.h:87
 AliMUONTrackerConditionDataMaker.h:88
 AliMUONTrackerConditionDataMaker.h:89
 AliMUONTrackerConditionDataMaker.h:90
 AliMUONTrackerConditionDataMaker.h:91
 AliMUONTrackerConditionDataMaker.h:92
 AliMUONTrackerConditionDataMaker.h:93