]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTriggerCircuit.h
reverting...
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerCircuit.h
index 5f38dfe3f13e7882927150c6b2b7262bcebe28df..5f8c643a085c665f162de4f4b2b48c71fb3e7679 100644 (file)
@@ -1,86 +1,85 @@
 #ifndef ALIMUONTRIGGERCIRCUIT_H
 #define ALIMUONTRIGGERCIRCUIT_H
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice                               */
+* See cxx source for full Copyright notice                               */
 
 /* $Id$ */
 // Revision of includes 07/05/2004
+//
+/// \ingroup base
+/// \class AliMUONTriggerCircuit
+/// \brief MUON Trigger circuit
+///
+//  Author Philippe Crochet (LPCCFd)
 
 #include <TObject.h>
 #include <TObjArray.h>
-
-class AliSegmentation;
-class AliMUONGeometrtSegmentation;
+#include "AliMpPad.h"
+#include "AliMUONGeometryTransformer.h"
+#include "AliMpVSegmentation.h"
 
 class TObjArray;
+class AliMUONTriggerCrateStore;
+class AliMUONGeometryTransformer;
 
 class AliMUONTriggerCircuit : public TObject 
 {
- public: 
+public: 
   AliMUONTriggerCircuit();  
-  virtual ~AliMUONTriggerCircuit(){;} 
+  virtual ~AliMUONTriggerCircuit();
+     // copy constructor
+  AliMUONTriggerCircuit(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); 
+  // assignment operator
+  AliMUONTriggerCircuit& operator=(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); 
 
   // initializations
-  void Init(Int_t iCircuit);    
+  void Init(Int_t iCircuit, const AliMUONTriggerCrateStore& crates);    
   
-  // get calculated pt
-  Float_t PtCal(Int_t istripX, Int_t idev, Int_t istripY);
-
   //--- methods which return member data related info
-  Int_t   GetIdCircuit() const;
-  Int_t   GetIdModule() const;
-  Int_t   GetNstripX() const;
-  Int_t   GetNstripY() const;
-  Int_t   GetPosCircuit() const;
-  Int_t   GetIdCircuitD() const;
-  Int_t   GetICircuitD() const;
-  Int_t   GetIdCircuitU() const;
-  Int_t   GetICircuitU() const;
-  Int_t   GetX2m() const;
-  Int_t   GetX2ud() const;
-  void    GetOrMud(Int_t orMud[2]) const;
-  Int_t   GetXcode(Int_t chamber, Int_t istrip) const;
-  Int_t   GetYcode(Int_t chamber, Int_t istrip) const;
   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, Int_t idModule);
+  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);
+  
+  //  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;}
 
- protected:
-  // copy constructor
-  AliMUONTriggerCircuit(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); 
-  // assignment operator
-  AliMUONTriggerCircuit& operator=(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); 
+private:
 
- private:
-  Int_t CircuitNumber(Int_t idCircuit) const;
-  Int_t ModuleNumber(Int_t idModule) const; 
-  Int_t Module(Int_t idCircuit) const;
-  Int_t Position(Int_t idCircuit) const;
-  void LoadX2();
-  void LoadXCode();
-  void LoadYCode();
-  void LoadYPos();
-  void LoadXPos();
-  void LoadYPos2();
-  void LoadXPos2();
-   
-  ClassDef(AliMUONTriggerCircuit,1) // Trigger Circuit class
-    
- private:    
-  Int_t fIdCircuit;            // circuit Id number
-  Int_t fX2m;                  // internal info needed by TriggerDecision
-  Int_t fX2ud;                 // internal info needed by TriggerDecision
-  Int_t fOrMud[2];             // internal info needed by TriggerDecision
-  Int_t fXcode[4][32];         // code of X strips
-  Int_t fYcode[4][32];         // code of Y strips 
-  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
-  //  Int_t fSegmentationType;     // segmentation old / new
+  void LoadYPos(const AliMUONTriggerCrateStore& crates);
+  void LoadXPos(const AliMUONTriggerCrateStore& crates);
+  Int_t FirstStrip(const char* localBoardName);
 
-};
-#endif
+  void FillXstrips(const AliMpVSegmentation* seg,
+                  const Int_t detElemId, const Int_t icol, 
+                   const Int_t iFirstStrip, const Int_t iLastStrip,
+                   Int_t liStripCircuit, Float_t *tab);
+  
+  void FillYstrips(const AliMpVSegmentation* seg,
+                  const Int_t detElemId, 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]);    
+  
 
+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
 
+  const AliMUONGeometryTransformer* fTransformer; //!< pointer to transformation
+
+  ClassDef(AliMUONTriggerCircuit,1) // Trigger Circuit class
+};
+#endif