ALIROOT-5433 Transition to CDHv3 in HLT
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTriggerFastJet.h
1 //**************************************************************************                        
2 //* This file is property of and copyright by the ALICE HLT Project        *                        
3 //* ALICE Experiment at CERN, All rights reserved.                         *                        
4 //*                                                                        *                        
5 //* Primary Authors: leonidas.xaplanteris@gmail.com                        *                        
6 //*                  for The ALICE HLT Project.                            *                        
7 //*                                                                        *                        
8 //* Permission to use, copy, modify and distribute this software and its   *                        
9 //* documentation strictly for non-commercial purposes is hereby granted   *                        
10 //* without fee, provided that the above copyright notice appears in all   *                        
11 //* copies and that both the copyright notice and this permission notice   *                        
12 //* appear in the supporting documentation. The authors make no claims     *                        
13 //* about the suitability of this software for any purpose. It is          *                        
14 //* provided "as is" without express or implied warranty.                  *                        
15 //**************************************************************************   
16
17 #ifndef ALIHLTTRIGGERFASTJET_H
18 #define ALIHLTTRIGGERFASTJET_H
19
20 #include "TObjArray.h"
21 #include "AliHLTTrigger.h"
22 #include "AliESDtrackCuts.h"
23 #include "AliHLTScalars.h"
24 //#include "AliFJWrapper.h"
25
26 class AliHLTCaloClusterReader;
27 class TRefArray;
28 class AliESDEvent;
29 class TMap;
30 class AliFJWrapper;
31
32 class AliHLTTriggerFastJet : public AliHLTTrigger
33 {
34   
35  public:
36   AliHLTTriggerFastJet();
37   ~AliHLTTriggerFastJet();
38   
39   ///
40   AliHLTComponent* Spawn();
41   
42   // inherited from AliHLTTrigger : name of this trigger
43   const char* GetTriggerName() const;
44   
45   // inherited from AliHLTComponent : get list of OCDB objects
46   void GetOCDBObjectDescription( TMap* const targetMap);
47
48  protected:
49   // inherited from AliHLTComponent: initialization
50   int DoInit(int argc, const char** argv);
51   
52   // inherited from AliHLTComponent: de-initialization
53   int DoDeInit();
54   
55   // inherited from AliHLTComponent: re-configuration
56   int Reconfigure(const char* cdbEntry, const char* chainId);
57
58   // inherited from AliHLTComponent: scan one argument and its parameters
59   int ScanConfigurationArgument(int argc, const char** argv);
60
61   // inherited from AliHLTTrigger: returns the output data types generated from this component 
62   void GetOutputDataTypes(AliHLTComponentDataTypeList &list) const;
63
64   // inherited from AliHLTTrigger: Get a ratio by how much the data volume is shrunken or enhanced.
65   void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
66
67   // inherited from AliHLTTrigger: calculate the trigger
68   Int_t DoTrigger();
69
70   // gets tpc tracks
71   TObjArray *GetTPCTracks(AliESDEvent *fESD);
72
73   // check if cluster fullfills criteria and if so trigger
74   template <class T> 
75   Bool_t TriggerOnJet(T Jet);
76
77   // threshold jet energy to trigger on
78   Float_t fEThreshold;
79
80   // the detector string (PHOS or EMCAL)
81   const TString fDetector;
82
83   // fast jet wrapper
84   AliFJWrapper *fFastJetWrapper;
85
86   // the default configuration entry for this component
87   const char* fOCDBEntry; //!transient
88
89   // track cuts to get tpc tracks
90   AliESDtrackCuts *EsdTrackCuts;
91   
92   // flag to make statistics for histograming using AliHLTScalars
93   Bool_t fMakeStats;
94
95   // AliHLTScalars
96   //  AliHLTScalars scalars;
97
98   // offset for calo tracks
99   //Int_t fOffset;
100
101  private:
102
103   // copy constructor prohibited
104   AliHLTTriggerFastJet(const AliHLTTriggerFastJet & );
105   
106   // assignment operator prohibited
107   AliHLTTriggerFastJet& operator=(const AliHLTTriggerFastJet &);
108   
109   ClassDef(AliHLTTriggerFastJet, 0)
110 };
111
112 #endif //ALIHLTTRIGGERFASTJET_H