X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ZDC%2FAliZDC.h;h=ee8878634a2c775bc7f6eadb79d15f059629d963;hb=de402dc0f89f0894d927d6af0345be0b3d76f6b6;hp=8b77c5d7aea1114df6543bd909e42a21a09874c3;hpb=f901045ba861dd4b8ad0273cf67f39737f8701d4;p=u%2Fmrichter%2FAliRoot.git diff --git a/ZDC/AliZDC.h b/ZDC/AliZDC.h index 8b77c5d7aea..ee8878634a2 100644 --- a/ZDC/AliZDC.h +++ b/ZDC/AliZDC.h @@ -8,9 +8,16 @@ //////////////////////////////////////////////// // Manager and classes for set ZDC // //////////////////////////////////////////////// - + +#include + #include "AliDetector.h" +#include "AliZDCTrigger.h" +#include "AliZDCChMap.h" +class AliZDCPedestals; +class AliZDCEnCalib; +class AliZDCTowCalib; class AliZDC : public AliDetector { @@ -18,49 +25,76 @@ public: AliZDC(); AliZDC(const char *name, const char *title); virtual ~AliZDC(); + AliZDC(const AliZDC&); + // 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 px, Int_t py); virtual Int_t IsVersion() const =0; - virtual void StepManager(); - virtual void ResetHits(); - virtual void ResetDigits(); - -protected: + virtual Float_t ZMin() const; // Minimum overall dimension of the ZDC + virtual Float_t ZMax() const; // Maximum overall dimension of the ZDC + virtual void SetTreeAddress(); + virtual void MakeBranch(Option_t* opt); + virtual void Hits2SDigits(); + virtual AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const; + virtual void Digits2Raw(); + virtual Bool_t Raw2SDigits(AliRawReader* rawReader); + Int_t Pedestal(Int_t Detector, Int_t Quadrant, Int_t Res) const; + Int_t ADCch2Phe(Int_t Detector, Int_t Quadrant, Int_t ADCVal, Int_t Res) const; + virtual void StepManager() {} + + // Switching off the shower development in ZDCs + void NoShower(){fNoShower=1;} + void Shower() {fNoShower=0;} + + virtual void SetVCollAperture(Float_t /*aperture*/) {} + virtual void SetVCollCentre(Float_t /*centre*/) {} + virtual void SetLumiLength(Float_t /*length*/) {} - // Parameters for hadronic calorimeters geometry - Float_t fDimZN[3]; // Dimensions of neutron detector - Float_t fDimZP[3]; // Dimensions of proton detector - Float_t fPosZN[3]; // Position of neutron detector - Float_t fPosZP[3]; // Position of proton detector - Float_t fFibZN[3]; // Fibers for neutron detector - Float_t fFibZP[3]; // Fibers for proton detector - Float_t fGrvZN[3]; // Grooves for neutron detector - Float_t fGrvZP[3]; // Grooves for proton detector - Int_t fDivZN[3]; // Division for neutron detector - Int_t fDivZP[3]; // Division for proton detector - Int_t fTowZN[2]; // Tower for neutron detector - Int_t fTowZP[2]; // Tower for proton detector - - // Parameters for EM calorimeter geometry - Float_t fDimZEMPb; // z-dimension of the Pb slice - Float_t fDimZEMAir; // scotch - Float_t fFibRadZEM; // External fiber radius (including cladding) - Float_t fFibZEM[3]; // Fibers for EM calorimeter - Float_t fDimZEM[6]; // Dimensions of EM detector - Float_t fPosZEM[3]; // Position of EM detector - Int_t fDivZEM[3]; // Divisions for EM detector + //Calibration methods + void SetZDCCalibFName(const char *name); + char* GetZDCCalibFName() const {return (char*)fZDCCalibFName.Data();} + AliZDCPedestals* GetPedCalib() const {return fPedCalib;} + AliZDCEnCalib* GetECalibData() const {return fEnCalibData;} - // TClonesArray of stored hits -> not reset et finish event - // (for digitization at the end of the event) - TClonesArray *fStHits; - Int_t fNStHits; + // Map from OCDB + AliZDCChMap* GetChMap() const; + + // Trigger + virtual AliTriggerDetector* CreateTriggerDetector() const + {return new AliZDCTrigger();} + - Int_t fNPrimaryHits; + void SetSpectatorsTrack() {fSpectatorTracked=0;} + Int_t SpectatorsTracked() const {return fSpectatorTracked;} + +private: - ClassDef(AliZDC,1) // Zero Degree Calorimeter base class + AliZDC& operator = (const AliZDC&); + +protected: + + Int_t fNoShower; // Flag to switch off the shower + + //Calibration data member + AliZDCPedestals* fPedCalib; //! Pedestal data for ZDC + AliZDCEnCalib* fEnCalibData; //! Energy data for ZDC + AliZDCTowCalib* fTowCalibData; //! Equalization data for ZDC + + TString fZDCCalibFName; // Name of the ZDC calibration data + + Int_t fSpectatorTracked; // Are spectator tracked by generator? + + ClassDef(AliZDC,10) // Zero Degree Calorimeter base class }; +// Calibration +//_____________________________________________________________________________ +inline void AliZDC::SetZDCCalibFName(const char *name) +{ + fZDCCalibFName = name; + gSystem->ExpandPathName(fZDCCalibFName); +} + + #endif