Updated macros for PHOS alignment calculation
[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, Jochen Thaeder
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 #include "TString.h"
17
18 class AliESDtrack;
19
20 class AliHLTESDTrackCuts;
21
22 /**
23  * @class  AliHLTTriggerBarrelMultiplicity
24  * HLT trigger component for charged particle multiplicity in the
25  * central barrel.
26  * 
27  * Triggers on charged particle number in a certain pt range and geometrical
28  * acceptance
29  * 
30  * Multiple instances of this component can serve different trigger
31  * conditions, i.e. component parameters. The different instances get
32  * different names, specified by the '-triggername' component argument.
33  * The configuration is loaded from OCDB entries according to the name, see
34  * below.
35  *
36  * <h2>General properties:</h2>
37  *
38  * Component ID: \b BarrelMultiplicityTrigger                             <br>
39  * Library: \b libAliHLTTrigger.so                                        <br>
40  * Input Data Types:  kAliHLTDataTypeESDObject, kAliHLTDataTypeESDTree
41  *                    kAliHLTDataTypeTrack                                <br>
42  * Output Data Types: ::kAliHLTAnyDataType                                <br>
43  *
44  * <h2>Mandatory arguments:</h2>
45  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
46  *
47  * <h2>Optional arguments:</h2>
48  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
49  *
50  * <h2>Configuration:</h2>
51  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
52  * \li -mintracks     <i> n   </i> <br>
53  *      required number of tracks for a trigger
54  * \li -minpt    <i> pt  </i> <br>
55  *      required minimum pt for a trigger
56  * \li -maxpt    <i> pt  </i> <br>
57  *      required maximum pt for a trigger
58  * \li -min-ldca    <i> dca  </i> <br>
59  *      minimum longitudinal dca to reference point
60  * \li -max-ldca    <i> dca  </i> <br>
61  *      maximum longitudinal dca to reference point
62  * \li -min-tdca    <i> dca  </i> <br>
63  *      minimum transverse dca to reference point
64  * \li -max-tdca    <i> dca  </i> <br>
65  *      maximum transverse dca to reference point
66  * \li -triggername    <i> name  </i> <br>
67  *      The name of this specific trigger.
68  *
69  * By default, configuration is loaded from OCDB, can be overridden by
70  * component arguments.
71  *
72  * <h2>Default CDB entries:</h2>
73  * HLT/ConfigHLT/BarrelMultiplicityTrigger: TObjString storing the arguments <br>
74  * HLT/ConfigHLT/<name>: for triggers with specific names
75  *
76  * HLT/ConfigHLT/H_._Barrel_pT_Single_._V0001.001
77  *   - TriggerName : H-Barrel_pT_Single-V0001.001
78  *   - ObjectType  : AliHLTESDTrackCuts 
79  * HLT/ConfigHLT/H_._Barrel_pT_Single_._V0002.001
80  *   - TriggerName : H-Barrel_pT_Single-V0002.001
81  *   - ObjectType  : AliHLTESDTrackCuts 
82  * HLT/ConfigHLT/H_._Barrel_pT_Single_._V0003.001
83  *   - TriggerName : H-Barrel_pT_Single-V0003.001
84  *   - ObjectType  : AliHLTESDTrackCuts 
85  *
86  * <h2>Performance:</h2>
87  * 
88  *
89  * <h2>Memory consumption:</h2>
90  * 
91  *
92  * <h2>Output size:</h2>
93  * 
94  *
95  * \ingroup alihlt_trigger_components
96  */
97 class AliHLTTriggerBarrelMultiplicity : public AliHLTTrigger
98 {
99  public:
100   AliHLTTriggerBarrelMultiplicity();
101   virtual ~AliHLTTriggerBarrelMultiplicity();
102
103   /// inherited from AliHLTTrigger: name of this trigger
104   virtual const char* GetTriggerName() const;
105   /// inherited from AliHLTComponent: create an instance
106   virtual AliHLTComponent* Spawn();
107
108  protected:
109   /// inherited from AliHLTComponent: handle the initialization
110   int DoInit(int argc, const char** argv);
111
112   /// inherited from AliHLTComponent: handle cleanup
113   int DoDeinit();
114
115   /// inherited from AliHLTComponent: handle re-configuration event
116   int Reconfigure(const char* cdbEntry, const char* chainId);
117
118   /// inherited from AliHLTComponent: handle dcs update event
119   int ReadPreprocessorValues(const char* modules);
120
121   /// Configure from CDB object, checking if AliHLTESDTrackCuts or TObjString
122   int ConfigureFromCDBObject(TString cdbPath);
123
124   /// inherited from AliHLTComponent, scan one argument and
125   /// its parameters
126   int ScanConfigurationArgument(int argc, const char** argv);
127
128  private:
129   /// copy constructor prohibited 
130   AliHLTTriggerBarrelMultiplicity (const AliHLTTriggerBarrelMultiplicity&);
131   
132   /// assignment operator prohibited
133   AliHLTTriggerBarrelMultiplicity& operator=(const AliHLTTriggerBarrelMultiplicity&);
134
135   /// inherited from AliHLTTrigger: calculate the trigger
136   virtual int DoTrigger();
137
138   /// ESD track cut object
139   AliHLTESDTrackCuts  *fHLTESDTrackCuts;    //! transient
140
141   /// required number of tracks
142   int fMinTracks; //!transient
143
144   /// Name of the trigger
145   TString              fName;               //! transient
146
147   /// the default configuration entry for this component
148   static const char*   fgkDefaultOCDBEntry; //!transient
149
150   ClassDef(AliHLTTriggerBarrelMultiplicity, 0)
151 };
152 #endif //ALIHLTTRIGGERBARRELMULTIPLICITY_H