-#ifndef ALITRDRECOTASK_H
-#define ALITRDRECOTASK_H
-
-///////////////////////////////////////////////////////
-//
-// Basic class for Performance/Calibration TRD tasks
-//
-// Author: Alexandru Bercuci, 10/09/2008
-//
-//////////////////////////////////////////////////
-
-#ifndef ALIANALYSISTASKSE_H
-#include "AliAnalysisTaskSE.h"
-#endif
-
-#ifndef ALITRDTRACKINFO_H
-#include "info/AliTRDtrackInfo.h"
-#endif
-
-class TH1;
-class TF1;
-class TList;
-class TObjArray;
-class TTreeSRedirector;
-class AliTRDtrackV1;
-class AliTRDtrackInfo;
-class AliTRDrecoTask : public AliAnalysisTaskSE
-{
-public:
- enum AliTRDrecoSteeringBits{
- kMCdata = BIT(18)
- ,kFriends = BIT(19)
- ,kPostProcess = BIT(20)
- };
-
- AliTRDrecoTask();
- AliTRDrecoTask(const char *name, const char *title);
- virtual ~AliTRDrecoTask();
-
-
- virtual void UserCreateOutputObjects() = 0;
- virtual void UserExec(Option_t *opt);
- virtual void SetDebugLevel(Int_t level);
-
-
- Int_t GetNRefFigures() const;
- const Char_t* GetNameId() const { return fNameId;}
- TList* GetPlotFunctors() const { return fPlotFuncList;}
- virtual Bool_t GetRefFigure(Int_t ifig);
- virtual void MakeSummary();
-
- Bool_t HasFriends() const { return TestBit(kFriends);};
- Bool_t HasMCdata() const { return TestBit(kMCdata);};
- Bool_t HasPostProcess() const { return TestBit(kPostProcess);};
- virtual TObjArray* Histos() { return fContainer;}
-
- virtual Bool_t Load(const Char_t *file = "AnalysisResults.root", const Char_t *dir = "TRD_Performance");
- virtual Bool_t Save(TObjArray * const res);
- virtual Bool_t PostProcess();
- virtual Bool_t PutTrendValue(const Char_t *name, Double_t val);
- virtual void SetFriends(Bool_t fr = kTRUE) {SetBit(kFriends, fr);}
- virtual void SetMCdata(Bool_t mc = kTRUE) {SetBit(kMCdata, mc);}
- virtual void SetNameId(const Char_t *nid) {sprintf(fNameId, "%s", nid);}
- virtual void SetPostProcess(Bool_t pp = kTRUE) {SetBit(kPostProcess, pp);}
- virtual void Terminate(Option_t *);
-
-protected:
- static TTreeSRedirector* DebugStream() { return fgDebugStream;}
- void InitFunctorList();
- void Adjust(TF1 *f, TH1 * const h);
- Bool_t HasFunctorList() const { return fPlotFuncList != NULL; }
- Char_t fNameId[10]; // unique identifier of task particularity
- UChar_t fNRefFigures; // no of reference figures reported by task
- TObjArray *fContainer; //! container to store results
- TObjArray *fTracks; //! Array of tracks
- const AliTRDtrackV1 *fkTrack; //! current track
- const AliTRDtrackInfo::AliMCinfo *fkMC; //! MC info
- const AliTRDtrackInfo::AliESDinfo *fkESD;//! ESD info
-
-private:
- AliTRDrecoTask(const AliTRDrecoTask&);
- AliTRDrecoTask& operator=(const AliTRDrecoTask&);
-
- TList *fPlotFuncList;//! plot functors list
- static TList *fgTrendPoint; //! trend point
- static TTreeSRedirector *fgDebugStream; //! Debug stream
-
- ClassDef(AliTRDrecoTask, 3) // base TRD reconstruction task
-};
-
-#endif
-
+#ifndef ALITRDRECOTASK_H\r
+#define ALITRDRECOTASK_H\r
+\r
+///////////////////////////////////////////////////////\r
+//\r
+// Basic class for Performance/Calibration TRD tasks\r
+//\r
+// Author: Alexandru Bercuci, 10/09/2008\r
+//\r
+//////////////////////////////////////////////////\r
+\r
+#ifndef ALIANALYSISTASKSE_H\r
+#include "AliAnalysisTaskSE.h"\r
+#endif\r
+\r
+#ifndef ALITRDTRACKINFO_H\r
+#include "info/AliTRDtrackInfo.h"\r
+#endif\r
+\r
+#ifndef ALITRDEVENTINFO_H\r
+#include "info/AliTRDeventInfo.h"\r
+#endif\r
+\r
+class TH1;\r
+class TF1;\r
+class TList;\r
+class TObjArray;\r
+class TTreeSRedirector;\r
+class AliTRDtrackV1;\r
+\r
+class AliTRDrecoTask : public AliAnalysisTaskSE \r
+{\r
+public:\r
+ enum AliTRDrecoSteeringBits{\r
+ kMCdata = BIT(18)\r
+ ,kFriends = BIT(19)\r
+ ,kPostProcess = BIT(20)\r
+ ,kHeavyIon = BIT(21)\r
+ };\r
+ \r
+ AliTRDrecoTask();\r
+ AliTRDrecoTask(const char *name, const char *title);\r
+ virtual ~AliTRDrecoTask();\r
+ \r
+ \r
+ virtual void UserCreateOutputObjects();\r
+ virtual void UserExec(Option_t *opt);\r
+ virtual void SetDebugLevel(Int_t level);\r
+ \r
+ \r
+ Int_t GetNRefFigures() const; \r
+ const Char_t* GetNameId() const { return fNameId;}\r
+ TList* GetPlotFunctors() const { return fPlotFuncList;}\r
+ virtual Bool_t GetRefFigure(Int_t ifig);\r
+ virtual void MakeSummary();\r
+ void MakeDetectorPlot(Int_t ly=0);\r
+ Bool_t IsHeavyIon() const { return TestBit(kHeavyIon);};\r
+ Bool_t IsPP() const { return !TestBit(kHeavyIon);};\r
+ Bool_t HasFriends() const { return TestBit(kFriends);};\r
+ Bool_t HasMCdata() const { return TestBit(kMCdata);};\r
+ Bool_t HasPostProcess() const { return TestBit(kPostProcess);};\r
+ Bool_t HasRunTerminate() const { return fRunTerminate; }\r
+ virtual TObjArray* Histos() { return fContainer;}\r
+\r
+ virtual Bool_t Load(const Char_t *file = "AnalysisResults.root", const Char_t *dir = "TRD_Performance");\r
+ virtual Bool_t LoadDetectorMap(const Char_t *file = "AnalysisResults.root", const Char_t *dir = "TRD_Performance");\r
+ virtual Bool_t Save(TObjArray * const res);\r
+ virtual Bool_t PostProcess();\r
+ virtual Bool_t PutTrendValue(const Char_t *name, Double_t val);\r
+ virtual void SetFriends(Bool_t fr = kTRUE) {SetBit(kFriends, fr);}\r
+ virtual void SetMCdata(Bool_t mc = kTRUE) {SetBit(kMCdata, mc);}\r
+ virtual void SetNameId(const Char_t *nid) {snprintf(fNameId, 10, "%s", nid);}\r
+ virtual void SetPostProcess(Bool_t pp = kTRUE) {SetBit(kPostProcess, pp);}\r
+ void SetRunTerminate(Bool_t runTerminate = kTRUE) { fRunTerminate = runTerminate; }\r
+ virtual void Terminate(Option_t *);\r
+\r
+protected:\r
+ static TTreeSRedirector* DebugStream() { return fgDebugStream;}\r
+ void InitFunctorList();\r
+ void Adjust(TF1 *f, TH1 * const h);\r
+ Bool_t HasFunctorList() const { return fPlotFuncList != NULL; }\r
+ Char_t fNameId[10]; // unique identifier of task particularity\r
+ UChar_t fNRefFigures; // no of reference figures reported by task\r
+ TObjArray *fDets; //! container to store detector position and status\r
+ TObjArray *fContainer; //! container to store results\r
+ AliTRDeventInfo *fEvent; //! Event Info\r
+ TObjArray *fTracks; //! Array of tracks\r
+ TObjArray *fClusters; //! Array of clusters\r
+ const TObjArray *fkClusters; //! current detector clusters array\r
+ const AliTRDtrackV1 *fkTrack; //! current track\r
+ const AliTRDtrackInfo::AliMCinfo *fkMC; //! MC info\r
+ const AliTRDtrackInfo::AliESDinfo *fkESD;//! ESD info\r
+ Char_t fSpecies; //! species index +1 with charge sign\r
+ Float_t fPt; //! p_t of the track being analyzed\r
+ Float_t fPhi; //! phi of the track being analyzed\r
+ Float_t fEta; //! eta of the track being analyzed\r
+\r
+private:\r
+ AliTRDrecoTask(const AliTRDrecoTask&);\r
+ AliTRDrecoTask& operator=(const AliTRDrecoTask&);\r
+\r
+ TList *fPlotFuncList; //! track functors list\r
+ TList *fDetFuncList; //! detector functors list\r
+ Bool_t fRunTerminate; // Switch for Terminate Function\r
+ static TList *fgTrendPoint; //! trend point\r
+ static TTreeSRedirector *fgDebugStream; //! Debug stream\r
+\r
+ ClassDef(AliTRDrecoTask, 5) // base TRD reconstruction task\r
+};\r
+\r
+#endif\r
+\r