X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TOF%2FAliTOF.h;h=c814d4aa0e288ef21ef4236cc1aeb1f21998df6e;hb=2235e482886862218bd57925147d3996b313ef25;hp=d46df1eb07ef6f98f5403d13fbea31a5c1eee463;hpb=937fe4a47e4a3240ac34f102e0a83685569f409e;p=u%2Fmrichter%2FAliRoot.git diff --git a/TOF/AliTOF.h b/TOF/AliTOF.h index d46df1eb07e..c814d4aa0e2 100644 --- a/TOF/AliTOF.h +++ b/TOF/AliTOF.h @@ -1,58 +1,122 @@ -#ifndef TOF_H -#define TOF_H +#ifndef ALITOF_H +#define ALITOF_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:TOF // +// // +// Manager class for TOF // +// Interface : // +// AliTOF // +// Associations between TOF related objects // +// are defined here // +// -- Authors: Pierella, Seganti, Vicinanza // +// (Bologna and Salerno University) // +// // //////////////////////////////////////////////// - + #include "AliDetector.h" -#include "AliHit.h" - - -class AliTOF : public AliDetector { -protected: - Int_t fIdSens; - +#include "AliTOFTrigger.h" + +class TDirectory; +class TFile; +class TFolder ; +class TString ; +class TTask ; + +class AliTOFGeometry; + +class AliTOF : public AliDetector { public: - AliTOF(); - AliTOF(const char *name, const char *title); - virtual ~AliTOF() {} - virtual void AddHit(Int_t, Int_t*, Float_t*); - virtual void BuildGeometry(); + AliTOF(); + AliTOF(const char *name, const char *title, Option_t *option="noTimeZero"); + AliTOF(const AliTOF &source); // copy constructor + AliTOF& operator=(const AliTOF &source); // ass. op. + + virtual ~AliTOF() ; +// getters for AliTOF object status + //Float_t GetTimeRes() const {return fTimeRes;}; + //Float_t GetChrgRes() const {return fChrgRes;}; + + virtual void SetTreeAddress(); + virtual void AddHit(Int_t track, Int_t* vol, Float_t* hits); + virtual void AddT0Hit(Int_t track, Int_t* vol, Float_t* hits); + virtual void AddDigit(Int_t* /*tracks*/, Int_t* /*vol*/) {}; + virtual void AddDigit(Int_t* tracks, Int_t* vol, Int_t* digits); + virtual void AddSDigit(Int_t tracknum, Int_t* vol, Int_t* digits); virtual void CreateGeometry(); - virtual void CreateMaterials(); + virtual void CreateMaterials(){}; virtual void Init(); + //virtual void MakeBranch(Option_t* option, const char *file=0); + virtual void MakeBranch(Option_t *opt=" "); + virtual void Makehits(Bool_t hits=1); + virtual void FinishEvent(); virtual Int_t IsVersion() const =0; Int_t DistancetoPrimitive(Int_t px, Int_t py); virtual void StepManager()=0; - virtual void TOFpc(Float_t, Float_t, Float_t, Float_t, Float_t,Float_t) {} - virtual void DrawModule(); - - ClassDef(AliTOF,1) // Time Of Flight base class -}; - -//___________________________________________ - -class AliTOFhit : public AliHit { -public: - Int_t fVolume[3]; //array of volumes - Float_t fPx; // px in TOF - Float_t fPy; // py in TOF - Float_t fPz; // pz in TOF - Float_t fPmom; // P in TOF - Float_t fTof; // Time of Flight - -public: - AliTOFhit() {} - AliTOFhit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits); - virtual ~AliTOFhit() {} + virtual void TOFpc(Float_t /*xtof*/, Float_t /*ytof*/, Float_t /*zlenC*/, + Float_t /*zlenB*/, Float_t /*zlenA*/, Float_t /*ztof0*/){}; + virtual void TOFpc(Float_t /*xtof*/, Float_t /*ytof*/, Float_t /*zlenA*/, + Float_t /*zlenB*/){}; + virtual void TOFpc(Float_t /*xtof*/, Float_t /*ytof*/, Float_t /*zlenA*/){}; + virtual void DrawModule() const; + virtual void DrawDetectorModules() const {}; + virtual void DrawDetectorStrips() const {}; + //virtual void DrawDetectorModulesinFrame()=0; + //virtual void DrawDetectorStripsinFrame()=0; + void CreateTOFFolders(); + Bool_t CheckOverlap(Int_t* vol, Int_t* digit, Int_t Track); + //virtual void Hits2Digits(); + virtual void Hits2SDigits(); + virtual void Hits2SDigits(Int_t evNumber1, Int_t evNumber2); + virtual AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const; + virtual void Digits2Reco() {}; + void Digits2Raw (); + void Raw2Digits (){}; + virtual void ResetHits(); + virtual void ResetDigits(); + virtual void ResetSDigits(); + TClonesArray *SDigits() const {return fSDigits;} + TClonesArray *ReconParticles() const {return fReconParticles;} + void RecreateSDigitsArray(); + void CreateSDigitsArray(); + virtual void SetTOFSectors(Int_t *sectors); + virtual void GetTOFSectors(Int_t *sectors) const; + virtual void SetTOFHoles(Bool_t holes) { fTOFHoles = holes; }; + virtual Bool_t GetTOFHoles() const { return fTOFHoles; }; + AliTOFGeometry *GetGeometry() const { return fTOFGeometry; }; + + // Trigger + virtual AliTriggerDetector* CreateTriggerDetector() const + {return new AliTOFTrigger();} + +protected: + TFolder* fFGeom ; // Folder that holds the Geometry definition + TTask* fDTask ; // TOF Digitizer container + TTask* fReTask; // TOF Reconstructioner container + TClonesArray* fSDigits; //! List of summable digits + Int_t fNSDigits; //! Number of sdigits + TClonesArray* fReconParticles; // List of reconstructed particles + + //Float_t fGapA; // Gap beetween tilted strip in A-type plate + //Float_t fGapB; // Gap beetween tilted strip in B-type plate + + //Float_t fTimeRes; // Time resolution of the TOF + //Float_t fChrgRes; // Charge resolution of ADC + + Int_t fIdSens; // The unique identifier for sensitive volume FPAD + + Bool_t fTZero; // Flag indicating if T0 is used + Int_t fTOFSectors[18]; // Selecting TOF Sectors to be simulated + Bool_t fTOFHoles; // Selecting geometry with and w/o holes + AliTOFGeometry *fTOFGeometry; //The TOF Geometry parameters - ClassDef(AliTOFhit,1) // Hits for Time Of Flight +private: + + ClassDef(AliTOF,8) // Time Of Flight base class }; -#endif +#endif /* ALITOF_H */