e THnSparse structure to store MC residuals
[u/mrichter/AliRoot.git] / PWG1 / TRD / AliTRDpwg1Helper.h
1 #ifndef ALITRDPWG1HELPER_H
2 #define ALITRDPWG1HELPER_H
3
4 ////////////////////////////////////////////////////////////////////////////
5 //                                                                        //
6 //  Helper class for PWG1 TRD train                                       //
7 //                                                                        //
8 //  Authors:                                                              //
9 //    Markus Fasel <M.Fasel@gsi.de>                                       //
10 //                                                                        //
11 ////////////////////////////////////////////////////////////////////////////
12
13 class AliTRDpwg1Helper{
14 public:
15   enum ETRDinfoGenOutSlots {
16     kEventInfo     = 1
17     ,kTracksBarrel
18     ,kTracksSA
19     ,kTracksKink
20     ,kV0List 
21     ,kMonitor
22     ,kNOutSlots
23   };
24
25   enum ETRDrecoTasks{
26     kCheckESD = 0
27     ,kInfoGen
28     ,kCheckDET
29     ,kEfficiency
30     ,kResolution
31     ,kCheckPID
32     ,kV0Monitor
33     ,kCheckTRK
34     ,kCalibration
35     ,kEfficiencyMC
36     ,kAlignment
37     ,kPIDRefMaker
38     ,kClErrParam
39     ,kMultiplicity
40   };
41
42   enum{
43     kNTRDQATASKS = 8,
44     kNTRDCALIBTASKS = 6,
45     kNTRDTASKS = kNTRDQATASKS + kNTRDCALIBTASKS
46   };
47
48   AliTRDpwg1Helper();
49   ~AliTRDpwg1Helper();
50
51   static Bool_t DoTask(Int_t idx, Int_t map);
52   static Int_t  GetTaskIndex(const Char_t *name);
53   static Bool_t HasReadMCData(Char_t *opt);
54   static Bool_t HasReadFriendData(Char_t *opt);
55   static const Char_t * TaskOpt(Int_t itask) {return fgkTRDtaskOpt[itask];}
56   static const Char_t * TaskClassName(Int_t itask) {return fgkTRDtaskClassName[itask];}
57
58   static const Char_t*  Basename(const char* filepath);
59   static const Char_t*  Dirname(const char* filepath);
60   static const Char_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);
61   static void   MergeProd(const Char_t *mark, const Char_t *files, const Int_t nBatch=20, Int_t level=0);
62   static Int_t  ParseOptions(Char_t *trd);
63
64 private:
65   AliTRDpwg1Helper(const AliTRDpwg1Helper& ref);
66   const AliTRDpwg1Helper& operator=(const AliTRDpwg1Helper& ref);
67   static const Char_t * fgkTRDtaskOpt[kNTRDTASKS + 1];  //! task options
68   static const Char_t * fgkTRDtaskClassName[kNTRDTASKS];//! task class name
69 };
70
71 #endif