added new PhosClusterEnergy trigger component (Svein)
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTriggerPhosClusterEnergy.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTTRIGGERPHOSCLUSTERENERGY_H
4 #define ALIHLTTRIGGERPHOSCLUSTERENERGY_H
5 //* This file is property of and copyright by the ALICE HLT Project        * 
6 //* ALICE Experiment at CERN, All rights reserved.                         *
7 //* See cxx source for full Copyright notice                               *
8
9 /// @file   AliHLTTriggerPhosClusterEnergy.h
10 /// @author Svein Lindal
11 /// @date   2009-08-17
12 /// @brief  HLT energy threshold trigger for PHOS
13
14 #include "AliHLTTrigger.h"
15
16
17 class AliESDtrack;
18
19 /**
20  * @class  AliHLTTriggerPhosClusterEnergy
21  * HLT trigger component for high energy clusters in PHOS
22  * 
23  * Triggers on PHOS clusters containing energy > threshold value. 
24  * Configurable through database entry or from command line using "-energy" option
25  *
26  * <h2>General properties:</h2>
27  *
28  * Component ID: \b PhosClusterEnergyTrigger                             <br>
29  * Library: \b libAliHLTTrigger.so                                        <br>
30  * Input Data Types:  kAliHLTDataTypeESDObject, kAliHLTDataTypeESDTree    <br>
31  * Output Data Types: ::kAliHLTAnyDataType                                <br>
32  *
33  * <h2>Mandatory arguments:</h2>
34  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
35  *
36  * <h2>Optional arguments:</h2>
37  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
38  *
39  * <h2>Configuration:</h2>
40  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
41  * \li -energy     <i> e   </i> <br>
42  *      required energy of the cluster
43  *
44  * By default, configuration is loaded from OCDB, can be overridden by
45  * component arguments.
46  *
47  * <h2>Default CDB entries:</h2>
48  * HLT/ConfigHLT/PhosClusterEnergyTrigger: TObjString storing the arguments
49  *
50  * <h2>Performance:</h2>
51  * 
52  *
53  * <h2>Memory consumption:</h2>
54  * 
55  *
56  * <h2>Output size:</h2>
57  * 
58  *
59  * \ingroup alihlt_trigger_components
60  */
61
62 class AliHLTTriggerPhosClusterEnergy : public AliHLTTrigger
63 {
64 public:
65   AliHLTTriggerPhosClusterEnergy();
66   ~AliHLTTriggerPhosClusterEnergy();
67
68
69   /// inherited from AliHLTTrigger: name of this trigger
70   virtual const char* GetTriggerName() const;
71   /// inherited from AliHLTComponent: create an instance
72   virtual AliHLTComponent* Spawn();
73
74  protected:
75   /// inherited from AliHLTComponent: handle the initialization
76   int DoInit(int argc, const char** argv);
77
78   /// inherited from AliHLTComponent: handle cleanup
79   int DoDeinit();
80
81   /// inherited from AliHLTComponent: handle re-configuration event
82   int Reconfigure(const char* cdbEntry, const char* chainId);
83
84   /// inherited from AliHLTComponent, scan one argument and
85   /// its parameters
86   int ScanConfigurationArgument(int argc, const char** argv);
87
88   /// inherited from AliHLTComponent
89   //  Get a ratio by how much the data volume is shrunken or enhanced.
90   virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
91
92 private:
93
94   /// inherited from AliHLTTrigger: calculate the trigger
95   virtual int DoTrigger();
96
97   /// Threshold cluster energy to trigger on
98   float fEThreshold;
99
100   /// the default configuration entry for this component
101   static const char* fgkOCDBEntry; //!transient
102
103   ClassDef(AliHLTTriggerPhosClusterEnergy, 0)
104 };
105
106 #endif //ALIHLTTRIGGERPHOSCLUSTERENERGY_H