4cbd5dfabd785560f6dc527740776beb1d5986db
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTriggerGammaConversion.h
1 //-*- Mode: C++ -*-
2
3 #ifndef ALIHLTTRIGGERGAMMACONVERSION_H
4 #define ALIHLTTRIGGERGAMMACONVERSION_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   AliHLTTriggerGammaConversion.h
10 /// @author Kenneth Aamodt
11 /// @date   2009-11-01
12 /// @brief  HLT trigger component for gamma conversions.
13 ///         
14
15 #include "AliHLTTrigger.h"
16
17 class AliESDtrack;
18
19 /**
20  * @class  AliHLTTriggerGammaConversion
21  * HLT trigger component for gamma conversions
22  * 
23  * 
24  * Triggers on gamma conversions wich satisfy cuts on invariant mass, radius, dca and Pt.
25  *
26  * <h2>General properties:</h2>
27  *
28  * Component ID: \b GammaConversionTrigger                             <br>
29  * Library: \b libAliHLTTrigger.so                                        <br>
30  * Input Data Types:  kAliHLTDataTypeESDObject                            <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 -max-invmass    <i> mass  </i> <br>
42  *      invariant mass of the two gamma daughters
43  * \li -minpt    <i> pt  </i> <br>
44  *      required minimum pt for a trigger
45  * \li -maxpt    <i> pt  </i> <br>
46  *      required maximum pt for a trigger
47  * \li -max-dca    <i> distance  </i> <br>
48  *      dca between the two gamma daughters
49   * \li -max-radius    <i> r  </i> <br>
50  *      maximum radius from the collision point in xy-plane 
51
52  *
53  * By default, configuration is loaded from OCDB, can be overridden by
54  * component arguments.
55  *
56  * <h2>Default CDB entries:</h2>
57  * HLT/ConfigHLT/GammaConversionTrigger: TObjString storing the arguments
58  *
59  * <h2>Performance:</h2>
60  * 
61  *
62  * <h2>Memory consumption:</h2>
63  * 
64  *
65  * <h2>Output size:</h2>
66  * 
67  *
68  * \ingroup alihlt_trigger_components
69  */
70 class AliHLTTriggerGammaConversion : public AliHLTTrigger
71 {
72  public:
73   AliHLTTriggerGammaConversion();
74   ~AliHLTTriggerGammaConversion();
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  private:
96
97   /// inherited from AliHLTTrigger: calculate the trigger
98   virtual int DoTrigger();
99
100   /// mass cut, maximum
101   double fMaxInvMass; //! transient
102   /// pt cut, maximum
103   double fPtMax; //! transient
104   /// pt cut, minimum
105   double fPtMin; //! transient
106   /// maximum dca to qualify as a gamma conversion
107   double fMaxDca; //! transient
108   /// maximum radius from collision point in xy-plane
109   double fMaxR;
110
111   /// number of reconstructed gammas
112   Int_t fNReconstructedGammas; //! transient
113
114   /// the default configuration entry for this component
115   static const char* fgkOCDBEntry; //!transient
116
117   ClassDef(AliHLTTriggerGammaConversion, 0)
118 };
119 #endif //ALIHLTTRIGGERGAMMACONVERSION_H