- adding AliHLTTriggerDecisionParameters to configure the geom trigger from OCDB.
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTriggerBarrelMultiplicity.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTTRIGGERBARRELMULTIPLICITY_H
4 #define ALIHLTTRIGGERBARRELMULTIPLICITY_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   AliHLTTriggerBarrelMultiplicity.h
10 /// @author Matthias Richter
11 /// @date   2009-06-30
12 /// @brief  HLT trigger component for charged particle multiplicity in
13 ///         the central barrel.
14
15 #include "AliHLTTrigger.h"
16
17 class AliESDtrack;
18
19 /**
20  * @class  AliHLTTriggerBarrelMultiplicity
21  * HLT trigger component for charged particle multiplicity in the
22  * central barrel.
23  * 
24  * Triggers on charged particle number in a certain pt range.
25  *
26  * <h2>General properties:</h2>
27  *
28  * Component ID: \b BarrelMultiplicityTrigger                             <br>
29  * Library: \b libAliHLTTrigger.so                                        <br>
30  * Input Data Types:  kAliHLTDataTypeESDObject, kAliHLTDataTypeESDTree
31  *                    kAliHLTDataTypeTrack                                <br>
32  * Output Data Types: ::kAliHLTAnyDataType                                <br>
33  *
34  * <h2>Mandatory arguments:</h2>
35  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
36  *
37  * <h2>Optional arguments:</h2>
38  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
39  *
40  * <h2>Configuration:</h2>
41  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
42  * \li -mintracks     <i> n   </i> <br>
43  *      required number of tracks for a trigger
44  * \li -minpt    <i> pt  </i> <br>
45  *      required minimum pt for a trigger
46  * \li -maxpt    <i> pt  </i> <br>
47  *      required maximum pt for a trigger
48  * \li -dca-reference    <i> x,y,z  </i> <br>
49  *      reference point for the transverse and longitudinal dca cut
50  * \li -min-ldca    <i> dca  </i> <br>
51  *      minimum longitudinal dca to reference point
52  * \li -max-ldca    <i> dca  </i> <br>
53  *      maximum longitudinal dca to reference point
54  * \li -min-tdca    <i> dca  </i> <br>
55  *      minimum transverse dca to reference point
56  * \li -max-tdca    <i> dca  </i> <br>
57  *      maximum transverse dca to reference point
58  * \li  -solenoidBz    <i> field  </i> <br>
59  *      magnetic field needed if the input is not an ESD object
60  *
61  * By default, configuration is loaded from OCDB, can be overridden by
62  * component arguments.
63  *
64  * <h2>Default CDB entries:</h2>
65  * HLT/ConfigHLT/BarrelMultiplicityTrigger: TObjString storing the arguments
66  * HLT/ConfigHLT/Solenoidbz: TObjString -solenoidBz field
67  *
68  * <h2>Performance:</h2>
69  * 
70  *
71  * <h2>Memory consumption:</h2>
72  * 
73  *
74  * <h2>Output size:</h2>
75  * 
76  *
77  * \ingroup alihlt_trigger_components
78  */
79 class AliHLTTriggerBarrelMultiplicity : public AliHLTTrigger
80 {
81  public:
82   AliHLTTriggerBarrelMultiplicity();
83   ~AliHLTTriggerBarrelMultiplicity();
84
85   /// inherited from AliHLTTrigger: name of this trigger
86   virtual const char* GetTriggerName() const;
87   /// inherited from AliHLTComponent: create an instance
88   virtual AliHLTComponent* Spawn();
89
90  protected:
91   /// inherited from AliHLTComponent: handle the initialization
92   int DoInit(int argc, const char** argv);
93
94   /// inherited from AliHLTComponent: handle cleanup
95   int DoDeinit();
96
97   /// inherited from AliHLTComponent: handle re-configuration event
98   int Reconfigure(const char* cdbEntry, const char* chainId);
99
100   /// inherited from AliHLTComponent: handle dcs update event
101   int ReadPreprocessorValues(const char* modules);
102
103   /// inherited from AliHLTComponent, scan one argument and
104   /// its parameters
105   int ScanConfigurationArgument(int argc, const char** argv);
106
107  private:
108
109   /// inherited from AliHLTTrigger: calculate the trigger
110   virtual int DoTrigger();
111
112   /// check whether a track meets the criteria
113   template<class T>
114   bool CheckCondition(T* track, float b);
115
116   /// pt cut, minimum
117   float fPtMin; //! transient
118   /// pt cut, maximum
119   float fPtMax; //! transient
120   /// required number of tracks
121   int fMinTracks; //!transient
122
123   /// number of coordinates for the DCA reference point
124   const static short fgkDCAReferenceSize=3;
125   /// reference point for the transverse and longitudinal dca cut
126   float fDCAReference[fgkDCAReferenceSize];
127   /// minimum longitudinal dca to reference point
128   float fMinLDca;
129   /// maximum longitudinal dca to reference point
130   float fMaxLDca;
131   /// minimum transverse dca to reference point
132   float fMinTDca;
133   /// maximum transverse dca to reference point
134   float fMaxTDca;
135   /// magnetic field (dca estimation for)
136   float fSolenoidBz;
137
138   /// the default configuration entry for this component
139   static const char* fgkOCDBEntry; //!transient
140
141   ClassDef(AliHLTTriggerBarrelMultiplicity, 0)
142 };
143 #endif //ALIHLTTRIGGERBARRELMULTIPLICITY_H