X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PMD%2FAliPMD.h;h=31508f090a9b0db162202ee1cc8516fef4876645;hb=79be0537781c8a7675a2043e0cf18cac3241c3f3;hp=e0b12548dbdb32ac60988ea868375945b5b6b1d2;hpb=3da306186bdfe9b8dedf54c4b9cdcf2bff5b132c;p=u%2Fmrichter%2FAliRoot.git diff --git a/PMD/AliPMD.h b/PMD/AliPMD.h index e0b12548dbd..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,67 +10,53 @@ //////////////////////////////////////////////// #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() {} - 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 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 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; - - ClassDef(AliPMDhit,1) //Hits object for set:PMD + virtual void Digits2Raw(); + virtual Bool_t Raw2SDigits(AliRawReader *rawReader); + + 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