4 //**************************************************************************
5 //* This file is property of and copyright by the ALICE HLT Project *
6 //* ALICE Experiment at CERN, All rights reserved. *
8 //* Primary Authors: Jochen Thaeder <thaeder@kip.uni-heidelberg.de> *
9 //* for The ALICE HLT Project. *
11 //* Permission to use, copy, modify and distribute this software and its *
12 //* documentation strictly for non-commercial purposes is hereby granted *
13 //* without fee, provided that the above copyright notice appears in all *
14 //* copies and that both the copyright notice and this permission notice *
15 //* appear in the supporting documentation. The authors make no claims *
16 //* about the suitability of this software for any purpose. It is *
17 //* provided "as is" without express or implied warranty. *
18 //**************************************************************************
20 /** @file AliHLTJETConeJetComponent.cxx
21 @author Jochen Thaeder <thaeder@kip.uni-heidelberg.de>
23 @brief Component to run the ConeJet jetfinder
34 #include "AliHLTJETConeJetComponent.h"
37 #include "TObjString.h"
39 /** ROOT macro for the implementation of ROOT specific class methods */
40 ClassImp(AliHLTJETConeJetComponent)
43 * ---------------------------------------------------------------------------------
44 * Constructor / Destructor
45 * ---------------------------------------------------------------------------------
48 // #################################################################################
49 AliHLTJETConeJetComponent::AliHLTJETConeJetComponent()
52 // fJetHeader(NULL),*/
54 fJetReaderHeader(NULL),
56 // see header file for class documentation
58 // refer to README to build package
60 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
64 // #################################################################################
65 AliHLTJETConeJetComponent::~AliHLTJETConeJetComponent() {
66 // see header file for class documentation
70 * ---------------------------------------------------------------------------------
71 * Public functions to implement AliHLTComponent's interface.
72 * These functions are required for the registration process
73 * ---------------------------------------------------------------------------------
76 // #################################################################################
77 const Char_t* AliHLTJETConeJetComponent::GetComponentID() {
78 // see header file for class documentation
79 return "JETConeJetFinder";
82 // #################################################################################
83 void AliHLTJETConeJetComponent::GetInputDataTypes( vector<AliHLTComponentDataType>& list) {
84 // see header file for class documentation
86 list.push_back( kAliHLTDataTypeMCObject|kAliHLTDataOriginOffline );
87 list.push_back( kAliHLTDataTypeMCObject|kAliHLTDataOriginHLT );
88 list.push_back( kAliHLTDataTypeESDObject|kAliHLTDataOriginOffline );
89 list.push_back( kAliHLTDataTypeESDObject|kAliHLTDataOriginHLT );
92 // #################################################################################
93 AliHLTComponentDataType AliHLTJETConeJetComponent::GetOutputDataType() {
94 // see header file for class documentation
95 return (kAliHLTDataTypeESDObject| kAliHLTDataOriginHLT);
98 // #################################################################################
99 void AliHLTJETConeJetComponent::GetOutputDataSize( ULong_t& constBase, Double_t& inputMultiplier ) {
100 // see header file for class documentation
103 inputMultiplier = 0.3;
106 // #################################################################################
107 AliHLTComponent* AliHLTJETConeJetComponent::Spawn() {
108 // see header file for class documentation
109 return new AliHLTJETConeJetComponent();
113 * ---------------------------------------------------------------------------------
114 * Protected functions to implement AliHLTComponent's interface.
115 * These functions provide initialization as well as the actual processing
116 * capabilities of the component.
117 * ---------------------------------------------------------------------------------
120 // #################################################################################
121 Int_t AliHLTJETConeJetComponent::DoInit( Int_t /*argc*/, const Char_t** /*argv*/ ) {
122 // see header file for class documentation
124 if ( /*fJetFinder || fJetHeader ||*/ fJetReader || fJetReader || fJetTrackCuts)
129 // -------------------------------------------
130 if ( ! (fJetTrackCuts = new AliHLTJETTrackCuts()) ) {
131 HLTError("Error initializing Track Cuts");
135 // fJetTrackCuts->Set ...
137 // -- Jet Reader Header
138 // -------------------------------------------
139 if ( ! (fJetReaderHeader = new AliHLTJETReaderHeader()) ) {
140 HLTError("Error initializing Jet Reader Header");
144 fJetReaderHeader->SetAnalysisCuts( dynamic_cast<AliAnalysisCuts*>(fJetTrackCuts) );
147 // -------------------------------------------
148 if ( ! (fJetReader = new AliHLTJETReader()) ) {
149 HLTError("Error initializing Jet Reader");
153 fJetReader->SetReaderHeader(fJetReaderHeader);
157 // -------------------------------------------
158 if ( ! (fJetHeader = new AliFastJetHeader()) ) {
159 HLTError("Error initializing Jet Header");
163 fJetHeader->SetRparam(0.7);
166 // -------------------------------------------
167 if ( ! (fJetFinder = new AliFastJetFinder()) ) {
168 HLTError("Error initializing Jet Finder");
172 fJetFinder->SetJetHeader(fJetHeader);
173 fJetFinder->SetJetReader(fJetReader);
174 fJetFinder->SetOutputFile("jets.root");
176 // -- Initialize Jet Finder
177 // -------------------------------------------
185 // #################################################################################
186 Int_t AliHLTJETConeJetComponent::DoDeinit() {
187 // see header file for class documentation
203 if ( fJetReaderHeader )
204 delete fJetReaderHeader;
205 fJetReaderHeader = NULL;
208 delete fJetTrackCuts;
209 fJetTrackCuts = NULL;
217 // #################################################################################
218 Int_t AliHLTJETConeJetComponent::DoEvent( const AliHLTComponentEventData& /*evtData*/,
219 AliHLTComponentTriggerData& /*trigData*/ ) {
220 // see header file for class documentation
224 const TObject* iter = NULL;
228 if ( GetFirstInputObject(kAliHLTDataTypeSOR) && !iResult ) {
229 HLTInfo("On-line SOR Event");
232 // -- ADD MC Object -- Off-line
233 // ------------------------------
234 for ( iter=GetFirstInputObject(kAliHLTDataTypeMCObject|kAliHLTDataOriginOffline); iter != NULL && !iResult; iter=GetNextInputObject() ) {
235 HLTInfo("Off-line MC Event");
238 // -- ADD MC Object -- On-line
239 // ------------------------------
240 for ( iter=GetFirstInputObject(kAliHLTDataTypeMCObject|kAliHLTDataOriginHLT); iter != NULL && !iResult; iter=GetNextInputObject() ) {
241 HLTInfo("On-line MC Event");
243 // -- Set input event
244 fJetReader->SetInputEvent( NULL, NULL, const_cast<TObject*>(iter) );
246 // -- FillMomentumArrayMC
247 if ( ! (fJetReader->FillMomentumArrayMC()) )
251 // fJetFinder->ProcessEvent();
255 // -- ADD ESD Object -- Off-line
256 // -------------------------------
257 for ( iter=GetFirstInputObject(kAliHLTDataTypeESDObject|kAliHLTDataOriginOffline); iter != NULL && !iResult; iter=GetNextInputObject() ) {
258 HLTInfo("Off-line ESD Event");
261 // -- ADD ESD Object -- On-line
262 // ------------------------------
263 for ( iter=GetFirstInputObject(kAliHLTDataTypeESDObject|kAliHLTDataOriginHLT); iter != NULL && !iResult; iter=GetNextInputObject() ) {
264 HLTInfo("On-line ESD Event");
269 if ( GetFirstInputObject(kAliHLTDataTypeEOR) && !iResult ) {
270 HLTInfo("On-line EOR Event");
273 // fJetFinder->FinishRun();