X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONTriggerCircuit.h;h=5b226025c2ba99fc4e74c1e8bf0b1e2fa4876063;hb=9153ce65fe6d020f4dc4d67df48a53d0117c5769;hp=8688058a884a110f39f1b9dfcee8988731a4d96b;hpb=30178c30974cdd6a3b59f09e4d479925642e175b;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONTriggerCircuit.h b/MUON/AliMUONTriggerCircuit.h index 8688058a884..5b226025c2b 100644 --- a/MUON/AliMUONTriggerCircuit.h +++ b/MUON/AliMUONTriggerCircuit.h @@ -1,88 +1,90 @@ #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 -#include +#include -#include "AliSegmentation.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); - // initializations - void Init(Int_t iCircuit); + //--- 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; + + // 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); - // get calculated pt - Float_t PtCal(Int_t istripX, Int_t idev, Int_t istripY); + /// 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: - //--- 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; - - // Get reference to segmentation model - virtual AliSegmentation* SegmentationModel(Int_t isec) { - return (AliSegmentation *) (*fSegmentation)[isec-1]; - } + void LoadYPos(AliMpLocalBoard* const localBoard); + void LoadXPos(AliMpLocalBoard* const localBoard); - protected: - // copy constructor - AliMUONTriggerCircuit(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); - // assignment operator - AliMUONTriggerCircuit& operator=(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); + Int_t FirstStrip(AliMpLocalBoard* localBoard); - TObjArray *fSegmentation; // pointer to segmentation + void FillXstrips(const Int_t icol, + const Int_t iFirstStrip, const Int_t iLastStrip, + Int_t liStripCircuit, const Bool_t is11); + + 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 LoadYPos(); - void LoadXPos(); + void XYGlobal(const AliMpPad& pad, + Double_t* xyGlobal); - 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 -}; -#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