X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PMD%2FAliPMD.h;h=fa91c09d317f35fe173b992ebe3f258ce9647855;hb=dba3c8092abbaa11590c758f4c50e21f3cf28be5;hp=9612b1ab3db2c4bfb9d7d5bf191a70485e17d436;hpb=fe4da5cc22f890b04843f1aebec0f1bf4f9c3fc9;p=u%2Fmrichter%2FAliRoot.git diff --git a/PMD/AliPMD.h b/PMD/AliPMD.h index 9612b1ab3db..fa91c09d317 100644 --- a/PMD/AliPMD.h +++ b/PMD/AliPMD.h @@ -1,101 +1,61 @@ -#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); + Int_t DistancetoPrimitive(Int_t, Int_t) const; 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(); -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,6) // Base Class for Photon Multiplicity Detector }; - #endif