]>
Commit | Line | Data |
---|---|---|
b658d7e4 | 1 | // $Id$ |
2 | //************************************************************************** | |
3 | //* This file is property of and copyright by the ALICE HLT Project * | |
4 | //* ALICE Experiment at CERN, All rights reserved. * | |
5 | //* * | |
6 | //* Primary Authors: Matthias Richter <Matthias.Richter@ift.uib.no> * | |
7 | //* for The ALICE HLT Project. * | |
8 | //* * | |
9 | //* Permission to use, copy, modify and distribute this software and its * | |
10 | //* documentation strictly for non-commercial purposes is hereby granted * | |
11 | //* without fee, provided that the above copyright notice appears in all * | |
12 | //* copies and that both the copyright notice and this permission notice * | |
13 | //* appear in the supporting documentation. The authors make no claims * | |
14 | //* about the suitability of this software for any purpose. It is * | |
15 | //* provided "as is" without express or implied warranty. * | |
16 | //************************************************************************** | |
17 | ||
18 | /** | |
19 | * Display HLT TPC clusters in AliEVE. | |
20 | * The cluster data must be stored in an HLTOUT collection originating | |
21 | * either from an HLT simulation or real run with a chain adding | |
22 | * HLT TPC cluster structures of type AliHLTTPCDefinitions::fgkClustersDataType | |
23 | * to the HLTOUT. | |
24 | * | |
25 | * The HLTOUT data is read either from the RawReader which AliEve has been | |
26 | * initialized or the HLT.Digits.root if the RawReader is not available. | |
27 | * Please note: As of Nov 2008, AliEve can handle raw data noy through | |
28 | * AliRawReaderFile. It can only open a RawReader on a single file, by default | |
29 | * raw.root. If the file is not existing, the RawReader is not initialized. | |
30 | * | |
31 | * Usage: | |
32 | * <pre> | |
33 | * alieve $ALICE_ROOT/EVE/alice-macros/event_next.C \ | |
34 | * $ALICE_ROOT/EVE/macros/alieve_init.C \ | |
35 | * $ALICE_ROOT/EVE/alice-macros/geom_simple.C \ | |
36 | * $ALICE_ROOT/HLT/TPCLib/EVE/macros/hlt_tpc_clusters.C | |
37 | * </pre> | |
38 | * Display is changed to next event by executing event_next() | |
39 | * from the root prompt. | |
40 | * <pre> | |
41 | * event_next(); hlt_tpc_clusters(); | |
42 | * </pre> | |
43 | * | |
44 | * @ingroup alihlt_tpc | |
45 | * @author Matthias.Richter@ift.uib.no | |
46 | * @date 2008-11-22 | |
47 | */ | |
037219ca | 48 | TEvePointSet* hlt_tpc_clusters(const char* digitfile=NULL, TEveElement* cont=0, Float_t maxR=270) |
b658d7e4 | 49 | { |
50 | if (!TClass::GetClass("AliEveEventManager")) { | |
51 | Error("hlt_tpc_clusters.C", "EVE library not loaded, please start alieve correctly"); | |
52 | return NULL; | |
53 | } | |
54 | ||
55 | AliEveEventManager* eveManager=AliEveEventManager::GetMaster(); | |
56 | if (!eveManager) { | |
57 | Error("hlt_tpc_clusters.C", "EVE manager not initialized"); | |
58 | return NULL; | |
59 | } | |
60 | ||
61 | eveManager->AssertGeometry(); | |
62 | ||
63 | TClass* pCl=NULL; | |
64 | int iLibResult=0; | |
4070f709 | 65 | gSystem->Load("libAliHLTUtil"); |
66 | gSystem->Load("libAliHLTRCU"); | |
b658d7e4 | 67 | do { |
68 | pCl=TClass::GetClass("AliHLTTPDefinitions"); | |
b0635849 | 69 | } while (!pCl && (iLibResult=gSystem->Load("libAliHLTTPC"))==0); |
b658d7e4 | 70 | do { |
71 | pCl=TClass::GetClass("AliHLTTPCEVE"); | |
b0635849 | 72 | } while (!pCl && (iLibResult=gSystem->Load("libAliHLTTPCEVE"))==0); |
b658d7e4 | 73 | |
74 | AliHLTTPCEVE hlttpceve; | |
75 | TEvePointSet* clusters = NULL; | |
76 | ||
77 | AliESDEvent* pESD=eveManager->AssertESD(); | |
037219ca | 78 | // extract from RawReader if available and no digit file has been specified |
79 | if (digitfile==NULL && eveManager->HasRawReader()) { | |
b658d7e4 | 80 | AliRawReader* pRawReader=eveManager->AssertRawReader(); |
81 | if (pRawReader) { | |
037219ca | 82 | Info("hlt_tpc_clusters.C", "extracting HLT TPC clusters from RawReader"); |
b658d7e4 | 83 | clusters=hlttpceve.MakePointSetFromHLTOUT(pRawReader, cont, maxR); |
84 | } | |
85 | } else { | |
037219ca | 86 | Info("hlt_tpc_clusters.C", Form("extracting HLT TPC clusters from digit file %s", digitfile!=NULL?digitfile:"")); |
87 | clusters=hlttpceve.MakePointSetFromHLTDigits(digitfile, eveManager->GetEventId(), cont, maxR); | |
b658d7e4 | 88 | } |
89 | if (!clusters) return NULL; | |
90 | ||
91 | if (clusters->Size() == 0) { | |
92 | Info("hlt_tpc_clusters.C", "No TPC clusters"); | |
93 | } | |
94 | ||
95 | //clusters->ApplyVizTag(clusters->GetName()); | |
96 | ||
97 | gEve->AddElement(clusters, cont); | |
98 | ||
99 | gEve->Redraw3D(); | |
100 | ||
101 | return clusters; | |
102 | } |