]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/EVE/AliHLTEveHLT.h
Updated directory names on LDC in SDD calibration plotting macro (Mario Sitta)
[u/mrichter/AliRoot.git] / HLT / EVE / AliHLTEveHLT.h
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