]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PMD/AliPMD.h
method added to convert raw digits to sdigits
[u/mrichter/AliRoot.git] / PMD / AliPMD.h
index 9612b1ab3db2c4bfb9d7d5bf191a70485e17d436..4246a6da6f79e7ee417b975ad467a212f4685025 100644 (file)
-#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                               */
+
+/* $Id$ */
+
 ////////////////////////////////////////////////
 //  Manager and hits classes for set:PMD      //
 ////////////////////////////////////////////////
  
 #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      ~AliPMD() {}
-  virtual void  AddHit(Int_t, Int_t*, Float_t*);
-   virtual void  BuildGeometry();
+
+  virtual AliLoader* MakeLoader(const char* topfoldername);
+
+  virtual      ~AliPMD();
+  virtual void  AddHit(Int_t track, Int_t* vol, Float_t* hits);
+  virtual void  BuildGeometry();
   virtual void  CreateGeometry() {}
   virtual void  CreateMaterials() {}
-  virtual void  Undulation(char *, Float_t, Float_t, Float_t, Float_t,
-                          char (*)[5]);
-  Int_t         DistancetoPrimitive(Int_t, Int_t);
   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  MakeBranch(Option_t* option);
+  virtual void  SetTreeAddress();
   
-  ClassDef(AliPMD,1)  // Base Class for Photon Multiplicity Detector
-};
+  virtual void  Hits2SDigits();
+  virtual void  SDigits2Digits();
+  virtual void  Hits2Digits();
 
-//___________________________________________
-class AliPMDv1 : public AliPMD {
+  virtual AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const;
 
-private:
-  Int_t fMedSens;
+  virtual void  Digits2Raw();
+  virtual Bool_t Raw2SDigits(AliRawReader *rawReader);
   
-public:
-  AliPMDv1();
-  AliPMDv1(const char *name, const char *title);
-  virtual      ~AliPMDv1() {}
-  virtual void  Coordinates();
-  virtual void  Coordnew();
-  virtual void  CreateGeometry();
-  virtual void  CreateInside();
-  virtual void  CreatePads();
-  virtual void  CreateMaterials();
-  virtual void  Init();
-  virtual Int_t IsVersion() const {return 1;}
-  virtual void  StepManager();
-  virtual void  DrawDetector();
-   ClassDef(AliPMDv1,1)  //Hits manager for set:PMD
-};
-//___________________________________________
-class AliPMDhit : public AliHit {
-public:
-  Int_t      fVolume[4];  //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);
-  }
+ 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(AliPMDhit,1)  //Hits object for set:PMD
+  ClassDef(AliPMD,8)  // Base Class for Photon Multiplicity Detector
 };
 #endif