3 #ifndef ALIHLTTRDMONITORCOMPONENT_H
4 #define ALIHLTTRDMONITORCOMPONENT_H
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 */
10 /// @file AliHLTTRDMonitorComponent.h
11 /// @author Felix Rettig, Stefan Kirsch
13 /// @brief The TRD monitoring component
14 /// @ingroup alihlt_trd_components
16 #include "AliHLTProcessor.h"
22 class AliTRDonlineTrackingDataContainer;
24 class AliHLTTRDMonitorComponent : public AliHLTProcessor {
26 AliHLTTRDMonitorComponent();
27 virtual ~AliHLTTRDMonitorComponent();
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();
37 // AliHLTComponent interface functions
38 int DoInit( int argc, const char** argv );
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);
44 using AliHLTProcessor::DoEvent;
47 /** copy constructor prohibited */
48 AliHLTTRDMonitorComponent(const AliHLTTRDMonitorComponent&);
49 /** assignment operator prohibited */
50 AliHLTTRDMonitorComponent& operator=(const AliHLTTRDMonitorComponent&);
52 int Configure(const char* arguments);
54 void DbgLog(const char* prefix, ... );
57 void DumpTrackingData();
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
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
71 UShort_t fDebugLevel; //! debug level, 0: debug off
72 Bool_t fWriteHistos; //! switch on/off histogram writing
74 AliHLTEventID_t fEventId; //! hlt internal event id
75 AliTRDonlineTrackingDataContainer* fTrackingData; //! container for TRD tracking data
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
94 ClassDef(AliHLTTRDMonitorComponent, 0)