]> 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 951ff0f5bc673eb2cb5cf5b57c886fac050e57d3..5b226025c2ba99fc4e74c1e8bf0b1e2fa4876063 100644 (file)
@@ -1,7 +1,7 @@
 #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
 /// \class AliMUONTriggerCircuit
 /// \brief MUON Trigger circuit
 ///
-/// \author Philippe Crochet (LPCCFd)
+//  Author Philippe Crochet (LPCCFd)
 
 #include <TObject.h>
-#include <TObjArray.h>
+#include <TArrayF.h>
 
-class TObjArray;
+class AliMpLocalBoard;
+class AliMUONGeometryTransformer;
+class AliMpPad;
+class AliMpVSegmentation;
 
 class AliMUONTriggerCircuit : public TObject 
 {
- public: 
-  AliMUONTriggerCircuit();  
-  virtual ~AliMUONTriggerCircuit(){;} 
+public: 
+  AliMUONTriggerCircuit(const AliMUONGeometryTransformer* transformer);  
+  virtual ~AliMUONTriggerCircuit();
+     // copy constructor
+  AliMUONTriggerCircuit(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); 
+  // assignment operator
+  AliMUONTriggerCircuit& operator=(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); 
+
+  //--- methods which return member data related info
+  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;
 
-  // initializations
-  void Init(Int_t iCircuit);    
+  //  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) {fkTransformer = transformer;}
+  /// Get pointer to transformations
+  const AliMUONGeometryTransformer* GetTransformer() const {return fkTransformer;}
+  Float_t PtCal(Int_t localBoardId, Int_t istripX, Int_t idev, Int_t istripY) const;
   
-  // get calculated pt
-  Float_t PtCal(Int_t istripX, Int_t idev, Int_t istripY);
+private:
 
-  //--- 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);
+  void LoadYPos(AliMpLocalBoard* const localBoard);
+  void LoadXPos(AliMpLocalBoard* const localBoard);
+
+  Int_t FirstStrip(AliMpLocalBoard* localBoard);
 
-  void Print(Option_t* opt="") const;
+  void FillXstrips(const Int_t icol, 
+                   const Int_t iFirstStrip, const Int_t iLastStrip,
+                   Int_t liStripCircuit, const Bool_t is11);
   
- protected:
-  // copy constructor
-  AliMUONTriggerCircuit(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); 
-  // assignment operator
-  AliMUONTriggerCircuit& operator=(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); 
+  void FillYstrips(const Int_t iFirstStrip,
+                   const Int_t iLastStrip, Int_t liStripCircuit,
+                   const Bool_t doubling);
 
- 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 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
+  void XYGlobal(const AliMpPad& pad,
+                Double_t* xyGlobal);    
+  
 
-};
-#endif
+private:    
+  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
 
+  Int_t fCurrentDetElem;                          //!< current detection elt id
+  Int_t fCurrentLocalBoard;                       //!< current local board id
 
+  ClassDef(AliMUONTriggerCircuit,2) // Trigger Circuit class
+};
+#endif