Changes to the interface (Laurent)
[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 shuttle
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 AliMUONV2DStore;
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 AliMUONV2DStore& store, Float_t invalidFloatValue);
33
34   TObjArray* Validate(const AliMUONV2DStore& store, 
35                       Bool_t (*check)(const AliMUONVCalibParam&,Int_t));
36
37   AliMUONV2DStore* GetStatus() const { return fStatus; }
38   
39   void Report(TList& lines) const;
40
41   static void Report(TList& lines, const TObjArray& chambers);
42
43 private:
44     
45   AliMUON2DStoreValidator(const AliMUON2DStoreValidator&);
46   AliMUON2DStoreValidator& operator=(const AliMUON2DStoreValidator&);
47
48   void AddMissingChannel(Int_t detElemId, Int_t manuId, Int_t manuChannel);
49
50   void AddMissingManu(Int_t detElemId, Int_t manuId);
51
52   AliMUONCheckItem* GetChamber(Int_t chamberID);
53   AliMUONCheckItem* GetDE(Int_t detElemId);
54   AliMUONCheckItem* GetManu(Int_t detElemId, Int_t manuId);
55   
56   static void ReportChamber(TList& list, AliMUONCheckItem& chamber);
57   static void ReportDE(TList& list, AliMUONCheckItem& de);
58   static void ReportManu(TList& list, AliMUONCheckItem& manu);
59   
60 private:
61   TList* fManuList; //! List of (DE,manuID) pairs.
62   TObjArray* fChambers; //! Array of AliMUONCheckItem.
63   AliMUONV2DStore* fStatus; //! Statuses
64   
65   ClassDef(AliMUON2DStoreValidator,2) // Validator of 2DStore
66 };
67
68 #endif