--- /dev/null
+/**************************************************************************
+ * 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;iDigN<fNdigits;iDigN++){
+ AliRICHDigit *pDig= (AliRICHDigit*)fDigits->At(iDigN);
+ SetHit(pDig->PadX(),pDig->PadY(),iDigN);
+ }
+}
+//__________________________________________________________________________________________________
--- /dev/null
+#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 <TMatrix.h>
+#include <TMath.h>
+#include <TClonesArray.h>
+
+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