]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PMD/AliPMD.h
memory leak fixed
[u/mrichter/AliRoot.git] / PMD / AliPMD.h
index 5a7540704be4d1ae994fd05d64a3fc042861a5e3..700489a94608a1b14d87a05a10a88c1994a5fdf0 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef PMD_H
-#define PMD_H
+#ifndef ALIPMD_H
+#define ALIPMD_H
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
 ////////////////////////////////////////////////
  
 #include "AliDetector.h"
-#include "AliHit.h"
 
+class AliLoader;
 class TClonesArray;
+class TFile;
 class AliPMDRecPoint;
+class AliPMDLoader;
+class AliPMDhit;
 
 class AliPMD : public AliDetector {
-  
-protected:
-  Float_t fPar[4];           // pmdin, pmdout, thgas, thcell
-  Float_t fIn[5];            // thmin, thmax, zdist, thlow, thhigh
-  Float_t fGeo[3];           // wafer, edge, numqu
-  Float_t fPadSize[4];       // size of the pads
-  Int_t   fNumPads[4];       // number of the pads
+
 public:
   AliPMD();
   AliPMD(const char *name, const char *title);
+
+  virtual AliLoader* MakeLoader(const char* topfoldername);
+
   virtual      ~AliPMD();
-  virtual void  AddHit(Int_t, Int_t*, Float_t*);
-   virtual void  BuildGeometry();
+  virtual void  AddHit(Int_t track, Int_t* vol, Float_t* hits);
   virtual void  CreateGeometry() {}
   virtual void  CreateMaterials() {}
-  Int_t         DistancetoPrimitive(Int_t, Int_t);
+  virtual void  Init() {}
   virtual Int_t IsVersion() const =0;
-  virtual void  SetPAR(Float_t, Float_t, Float_t, Float_t);
-  virtual void  SetIN(Float_t, Float_t, Float_t, Float_t, Float_t);
-  virtual void  SetGEO(Float_t, Float_t, Float_t);
-  virtual void  SetPadSize(Float_t, Float_t, Float_t, Float_t);
+  virtual void  SetPAR(Float_t p1, Float_t p2, Float_t p3, Float_t p4);
+  virtual void  SetIN(Float_t p1, Float_t p2, Float_t p3, Float_t p4, Float_t p5);
+  virtual void  SetGEO(Float_t p1, Float_t p2, Float_t p3);
+  virtual void  SetPadSize(Float_t p1, Float_t p2, Float_t p3, Float_t p4);
   virtual void  StepManager();
-  virtual void  AddRecPoint(const AliPMDRecPoint &p);
   virtual void  MakeBranch(Option_t* option);
   virtual void  SetTreeAddress();
-  virtual void  ResetHits();
-  
- private:
-  TClonesArray* fRecPoints;   // List of reconstructed hits
-  Int_t         fNRecPoints;  // Number of reconstructed hits
+
+  virtual void SetCpvOff();
+  virtual void SetPreOff();
+  virtual void SetModuleOff(Int_t /*imodule*/);
   
-  ClassDef(AliPMD,1)  // Base Class for Photon Multiplicity Detector
-};
+  virtual void  Hits2SDigits();
+  virtual void  SDigits2Digits();
+  virtual void  Hits2Digits();
 
-//___________________________________________
-class AliPMDhit : public AliHit {
-public:
-  Int_t      fVolume[5];  //array of volumes
-  Float_t    fEnergy;     //Total energy deposited in eV
-public:
-  AliPMDhit() {}
-  AliPMDhit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits);
-  AliPMDhit(AliPMDhit* oldhit) {*this=*oldhit;}
-  virtual ~AliPMDhit() {}
-  inline virtual Int_t GetVolume(Int_t i) {return fVolume[i];}
-  inline virtual Float_t GetEnergy() {return fEnergy;}
-  inline int operator == (AliPMDhit &cell) {
-    Int_t i;
-    if(fTrack!=cell.GetTrack()) return 0;
-    for (i=0; i<4; i++) if(fVolume[i]!=cell.GetVolume(i)) return 0;
-    return 1;
-  }
-  inline virtual AliPMDhit& operator + (AliPMDhit &cell) {
-    fEnergy+=cell.GetEnergy();
-    return *this;
-  }
-  virtual void Print(Option_t *) {
-    printf("PMD Cell %d %d %d %d\n   Primary %d -   Energy %f\n",
-          fVolume[0],fVolume[1],fVolume[2],fVolume[3],fTrack,fEnergy);
-  }
+  virtual AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const;
 
+  virtual void  Digits2Raw();
+  virtual Bool_t Raw2SDigits(AliRawReader *rawReader);
   
-  ClassDef(AliPMDhit,1)  //Hits object for set:PMD
+ protected:
+  Float_t fPar[4];           // pmdin, pmdout, thgas, thcell
+  Float_t fIn[5];            // thmin, thmax, zdist, thlow, thhigh
+  Float_t fGeo[3];           // wafer, edge, numqu
+  Float_t fPadSize[4];       // size of the pads
+  Int_t   fNumPads[4];       // number of the pads
+
+  ClassDef(AliPMD,9)  // Base Class for Photon Multiplicity Detector
 };
 #endif