]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/trigger/AliHLTTriggerBarrelMultiplicity.h
scripts for testing new BarrelMultiplicityTrigger
[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
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"
508ca723 16#include "TString.h"
cafc1a86 17
f1574126 18class AliESDtrack;
19
cafc1a86 20/**
21 * @class AliHLTTriggerBarrelMultiplicity
22 * HLT trigger component for charged particle multiplicity in the
23 * central barrel.
24 *
508ca723 25 * Triggers on charged particle number in a certain pt range and geometrical
26 * acceptance
27 *
28 * Multiple instances of this component can serve different trigger
29 * conditions, i.e. component parameters. The different instances get
30 * different names, specified by the '-triggername' component argument.
31 * The configuration is loaded from OCDB entries according to the name, see
32 * below.
895f3660 33 *
34 * <h2>General properties:</h2>
35 *
36 * Component ID: \b BarrelMultiplicityTrigger <br>
37 * Library: \b libAliHLTTrigger.so <br>
38 * Input Data Types: kAliHLTDataTypeESDObject, kAliHLTDataTypeESDTree
39 * kAliHLTDataTypeTrack <br>
40 * Output Data Types: ::kAliHLTAnyDataType <br>
41 *
42 * <h2>Mandatory arguments:</h2>
43 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
44 *
45 * <h2>Optional arguments:</h2>
46 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
47 *
48 * <h2>Configuration:</h2>
49 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
50 * \li -mintracks <i> n </i> <br>
51 * required number of tracks for a trigger
52 * \li -minpt <i> pt </i> <br>
53 * required minimum pt for a trigger
54 * \li -maxpt <i> pt </i> <br>
55 * required maximum pt for a trigger
5299dd39 56 * \li -dca-reference <i> x,y,z </i> <br>
57 * reference point for the transverse and longitudinal dca cut
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
508ca723 66 * \li -triggername <i> name </i> <br>
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 *
76 * <h2>Performance:</h2>
77 *
78 *
79 * <h2>Memory consumption:</h2>
80 *
81 *
82 * <h2>Output size:</h2>
83 *
84 *
85 * \ingroup alihlt_trigger_components
cafc1a86 86 */
87class AliHLTTriggerBarrelMultiplicity : public AliHLTTrigger
88{
89 public:
90 AliHLTTriggerBarrelMultiplicity();
91 ~AliHLTTriggerBarrelMultiplicity();
92
93 /// inherited from AliHLTTrigger: name of this trigger
94 virtual const char* GetTriggerName() const;
95 /// inherited from AliHLTComponent: create an instance
96 virtual AliHLTComponent* Spawn();
97
f1574126 98 protected:
99 /// inherited from AliHLTComponent: handle the initialization
100 int DoInit(int argc, const char** argv);
101
102 /// inherited from AliHLTComponent: handle cleanup
103 int DoDeinit();
104
105 /// inherited from AliHLTComponent: handle re-configuration event
106 int Reconfigure(const char* cdbEntry, const char* chainId);
107
5299dd39 108 /// inherited from AliHLTComponent: handle dcs update event
109 int ReadPreprocessorValues(const char* modules);
110
f1574126 111 /// inherited from AliHLTComponent, scan one argument and
112 /// its parameters
113 int ScanConfigurationArgument(int argc, const char** argv);
114
cafc1a86 115 private:
fde46e9e 116
cafc1a86 117 /// inherited from AliHLTTrigger: calculate the trigger
118 virtual int DoTrigger();
119
f1574126 120 /// check whether a track meets the criteria
121 template<class T>
5299dd39 122 bool CheckCondition(T* track, float b);
f1574126 123
cafc1a86 124 /// pt cut, minimum
125 float fPtMin; //! transient
126 /// pt cut, maximum
127 float fPtMax; //! transient
128 /// required number of tracks
f1574126 129 int fMinTracks; //!transient
130
5299dd39 131 /// number of coordinates for the DCA reference point
132 const static short fgkDCAReferenceSize=3;
133 /// reference point for the transverse and longitudinal dca cut
134 float fDCAReference[fgkDCAReferenceSize];
135 /// minimum longitudinal dca to reference point
508ca723 136 float fMinLDca; //!transient
5299dd39 137 /// maximum longitudinal dca to reference point
508ca723 138 float fMaxLDca; //!transient
5299dd39 139 /// minimum transverse dca to reference point
508ca723 140 float fMinTDca; //!transient
5299dd39 141 /// maximum transverse dca to reference point
508ca723 142 float fMaxTDca; //!transient
5299dd39 143 /// magnetic field (dca estimation for)
508ca723 144 float fSolenoidBz; //!transient
145 /// name of the trigger
146 TString fName; //!transient
5299dd39 147
f1574126 148 /// the default configuration entry for this component
508ca723 149 static const char* fgkDefaultOCDBEntry; //!transient
cafc1a86 150
151 ClassDef(AliHLTTriggerBarrelMultiplicity, 0)
152};
153#endif //ALIHLTTRIGGERBARRELMULTIPLICITY_H