]> git.uio.no Git - u/mrichter/AliRoot.git/blob - RICH/AliRICHMap.h
Additional protection. The call to RecWithStack has to be removed in case of raw...
[u/mrichter/AliRoot.git] / RICH / AliRICHMap.h
1 #ifndef AliRICHMap_h
2 #define AliRICHMap_h
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 #include "AliHitMap.h"
7 #include <TMatrix.h>
8 #include <TMath.h>
9 #include <TClonesArray.h>
10
11 class AliRICHMap : public AliHitMap 
12 {    
13 public:
14            AliRICHMap(TClonesArray *pDig);
15   virtual ~AliRICHMap()                          {delete fMap;}
16   void     FillHits();                                                                                             //virtual
17   void     Clear(const char *)                   {fMap->Zero();}                                                   //virtual  
18   void     DeleteHit(Int_t ix,Int_t iy)          {(*fMap)(ix,iy)=0;}                                               //virtual
19   void     SetHit(Int_t ix,Int_t iy,Int_t idigit){(*fMap)(ix,iy)=idigit+1;}                                        //virtual  
20   Int_t    GetHitIndex(Int_t ix,Int_t iy)   const{return (Int_t)TMath::Abs((*fMap)(ix, iy))-1;}                    //virtual
21   TObject* GetHit(Int_t ix,Int_t iy)        const{Int_t idx=GetHitIndex(ix,iy);return(idx <0)?0:fDigits->At(idx);} //virtual
22   void     FlagHit(Int_t ix,Int_t iy)            {(*fMap)(ix, iy)=-TMath::Abs((*fMap)(ix,iy));}                    //virtual
23   Bool_t   ValidateHit(Int_t,Int_t)              {return 1;}                                                       //virtual
24   inline   FlagType TestHit(Int_t ix,Int_t iy);                                                                    //virtual
25   void     Print(const Option_t *)          const{fMap->Print();}                                                  
26 protected:
27   TClonesArray *fDigits;                                 //List of digits
28   Int_t         fNdigits;                                //Number of digits
29   TMatrix      *fMap;                                    //hit map
30   ClassDef(AliRICHMap,0)                                 //Implements map as TMatrix
31 };
32 //__________________________________________________________________________________________________
33 FlagType AliRICHMap::TestHit(Int_t padx,Int_t pady)
34 {
35 //Is there a hit for given pad?
36   Int_t inf=(Int_t)(*fMap)(padx,pady);
37   if(inf<0){//flaged as used
38     return kUsed;
39   }else if(inf==0){//no hit 
40     return kEmpty;
41   }else{//index of not yet used hit
42     return kUnused;
43   }
44 }//TestHit()  
45 #endif