#ifndef ALITRDPWGPPHELPER_H
#define ALITRDPWGPPHELPER_H
class AliTRDpwgppHelper{
public:
enum ETRDinfoGenOutSlots {
kEventInfo = 1
,kTracksBarrel
,kTracksITS
,kTracksSA
,kTracksKink
,kV0List
,kClusters
,kMonitor
,kNOutSlots
};
enum ETRDrecoTasks{
kCheckESD = 0
,kInfoGen
,kCheckDET
,kEfficiency
,kResolution
,kCheckPID
,kV0Monitor
,kCheckTRK
,kCalibration
,kEfficiencyMC
,kAlignment
,kPIDRefMaker
,kClErrParam
,kMultiplicity
};
enum{
kNTRDQATASKS = 8,
kNTRDCALIBTASKS = 6,
kNTRDTASKS = kNTRDQATASKS + kNTRDCALIBTASKS
};
AliTRDpwgppHelper();
~AliTRDpwgppHelper();
static Bool_t DoTask(Int_t idx, Int_t map);
static Int_t GetTaskIndex(const Char_t *name);
static Bool_t HasReadMCData(const Char_t *opt);
static Bool_t HasReadFriendData(const Char_t *opt);
static const Char_t * TaskOpt(Int_t itask) {return fgkTRDtaskOpt[itask];}
static const Char_t * TaskClassName(Int_t itask) {return fgkTRDtaskClassName[itask];}
static const Char_t* Basename(const char* filepath);
static const Char_t* Dirname(const char* filepath);
static Int_t MergeBatch(const Char_t *mark, const Char_t *files, const Int_t nfiles=20, const Int_t first=0, Bool_t kSVN=kTRUE, Bool_t kCLEAR=kFALSE);
static void MergeProd(const Char_t *mark, const Char_t *files, const Int_t nBatch=20, Int_t level=0);
static Int_t ParseOptions(const Char_t *trd);
private:
AliTRDpwgppHelper(const AliTRDpwgppHelper& ref);
const AliTRDpwgppHelper& operator=(const AliTRDpwgppHelper& ref);
static const Char_t * fgkTRDtaskOpt[kNTRDTASKS + 1];
static const Char_t * fgkTRDtaskClassName[kNTRDTASKS];
};
#endif