]>
Commit | Line | Data |
---|---|---|
ce6fd1b1 | 1 | //-*- Mode: C++ -*- |
2 | // $Id$ | |
3 | #ifndef ALIHLTTRDMONITORCOMPONENT_H | |
4 | #define ALIHLTTRDMONITORCOMPONENT_H | |
5 | ||
c7b7f445 | 6 | //* This file is property of and copyright by the ALICE HLT Project * |
ce6fd1b1 | 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 | |
c7b7f445 | 12 | /// @date 2012-08-16 |
13 | /// @brief The TRD monitoring component | |
ce6fd1b1 | 14 | /// @ingroup alihlt_trd_components |
15 | ||
16 | #include "AliHLTProcessor.h" | |
17 | ||
c7b7f445 | 18 | class TObjArray; |
ce6fd1b1 | 19 | class TH1I; |
20 | class TH2I; | |
21 | class TH2F; | |
c7b7f445 | 22 | class AliTRDonlineTrackingDataContainer; |
ce6fd1b1 | 23 | |
ce6fd1b1 | 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(); | |
ce6fd1b1 | 33 | void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); |
ce6fd1b1 | 34 | AliHLTComponent* Spawn(); |
35 | ||
36 | protected: | |
37 | // AliHLTComponent interface functions | |
38 | int DoInit( int argc, const char** argv ); | |
39 | int DoDeinit(); | |
ce6fd1b1 | 40 | int ScanConfigurationArgument(int argc, const char** argv); |
c7b7f445 | 41 | int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData); |
ce6fd1b1 | 42 | int Reconfigure(const char* cdbEntry, const char* chainId); |
ce6fd1b1 | 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 | ||
c7b7f445 | 52 | int Configure(const char* arguments); |
53 | ||
54 | void DbgLog(const char* prefix, ... ); | |
55 | ||
56 | int PrepareTRDData(); | |
57 | void DumpTrackingData(); | |
58 | int ProcessTRDData(); | |
ce6fd1b1 | 59 | |
c7b7f445 | 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 | |
ce6fd1b1 | 76 | |
ce6fd1b1 | 77 | TObjArray* fHistArray; |
c7b7f445 | 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 | |
ce6fd1b1 | 93 | |
94 | ClassDef(AliHLTTRDMonitorComponent, 0) | |
95 | }; | |
c7b7f445 | 96 | |
ce6fd1b1 | 97 | #endif |