]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTriggerElectronics.h
In AliMUONReconstructor:
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerElectronics.h
index a1c2808ecb717fb177f1f9d07ae7f41110eafd32..12d2f12fe3dbd966b87d447c1fa42dd7a488f49e 100644 (file)
@@ -5,14 +5,16 @@
 
 /* $Id$ */
 
-//*-- Author: Rachid Guernane (LPCCFd)
-
-#ifndef ROOT_TTask
-#  include "TTask.h"
-#endif
-
-#ifndef ROOT_TArrayI
-#  include "TArrayI.h"
+/// \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
 #endif
 
 class AliMUONTriggerCrate;
-class AliMUONData;
+class AliMUONCalibrationData;
 class AliMUONGlobalTriggerBoard;
-class TClonesArray;
+class AliMUONTriggerCrateStore;
+class AliMUONVTriggerStore;
+class AliMUONVDigitStore;
 
-class AliMUONTriggerElectronics : public TTask
+class AliMUONTriggerElectronics : public TObject
 {
    public:
-      AliMUONTriggerElectronics(AliMUONData* Data = 0);
-      virtual ~AliMUONTriggerElectronics();
+      AliMUONTriggerElectronics(AliMUONCalibrationData* calibData=0);
 
-      virtual void Exec(Option_t*);
-      
-//    CRATE CONFIG FROM ASCII FILE
-      virtual void SetDataSource(TString SourceFile = "$ALICE_ROOT/MUON/data/CRATE.TXT") 
-      {fSourceFileName = SourceFile;}
-
-      virtual void Factory();
-      virtual void AddCrate(char *name);
+      virtual ~AliMUONTriggerElectronics();
 
-      virtual AliMUONTriggerCrate* Crate(char *name);
+      virtual void Factory(AliMUONCalibrationData* calibData);
+      void LoadMasks(AliMUONCalibrationData* calibData);
 
-      virtual void Feed();
       virtual void Feed(UShort_t pattern[2][4]);
-               virtual void FeedM();
-
-      virtual void BoardName(Int_t ix, Int_t iy, char *name);
-
+      virtual void Feed(const AliMUONVDigitStore& digitStore);
+      virtual void Feed(AliMUONVTriggerStore& triggerStore);
       virtual void Reset();
 
       virtual void Scan(Option_t *option);
@@ -55,31 +49,39 @@ class AliMUONTriggerElectronics : public TTask
       virtual void RegionalResponse();
       virtual void GlobalResponse();
 
-      virtual void BuildName(Int_t icirc, char name[20]);
-
       virtual void DumpOS();
 
-      virtual void Digits2Trigger();
-      virtual void Trigger();
-      virtual void ClearDigitNumbers();
-      virtual void DigitFiredCircuit(Int_t circuit, Int_t cathode, Int_t chamber, Int_t digit);
+      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);
 
-//      virtual AliMUONData* GetMUONData() {return fMUONData;}
+      /// Return Crate array
+      AliMUONTriggerCrateStore* GetCrateStore() {return fCrates;}
 
    private:
-      TString                    fSourceFileName;
-      TClonesArray              *fCrates;
-      AliMUONGlobalTriggerBoard *fGlobalTriggerBoard;
-      Int_t                      fNCrates;
-      static const Int_t         fgkNCrates;
-      UShort_t                   fLocal[16][16];     // 16 crates of 16 LB
-      UShort_t                   fRegional[16];
-      UShort_t                   fGlobal;
-      AliMUONData               *fMUONData;          //! Data container for MUON subsystem 
-      TArrayI                    fDigitNumbers[234]; //! The digit number that fired a circuit.
-      char                     **fCrateMap;
-      Int_t                      fBoardMap[234];
-
-   ClassDef(AliMUONTriggerElectronics,1)
+      /// Not implemented
+      AliMUONTriggerElectronics(const AliMUONTriggerElectronics& right);
+      /// Not implemented
+      AliMUONTriggerElectronics&  operator = (const AliMUONTriggerElectronics& right);
+
+      void FeedCopyNeighbours();
+     
+      /// set copy card array
+      void SetCopyInput();
+
+   private:
+      TList*                     fCopyXInput[2];         ///< list of copy X input from local to local board
+      TList*                     fCopyYInput[2];         ///< list of copy Y input from local to local board
+      AliMUONTriggerCrateStore  *fCrates;             ///< Crate array
+      AliMUONGlobalTriggerBoard *fGlobalTriggerBoard; ///< Global trigger board
+      
+   ClassDef(AliMUONTriggerElectronics,4) //Manager class for muon trigger electronics
 };
 #endif