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

// $Id: AliMUONTrackerQADataMakerRec.h 35760 2009-10-21 21:45:42Z ivana $

/// \ingroup rec
/// \class AliMUONTrackerQADataMakerRec
/// \brief MUON Quality assurance data maker
///

// --- AliRoot header files ---
#include "AliMUONVQADataMakerRec.h"
#include "AliMUONRecoParam.h"
#include "AliQAv1.h"

class AliMUONDigitMaker;
class AliMUONVClusterStore;
class AliMUONVDigitStore;
class AliMUONVStore;
class AliMUONVTrackerData;
class AliMUONVTrackerDataMaker;
class AliMUONCalibrationData;
class AliMUONQAMappingCheck;
class AliMUONLogger;
class AliMUONQADataMakerRec;

class AliMUONTrackerQADataMakerRec: public AliMUONVQADataMakerRec {

public:
  AliMUONTrackerQADataMakerRec(AliQADataMakerRec* master);         
  virtual ~AliMUONTrackerQADataMakerRec();
  
  AliMUONVTrackerData* GetTrackerData() const;

  virtual void InitDigits(); 
  virtual void InitESDs(); 
  virtual void InitRaws(); 
  virtual void InitRecPoints(); 
  
  void EndOfDetectorCycleRaws(Int_t specie, TObjArray** list);
  void EndOfDetectorCycleDigits(Int_t specie, TObjArray** list);
  void EndOfDetectorCycleRecPoints(Int_t specie, TObjArray** list);
  void EndOfDetectorCycleESDs(Int_t specie, TObjArray** list);

  virtual void MakeDigits(TTree* dig); 
  virtual void MakeESDs(AliESDEvent* esd) ;
  virtual void MakeRaws(AliRawReader* rawReader); 
  virtual void MakeRecPoints(TTree* recpo); 
  
  void ResetDetectorRaws(TObjArray* list);
  
private:

  AliMUONQADataMakerRec* Master() const;
  
  void BookHistograms(AliQAv1::TASKINDEX_t task);

  void FillReadoutStatus(AliMUONLogger& log, AliMUONVTrackerData* data, Int_t trigCl);
  
  void FillEventSize(AliRawReader* rawReader);
  
  void InitCommon();

  void InsertTrackerData(Int_t specie, TObjArray** list, TObject* object, 
                         Int_t indexNumber, 
                         Bool_t replace=kFALSE);
  
  void ProjectTrackerData(AliMUONVTrackerData* data, 
                          TH1& hbp,
                          TH1& hnevents,
                          TH1& hddl,
                          TH1& hddlevents);

  AliMUONVTrackerDataMaker* TrackerDataMaker(Int_t specie) const;

  AliMUONVTrackerDataMaker* TrackerDataMaker(Int_t specie, Bool_t create);
  
  AliMUONQAMappingCheck* MappingCheckRecPoints(Int_t specie, Bool_t create=kFALSE);
  
  AliMUONVTrackerData* TrackerCalData(Int_t specie, Bool_t create=kFALSE);
  
  AliMUONVTrackerData* TrackerRecData(Int_t specie, Bool_t create=kFALSE);
  
  TObjArray* GetArray(TObjArray*& array, Bool_t create);

private:
  /// Not implemented
  AliMUONTrackerQADataMakerRec(const AliMUONTrackerQADataMakerRec& rhs);
  /// Not implemented
  AliMUONTrackerQADataMakerRec& operator=(const AliMUONTrackerQADataMakerRec& rhs);
  
  AliMUONVDigitStore*   fDigitStore; //!< pointer to digits store
  AliMUONDigitMaker*    fDigitMaker;  //!< pointer to digit maker
  AliMUONVClusterStore* fClusterStore; //!< pointer to cluster store
	
  AliMUONCalibrationData* fCalibrationData; //!< Used to load Local, Regional and Global masks
  
  AliMUONLogger* fLogger; //!< (readout) error logger
  
  TH1* fBusPatchConfig; //!< bus patch configuration
  
  Double_t fBPxmin; //!< min bin value for bus patch
  Double_t fBPxmax; //!< max bin value for bus patch
  Int_t fBPnbins; //!< number of bus patch bins

  TObjArray* fTrackerDataMakerArray; //!< tracker data accumulation (Raws)  
  TObjArray* fTrackerCalDataArray; //!< tracker data accumulation (calibrated digits)  
  TObjArray* fTrackerRecDataArray; //!< tracker data accumulation (only calibrated digits belonging to reconstructed clusters)
  TObjArray* fMappingCheckRecPointsArray; //!< mapping cross-checker (RecPoints)  
  
  ClassDef(AliMUONTrackerQADataMakerRec,5)  // MUON Quality assurance data maker

};
#endif
 AliMUONTrackerQADataMakerRec.h:1
 AliMUONTrackerQADataMakerRec.h:2
 AliMUONTrackerQADataMakerRec.h:3
 AliMUONTrackerQADataMakerRec.h:4
 AliMUONTrackerQADataMakerRec.h:5
 AliMUONTrackerQADataMakerRec.h:6
 AliMUONTrackerQADataMakerRec.h:7
 AliMUONTrackerQADataMakerRec.h:8
 AliMUONTrackerQADataMakerRec.h:9
 AliMUONTrackerQADataMakerRec.h:10
 AliMUONTrackerQADataMakerRec.h:11
 AliMUONTrackerQADataMakerRec.h:12
 AliMUONTrackerQADataMakerRec.h:13
 AliMUONTrackerQADataMakerRec.h:14
 AliMUONTrackerQADataMakerRec.h:15
 AliMUONTrackerQADataMakerRec.h:16
 AliMUONTrackerQADataMakerRec.h:17
 AliMUONTrackerQADataMakerRec.h:18
 AliMUONTrackerQADataMakerRec.h:19
 AliMUONTrackerQADataMakerRec.h:20
 AliMUONTrackerQADataMakerRec.h:21
 AliMUONTrackerQADataMakerRec.h:22
 AliMUONTrackerQADataMakerRec.h:23
 AliMUONTrackerQADataMakerRec.h:24
 AliMUONTrackerQADataMakerRec.h:25
 AliMUONTrackerQADataMakerRec.h:26
 AliMUONTrackerQADataMakerRec.h:27
 AliMUONTrackerQADataMakerRec.h:28
 AliMUONTrackerQADataMakerRec.h:29
 AliMUONTrackerQADataMakerRec.h:30
 AliMUONTrackerQADataMakerRec.h:31
 AliMUONTrackerQADataMakerRec.h:32
 AliMUONTrackerQADataMakerRec.h:33
 AliMUONTrackerQADataMakerRec.h:34
 AliMUONTrackerQADataMakerRec.h:35
 AliMUONTrackerQADataMakerRec.h:36
 AliMUONTrackerQADataMakerRec.h:37
 AliMUONTrackerQADataMakerRec.h:38
 AliMUONTrackerQADataMakerRec.h:39
 AliMUONTrackerQADataMakerRec.h:40
 AliMUONTrackerQADataMakerRec.h:41
 AliMUONTrackerQADataMakerRec.h:42
 AliMUONTrackerQADataMakerRec.h:43
 AliMUONTrackerQADataMakerRec.h:44
 AliMUONTrackerQADataMakerRec.h:45
 AliMUONTrackerQADataMakerRec.h:46
 AliMUONTrackerQADataMakerRec.h:47
 AliMUONTrackerQADataMakerRec.h:48
 AliMUONTrackerQADataMakerRec.h:49
 AliMUONTrackerQADataMakerRec.h:50
 AliMUONTrackerQADataMakerRec.h:51
 AliMUONTrackerQADataMakerRec.h:52
 AliMUONTrackerQADataMakerRec.h:53
 AliMUONTrackerQADataMakerRec.h:54
 AliMUONTrackerQADataMakerRec.h:55
 AliMUONTrackerQADataMakerRec.h:56
 AliMUONTrackerQADataMakerRec.h:57
 AliMUONTrackerQADataMakerRec.h:58
 AliMUONTrackerQADataMakerRec.h:59
 AliMUONTrackerQADataMakerRec.h:60
 AliMUONTrackerQADataMakerRec.h:61
 AliMUONTrackerQADataMakerRec.h:62
 AliMUONTrackerQADataMakerRec.h:63
 AliMUONTrackerQADataMakerRec.h:64
 AliMUONTrackerQADataMakerRec.h:65
 AliMUONTrackerQADataMakerRec.h:66
 AliMUONTrackerQADataMakerRec.h:67
 AliMUONTrackerQADataMakerRec.h:68
 AliMUONTrackerQADataMakerRec.h:69
 AliMUONTrackerQADataMakerRec.h:70
 AliMUONTrackerQADataMakerRec.h:71
 AliMUONTrackerQADataMakerRec.h:72
 AliMUONTrackerQADataMakerRec.h:73
 AliMUONTrackerQADataMakerRec.h:74
 AliMUONTrackerQADataMakerRec.h:75
 AliMUONTrackerQADataMakerRec.h:76
 AliMUONTrackerQADataMakerRec.h:77
 AliMUONTrackerQADataMakerRec.h:78
 AliMUONTrackerQADataMakerRec.h:79
 AliMUONTrackerQADataMakerRec.h:80
 AliMUONTrackerQADataMakerRec.h:81
 AliMUONTrackerQADataMakerRec.h:82
 AliMUONTrackerQADataMakerRec.h:83
 AliMUONTrackerQADataMakerRec.h:84
 AliMUONTrackerQADataMakerRec.h:85
 AliMUONTrackerQADataMakerRec.h:86
 AliMUONTrackerQADataMakerRec.h:87
 AliMUONTrackerQADataMakerRec.h:88
 AliMUONTrackerQADataMakerRec.h:89
 AliMUONTrackerQADataMakerRec.h:90
 AliMUONTrackerQADataMakerRec.h:91
 AliMUONTrackerQADataMakerRec.h:92
 AliMUONTrackerQADataMakerRec.h:93
 AliMUONTrackerQADataMakerRec.h:94
 AliMUONTrackerQADataMakerRec.h:95
 AliMUONTrackerQADataMakerRec.h:96
 AliMUONTrackerQADataMakerRec.h:97
 AliMUONTrackerQADataMakerRec.h:98
 AliMUONTrackerQADataMakerRec.h:99
 AliMUONTrackerQADataMakerRec.h:100
 AliMUONTrackerQADataMakerRec.h:101
 AliMUONTrackerQADataMakerRec.h:102
 AliMUONTrackerQADataMakerRec.h:103
 AliMUONTrackerQADataMakerRec.h:104
 AliMUONTrackerQADataMakerRec.h:105
 AliMUONTrackerQADataMakerRec.h:106
 AliMUONTrackerQADataMakerRec.h:107
 AliMUONTrackerQADataMakerRec.h:108
 AliMUONTrackerQADataMakerRec.h:109
 AliMUONTrackerQADataMakerRec.h:110
 AliMUONTrackerQADataMakerRec.h:111
 AliMUONTrackerQADataMakerRec.h:112
 AliMUONTrackerQADataMakerRec.h:113
 AliMUONTrackerQADataMakerRec.h:114
 AliMUONTrackerQADataMakerRec.h:115
 AliMUONTrackerQADataMakerRec.h:116