From: kir Date: Tue, 21 Oct 2003 09:06:17 +0000 (+0000) Subject: new code X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=a8d26a2920d7ee0b43e04661d8596438a1676ccb;p=u%2Fmrichter%2FAliRoot.git new code --- diff --git a/RICH/AliRICHMap.cxx b/RICH/AliRICHMap.cxx new file mode 100644 index 00000000000..a71e69938e2 --- /dev/null +++ b/RICH/AliRICHMap.cxx @@ -0,0 +1,39 @@ +/************************************************************************** + * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * * + * Author: The ALICE Off-line Project. * + * Contributors are mentioned in the code where appropriate. * + * * + * Permission to use, copy, modify and distribute this software and its * + * documentation strictly for non-commercial purposes is hereby granted * + * without fee, provided that the above copyright notice appears in all * + * copies and that both the copyright notice and this permission notice * + * appear in the supporting documentation. The authors make no claims * + * about the suitability of this software for any purpose. It is * + * provided "as is" without express or implied warranty. * + **************************************************************************/ + +#include "AliRICHMap.h" +#include "AliRICHParam.h" +#include "AliRICHDigit.h" + +ClassImp(AliRICHMap) + +AliRICHMap::AliRICHMap(TClonesArray *pDig) +{//main ctor + fDigits=pDig; + fNdigits=fDigits->GetEntries(); + fMap=new TMatrix(1,AliRICHParam::NpadsX(),1,AliRICHParam::NpadsY()); + Clear(""); + FillHits(); +} +//__________________________________________________________________________________________________ +void AliRICHMap::FillHits() +{//Fill hits into HitMap + if(!fNdigits) return; + for(Int_t iDigN=0;iDigNAt(iDigN); + SetHit(pDig->PadX(),pDig->PadY(),iDigN); + } +} +//__________________________________________________________________________________________________ diff --git a/RICH/AliRICHMap.h b/RICH/AliRICHMap.h new file mode 100644 index 00000000000..2ea3708cf53 --- /dev/null +++ b/RICH/AliRICHMap.h @@ -0,0 +1,46 @@ +#ifndef AliRICHMap_h +#define AliRICHMap_h + + +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + +#include "AliHitMap.h" +#include +#include +#include + +class AliRICHMap : public AliHitMap +{ +public: + AliRICHMap(TClonesArray *pDig); + virtual ~AliRICHMap() {delete fMap;} + void FillHits(); //virtual + void Clear(const char *) {fMap->Zero();} //virtual + void DeleteHit(Int_t ix,Int_t iy) {(*fMap)(ix,iy)=0;} //virtual + void SetHit(Int_t ix,Int_t iy,Int_t idigit){(*fMap)(ix,iy)=idigit+1;} //virtual + Int_t GetHitIndex(Int_t ix,Int_t iy) const{return (Int_t)TMath::Abs((*fMap)(ix, iy))-1;} //virtual + TObject* GetHit(Int_t ix,Int_t iy) const{Int_t idx=GetHitIndex(ix,iy);return(idx <0)?0:fDigits->At(idx);} //virtual + void FlagHit(Int_t ix,Int_t iy) {(*fMap)(ix, iy)=-TMath::Abs((*fMap)(ix,iy));} //virtual + Bool_t ValidateHit(Int_t,Int_t) {return 1;} //virtual + void Print() const{fMap->Print();} + inline FlagType TestHit(Int_t ix,Int_t iy); //virtual +protected: + TClonesArray *fDigits; //List of digits + Int_t fNdigits; //Number of digits + TMatrix *fMap; //hit map + ClassDef(AliRICHMap,0) //Implements map as TMatrix +}; +//__________________________________________________________________________________________________ +FlagType AliRICHMap::TestHit(Int_t ix,Int_t iy) +{//Is there a hit? + Int_t inf=(Int_t)(*fMap)(ix, iy); + if(inf<0){//flaged as used + return kUsed; + }else if(inf==0){//no hit + return kEmpty; + }else{//index of not yet used hit + return kUnused; + } +} +#endif