/* 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 $ */
///////////////////////////////////////////////////////////////////////////////
// //
#include "AliEventInfo.h"
#include "AliRecoParam.h"
+using std::ofstream;
+
class AliReconstruction: public TSelector {
public:
AliReconstruction(const char* gAliceFilename = "galice.root");
void SetOption(const char* detector, const char* option);
void SetRecoParam(const char* detector, AliDetectorRecoParam *par);
+ void SetCosmicAlias(const char* nm="kCosmic") {fCosmicAlias = nm;}
+ void SetLaserAlias(const char* nm="kCalibLaser") {fLaserAlias = nm;}
+
+ TString& GetCosmicAlias() const {return (TString&)fCosmicAlias;}
+ TString& GetLaserAlias() const {return (TString&)fLaserAlias;}
+
void SetRunLocalReconstruction(const char* detectors) {
fRunLocalReconstruction = detectors;};
void SetRunTracking(const char* detectors) {
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;}
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 SetFromCDBSnapshot(const char* snapshotFileName) {fFromCDBSnapshot = kTRUE; fSnapshotFileName=snapshotFileName;}
- void SetCDBSnapshotMode(const char* snapshotFileName) {AliCDBManager::Instance()->SetSnapshotMode(snapshotFileName);}
- void UnSetFromCDBSnapshot() {fFromCDBSnapshot = kFALSE;}
-
+ 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)
void SetRunPlaneEff(Bool_t flag=kFALSE) {fRunPlaneEff = flag;}
enum {
-// #ifdef MFT_UPGRADE
-// kNDetectors = 16 // number of detectors
-// #else
-// kNDetectors = 15 // number of detectors
-// #endif
- kNDetectors = 16 // number of detectors // AU
+ 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() ; }
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);
//
//
-protected:
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;
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);
Bool_t InitRecoParams(); // init the array with the reconstruciton parameters
Bool_t GetEventInfo(); // fill the event info inside the event loop
-
+ void ProcessTriggerAliases();
+ Bool_t TriggerMatches2Alias(const char* trigName, const char* alias);
const char *MatchDetectorList(const char *detectorList, UInt_t detectorMask);
//*** 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
Float_t fV0CsPmin; // min. allowed cosine of V0 pointing angle
Float_t fDmax; // max. allowed transverse impact parameter
Float_t fZmax; // max. allowed longitudinal impact parameter
-
+
+ TString fCosmicAlias; // alias for cosmic triggers
+ TString fLaserAlias; // alias for laser triggers
+ //
TString fRunLocalReconstruction; // run the local reconstruction for these detectors
TString fRunTracking; // run the tracking for these detectors
TString fFillESD; // fill ESD for these detectors
AliESDVertex* fDiamondProfileSPD; // (x,y) diamond profile from SPD for AliITSVertexer3D(Z)
AliESDVertex* fDiamondProfile; // (x,y) diamond profile for AliVertexerTracks (ITS+TPC)
AliESDVertex* fDiamondProfileTPC; // (x,y) diamond profile from TPC for AliVertexerTracks
- THashTable* fListOfCosmicTriggers; // list of cosmic triggers as defined by trigger coordination
+ THashTable* fListOfCosmicTriggers; // list of cosmic triggers as defined by trigger coordination (RS for BWD comp)
+ THashList* fAlias2Trigger; // list of aliases with string of triggers per alias
AliGRPObject* fGRPData; // Data from the GRP/GRP/Data CDB folder
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 fFromCDBSnapshot; //! flag to check if we are loading the CDB from a snapshot
- TString fSnapshotFileName; //! string for the file containing the CDB snapshot
+ 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
// 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
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];
Int_t fMaxVMEM; // max VMEM memory, MB
static const char* fgkStopEvFName; // filename for stop.event stamp
//
- ClassDef(AliReconstruction, 43) // class for running the reconstruction
+ ClassDef(AliReconstruction, 49) // class for running the reconstruction
};
#endif