]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/trigger/AliHLTTriggerBarrelMultiplicity.h
New version of BarrelMultiplictyTrigger
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTriggerBarrelMultiplicity.h
CommitLineData
cafc1a86 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
7fe93db6 10/// @author Matthias Richter, Jochen Thaeder
cafc1a86 11/// @date 2009-06-30
12/// @brief HLT trigger component for charged particle multiplicity in
13/// the central barrel.
14
15#include "AliHLTTrigger.h"
508ca723 16#include "TString.h"
cafc1a86 17
f1574126 18class AliESDtrack;
19
7fe93db6 20class AliHLTESDTrackCuts;
21
cafc1a86 22/**
23 * @class AliHLTTriggerBarrelMultiplicity
24 * HLT trigger component for charged particle multiplicity in the
25 * central barrel.
26 *
508ca723 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.
895f3660 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
5299dd39 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
7fe93db6 66 * \li -triggername <i> name </i> <br>
508ca723 67 * The name of this specific trigger.
895f3660 68 *
69 * By default, configuration is loaded from OCDB, can be overridden by
70 * component arguments.
71 *
72 * <h2>Default CDB entries:</h2>
508ca723 73 * HLT/ConfigHLT/BarrelMultiplicityTrigger: TObjString storing the arguments <br>
74 * HLT/ConfigHLT/<name>: for triggers with specific names
895f3660 75 *
7fe93db6 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 *
895f3660 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
cafc1a86 96 */
97class AliHLTTriggerBarrelMultiplicity : public AliHLTTrigger
98{
99 public:
100 AliHLTTriggerBarrelMultiplicity();
7fe93db6 101 virtual ~AliHLTTriggerBarrelMultiplicity();
cafc1a86 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
f1574126 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
5299dd39 118 /// inherited from AliHLTComponent: handle dcs update event
119 int ReadPreprocessorValues(const char* modules);
120
7fe93db6 121 /// Configure from CDB object, checking if AliHLTESDTrackCuts or TObjString
122 int ConfigureFromCDBObject(TString cdbPath);
123
f1574126 124 /// inherited from AliHLTComponent, scan one argument and
125 /// its parameters
126 int ScanConfigurationArgument(int argc, const char** argv);
127
cafc1a86 128 private:
7fe93db6 129 /// copy constructor prohibited
130 AliHLTTriggerBarrelMultiplicity (const AliHLTTriggerBarrelMultiplicity&);
131
132 /// assignment operator prohibited
133 AliHLTTriggerBarrelMultiplicity& operator=(const AliHLTTriggerBarrelMultiplicity&);
fde46e9e 134
cafc1a86 135 /// inherited from AliHLTTrigger: calculate the trigger
136 virtual int DoTrigger();
137
7fe93db6 138 /// ESD track cut object
139 AliHLTESDTrackCuts *fHLTESDTrackCuts; //! transient
f1574126 140
cafc1a86 141 /// required number of tracks
f1574126 142 int fMinTracks; //!transient
143
7fe93db6 144 /// Name of the trigger
145 TString fName; //! transient
5299dd39 146
f1574126 147 /// the default configuration entry for this component
7fe93db6 148 static const char* fgkDefaultOCDBEntry; //!transient
cafc1a86 149
150 ClassDef(AliHLTTriggerBarrelMultiplicity, 0)
151};
152#endif //ALIHLTTRIGGERBARRELMULTIPLICITY_H