Line data Source code
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 6 : ClassDef(AliHLTTRDMonitorComponent, 0)
95 : };
96 :
97 : #endif
|