X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=ZDC%2FAliZDCReconstructor.h;h=1957f26ede7c46ca817e0f19e705c044681cc697;hp=bad0101fbfc5844a6c85f8240d61e950ab110bb6;hb=f5cb4aecdc46e8874d3e8c21d0c1bed70e18a4a6;hpb=980685f24fa3ea1f30c25ebaa87a4a49a35998bd diff --git a/ZDC/AliZDCReconstructor.h b/ZDC/AliZDCReconstructor.h index bad0101fbfc..1957f26ede7 100644 --- a/ZDC/AliZDCReconstructor.h +++ b/ZDC/AliZDCReconstructor.h @@ -5,18 +5,26 @@ /* $Id$ */ -/////////////////////////////////////////////////////////////////////////////// -// // -// class for ZDC reconstruction // -// // -/////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////// +// // +// class for ZDC reconstruction // +// // +///////////////////////////////////////////// #include "AliReconstructor.h" -#include "AliCDBManager.h" -#include "AliCDBStorage.h" -#include "AliZDCCalibData.h" +#include "AliZDCRecoParam.h" +#include "AliESDZDC.h" -class TF1; +class AliCDBManager; +class AliCDBStorage; +class AliZDCPedestals; +class AliZDCEnCalib; +class AliZDCTowerCalib; +class AliZDCMBCalib; +class AliZDCTDCCalib; +class AliZDCRecoParampp; +class AliZDCRecoParamPbPb; +class AliLog; class AliLoader; class AliZDCReconstructor: public AliReconstructor { @@ -24,49 +32,86 @@ public: AliZDCReconstructor(); virtual ~AliZDCReconstructor(); - virtual void Reconstruct(AliRunLoader* runLoader) const; - virtual void Reconstruct(AliRunLoader* runLoader, - AliRawReader* rawReader) const; - virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const - {AliReconstructor::Reconstruct(digitsTree,clustersTree);} - virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const - {AliReconstructor::Reconstruct(rawReader,clustersTree);} - virtual void FillESD(AliRunLoader* runLoader, AliESD* esd) const; - virtual void FillESD(TTree* digitsTree, TTree* clustersTree, AliESD* esd) const - {AliReconstructor::FillESD(digitsTree,clustersTree,esd);} - virtual void FillESD(AliRawReader* rawReader, TTree* clustersTree, AliESD* esd) const - {AliReconstructor::FillESD(rawReader,clustersTree,esd);} - virtual void FillESD(AliRunLoader* runLoader, AliRawReader* rawReader, AliESD* esd) const - {AliReconstructor::FillESD(runLoader,rawReader,esd);} + virtual void Init(); + virtual void Init(TString beamType, Float_t beamEnergy); + virtual Bool_t HasDigitConversion() const {return kFALSE;}; - void GetStorage(const char* uri) {fStorage = AliCDBManager::Instance()->GetStorage(uri);} - AliCDBStorage *SetStorage(const char* uri); - AliZDCCalibData *GetCalibData(int runNumber) const; + virtual void Reconstruct(TTree*digitsTree, TTree* clustersTree) const; + virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const; + virtual void FillESD(TTree* /*digitsTree*/, TTree* clustersTree, + AliESDEvent* esd) const {FillZDCintoESD(clustersTree, esd);} + virtual void FillESD(AliRawReader* /*rawReader*/, TTree* clustersTree, + AliESDEvent* esd) const {FillZDCintoESD(clustersTree, esd);} + + void FillZDCintoESD(TTree *clustersTree, AliESDEvent *esd) const; + + // parameter settings for reconstruction + void SetRecoMode(Int_t recoMode, Float_t beamEnergy) + {fRecoMode=recoMode; fBeamEnergy=beamEnergy;} + static void SetRecoParam(AliZDCRecoParam * const param) + {fgRecoParam = param;} + + Int_t GetRecoMode() const {return fRecoMode;} + Float_t GetBeamEnergy() const {return fBeamEnergy;} + + AliESDZDC* GetZDCESDData() const {return fESDZDC;} + + static const AliZDCRecoParam* GetRecoParam() + {return dynamic_cast(AliReconstructor::GetRecoParam(9));} + + void SetPedSubMode(Int_t pedsubMode) {fPedSubMode=pedsubMode;} + Int_t GetPedSubMode() const {return fPedSubMode;} + + void SetSignalThreshold(Float_t val) {fSignalThreshold=val;} + Float_t GetSignalThreshold() const {return fSignalThreshold;} + + // OCDB objects for reconstruction + AliCDBStorage *SetStorage(const char* uri); + AliZDCPedestals *GetPedestalData() const; + AliZDCEnCalib *GetEnergyCalibData() const; + AliZDCTowerCalib *GetTowerCalibData() const; + AliZDCMBCalib *GetMBCalibData() const; + AliZDCTDCCalib *GetTDCCalibData() const; + private: - AliZDCReconstructor(const AliZDCReconstructor& reconstructor); - AliZDCReconstructor& operator = (const AliZDCReconstructor& reconstructor); + AliZDCReconstructor(const AliZDCReconstructor&); //Not implemented + AliZDCReconstructor& operator =(const AliZDCReconstructor&); //Not implemented - void ReconstructEvent(AliLoader* loader, Float_t zn1corr, Float_t zp1corr, Float_t zemcorr, - Float_t zn2corr, Float_t zp2corr) const; + void ReconstructEventpp(TTree *clustersTree, + const Float_t* const corrADCZN1, const Float_t* const corrADCZP1, + const Float_t* const corrADCZN2, const Float_t* const corrADCZP2, + const Float_t* const corrADCZEM1, const Float_t* const corrADCZEM2, + Float_t* sPMRef1, Float_t* sPMRef2, Bool_t isScalerOn, UInt_t* scaler, + Int_t tdcData[32][4], const Int_t* const evQualityBlock, + const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const; + void ReconstructEventPbPb(TTree *clustersTree, + const Float_t* const corrADCZN1, const Float_t* const corrADCZP1, + const Float_t* const corrADCZN2, const Float_t* const corrADCZP2, + const Float_t* const corrADCZEM1, const Float_t* const corrADCZEM2, + Float_t* sPMRef1, Float_t* sPMRef2, Bool_t isScalerOn, UInt_t* scaler, + Int_t tdcData[32][4], const Int_t* const evQualityBlock, + const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const; - TF1* fZNCen; //! Nspectator n true vs. EZN - TF1* fZNPer; //! Nspectator n true vs. EZN - TF1* fZPCen; //! Nspectator p true vs. EZP - TF1* fZPPer; //! Nspectator p true vs. EZP - TF1* fZDCCen; //! Nspectators true vs. EZDC - TF1* fZDCPer; //! Nspectators true vs. EZDC - TF1* fbCen; //! b vs. EZDC - TF1* fbPer; //! b vs. EZDC - TF1* fZEMn; //! Nspectators n from ZEM energy - TF1* fZEMp; //! Nspectators p from ZEM energy - TF1* fZEMsp; //! Nspectators from ZEM energy - TF1* fZEMb; //! b from ZEM energy + static AliZDCRecoParam *fgRecoParam; // reconstruction parameters + + static AliZDCMBCalib *fgMBCalibData; //! mb calibration data + AliZDCPedestals *fPedData; //! pedestal calibration data + AliZDCEnCalib *fEnCalibData; //! energy calibration data + AliZDCTowerCalib *fTowCalibData; //! equalization calibration data + AliZDCTDCCalib *fTDCCalibData; //! TDC offset data + + Int_t fRecoMode; // =1->p-p, =2->A-A + Float_t fBeamEnergy; // beam energy + Int_t fNRun; // Run Number (from raw data) + Bool_t fIsCalibrationMB; // true if run type = "CALIBRATION_MB" + Int_t fPedSubMode; // =0->mean values, =1->from correlations + Float_t fSignalThreshold; // Threshold value for "triggering" in p-p + Double_t fMeanPhase; // LHC clock phase - AliCDBStorage *fStorage; //! storage - AliZDCCalibData *fCalibData; //! calibration data + AliESDZDC* fESDZDC; // ESD output object - ClassDef(AliZDCReconstructor, 1) // class for the ZDC reconstruction + ClassDef(AliZDCReconstructor, 13) // class for the ZDC reconstruction }; #endif