X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSsegmentationSSD.h;h=6c38737ca78c0b4403893381d4c0593e3e7a337f;hb=6551594bacbfb878bf120d44d6bf9e5aff4675ad;hp=74332009f5c4459c156712c0190a7f3ed045c8a5;hpb=aacedc3e54091806a9c6d356fd7f582df59fd73f;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSsegmentationSSD.h b/ITS/AliITSsegmentationSSD.h index 74332009f5c..6c38737ca78 100644 --- a/ITS/AliITSsegmentationSSD.h +++ b/ITS/AliITSsegmentationSSD.h @@ -5,12 +5,13 @@ // segmentation for SSD +/* $Id$ */ + class AliITSsegmentationSSD : public AliITSsegmentation { public: - AliITSsegmentationSSD(); - AliITSsegmentationSSD(AliITSgeom *gm); + AliITSsegmentationSSD(Option_t *opt=""); AliITSsegmentationSSD(const AliITSsegmentationSSD &source); virtual ~AliITSsegmentationSSD(){} AliITSsegmentationSSD& operator=(const AliITSsegmentationSSD &source); @@ -27,21 +28,15 @@ public AliITSsegmentation { // Set stereo angles Pside-Nside - virtual void SetAngles(Float_t pa=0.0175, Float_t na=0.0175) - {fStereoPl5=pa; fStereoNl5=na; - fStereoPl6=na; fStereoNl6=pa;} - - virtual void SetAnglesLay5(Float_t pa=0.0075, Float_t na=0.0275) - {fStereoPl5=pa; fStereoNl5=na;} - - virtual void SetAnglesLay6(Float_t pa=0.0275, Float_t na=0.0075) - {fStereoPl6=pa; fStereoNl6=na;} + virtual void SetAngles(Float_t pa=0.0075, Float_t na=0.0275) + {fStereoP=pa; fStereoN=na;} // Set stereo angles Pside-Nside // Transform from real coordinates to strips virtual void GetPadIxz(Float_t x ,Float_t z ,Int_t &iP,Int_t &iN) const; // Transform from strips to real coordinates - virtual void GetPadCxz(Int_t iP, Int_t iN, Float_t &x , Float_t &z) const; + void GetPadCxz(Float_t iP, Float_t iN, Float_t &x , Float_t &z) const; + virtual void GetPadCxz(Int_t iP, Int_t iN, Float_t &x , Float_t &z) const { GetPadCxz((Float_t) iP, (Float_t) iN, x, z); } virtual void GetPadTxz(Float_t &x , Float_t &z) const; // Transformation from Geant cm detector center local coordinates // to detector P and N side strip numbers.. @@ -50,11 +45,16 @@ public AliITSsegmentation { // from 0. iPN=0 for P side and 1 for N side strip. Returned is z=0.0 // and the corresponding x value.. virtual void DetToLocal(Int_t ix,Int_t iPN,Float_t &x,Float_t &z) const; - // Given one P side strip and one N side strip, Returns kTRUE if they - // cross each other and the location of the two crossing strips and - // their correxlation matrix c[2][2]. - virtual Bool_t GetCrossing(Int_t iP,Int_t iN,Float_t &x,Float_t &z, - Float_t c[2][2]); + + virtual Int_t GetNumberOfChips() const { + return fgkNchipsPerSide; + } + virtual Int_t GetMaximumChipIndex() const{ + return fgkNchipsPerSide*2-1; + } + virtual Int_t GetChipFromLocal(Float_t xloc, Float_t zloc) const; + virtual Int_t GetChipFromChannel(Int_t ix, Int_t iz) const; + virtual Int_t GetChipsInLocalWindow(Int_t* array, Float_t zmin, Float_t zmax, Float_t xmin, Float_t xmax) const; virtual void Init(); @@ -83,18 +83,16 @@ public AliITSsegmentation { Float_t fStereoN; // Stereo angle for Nside (rad) Float_t fPitch; // Pitch of the strips - Float_t fStereoPl5; // Stereo angle for Pside - Float_t fStereoNl5; // Stereo angle for Nside - Float_t fStereoPl6; // Stereo angle for Pside - Float_t fStereoNl6; // Stereo angle for Nside Int_t fLayer; //! layer number (5 or 6) static const Float_t fgkDxDefault; // Default value for fDx static const Float_t fgkDzDefault; // Default value for fDz static const Float_t fgkDyDefault; // Default value for fDy static const Float_t fgkPitchDefault; //Default value for fPitch static const Int_t fgkNstripsDefault; //Default value for fNstrips + static const Int_t fgkNchipsPerSide; //number of chips per side + static const Int_t fgkNstripsPerChip; //number of strips per chip - ClassDef(AliITSsegmentationSSD,2) //Segmentation class for SSD + ClassDef(AliITSsegmentationSSD,4) //Segmentation class for SSD }; #endif