Update from Alberica. Addition of VZERO equalized signals and ZNC.
[u/mrichter/AliRoot.git] / MUON / AliMUON2DStoreValidator.h
1 #ifndef ALIMUON2DSTOREVALIDATOR_H
2 #define ALIMUON2DSTOREVALIDATOR_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice                               */
6
7 // $Id$
8
9 /// \ingroup calib
10 /// \class AliMUON2DStoreValidator
11 /// \brief Determine which channels, manus, DEs, stations are missing
12 /// from a 2DStore.
13 /// 
14 //  Author Laurent Aphecetche
15
16 #ifndef ROOT_TObject
17 #  include "TObject.h"
18 #endif
19
20 class AliMUONVStore;
21 class TList;
22 class TObjArray;
23 class AliMUONCheckItem;
24 class AliMUONVCalibParam;
25
26 class AliMUON2DStoreValidator : public TObject
27 {
28 public:
29   AliMUON2DStoreValidator();
30   virtual ~AliMUON2DStoreValidator();
31   
32   TObjArray* Validate(const AliMUONVStore& store, Float_t invalidFloatValue, AliMUONVStore* config=0x0);
33
34   TObjArray* Validate(const AliMUONVStore& store, AliMUONVStore* config=0x0);
35   
36   TObjArray* Validate(const AliMUONVStore& store, 
37                       Bool_t (*check)(const AliMUONVCalibParam&,Int_t),
38                       AliMUONVStore* config=0x0);
39
40   /// Return statuses
41   AliMUONVStore* GetStatus() const { return fStatus; }
42   
43   /// Reports what is missing, trying to be as concise as possible.
44   void Report(TList& lines) const;
45
46   static void Report(TList& lines, const TObjArray& chambers);
47
48 private:
49   /// Not implemented  
50   AliMUON2DStoreValidator(const AliMUON2DStoreValidator&);
51   /// Not implemented  
52   AliMUON2DStoreValidator& operator=(const AliMUON2DStoreValidator&);
53
54   void AddMissingChannel(Int_t detElemId, Int_t manuId, Int_t manuChannel);
55
56   void AddMissingManu(Int_t detElemId, Int_t manuId);
57
58   AliMUONCheckItem* GetChamber(Int_t chamberID);
59   AliMUONCheckItem* GetDE(Int_t detElemId);
60   AliMUONCheckItem* GetManu(Int_t detElemId, Int_t manuId);
61   
62   static void ReportChamber(TList& list, const AliMUONCheckItem& chamber);
63   static void ReportDE(TList& list, const AliMUONCheckItem& de);
64   static void ReportManu(TList& list, const AliMUONCheckItem& manu);
65   
66 private:
67   TObjArray* fChambers; //!< Array of AliMUONCheckItem.
68   AliMUONVStore* fStatus; //!< Statuses
69   
70   ClassDef(AliMUON2DStoreValidator,3) // Validator of 2DStore
71 };
72
73 #endif