X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONTriggerCircuit.h;h=5b226025c2ba99fc4e74c1e8bf0b1e2fa4876063;hb=bc079e3dcc4b5b6a6f41f6667abe9552a309e785;hp=7458983fa4b4dc2ecf26278796a35779646aecbd;hpb=8ff54bb6cadc1d5b70fba3d88b9c442557c471d7;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONTriggerCircuit.h b/MUON/AliMUONTriggerCircuit.h index 7458983fa4b..5b226025c2b 100644 --- a/MUON/AliMUONTriggerCircuit.h +++ b/MUON/AliMUONTriggerCircuit.h @@ -10,75 +10,81 @@ /// \class AliMUONTriggerCircuit /// \brief MUON Trigger circuit /// -/// \author Philippe Crochet (LPCCFd) +// Author Philippe Crochet (LPCCFd) #include -#include -#include "AliMpPad.h" -#include "AliMUONGeometryTransformer.h" -#include "AliMpVSegmentation.h" +#include -class TObjArray; -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); - void SetTransformer(const AliMUONGeometryTransformer* transformer) {fTransformer = transformer;} - + /// 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; + 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