FindFASTJET
[u/mrichter/AliRoot.git] / HLT / exa / HOMERManager.C
CommitLineData
06272c83 1//-*- Mode: C++ -*-
2// $Id: HOMERManager.C $
3/**
4 * @file HOMERManager.C
5 * @brief Sample macro for the use of the HOMERManager
6 *
7 * Usage:
8 * <pre>
9 * aliroot -l HOMERManager.C
10 * </pre>
11 *
12 * This macro illustrates the usage of the AliHLTHOMERManager in order
13 * to on-line read events outside the HLT.
14 *
15 * This macro can be run inside the
16 * <ul>
17 * <li>DAQ/DCS(ACR) network</li>
18 * <li>HLT network</li>
19 * <li>CERN GPN network</li>
20 * </ul>
21 *
22 * See AliHLTHOMERManager for detailed description.
23 *
24 * @author Jochen Thaeder
25 * @ingroup alihlt_tutorial
26 * @ingroup alihlt_homer
27 */
28
06272c83 29
ed45b754 30Int_t HOMERManager() {
31
06272c83 32 Int_t iResult = 0;
33
34 // -- Create new hM object
35 AliHLTHOMERManager *hM = new AliHLTHOMERManager();
36
37 printf( "== INITIALIZE ==\n" );
38
39 iResult = hM->Initialize();
40 if (iResult) return iResult;
41
42 printf( "== CREATE SOURCE LIST ==\n" );
43
44 iResult = hM->CreateSourcesList();
45 if (iResult) return iResult;
46
47 printf( "== CONNECT HOMER ==\n" );
48
ed45b754 49 iResult = hM->ConnectHOMER();
06272c83 50 if (iResult) return iResult;
51
4faff50e 52 printf( "== NEXT EVENT ==\n" );
06272c83 53
54 iResult = hM->NextEvent();
55 if (iResult) return iResult;
ed45b754 56
4faff50e 57 printf( "== LOOP OVER BLOCKS ==\n" );
58
ed45b754 59 if ( hM->GetBlockList() == NULL )
60 return -1;
61
62 if ( hM->GetBlockList()->IsEmpty() )
63 return -2;
4faff50e 64
65 TIter next(hM->GetBlockList());
66 AliHLTHOMERBlockDesc* block = NULL;
67
ed45b754 68 AliESDEvent* esd = NULL;
69
4faff50e 70 while ((block = (AliHLTHOMERBlockDesc*)next())) {
71
ed45b754 72 //printf ( "Detector : %s\n" ,block->GetDetector().Data() );
73 //printf ( "Datatype : %s\n" ,block->GetDataType().Data() );
4faff50e 74
ed45b754 75 if ( block->IsTObject() ) {
76 TObject* object = block->GetTObject();
77 // printf("ClassName %s\n", block->GetClassName().Data() );
d8691591 78 }
06272c83 79
ed45b754 80 // ++ HLT BLOCK
81 // +++++++++++++++++++++++++++++++++++++++++++++++++++++++
82 if ( ! block->GetDetector().CompareTo("HLT") ) {
83
84 // -- ESDTREE
85 if ( ! block->GetDataType().CompareTo("ALIESDV0") ) {
86 esd = static_cast<AliESDEvent*> ( block->GetTObject() );
87 esd->GetStdContent();
88
89 printf( "Number of ESD Tracks : %d \n", esd->GetNumberOfTracks());
90 } //if ( ! block->GetDataType().CompareTo("ALIESDV0") ) {
91 } // if ( ! block->GetDetector().CompareTo("HLT") ) {
92
93 else if ( ! block->GetDetector().CompareTo("TPC") ) {
94 // -- Process TPC Clusters
95 if ( ! block->GetDataType().CompareTo("CLUSTERS") ) {
96
97 Int_t slice = block->GetSubDetector();
98 Int_t patch = block->GetSubSubDetector();
99 // Float_t phi = ( slice + 0.5 ) * TMath::Pi() / 9.0;
100 // Float_t cos = TMath::Cos( phi );
101 // Float_t sin = TMath::Sin( phi );
102
103 Int_t ddl = slice*6 + patch;
104
105 // cout << slice << " -- " << patch << " -- " << ddl << endl;
106
107 // AliHLTTPCClusterData *cd = reinterpret_cast<AliHLTTPCClusterData*> (block->GetData());
108 // UChar_t *data = reinterpret_cast<UChar_t*> (cd->fSpacePoints);
109
110 } // if ( ! block->GetDataType().CompareTo("CLUSTERS") ) {
111 } // else if ( ! block->GetDetector().CompareTo("TPC") ) {
112
113 } // while ((block = (AliHLTHOMERBlockDesc*)next())) {
114
06272c83 115 // -- Destroy hM object
116 if (hM)
117 delete hM;
118 hM = NULL;
ed45b754 119
120 return iResult;
06272c83 121}