]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
new code
authorkir <kir@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 21 Oct 2003 09:06:17 +0000 (09:06 +0000)
committerkir <kir@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 21 Oct 2003 09:06:17 +0000 (09:06 +0000)
RICH/AliRICHMap.cxx [new file with mode: 0644]
RICH/AliRICHMap.h [new file with mode: 0644]

diff --git a/RICH/AliRICHMap.cxx b/RICH/AliRICHMap.cxx
new file mode 100644 (file)
index 0000000..a71e699
--- /dev/null
@@ -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;iDigN<fNdigits;iDigN++){
+    AliRICHDigit *pDig= (AliRICHDigit*)fDigits->At(iDigN);
+    SetHit(pDig->PadX(),pDig->PadY(),iDigN);
+  }
+}
+//__________________________________________________________________________________________________
diff --git a/RICH/AliRICHMap.h b/RICH/AliRICHMap.h
new file mode 100644 (file)
index 0000000..2ea3708
--- /dev/null
@@ -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 <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