X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONTriggerCircuit.h;h=1b31eec9920ab6076f4855d69ca9c32494a98cba;hb=705e618657cdb51bdd37c3d79fa0af8cdbb4cc07;hp=4cd6f2091a63cbdc1e8fac2630035605b23df01e;hpb=5398f94668e02dcbf8366fd69a3a87777c1476d2;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONTriggerCircuit.h b/MUON/AliMUONTriggerCircuit.h index 4cd6f2091a6..1b31eec9920 100644 --- a/MUON/AliMUONTriggerCircuit.h +++ b/MUON/AliMUONTriggerCircuit.h @@ -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 @@ -10,77 +10,72 @@ /// \class AliMUONTriggerCircuit /// \brief MUON Trigger circuit /// -/// \author Philippe Crochet (LPCCFd) +// Author Philippe Crochet (LPCCFd) #include -#include +#include -class TObjArray; +#include "AliMpPad.h" +#include "AliMpVSegmentation.h" +#include "AliMUONGeometryTransformer.h" + +class AliMpLocalBoard; class AliMUONTriggerCircuit : public TObject { - public: - 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 GetY11Pos(Int_t localBoardId, Int_t istrip) const; + Float_t GetY21Pos(Int_t localBoardId, Int_t istrip) const; + Float_t GetX11Pos(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) {fTransformer = transformer;} + /// Get pointer to transformations + const AliMUONGeometryTransformer* GetTransformer() const {return fTransformer;} + 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* localBoard); + void LoadXPos(AliMpLocalBoard* localBoard); - void Print(Option_t* opt="") const; + Int_t FirstStrip(AliMpLocalBoard* localBoard); + + void FillXstrips(const Int_t icol, + const Int_t iFirstStrip, const Int_t iLastStrip, + Int_t liStripCircuit, TArrayF& ypos); - 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(); - - 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); + - ClassDef(AliMUONTriggerCircuit,1) // Trigger Circuit class -}; -#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 + const AliMUONGeometryTransformer* fTransformer; //!< pointer to transformation + const AliMpVSegmentation* fCurrentSeg; //!< current segmentation + Int_t fCurrentDetElem; //!< current detection elt id + Int_t fCurrentLocalBoard; //!< current local board id + ClassDef(AliMUONTriggerCircuit,1) // Trigger Circuit class +}; +#endif