]>
Commit | Line | Data |
---|---|---|
1 | //-*- Mode: C++ -*- | |
2 | // $Id$ | |
3 | #ifndef ALIHLTEVEHLT_H | |
4 | #define ALIHLTEVEHLT_H | |
5 | //* This file is property of and copyright by the ALICE HLT Project * | |
6 | //* ALICE Experiment at CERN, All rights reserved. * | |
7 | //* See cxx source for full Copyright notice * | |
8 | ||
9 | /// @file AliHLTEveHLT.h | |
10 | /// @author Svein Lindal <slindal@fys.uio.no> | |
11 | /// @brief HLT Instance of Eve display processor | |
12 | ||
13 | #include "AliHLTEveBase.h" | |
14 | class TEvePointSet; | |
15 | class AliESDtrack; | |
16 | class AliEveTrack; | |
17 | class TEveTrackList; | |
18 | class TEveTrackPropagator; | |
19 | class TString; | |
20 | class AliExternalTrackParam; | |
21 | class TH1F; | |
22 | class TH1; | |
23 | class AliESDEvent; | |
24 | ||
25 | class AliHLTEveHLT : public AliHLTEveBase { | |
26 | ||
27 | public: | |
28 | ||
29 | /** Constructor **/ | |
30 | AliHLTEveHLT(); | |
31 | ||
32 | /** Destructor **/ | |
33 | ~AliHLTEveHLT(); | |
34 | ||
35 | /** Inherited from AliHLTEveBase */ | |
36 | void ProcessBlock(AliHLTHOMERBlockDesc * block); | |
37 | ||
38 | /** inherited from AliHLTEveBase */ | |
39 | void UpdateElements(); | |
40 | ||
41 | /** inherited from AliHLTEveBase */ | |
42 | void ResetElements(); | |
43 | ||
44 | void ProcessEsdEvent( AliESDEvent * esd); | |
45 | ||
46 | void DestroyOldTrackList(); | |
47 | static void * DestroyGarbage(void * arg); | |
48 | ||
49 | private: | |
50 | ||
51 | /** copy constructor prohibited */ | |
52 | AliHLTEveHLT(const AliHLTEveHLT&); | |
53 | /** assignment operator prohibited */ | |
54 | AliHLTEveHLT& operator = (const AliHLTEveHLT& ); | |
55 | ||
56 | /*Create the pointset for the display */ | |
57 | void CreateTrackList(); | |
58 | ||
59 | // Make a standard track representation and put it into given container. | |
60 | // Choose which parameters to use a track's starting point. | |
61 | // If gkFixFailedITSExtr is TRUE (FALSE by default) and | |
62 | // if ITS refit failed, take track parameters at inner TPC radius. | |
63 | AliEveTrack * MakeEsdTrack(AliESDtrack *at, TEveTrackList* cont); | |
64 | ||
65 | // Process the ESD block and call the functions necessary to fill the tracklist | |
66 | void ProcessEsdBlock( AliHLTHOMERBlockDesc * block ); | |
67 | ||
68 | //Set up the track propagator | |
69 | void SetUpTrackPropagator(TEveTrackPropagator* trkProp, Float_t magF, Float_t maxR); | |
70 | ||
71 | //Create a title for the track | |
72 | TString CreateTrackTitle(AliESDtrack* t); | |
73 | ||
74 | ///Create the pointset to display primary vertex | |
75 | void CreateVertexPointSet(); | |
76 | ||
77 | //Add track param to AliEveTrack | |
78 | void AddTrackParamToTrack(AliEveTrack* track, const AliExternalTrackParam* tp); | |
79 | ||
80 | //Process histogram block | |
81 | void ProcessHistograms(AliHLTHOMERBlockDesc * block, TCanvas * canvas); | |
82 | ||
83 | //Process trigger block | |
84 | void ProcessGlobalTrigger(AliHLTHOMERBlockDesc * block); | |
85 | ||
86 | //Create tpc qa histograms | |
87 | void CreateHistograms(); | |
88 | ||
89 | //Create eve tracks and put them in track list | |
90 | void FillTrackList(AliESDtrack * esdTrack); | |
91 | ||
92 | //Create track lists | |
93 | void CreateTrackLists(); | |
94 | ||
95 | //Draw tpc qa histograms | |
96 | void DrawHistograms(); | |
97 | void FillHistograms(AliESDtrack * esdTrack); | |
98 | ||
99 | ||
100 | //Add histograms to a canvas in pad number cdCount | |
101 | void AddHistogramToCanvas(TH1 * histogram, TCanvas * canvas, Int_t &cdCount); | |
102 | ||
103 | //Get color from pt | |
104 | Color_t GetColor(Float_t pt); | |
105 | //Get color bin track belongs to | |
106 | Int_t GetColorBin(Float_t pt); | |
107 | ||
108 | ||
109 | Bool_t fTrueField; //Use true field? | |
110 | Bool_t fUseIpOnFailedITS; // Use IP as origin if ITS refit fails? | |
111 | Bool_t fUseRkStepper; // Use Runge Kutta for something something? | |
112 | ||
113 | TEveTrackList * fTrackList; //Eve tracklist | |
114 | TEveElementList * fTrackLists; //Holder for tracklists | |
115 | TEveTrackList * fOldTrackList; //Eve tracklist | |
116 | TEvePointSet * fPointSetVertex; //Display primary vertex | |
117 | ||
118 | TCanvas * fTrCanvas; //Canvas for track qa histos | |
119 | TCanvas * fVertexCanvas; //Other canvas | |
120 | ||
121 | TH1F * fHistEta; //Eta histo | |
122 | TH1F * fHistPhi; //Phi histo | |
123 | TH1F * fHistnClusters;//nClusters histo | |
124 | TH1F * fHistMult; //Mult histo | |
125 | TH1F * fHistDCAr; //DCA r histo | |
126 | Int_t fTrCount; | |
127 | Int_t fVCount; | |
128 | ||
129 | Int_t fNTrackBins; | |
130 | ||
131 | ClassDef(AliHLTEveHLT, 0); | |
132 | }; | |
133 | ||
134 | #endif |