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

// $Id$

/// \ingroup rec
/// \class AliMUONTriggerQADataMakerRec
/// \brief MUON Quality assurance data maker for MTR
///

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

class AliMUONCalibrationData;
class AliMUONDigitMaker;
class AliMUONVClusterStore;
class AliMUONTriggerElectronics;
class AliMUONVDigitStore;
class TObjectArray;
class TMap;
class AliMpDCSNamer;
class AliMUONVTriggerStore;
class AliMUONGlobalTrigger;
class AliMUONTriggerUtilities;

class AliMUONTriggerQADataMakerRec: public AliMUONVQADataMakerRec {

public:
  AliMUONTriggerQADataMakerRec(AliQADataMakerRec* master);         
  virtual ~AliMUONTriggerQADataMakerRec();
  
  virtual void InitRaws(); 
  virtual void InitRecPoints(); 
  virtual void InitDigits(); 
  virtual void InitESDs(); 
  
  void EndOfDetectorCycleRaws(Int_t specie, TObjArray** list);
  void EndOfDetectorCycleRecPoints(Int_t specie, TObjArray** list);
  void EndOfDetectorCycleESDs(Int_t specie, TObjArray** list);
  
  /// Empty implementation
  void EndOfDetectorCycleDigits(Int_t , TObjArray** ) {}
    
  virtual void MakeRaws(AliRawReader* rawReader); 
  
  virtual void MakeDigits(TTree* dig); 
  virtual void MakeRecPoints(TTree* recpo); 
  virtual void MakeESDs(AliESDEvent* esd) ;
  
  void ResetDetectorRaws(TObjArray* list);
  
private:
  /// Not implemented
  AliMUONTriggerQADataMakerRec(const AliMUONTriggerQADataMakerRec& qadm);   
  /// Not implemented
  AliMUONTriggerQADataMakerRec& operator=(const AliMUONTriggerQADataMakerRec& qadm);

  void DisplayTriggerInfo(Int_t itc);
  void FillRatio4434Histos(Int_t evtInterval, Int_t itc, Bool_t isEndOfCycle);
  Bool_t FillTriggerDCSHistos();
  TObjArray* GetDCSValues(Int_t iMeas, Int_t detElemId,
			  TMap* triggerDcsMap, AliMpDCSNamer& triggerDcsNamer);
  UChar_t RawTriggerInGlobal2OutGlobal(UInt_t globalInput[4]);
  void RawTriggerMatchOutLocal();
  //void RawTriggerMatchOutLocalInRegional();
  void RawTriggerMatchOutGlobal(AliMUONGlobalTrigger& inputLocalTrigger,
				AliMUONGlobalTrigger& recoGlobalTrigger,
				Char_t histo);
  AliMUONTriggerElectronics* TriggerElectronics();
  AliMUONCalibrationData* CalibrationData();
  AliMUONTriggerUtilities* TriggerUtilities();

  //Int_t fTriggerOutputRegionalData[16]; ///< Data Regional Trigger decision for each Regional Board (1R:0, 2R:1, ... , 1L:8, ...) -> 4 bits LPt, 4 bits HPt
  //Int_t fTriggerInputRegionalRecLPt[2][16][16]; ///< Reconstructed Regional Input LPt for each Regional Board ([bit][reg][loc]) (reg -> 1R:0, 2R:1, ... , 1L:8, ...)
  //Int_t fTriggerInputRegionalRecHPt[2][16][16]; ///< Reconstructed Regional Input HPt for each Regional Board ([bit][reg][loc]) (reg -> 1R:0, 2R:1, ... , 1L:8, ...)
  //Int_t fTriggerOutputRegionalRec[16]; ///< Reconstructed Regional Trigger decision for each Regional Board (8 Bits)

  //Int_t fTriggerInputGlobalDataLPt[16][4]; ///< Data Global inputs LPt (1R:0, 2R:1, ... , 1L:8, ...)
  //Int_t fTriggerInputGlobalDataHPt[16][4]; ///< Data Global inputs HPt (1R:0, 2R:1, ... , 1L:8, ...)
  //Int_t fTriggerOutputGlobalRecFromLocalInput[6]; //< Reconstructed Global outputs from Local inputs
  //Int_t fTriggerOutputGlobalRecFromLocalOutput[6]; //< Reconstructed Global outputs from Local outputs

  static const Int_t fgkUpdateRatio4434=50; ///< Event interval between 2 update of the Ratio4434 histos
  
  AliMUONDigitMaker* fDigitMaker; //!< pointer to digit maker
  AliMUONCalibrationData* fCalibrationData; //!< Used to load Local, Regional and Global masks
  AliMUONTriggerElectronics* fTriggerProcessor; //!< trigger processore to re-compute response
  AliMUONVDigitStore* fDigitStore; //!< pointer to digits store
  AliMUONVDigitStore* fDigitStoreFromRaw; //!< pointer to digit store from RAW data
  AliMUONVTriggerStore* fTriggerStoreFromRaw; //!< pointer to trigger store from input RAW data
  AliMUONVTriggerStore* fTriggerStoreReprocessRaw; //!< pointer to trigger store from re-computed RAW data
  AliMUONTriggerUtilities* fTriggerUtils; //! trigger utilities (for masks)
  
  ClassDef(AliMUONTriggerQADataMakerRec,3)  // MUON Quality assurance data maker

};

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