add new mergeable classes for chamber status and trigger statistics
[u/mrichter/AliRoot.git] / PWGPP / TRD / AliTRDinfoGen.h
CommitLineData
94b94be0 1#ifndef ALITRDINFOGEN_H\r
2#define ALITRDINFOGEN_H\r
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
4 * See cxx source for full Copyright notice */\r
5\r
6/* $Id: AliTRDinfoGen.h 27496 2008-07-22 08:35:45Z cblume $ */\r
7\r
8////////////////////////////////////////////////////////////////////////////\r
9// //\r
10// TRD Performance tender wagon //\r
11// //\r
12////////////////////////////////////////////////////////////////////////////\r
13\r
14#ifndef ALIANALYSISTASKSE_H\r
15#include "AliAnalysisTaskSE.h"\r
16#endif\r
17\r
18class AliESDEvent;\r
19class AliMCEvent;\r
20class AliESDfriend;\r
21class AliTRDtrackInfo;\r
22class AliTRDeventInfo;\r
23class AliTRDv0Info;\r
24class AliTRDeventCuts;\r
25class AliESDtrackCuts;\r
26class TObjArray;\r
27class TString;\r
28class TTreeSRedirector;\r
29class AliTRDReconstructor;\r
30class AliTRDgeometry;\r
31class AliTRDinfoGen : public AliAnalysisTaskSE\r
32{\r
33public:\r
34 enum AliTRDinfoGenSteeringBits{\r
35 kMCdata = BIT(18)\r
35983729 36 ,kUseLocalTrkSelection = BIT(19)\r
37 ,kCollision = BIT(20)\r
38 ,kOCDB = BIT(21)\r
eb05d549 39 ,kTrkPoints = BIT(22)\r
94b94be0 40 };\r
41 enum AliTRDinfoGenObjects{\r
3ceb45ae 42 kTracksESD = 0\r
43 ,kTracksMC\r
44 ,kV0\r
45 ,kTPC\r
33056e04 46 ,kITS\r
3ceb45ae 47 ,kTRDin\r
48 ,kTRDout\r
49 ,kBarrel\r
50 ,kBarrelMC\r
51 ,kSA\r
52 ,kSAMC\r
53 ,kKink\r
54 ,kKinkMC\r
55 ,kBarrelFriend\r
56 ,kSAFriend\r
57 ,kNObjects\r
58 };\r
59 enum AliTRDinfoGenClasses{\r
60 kStatTrk = 0\r
61 ,kEvType\r
f073d500 62// ,kBCtrack\r
35983729 63 ,kBC\r
6465da91 64 ,kTrigger\r
c9b23652 65 ,kChmb\r
3ceb45ae 66 ,kNclasses\r
94b94be0 67 };\r
94b94be0 68 AliTRDinfoGen();\r
69 AliTRDinfoGen(char* name);\r
70 virtual ~AliTRDinfoGen();\r
71 \r
72 static Float_t GetEndITS() { return fgkITS;}\r
73 static Float_t GetEndTPC() { return fgkTPC;}\r
74 static Float_t GetEndTRD() { return fgkTRD;}\r
75 Int_t GetNRefFigures() const { return 1;} \r
76 const char* GetOCDB() const {return fOCDB.Data();}\r
77 Bool_t GetRefFigure(Int_t ifig);\r
78 Bool_t Load(const Char_t *fn="AnalysisResults.root", const Char_t *dir="TRD_Performance", const Char_t *name=NULL);\r
79\r
80 Bool_t HasMCdata() const { return TestBit(kMCdata);};\r
81 // temporary until check with AliAnalysisTaskSE collision selection mechanism\r
82 Bool_t IsInitOCDB() const {return TestBit(kOCDB);}\r
83 Bool_t IsCollision() const {return TestBit(kCollision);}\r
eb05d549 84 Bool_t HasTrackPoints() const {return TestBit(kTrkPoints);}\r
c9b23652 85 void MakeSummary();\r
94b94be0 86 static const AliTRDReconstructor* Reconstructor() {return fgReconstructor;}\r
87 static AliTRDgeometry* Geometry() {return fgGeo;}\r
88 void SetInitOCDB(Bool_t set=kTRUE) {SetBit(kOCDB, set);}\r
89 void SetCollision(Bool_t set=kTRUE) {SetBit(kCollision, set);}\r
90 //void SetLocalEvSelection(const AliTRDeventCuts */*cut*/){;} \r
35983729 91 void SetLocalEvSelection(const AliTRDeventCuts &ec);\r
94b94be0 92 //void SetLocalTrkSelection(const AliESDtrackCuts */*cut*/){;} \r
93 void SetLocalTrkSelection(Bool_t use=kTRUE) {SetBit(kUseLocalTrkSelection, use);}\r
35983729 94 void SetLocalV0Selection(const AliTRDv0Info &v0);\r
94b94be0 95 void SetMCdata(Bool_t mc = kTRUE) {SetBit(kMCdata, mc);}\r
96 void SetOCDB(const char *ocdb) {fOCDB=ocdb;}\r
94b94be0 97\r
35983729 98 Bool_t UseLocalEvSelection() const {return Bool_t(fEventCut);}\r
94b94be0 99 Bool_t UseLocalTrkSelection() const {return TestBit(kUseLocalTrkSelection);}\r
eb05d549 100 void UseTrackPoints(Bool_t use=kTRUE) {SetBit(kTrkPoints, use);}\r
94b94be0 101 void UserCreateOutputObjects();\r
102 void UserExec(Option_t *);\r
35983729 103 void Terminate(Option_t* option = "");\r
94b94be0 104private:\r
105 // rough radial limits for TRD\r
106 static const Float_t fgkITS; // end ITS\r
107 static const Float_t fgkTPC; // end TPC\r
108 static const Float_t fgkTRD; // end TRD\r
109\r
94b94be0 110 // Track selection\r
111 static const Float_t fgkTrkDCAxy; // cm\r
112 static const Float_t fgkTrkDCAz; // cm\r
113 static const Int_t fgkNclTPC; // N clusters TPC\r
114 static const Float_t fgkPt; // min. pt\r
115 static const Float_t fgkEta; // eta range\r
116 static AliTRDReconstructor *fgReconstructor; // single instance of TRD reconstructor used by all tasks\r
117 static AliTRDgeometry *fgGeo; // single instance of TRD geometry used by all tasks\r
118\r
119 AliTRDinfoGen(const AliTRDinfoGen&);\r
120 AliTRDinfoGen& operator=(const AliTRDinfoGen&);\r
121 TTreeSRedirector* DebugStream();\r
c9b23652 122 void MakeChambers();\r
94b94be0 123\r
f073d500 124// UShort_t fBF; //! Bunch Fill of previous event\r
94b94be0 125 AliESDEvent *fESDev; //! ESD event\r
126 AliMCEvent *fMCev; //! MC event\r
127 // event/track cuts OO - to be used\r
128 AliTRDeventCuts *fEventCut; // event cut\r
129 AliESDtrackCuts *fTrackCut; // track cut\r
130 AliTRDv0Info *fV0Cut; // v0 cut\r
131 TString fOCDB; // OCDB location\r
132 AliTRDtrackInfo *fTrackInfo; //! Track info\r
133 AliTRDeventInfo *fEventInfo; //! Event info\r
134 AliTRDv0Info *fV0Info; //! V0 info\r
135 TObjArray *fTracksBarrel; //! Array of barrel tracks\r
136 TObjArray *fTracksSA; //! Array of stand alone tracks\r
137 TObjArray *fTracksKink; //! Array of kink tracks\r
138 TObjArray *fV0List; //! V0 container\r
f073d500 139 TObjArray *fClusters; //! Clusters container\r
94b94be0 140 TObjArray *fContainer; //! container to store results\r
246fe7f7 141 TObjArray *fRecos; //! array of reco params\r
94b94be0 142 TTreeSRedirector *fDebugStream; //! debug stream\r
143\r
144 ClassDef(AliTRDinfoGen, 7) // entry to TRD analysis train\r
145};\r
146#endif\r