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 AliHLTJETFastJetComponent.cxx
21 @author Jochen Thaeder <thaeder@kip.uni-heidelberg.de>
23 @brief Component to run the FastJet jetfinder
34 #include "AliHLTJETFastJetComponent.h"
36 //#include "AliJetESDReader.h"
37 //#include "AliJetESDReaderHeader.h"
39 #include "AliCDBEntry.h"
40 #include "AliCDBManager.h"
42 #include "AliMCEvent.h"
43 #include "AliHeader.h"
46 #include "TObjString.h"
48 /** ROOT macro for the implementation of ROOT specific class methods */
49 ClassImp(AliHLTJETFastJetComponent)
52 * ---------------------------------------------------------------------------------
53 * Constructor / Destructor
54 * ---------------------------------------------------------------------------------
57 // #################################################################################
58 AliHLTJETFastJetComponent::AliHLTJETFastJetComponent()
63 fJetReaderHeader(NULL) {
64 // see header file for class documentation
66 // refer to README to build package
68 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
71 // #################################################################################
72 AliHLTJETFastJetComponent::~AliHLTJETFastJetComponent() {
73 // see header file for class documentation
77 * ---------------------------------------------------------------------------------
78 * Public functions to implement AliHLTComponent's interface.
79 * These functions are required for the registration process
80 * ---------------------------------------------------------------------------------
83 // #################################################################################
84 const Char_t* AliHLTJETFastJetComponent::GetComponentID() {
85 // see header file for class documentation
86 return "JETFastJetFinder";
89 // #################################################################################
90 void AliHLTJETFastJetComponent::GetInputDataTypes( vector<AliHLTComponentDataType>& list) {
91 // see header file for class documentation
93 list.push_back( kAliHLTDataTypeMCObject|kAliHLTDataOriginOffline );
94 list.push_back( kAliHLTDataTypeESDObject|kAliHLTDataOriginOffline );
95 list.push_back( kAliHLTDataTypeESDObject|kAliHLTDataOriginHLT );
98 // #################################################################################
99 AliHLTComponentDataType AliHLTJETFastJetComponent::GetOutputDataType() {
100 // see header file for class documentation
101 return (kAliHLTDataTypeESDObject| kAliHLTDataOriginHLT);
104 // #################################################################################
105 void AliHLTJETFastJetComponent::GetOutputDataSize( ULong_t& constBase, Double_t& inputMultiplier ) {
106 // see header file for class documentation
109 inputMultiplier = 0.3;
112 // #################################################################################
113 AliHLTComponent* AliHLTJETFastJetComponent::Spawn() {
114 // see header file for class documentation
115 return new AliHLTJETFastJetComponent();
119 * ---------------------------------------------------------------------------------
120 * Protected functions to implement AliHLTComponent's interface.
121 * These functions provide initialization as well as the actual processing
122 * capabilities of the component.
123 * ---------------------------------------------------------------------------------
126 // #################################################################################
127 Int_t AliHLTJETFastJetComponent::DoInit( Int_t /*argc*/, const Char_t** /*argv*/ ) {
128 // see header file for class documentation
130 if ( fJetFinder || fJetReader || fJetHeader || fJetReader )
134 printf("HAVE FASTJET");
136 printf("NO FASTJET");
140 fJetReaderHeader = new AliJetKineReaderHeader();
141 fJetReaderHeader->SetComment("MC full Kinematics");
142 fJetReaderHeader->SetFastSimTPC(kFALSE);
143 fJetReaderHeader->SetFastSimEMCAL(kFALSE);
144 fJetReaderHeader->SetPtCut(0.);
146 // Define reader and set its header
147 fJetReader = new AliJetKineReader();
148 fJetReader->SetReaderHeader(fJetReaderHeader);
151 fJetReaderHeader = new AliJetESDReaderHeader();
152 fJetReaderHeader->SetComment("Testing");
153 fJetReaderHeader->SetFirstEvent(0);
154 fJetReaderHeader->SetLastEvent(4);
156 fJetReader = new AliJetESDReader();
157 fJetReader->SetReaderHeader(fJetReaderHeader);
160 fJetHeader = new AliFastJetHeader();
161 fJetHeader->SetRparam(0.7);
163 fJetFinder = new AliFastJetFinder();
164 fJetFinder->SetJetHeader(fJetHeader);
165 fJetFinder->SetJetReader(fJetReader);
166 fJetFinder->SetOutputFile("jets.root");
171 // #################################################################################
172 Int_t AliHLTJETFastJetComponent::DoDeinit() {
173 // see header file for class documentation
189 if ( fJetReaderHeader )
190 delete fJetReaderHeader;
191 fJetReaderHeader = NULL;
196 // #################################################################################
197 Int_t AliHLTJETFastJetComponent::DoEvent( const AliHLTComponentEventData& /*evtData*/,
198 AliHLTComponentTriggerData& /*trigData*/ ) {
199 // see header file for class documentation
201 const TObject* iter = NULL;
203 for ( iter=GetFirstInputObject(kAliHLTDataTypeMCObject|kAliHLTDataOriginOffline); iter != NULL; iter=GetNextInputObject() ) {
207 AliMCEvent* foo = ( AliMCEvent* ) iter;
208 cout << foo->GetNumberOfTracks() << " -- "
209 << foo->Stack() << " -- "
210 << foo->Header()->Stack() << " -- "
211 << foo->Header() << endl;
213 printf (" --- MC --- \n");
216 for ( iter=GetFirstInputObject(kAliHLTDataTypeESDObject|kAliHLTDataOriginOffline); iter != NULL; iter=GetNextInputObject() ) {
217 // ADD ESD Object -- Offline
219 printf (" --- ESD-Offline --- \n");
222 for ( iter=GetFirstInputObject(kAliHLTDataTypeESDObject|kAliHLTDataOriginHLT); iter != NULL; iter=GetNextInputObject() ) {
223 // ADD ESD Object -- HLT
224 printf (" --- ESD-HLT --- \n");