]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDMonitorComponent.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDMonitorComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTTRDMONITORCOMPONENT_H
4 #define ALIHLTTRDMONITORCOMPONENT_H
5
6 //* This file is property of and copyright by the ALICE HLT Project        *
7 //* ALICE Experiment at CERN, All rights reserved.                         *
8 //* See cxx source for full Copyright notice                               */
9
10 /// @file   AliHLTTRDMonitorComponent.h
11 /// @author Felix Rettig, Stefan Kirsch
12 /// @date   2012-08-16
13 /// @brief  The TRD monitoring component
14 /// @ingroup alihlt_trd_components
15
16 #include "AliHLTProcessor.h"
17
18 class TObjArray;
19 class TH1I;
20 class TH2I;
21 class TH2F;
22 class AliTRDonlineTrackingDataContainer;
23
24 class AliHLTTRDMonitorComponent : public AliHLTProcessor {
25 public:
26   AliHLTTRDMonitorComponent();
27   virtual ~AliHLTTRDMonitorComponent();
28
29   // AliHLTComponent interface functions
30   const char* GetComponentID();
31   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
32   AliHLTComponentDataType GetOutputDataType();
33   void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
34   AliHLTComponent* Spawn();
35
36  protected:
37   // AliHLTComponent interface functions
38   int DoInit( int argc, const char** argv );
39   int DoDeinit();
40   int ScanConfigurationArgument(int argc, const char** argv);
41   int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
42   int Reconfigure(const char* cdbEntry, const char* chainId);
43
44   using AliHLTProcessor::DoEvent;
45
46 private:
47   /** copy constructor prohibited */
48   AliHLTTRDMonitorComponent(const AliHLTTRDMonitorComponent&);
49   /** assignment operator prohibited */
50   AliHLTTRDMonitorComponent& operator=(const AliHLTTRDMonitorComponent&);
51
52   int Configure(const char* arguments);
53
54   void DbgLog(const char* prefix, ... );
55
56   int PrepareTRDData();
57   void DumpTrackingData();
58   int ProcessTRDData();
59
60   static const AliHLTEventID_t fgkInvalidEventId = 0xffffffffffffffffllu;
61   static const unsigned int fkTRDChambers = 540;             //! number of chambers in TRD
62   static const unsigned int fkTRDStacks = 90;                //! number of stacks in TRD
63   static const unsigned int fkTRDStacksPerSector = 5;        //! number of stacks per sector in TRD
64   static const unsigned int fkTRDSectors = 18;               //! number of sectors in TRD
65   static const unsigned int fkMaxRefTracksPerStack = 1000;   //! maximum number of ref tracks per stack
66
67   Double_t fTrackHighPtThreshold;           //! high-pt track pt threshold
68   Bool_t fHistoMode;                        //! histogramming mode, 0: single event, 1: accumulative (debugging)
69   Bool_t fTrackingDataDebugOutput;          //! switch on/off tracking data text dump
70
71   UShort_t fDebugLevel;                                      //! debug level, 0: debug off
72   Bool_t fWriteHistos;                                       //! switch on/off histogram writing
73
74   AliHLTEventID_t fEventId;                                  //! hlt internal event id
75   AliTRDonlineTrackingDataContainer* fTrackingData;          //! container for TRD tracking data
76
77   TObjArray* fHistArray;
78   TH1I* fHistEventTypes;                                     //! counting of event types
79   TH1I* fHistTrackletY;                                      //! tracklet y-positions from all stacks
80   TH1I* fHistTrackletDy;                                     //! tracklet deflections from all stacks
81   TH2I* fHistTrackletYDy;                                    //! tracklet deflections vs. y-positions
82   TH1I* fHistTrackletZ;                                      //! tracklet z-positions from all stacks
83   TH1I* fHistTrackletPID;                                    //! tracklet PID values from all stacks
84   TH2F* fHistTrackletsHCId;                                  //! number of tracklets per half-chamber
85   TH1I* fHistTrackPt;                                        //! transverse momentum of GTU tracks from all stacks
86   TH1I* fHistTrackPID;                                       //! PID of GTU tracks from all stacks
87   TH1I* fHistTrackLayers;                                    //! contributing layers per GTU track
88   TH1I* fHistTrackLayersHighPt;                              //! contributing layer per high-pt GTU track
89   TH2F* fHistTracksStack;                                    //! GTU tracks per stack
90   TH2I* fHistTrackletTimingStack;                            //! tracklet arrival timing by stack
91   TH2I* fHistTrackingTiming;                                 //! tracking timing
92   TH2I* fHistTriggerContribs;                                //! trigger contributions by sector
93
94   ClassDef(AliHLTTRDMonitorComponent, 0)
95 };
96
97 #endif