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

/* $Id$ */

/// \ingroup sim 
/// \class AliMUONTriggerElectronics
/// \brief Manager class for muon trigger electronics
///
/// Client of trigger board classes
///
/// \author Rachid Guernane (LPCCFd)

#ifndef ROOT_TObject
#  include "TObject.h"
#endif

#ifndef ROOT_TString
#  include "TString.h"
#endif

class AliMUONTriggerCrate;
class AliMUONCalibrationData;
class AliMUONGlobalTriggerBoard;
class AliMUONTriggerCrateStore;
class AliMUONVTriggerStore;
class AliMUONVDigitStore;

class AliMUONTriggerElectronics : public TObject
{
   public:
      AliMUONTriggerElectronics(AliMUONCalibrationData* calibData=0);

      virtual ~AliMUONTriggerElectronics();

      virtual void Factory(AliMUONCalibrationData* calibData);
      void LoadMasks(AliMUONCalibrationData* calibData);

      virtual void Feed(UShort_t pattern[2][4]);
      virtual void Feed(const AliMUONVDigitStore& digitStore);
      virtual void Feed(const AliMUONVTriggerStore& triggerStore);
      virtual void Reset();

      virtual void Scan(const Option_t *option);

      virtual void LocalResponse();
      virtual void RegionalResponse();
      virtual void GlobalResponse();

      virtual void DumpOS();

      virtual void Digits2Trigger(const AliMUONVDigitStore& digitStore,
                                  AliMUONVTriggerStore& triggerStore);

      virtual Bool_t ModifiedLocalResponse(Int_t loCircuit,
					   Bool_t& bendingPlaneResp,
					   Bool_t& nonBendingPlaneResp,
					   Bool_t isCoinc44 = kFALSE,
					   Int_t removeChamber = -1);

      virtual void ResponseRemovingChambers(AliMUONVTriggerStore& triggerStore);

      /// Return Crate array
      AliMUONTriggerCrateStore* GetCrateStore() {return fCrates;}

   private:
      /// Not implemented
      AliMUONTriggerElectronics(const AliMUONTriggerElectronics& right);
      /// Not implemented
      AliMUONTriggerElectronics&  operator = (const AliMUONTriggerElectronics& right);

      void FeedCopyNeighbours();
    

   private:
      AliMUONTriggerCrateStore  *fCrates;             ///< Crate array
      AliMUONGlobalTriggerBoard *fGlobalTriggerBoard; ///< Global trigger board
      
   ClassDef(AliMUONTriggerElectronics,4) //Manager class for muon trigger electronics
};
#endif
 AliMUONTriggerElectronics.h:1
 AliMUONTriggerElectronics.h:2
 AliMUONTriggerElectronics.h:3
 AliMUONTriggerElectronics.h:4
 AliMUONTriggerElectronics.h:5
 AliMUONTriggerElectronics.h:6
 AliMUONTriggerElectronics.h:7
 AliMUONTriggerElectronics.h:8
 AliMUONTriggerElectronics.h:9
 AliMUONTriggerElectronics.h:10
 AliMUONTriggerElectronics.h:11
 AliMUONTriggerElectronics.h:12
 AliMUONTriggerElectronics.h:13
 AliMUONTriggerElectronics.h:14
 AliMUONTriggerElectronics.h:15
 AliMUONTriggerElectronics.h:16
 AliMUONTriggerElectronics.h:17
 AliMUONTriggerElectronics.h:18
 AliMUONTriggerElectronics.h:19
 AliMUONTriggerElectronics.h:20
 AliMUONTriggerElectronics.h:21
 AliMUONTriggerElectronics.h:22
 AliMUONTriggerElectronics.h:23
 AliMUONTriggerElectronics.h:24
 AliMUONTriggerElectronics.h:25
 AliMUONTriggerElectronics.h:26
 AliMUONTriggerElectronics.h:27
 AliMUONTriggerElectronics.h:28
 AliMUONTriggerElectronics.h:29
 AliMUONTriggerElectronics.h:30
 AliMUONTriggerElectronics.h:31
 AliMUONTriggerElectronics.h:32
 AliMUONTriggerElectronics.h:33
 AliMUONTriggerElectronics.h:34
 AliMUONTriggerElectronics.h:35
 AliMUONTriggerElectronics.h:36
 AliMUONTriggerElectronics.h:37
 AliMUONTriggerElectronics.h:38
 AliMUONTriggerElectronics.h:39
 AliMUONTriggerElectronics.h:40
 AliMUONTriggerElectronics.h:41
 AliMUONTriggerElectronics.h:42
 AliMUONTriggerElectronics.h:43
 AliMUONTriggerElectronics.h:44
 AliMUONTriggerElectronics.h:45
 AliMUONTriggerElectronics.h:46
 AliMUONTriggerElectronics.h:47
 AliMUONTriggerElectronics.h:48
 AliMUONTriggerElectronics.h:49
 AliMUONTriggerElectronics.h:50
 AliMUONTriggerElectronics.h:51
 AliMUONTriggerElectronics.h:52
 AliMUONTriggerElectronics.h:53
 AliMUONTriggerElectronics.h:54
 AliMUONTriggerElectronics.h:55
 AliMUONTriggerElectronics.h:56
 AliMUONTriggerElectronics.h:57
 AliMUONTriggerElectronics.h:58
 AliMUONTriggerElectronics.h:59
 AliMUONTriggerElectronics.h:60
 AliMUONTriggerElectronics.h:61
 AliMUONTriggerElectronics.h:62
 AliMUONTriggerElectronics.h:63
 AliMUONTriggerElectronics.h:64
 AliMUONTriggerElectronics.h:65
 AliMUONTriggerElectronics.h:66
 AliMUONTriggerElectronics.h:67
 AliMUONTriggerElectronics.h:68
 AliMUONTriggerElectronics.h:69
 AliMUONTriggerElectronics.h:70
 AliMUONTriggerElectronics.h:71
 AliMUONTriggerElectronics.h:72
 AliMUONTriggerElectronics.h:73
 AliMUONTriggerElectronics.h:74
 AliMUONTriggerElectronics.h:75
 AliMUONTriggerElectronics.h:76
 AliMUONTriggerElectronics.h:77
 AliMUONTriggerElectronics.h:78
 AliMUONTriggerElectronics.h:79
 AliMUONTriggerElectronics.h:80
 AliMUONTriggerElectronics.h:81
 AliMUONTriggerElectronics.h:82
 AliMUONTriggerElectronics.h:83