X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FSTEER%2FAliReconstruction.h;h=a037f3ae74c50a8d551059766d0c700df9ef3dae;hb=37d10286bf299acea64fa5f620775c0cf0b8b528;hp=92a910d6b09d90d6dd9be96d034d272beb157a7a;hpb=42457748efad3c4917667bab55ee40d1c7d3ba89;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/STEER/AliReconstruction.h b/STEER/STEER/AliReconstruction.h index 92a910d6b09..a037f3ae74c 100644 --- a/STEER/STEER/AliReconstruction.h +++ b/STEER/STEER/AliReconstruction.h @@ -3,7 +3,7 @@ /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ -/* $Id$ */ +/* $Id: AliReconstruction.h 63911 2013-08-19 16:46:41Z hristov $ */ /////////////////////////////////////////////////////////////////////////////// // // @@ -53,6 +53,8 @@ class AliRecoInputHandler; #include "AliEventInfo.h" #include "AliRecoParam.h" +using std::ofstream; + class AliReconstruction: public TSelector { public: AliReconstruction(const char* gAliceFilename = "galice.root"); @@ -81,20 +83,23 @@ public: SetRunLocalReconstruction(detectors); SetRunTracking(detectors); SetFillESD(detectors);}; + void SetDeleteRecPoints(const char* dets) {fDeleteRecPoints = dets;} + void SetDeleteDigits(const char* dets) {fDeleteDigits = dets;} void SetUseTrackingErrorsForAlignment(const char* detectors) {fUseTrackingErrorsForAlignment = detectors;}; void SetLoadAlignFromCDB(Bool_t load) {fLoadAlignFromCDB = load;}; void SetLoadAlignData(const char* detectors) {fLoadAlignData = detectors;}; + void SetTreeBuffSize(Long64_t sz=30000000) {fTreeBuffSize = sz;} //*** Global reconstruction flag setters void SetRunMultFinder(Bool_t flag=kTRUE) {fRunMultFinder=flag;}; void SetRunVertexFinder(Bool_t flag=kTRUE) {fRunVertexFinder=flag;}; void SetRunVertexFinderTracks(Bool_t flag=kTRUE) {fRunVertexFinderTracks=flag;}; - void SetRunHLTTracking(Bool_t flag=kTRUE) {fRunHLTTracking=flag;}; void SetRunV0Finder(Bool_t flag=kTRUE) {fRunV0Finder=flag;}; void SetRunCascadeFinder(Bool_t flag=kTRUE) {fRunCascadeFinder=flag;}; void SetStopOnError(Bool_t flag=kTRUE) {fStopOnError=flag;} + void SetStopOnMissingTriggerFile(Bool_t flag=kTRUE) {fStopOnMissingTriggerFile=flag;} void SetWriteAlignmentData(Bool_t flag=kTRUE){fWriteAlignmentData=flag;} void SetWriteESDfriend(Bool_t flag=kTRUE){fWriteESDfriend=flag;} void SetFillTriggerESD(Bool_t flag=kTRUE){fFillTriggerESD=flag;} @@ -112,13 +117,22 @@ public: Float_t GetV0CsPmin() const {return fV0CsPmin;} Float_t GetDmax() const {return fDmax;} Float_t GetZmax() const {return fZmax;} + + Bool_t HasNextEventAfter(Int_t eventId); + // Bool_t IsRunMultFinder() const {return fRunMultFinder;} // CDB storage activation void SetDefaultStorage(const char* uri); void SetSpecificStorage(const char* calibType, const char* uri); - + void SetCDBSnapshotMode(const char* snapshotFileName); + void AddCheckRecoCDBvsSimuCDB(const char* cdbpath,const char* comment=""); + void RemCheckRecoCDBvsSimuCDB(const char* cdbpath); + void ResetCheckRecoCDBvsSimuCDB() {fCheckRecoCDBvsSimuCDB.Delete();} + void RectifyCDBurl(TString& url); + const TObjArray* GetCheckRecoCDBvsSimuCDB() const {return &fCheckRecoCDBvsSimuCDB;} + void CheckRecoCDBvsSimuCDB(); Bool_t MisalignGeometry(const TString& detectors); void SetAlignObjArray(TObjArray *array) @@ -161,9 +175,10 @@ public: void SetRunPlaneEff(Bool_t flag=kFALSE) {fRunPlaneEff = flag;} enum { - kNDetectors = 15 // number of detectors + kNDetectors = 18 // number of detectors + AD +FIT //alla }; static Int_t GetDetIndex(const char * detector); + static const char** GetDetectorNames() { return fgkDetectorName; } // Upgrade void SetUpgradeModule(const char* detectors) {fUpgradeModule = detectors; MatchUpgradeDetector() ; } @@ -178,9 +193,26 @@ public: void SetAnalysisManager(AliAnalysisManager *mgr) {fAnalysis = mgr;} AliAnalysisManager *GetAnalysisManager() const {return fAnalysis;} -protected: + // A method to declare defined trigger classes even if they are not + // present in the run, needed for proper event selection based on trigger + void DeclareTriggerClasses(const char *trClasses) {fDeclTriggerClasses = trClasses;} + // + // + void CleanProcessedEvent(); + + AliESDEvent* GetESDEvent() const { return fesd; } + AliESDfriend* GetESDfriend() const { return fesdf; } + AliRunLoader* GetRunLoader() const { return fRunLoader;} + AliRawReader* GetRawReader() const { return fRawReader; } + + Bool_t HasEnoughResources(int ev); + void SetStopOnResourcesExcess(int vRSS=3000,int vVMEM=4000); + // + // virtual Bool_t ProcessEvent(void* event); void InitRun(const char* input); + +protected: // Functions needed to select events for which we store the ESD friends Bool_t IsHighPt() const; Bool_t IsCosmicOrCalibSpecie() const; @@ -201,8 +233,8 @@ private: Bool_t ReadIntensityInfoCDB(); Bool_t RunLocalEventReconstruction(const TString& detectors); Bool_t RunVertexFinder(AliESDEvent*& esd); - Bool_t RunHLTTracking(AliESDEvent*& esd); Bool_t RunMuonTracking(AliESDEvent*& esd); + Bool_t RunMFTTrackingMU(AliESDEvent*& esd); // AU Bool_t RunSPDTrackleting(AliESDEvent*& esd); Bool_t RunMultFinder(AliESDEvent*& esd); Bool_t RunTracking(AliESDEvent*& esd, AliESDpid &PID); @@ -211,6 +243,8 @@ private: Bool_t FillTriggerESD(AliESDEvent*& esd); Bool_t FillTriggerScalers(AliESDEvent*& esd); Bool_t FillRawEventHeaderESD(AliESDEvent*& esd); + void DeleteRecPoints(const TString& detectors); + void DeleteDigits(const TString& detectors); Bool_t IsSelected(TString detName, TString& detectors) const; Bool_t InitRunLoader(); @@ -244,12 +278,13 @@ private: //*** Global reconstruction flags ******************* Bool_t fRunVertexFinder; // run the vertex finder Bool_t fRunVertexFinderTracks; // run the vertex finder with tracks - Bool_t fRunHLTTracking; // run the HLT tracking - Bool_t fRunMuonTracking; // run the HLT tracking + Bool_t fRunMuonTracking; // run the MUON tracking + Bool_t fRunMFTTrackingMU; // run the MFT+MUON tracking // AU Bool_t fRunV0Finder; // run the ESD V0 finder Bool_t fRunCascadeFinder; // run the ESD cascade finder Bool_t fRunMultFinder; // run the trackleter for ITS clusters Bool_t fStopOnError; // stop or continue on errors + Bool_t fStopOnMissingTriggerFile; // stop if the simulated trigger file is absent Bool_t fWriteAlignmentData; // write track space-points flag Bool_t fWriteESDfriend; // write ESD friend flag Bool_t fFillTriggerESD; // fill trigger info into ESD @@ -264,6 +299,8 @@ private: TString fRunLocalReconstruction; // run the local reconstruction for these detectors TString fRunTracking; // run the tracking for these detectors TString fFillESD; // fill ESD for these detectors + TString fDeleteRecPoints; // delete recpoints after each event + TString fDeleteDigits; // delete digits after each event TString fLoadCDB; // prefetch CDB entries and init reco-params for these detectors TString fUseTrackingErrorsForAlignment; // for these detectors TString fGAliceFileName; // name of the galice file @@ -309,7 +346,9 @@ private: TString fCDBUri; //! Uri of the default CDB storage TString fQARefUri; //! Uri of the default QA reference storage TObjArray fSpecCDBUri; //! Array with detector specific CDB storages + TObjArray fCheckRecoCDBvsSimuCDB; // Array for CDB items which must be the same in the sim and rec Bool_t fInitCDBCalled; //! flag to check if CDB storages are already initialized + Bool_t fCDBSnapshotMode; //! flag true if we are setting the CDB Manager in snapshot mode Bool_t fSetRunNumberFromDataCalled; //! flag to check if run number is already loaded from run loader //Quality Assurance @@ -326,6 +365,9 @@ private: // Plane Efficiency Evaluation Bool_t fRunPlaneEff ; // Evaluate Plane Efficiency + // PID + AliESDpid* fESDpid; // PID object + // New members needed in order to split Run method // into InitRun,RunEvent,FinishRun methods AliESDEvent* fesd; //! Pointer to the ESD event object @@ -350,6 +392,12 @@ private: Int_t fNhighPt; //! Number of events, selected by IsHighPt Int_t fShighPt; //! Number of events, sampled from fNhighPt + // Counters for SetAutoFlush configuration + Long64_t fTreeBuffSize; // allowed uncompressed buffer size per tree + Long64_t fMemCountESD; //! accumulated ESD size before AutoSave + Long64_t fMemCountESDF; //! accumulated ESD size before AutoSave + Long64_t fMemCountESDHLT; //! accumulated ESD size before AutoSave + // // Upgrade detector reconstruction TString fUpgradeModule; Bool_t fUpgradeMask[kNDetectors]; @@ -357,7 +405,14 @@ private: TString fAnalysisMacro; // Full path to a macro creating an analysis manager train AliAnalysisManager *fAnalysis; //! Analysis manager AliRecoInputHandler *fRecoHandler; //! Input handler adapted for reconstruction - ClassDef(AliReconstruction, 40) // class for running the reconstruction + TString fDeclTriggerClasses; // Declared defined trigger classes + // + Bool_t fStopped; // flag that reco is stopped due to the limited resources + Int_t fMaxRSS; // max RSS memory, MB + Int_t fMaxVMEM; // max VMEM memory, MB + static const char* fgkStopEvFName; // filename for stop.event stamp + // + ClassDef(AliReconstruction, 49) // class for running the reconstruction }; #endif