Make the MUONCDB macro a full class (Laurent)
[u/mrichter/AliRoot.git] / MUON / AliMUONCDB.h
1 #ifndef ALIMUONCDB_H
2 #define ALIMUONCDB_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 /// \ingroup base
9 /// \class AliMUONCDB
10 /// \brief Helper class to experience the OCDB
11 /// 
12 //  Author Laurent Aphecetche
13
14 #include <TObject.h>
15 #include <TString.h>
16
17 class TList;
18 class AliMUONV1DStore;
19 class AliMUONV2DStore;
20 class TMap;
21 class AliMUONVCalibParam;
22 class AliMUONTriggerLut;
23 class AliMUONTriggerEfficiencyCells;
24
25 #define ALIMUONCDBINFINITY 99999999
26
27 class AliMUONCDB : public TObject
28 {
29 public:
30   /// Ctor. change the path for testing the Shuttle preprocessor, to
31   /// "local://$ALICE_ROOT/SHUTTLE/TestShuttle/TestCDB"
32   AliMUONCDB(const char* cdbpath = "local://$ALICE_ROOT");
33   virtual ~AliMUONCDB();
34   
35   Int_t MakeNeighbourStore(AliMUONV2DStore& neighbourStore);
36
37   Int_t MakeHVStore(TMap& aliasMap, Bool_t defaultValues);
38   Int_t MakePedestalStore(AliMUONV2DStore& pedestalStore, Bool_t defaultValues);
39   Int_t MakeCapacitanceStore(AliMUONV1DStore& capaStore, Bool_t defaultValues);
40   Int_t MakeGainStore(AliMUONV2DStore& gainStore, Bool_t defaultValues);
41   
42   Int_t MakeLocalTriggerMaskStore(AliMUONV1DStore& ltm) const;
43   Int_t MakeRegionalTriggerMaskStore(AliMUONV1DStore& rtm) const;
44   Int_t MakeGlobalTriggerMaskStore(AliMUONVCalibParam& gtm) const;
45   AliMUONTriggerLut* MakeTriggerLUT(const char* file="$(ALICE_ROOT)/MUON/data/lutAptLpt1Hpt1p7.root") const;
46   AliMUONTriggerEfficiencyCells* MakeTriggerEfficiency(const char* file="$ALICE_ROOT/MUON/data/efficiencyCells.dat") const;
47
48   /// Compute the difference between two (compatible) stores
49   AliMUONV2DStore* Diff(AliMUONV2DStore& store1, AliMUONV2DStore& store2, 
50                         const char* opt="abs");
51     
52   void Plot(const AliMUONV2DStore& store, const char* name, Int_t nbins=512);
53
54   void WriteToCDB(const char* calibpath, TObject* object, 
55                   Int_t startRun, Int_t endRun, Bool_t defaultValues);
56
57   void WriteTrigger(Int_t startRun=0,Int_t endRun=ALIMUONCDBINFINITY);
58   void WriteTracker(Bool_t defaultValues=kTRUE, Int_t startRun=0,Int_t endRun=ALIMUONCDBINFINITY);
59   
60   void WriteNeighbours(Int_t startRun=0, Int_t endRun=ALIMUONCDBINFINITY);
61   void WriteHV(Bool_t defaultValues, Int_t startRun, Int_t endRun);
62   void WritePedestals(Bool_t defaultValues, Int_t startRun, Int_t endRun=ALIMUONCDBINFINITY);
63   void WriteGains(Bool_t defaultValues, Int_t startRun, Int_t endRun=ALIMUONCDBINFINITY);
64   void WriteCapacitances(Bool_t defaultValues, Int_t startRun=0, Int_t endRun=ALIMUONCDBINFINITY);
65   
66   void WriteLocalTriggerMasks(Int_t startRun=0, Int_t endRun=ALIMUONCDBINFINITY);
67   void WriteRegionalTriggerMasks(Int_t startRun=0, Int_t endRun=ALIMUONCDBINFINITY);
68   void WriteGlobalTriggerMasks(Int_t startRun=0, Int_t endRun=ALIMUONCDBINFINITY);
69   void WriteTriggerLut(Int_t startRun=0, Int_t endRun=ALIMUONCDBINFINITY);
70   void WriteTriggerEfficiency(Int_t startRun=0, Int_t endRun=ALIMUONCDBINFINITY);
71   
72 private:
73     AliMUONCDB(const AliMUONCDB& rhs);
74   AliMUONCDB& operator=(const AliMUONCDB& rhs);
75   
76 private:
77   TString fCDBPath; //!< where to write stuff
78   TList* fManuList; //!< full list of manus
79   static const Int_t fgkMaxNofChannelsPerManu; //!< 64
80   
81   ClassDef(AliMUONCDB,0) // Helper class to experience OCDB
82 };
83
84 #endif