X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TOF%2FAliTOF.h;h=1228d8eb65ea5188f776a3791b7b09c4c611b509;hb=4a14e9191877d26b7a186ab3b93f965ca6982071;hp=74df76bcc49c6849c862c113ba0ed42fecb665d4;hpb=9e1a0ddb8feb3fb19ca04ee19673f48c265a8fe6;p=u%2Fmrichter%2FAliRoot.git diff --git a/TOF/AliTOF.h b/TOF/AliTOF.h index 74df76bcc49..1228d8eb65e 100644 --- a/TOF/AliTOF.h +++ b/TOF/AliTOF.h @@ -1,10 +1,13 @@ //////////////////////////////////////////////// // // -// Manager, hit and digit classes for TOF // -// Interfaces: +// Manager classe for TOF // +// Interface : // // AliTOF // -// AliTOFhit // -// AliTOFdigit // +// Associations between TOF related objects // +// are defined here // +// -- Authors: Pierella, Seganti, Vicinanza // +// (Bologna and Salerno University) // +// // //////////////////////////////////////////////// #ifndef ALITOF_H @@ -14,21 +17,26 @@ /* $Id$ */ -#include "TObject.h" - class TFile; - +class TDirectory; +class TString ; +class TTask ; +class TFolder ; +class AliTOFMerger; + +#include "TObject.h" +#include "TTree.h" #include "AliDetector.h" -#include "AliHit.h" -#include "AliDigit.h" -//#include "AliTOFD.h" +#include +#include "AliTOFMerger.h" +#include "AliTOFSDigitizer.h" -class AliTOF : public AliDetector { +class AliTOF : public AliDetector { public: - AliTOF(); + AliTOF(); AliTOF(const char *name, const char *title); - virtual ~AliTOF() {} + virtual ~AliTOF() ; // getters for AliTOF object status Int_t GetNStripA() const {return fNStripA;} Int_t GetNStripB() const {return fNStripB;} @@ -36,26 +44,55 @@ public: Int_t GetNpadX() const {return fNpadX;} Int_t GetNpadZ() const {return fNpadZ;} Int_t GetPadXStr() const {return fPadXStr;} + 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 AddDigit(Int_t* tracks, Int_t* vol, Float_t* digits); + virtual void AddSDigit(Int_t* tracks, Int_t* vol, Float_t* digits); virtual void CreateGeometry(); virtual void CreateMaterials(); virtual void Init(); - virtual void MakeBranch(Option_t*, const char *file=0); +// virtual void MakeBranch(Option_t* option, const char *file=0); + virtual void MakeBranch(Option_t *opt=" ",const char *file=0); + 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); + Int_t DistancetoPrimitive(Int_t px, Int_t py) const; virtual void StepManager()=0; virtual void TOFpc(Float_t xtof, Float_t ytof, Float_t zlenC, Float_t zlenB, Float_t zlenA, Float_t ztof0){} - virtual void DrawModule(); + virtual void DrawModule() const; + virtual void DrawDetectorModules()=0; + virtual void DrawDetectorStrips()=0; +// virtual void DrawDetectorModulesinFrame()=0; +// virtual void DrawDetectorStripsinFrame()=0; + void CreateTOFFolders(); + Bool_t CheckOverlap(Int_t* vol, Float_t* digit, Int_t Track); virtual void SDigits2Digits(); - void Hits2Digits(Int_t evNumber=0); + virtual void SetMerger(AliTOFMerger* merger); + virtual AliTOFMerger* Merger(); +// virtual void Hits2Digits(); + virtual void TOFHits2SDigits(); + virtual void Hits2SDigits(); + virtual void Digits2Reco() {cout << "AliTOF::Digits2Reco() dummy function called" << endl;} void Digits2Raw (Int_t evNumber=0); void Raw2Digits (Int_t evNumber=0); + virtual void ResetHits(); + virtual void ResetDigits(); + TClonesArray *SDigits() const {return fSDigits;} + TClonesArray *ReconParticles() const {return fReconParticles;} + Int_t fNevents ; // Number of events to digitize 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 + AliTOFMerger *fMerger; // ! pointer to merger Int_t fNTof; // number of TOF sectors Float_t fRmax; // upper bound for radial extension of TOF detector Float_t fRmin; // lower bound for radial extension of TOF detector @@ -63,7 +100,6 @@ protected: Float_t fZlenB; // length along z-axis of type B module Float_t fZlenC; // length along z-axis of type C module Float_t fZtof; // total semi-length of TOF detector - Float_t fStripLn; // Strip Length Float_t fSpace; // Space Beetween the strip and the bottom of the plate Float_t fDeadBndZ; // Dead Boundaries of a Strip along Z direction (width) @@ -76,102 +112,21 @@ protected: Int_t fNpadX; // Number of pads in a strip along the X direction Int_t fNpadZ; // Number of pads in a strip along the Z direction Int_t fPadXStr; // Number of pads per strip - Int_t fNStripA; // number of strips in A type module Int_t fNStripB; // number of strips in B type module Int_t fNStripC; // number of strips in C type module - Float_t fTimeRes; // time resolution of the TOF Float_t fChrgRes; // charge resolution of ADC - Int_t fPadXSector; // number of pads per sector Int_t fNRoc; // number of ROC Int_t fNFec; // number of FEC Int_t fNTdc; // number of TDC Int_t fNPadXRoc; // number of pads for each ROC - Int_t fIdSens; // the unique numeric identifier for sensitive volume FPAD - + Int_t fIdSens; // the unique numeric identifier for sensitive volume FPAD + private: - Bool_t CheckOverlap(Int_t* vol, Float_t* digit, Int_t Track); - ClassDef(AliTOF,1) // Time Of Flight base class + ClassDef(AliTOF,3) // Time Of Flight base class }; -//___________________________________________ - -class AliTOFhit : public AliHit { - -public: - AliTOFhit() {} - AliTOFhit(Int_t shunt, Int_t track, Int_t* vol, - Float_t *hits); - AliTOFhit(const AliTOFhit & hit) ; - virtual ~AliTOFhit() {} - // getters for AliTOFhit object - Int_t GetSector() const {return fSector;} - Int_t GetPlate() const {return fPlate;} - Int_t GetPadx() const {return fPadx;} - Int_t GetPadz() const {return fPadz;} - Int_t GetStrip() const {return fStrip;} - Float_t GetTof() const {return fTof;} - Float_t GetMom() const {return fPmom;} - Float_t GetDx() const {return fDx;} - Float_t GetDz() const {return fDz;} - Float_t GetIncA() const {return fIncA;} - Float_t GetEdep() const {return fEdep;} - -protected: - Int_t fSector; // number of sector - Int_t fPlate; // number of plate - Int_t fStrip; // number of strip - Int_t fPadx; // number of pad along x - Int_t fPadz; // number of pad along z -// X, Y and Z coordinates of the hit are defined on mother class -// AliHit - 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 - Float_t fDx; // x of impact point in pad r.s. - Float_t fDy; // y of impact point in pad r.s. - Float_t fDz; // z of impact point in pad r.s. - Float_t fIncA; // Incidence angle - Float_t fEdep; // Energy lost in TOF sensitive layer - - ClassDef(AliTOFhit,1) // Hits for Time Of Flight -}; - -//_______________________________________________________ - -class AliTOFdigit : public AliDigit { - - public: - AliTOFdigit(){} - AliTOFdigit(Int_t* tracks, Int_t* vol, Float_t* digit); - AliTOFdigit(const AliTOFdigit & digit) ; - virtual ~AliTOFdigit(){} - void GetLocation(Int_t* Loc); - Int_t GetTotPad(); - void AddTrack(Int_t track); - // getters for AliTOFdigit object - Float_t GetTdc() const {return fTdc;} - Float_t GetAdc() const {return fAdc;} - Int_t GetSector() const {return fSector;} - // setters for AliTOFdigit object - void SetTdc(Float_t TDC){fTdc = TDC;} - void SetAdc(Float_t ADC){fAdc = ADC;} - -protected: - Int_t fSector; // number of sector - Int_t fPlate; // number of plate - Int_t fStrip; // number of strip - Int_t fPadx; // number of pad along x - Int_t fPadz; // number of pad along z - Float_t fTdc; // tdc values for digit - Float_t fAdc; // adc values for digit - - ClassDef(AliTOFdigit,2) // Digits for Time Of Flight -}; - #endif /* ALITOF_H */