added EMCAL electron trigger component and related modifications
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTriggerPhosMip.h
CommitLineData
f86ecd3e 1// $Id$
2//-*- Mode: C++ -*-
3#ifndef ALIHLTTRIGGERPHOSMIP_H
4#define ALIHLTTRIGGERPHOSMIP_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 AliHLTTriggerPhosMip.h
10/// @author Svein Lindal
11/// @date 2009-08-17
12/// @brief HLT Minimum Ionizing Particle (MIP) trigger for PHOS
13
14#include "AliHLTTrigger.h"
15
16
17class AliESDtrack;
18
19/**
20 * @class AliHLTTriggerPhosMip
21 * HLT trigger component for Minimum Ionizing Particles (MIPs) in PHOS.
22 *
23 * Triggers on PHOS clusters containing total energy in the range
24 * fEMin < energy < fEMax spread out between fewer than fNCellsMax cells.
25 *
26 * <h2>General properties:</h2>
27 *
28 * Component ID: \b PhosMipTrigger <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 -emin <i> e </i> <br>
42 * minimum required energy of the cluster
43 *
44* \li -emax <i> e </i> <br>
45 * maximum energy of the cluster
46 *
47 * \li -ncells <i> e </i> <br>
48 * Maximum number of cells in cluster
49 *
50 *
51 * By default, configuration is loaded from OCDB, can be overridden by
52 * component arguments.
53 *
54 * <h2>Default CDB entries:</h2>
55 * HLT/ConfigHLT/PhosMipTrigger: TObjString storing the arguments
56 *
57 * <h2>Performance:</h2>
58 *
59 *
60 * <h2>Memory consumption:</h2>
61 *
62 *
63 * <h2>Output size:</h2>
64 *
65 *
66 * \ingroup alihlt_trigger_components
67 */
68
69class AliHLTTriggerPhosMip : public AliHLTTrigger
70{
71public:
72 AliHLTTriggerPhosMip();
73 ~AliHLTTriggerPhosMip();
74
75
76 /// inherited from AliHLTTrigger: name of this trigger
77 virtual const char* GetTriggerName() const;
78 /// inherited from AliHLTComponent: create an instance
79 virtual AliHLTComponent* Spawn();
80
81 protected:
82 /// inherited from AliHLTComponent: handle the initialization
83 int DoInit(int argc, const char** argv);
84
85 /// inherited from AliHLTComponent: handle cleanup
86 int DoDeinit();
87
88 /// inherited from AliHLTComponent: handle re-configuration event
89 int Reconfigure(const char* cdbEntry, const char* chainId);
90
91 /// inherited from AliHLTComponent, scan one argument and
92 /// its parameters
93 int ScanConfigurationArgument(int argc, const char** argv);
94
95 /// inherited from AliHLTComponent
96 // Get a ratio by how much the data volume is shrunken or enhanced.
97 virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
98
99private:
100
101 /// inherited from AliHLTTrigger: calculate the trigger
102 virtual int DoTrigger();
103
104 /// Variables for triggger configuration
105 float fEMin;
106 float fEMax;
107 int fNCellsMax;
108
109 /// the default configuration entry for this component
110 static const char* fgkOCDBEntry; //!transient
111
112 ClassDef(AliHLTTriggerPhosMip, 0)
113};
114
115#endif //ALIHLTTRIGGERPHOSMIP_H