7a78688f5929359f7523dcbd96ff6a369696c63b
[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);
33
34   TObjArray* Validate(const AliMUONVStore& store);
35   
36   TObjArray* Validate(const AliMUONVStore& store, 
37                       Bool_t (*check)(const AliMUONVCalibParam&,Int_t));
38
39   /// Return statuses
40   AliMUONVStore* GetStatus() const { return fStatus; }
41   
42   /// Reports what is missing, trying to be as concise as possible.
43   void Report(TList& lines) const;
44
45   static void Report(TList& lines, const TObjArray& chambers);
46
47 private:
48   /// Not implemented  
49   AliMUON2DStoreValidator(const AliMUON2DStoreValidator&);
50   /// Not implemented  
51   AliMUON2DStoreValidator& operator=(const AliMUON2DStoreValidator&);
52
53   void AddMissingChannel(Int_t detElemId, Int_t manuId, Int_t manuChannel);
54
55   void AddMissingManu(Int_t detElemId, Int_t manuId);
56
57   AliMUONCheckItem* GetChamber(Int_t chamberID);
58   AliMUONCheckItem* GetDE(Int_t detElemId);
59   AliMUONCheckItem* GetManu(Int_t detElemId, Int_t manuId);
60   
61   static void ReportChamber(TList& list, AliMUONCheckItem& chamber);
62   static void ReportDE(TList& list, AliMUONCheckItem& de);
63   static void ReportManu(TList& list, AliMUONCheckItem& manu);
64   
65 private:
66   TList* fManuList; //!< List of (DE,manuID) pairs.
67   TObjArray* fChambers; //!< Array of AliMUONCheckItem.
68   AliMUONVStore* fStatus; //!< Statuses
69   
70   ClassDef(AliMUON2DStoreValidator,2) // Validator of 2DStore
71 };
72
73 #endif