]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTriggerCircuit.h
Updates to AddTask macro from Chris
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerCircuit.h
index 3643eb40f75145e1fc1bdd4638728e1e05e081da..5b226025c2ba99fc4e74c1e8bf0b1e2fa4876063 100644 (file)
@@ -6,80 +6,85 @@
 /* $Id$ */
 // Revision of includes 07/05/2004
 //
-/// \ingroup trigger
+/// \ingroup base
 /// \class AliMUONTriggerCircuit
 /// \brief MUON Trigger circuit
 ///
 //  Author Philippe Crochet (LPCCFd)
 
 #include <TObject.h>
-#include "AliMpPad.h"
-#include "AliMUONGeometryTransformer.h"
-#include "AliMpVSegmentation.h"
+#include <TArrayF.h>
 
-class AliMUONTriggerCrateStore;
+class AliMpLocalBoard;
 class AliMUONGeometryTransformer;
+class AliMpPad;
+class AliMpVSegmentation;
 
 class AliMUONTriggerCircuit : public TObject 
 {
 public: 
-  AliMUONTriggerCircuit();  
+  AliMUONTriggerCircuit(const AliMUONGeometryTransformer* transformer);  
   virtual ~AliMUONTriggerCircuit();
      // copy constructor
   AliMUONTriggerCircuit(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); 
   // assignment operator
   AliMUONTriggerCircuit& operator=(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); 
 
-  // initializations
-  void Init(Int_t iCircuit, const AliMUONTriggerCrateStore& crates);    
-  
   //--- methods which return member data related info
-  Float_t GetY11Pos(Int_t istrip) const;
-  Float_t GetY21Pos(Int_t istrip) const;
-  Float_t GetX11Pos(Int_t istrip) const;
-  Int_t   DetElemId(Int_t ichamber, char side, Int_t iline);
-  void DecodeBoardName(const char* boardName, char& side,
-                       Int_t& iLine,
-                       Int_t& iCol);
-  Int_t DetElemId(Int_t ichamber, const char* localBoardName);
-  
+  Float_t GetX11Pos(Int_t localBoardId, Int_t istrip) const;
+  Float_t GetY11Pos(Int_t localBoardId, Int_t istrip) const;
+  Float_t GetY21Pos(Int_t localBoardId, Int_t istrip) const;
+  Float_t GetZ11Pos(Int_t localBoardId, Int_t istrip) const;
+  Float_t GetZ21Pos(Int_t localBoardId, Int_t istrip) const;
+  Float_t GetX11Width(Int_t localBoardId, Int_t istrip) const;
+  Float_t GetY11Width(Int_t localBoardId, Int_t istrip) const;
+  Float_t GetY21Width(Int_t localBoardId, Int_t istrip) const;
+
   //  void Print(Option_t* opt="") const;
   //  void dump(const char* what, const Float_t* array, Int_t size);
   //  void dump(const char* what, const Int_t* array, Int_t size);
   
   /// Set pointer to transformations
-  void  SetTransformer(const AliMUONGeometryTransformer* transformer) {fTransformer = transformer;}
+  void  SetTransformer(const AliMUONGeometryTransformer* transformer) {fkTransformer = transformer;}
   /// Get pointer to transformations
-  const AliMUONGeometryTransformer* GetTransformer() {return fTransformer;}
-
+  const AliMUONGeometryTransformer* GetTransformer() const {return fkTransformer;}
+  Float_t PtCal(Int_t localBoardId, Int_t istripX, Int_t idev, Int_t istripY) const;
+  
 private:
 
-  void LoadYPos(const AliMUONTriggerCrateStore& crates);
-  void LoadXPos(const AliMUONTriggerCrateStore& crates);
-  Int_t FirstStrip(const char* localBoardName);
+  void LoadYPos(AliMpLocalBoard* const localBoard);
+  void LoadXPos(AliMpLocalBoard* const localBoard);
+
+  Int_t FirstStrip(AliMpLocalBoard* localBoard);
 
-  void FillXstrips(const AliMpVSegmentation* seg,
-                  const Int_t detElemId, const Int_t icol, 
+  void FillXstrips(const Int_t icol, 
                    const Int_t iFirstStrip, const Int_t iLastStrip,
-                   Int_t liStripCircuit, Float_t *tab);
+                   Int_t liStripCircuit, const Bool_t is11);
   
-  void FillYstrips(const AliMpVSegmentation* seg,
-                  const Int_t detElemId, const Int_t iFirstStrip,
+  void FillYstrips(const Int_t iFirstStrip,
                    const Int_t iLastStrip, Int_t liStripCircuit,
                    const Bool_t doubling);
 
-  void XYGlobal(Int_t detElemId, const AliMpPad& pad,
-                Double_t xyGlobal[4]);    
+  void XYGlobal(const AliMpPad& pad,
+                Double_t* xyGlobal);    
   
 
 private:    
-  Int_t fILocalBoard;          ///< local board number
-  Float_t fXpos11[16];         ///< X position of Y strips in MC11
-  Float_t fYpos11[31];         ///< Y position of X strips in MC11
-  Float_t fYpos21[63];         ///< Y position of X strips in MC21
+  TArrayF fXpos11[235];         ///< X position of Y strips in MC11
+  TArrayF fYpos11[235];         ///< Y position of X strips in MC11
+  TArrayF fYpos21[235];         ///< Y position of X strips in MC21
+  TArrayF fZpos11[235];         ///< Z position of X strips in MC11
+  TArrayF fZpos21[235];         ///< Z position of X strips in MC21
+  TArrayF fXwidth11[235];         ///< width of Y strips in MC11
+  TArrayF fYwidth11[235];         ///< width of X strips in MC11
+  TArrayF fYwidth21[235];         ///< width of X strips in MC21
+
+  const AliMUONGeometryTransformer* fkTransformer; //!< pointer to transformation
+  const AliMpVSegmentation* fkCurrentSeg;          //!< current segmentation
 
-  const AliMUONGeometryTransformer* fTransformer; //!< pointer to transformation
+  Int_t fCurrentDetElem;                          //!< current detection elt id
+  Int_t fCurrentLocalBoard;                       //!< current local board id
 
-  ClassDef(AliMUONTriggerCircuit,1) // Trigger Circuit class
+  ClassDef(AliMUONTriggerCircuit,2) // Trigger Circuit class
 };
 #endif