X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PMD%2FAliPMD.h;h=31508f090a9b0db162202ee1cc8516fef4876645;hb=f8a2dcfb71921ada3e96d35df7925775e2269593;hp=a979c65f508d5597940abb506b8e6fd8f98c73c0;hpb=1661e6128b956c632e114c8b443d66044744dedb;p=u%2Fmrichter%2FAliRoot.git diff --git a/PMD/AliPMD.h b/PMD/AliPMD.h index a979c65f508..31508f090a9 100644 --- a/PMD/AliPMD.h +++ b/PMD/AliPMD.h @@ -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 */ @@ -10,21 +10,16 @@ //////////////////////////////////////////////// #include "AliDetector.h" -#include "AliHit.h" -#include "AliPMDLoader.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); @@ -32,60 +27,36 @@ public: virtual AliLoader* MakeLoader(const char* topfoldername); virtual ~AliPMD(); - virtual void AddHit(Int_t, Int_t*, Float_t*); + virtual void AddHit(Int_t track, Int_t* vol, Float_t* hits); virtual void BuildGeometry(); 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 - ClassDef(AliPMD,2) // 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,8) // Base Class for Photon Multiplicity Detector }; #endif