- adding AliHLTTriggerDecisionParameters to configure the geom trigger from OCDB.
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTriggerBarrelGeomMultiplicity.h
CommitLineData
46906312 1#ifndef ALIHLTTRIGGERBARRELGEOMMULTIPLICITY_H
2#define ALIHLTTRIGGERBARRELGEOMMULTIPLICITY_H
3//* This file is property of and copyright by the ALICE HLT Project *
4//* ALICE Experiment at CERN, All rights reserved. *
5//* See cxx source for full Copyright notice *
6
7/// @file AliHLTTriggerBarrelGeomMultiplicity.h
8/// @author Oystein Djuvsland
9/// @date 2009-10-08
10/// @brief HLT trigger component for charged particle multiplicity in
11/// a geometrical selection of the central barrel.
12
13#include "AliHLTTrigger.h"
1ecefac2 14#include "TList.h"
fde46e9e 15
16class AliHLTTriggerDecisionParameters;
17
46906312 18/**
19 * @class AliHLTTriggerBarrelGeomMultiplicity
20 * HLT trigger component for charged particle multiplicity in the
21 * central barrel.
22 *
23 * Triggers on charged particle number in a certain pt range.
24 *
25 * <h2>General properties:</h2>
26 *
27 * Component ID: \b BarrelGeomMultiplicityTrigger <br>
28 * Library: \b libAliHLTTrigger.so <br>
29 * Input Data Types: kAliHLTDataTypeESDObject, kAliHLTDataTypeESDTree
30 * kAliHLTDataTypeTrack <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 -mintracks <i> n </i> <br>
42 * required number of tracks for a trigger
46906312 43 * \li -solenoidBz <i> field </i> <br>
44 * magnetic field needed if the input is not an ESD object
45 *
46 * By default, configuration is loaded from OCDB, can be overridden by
47 * component arguments.
48 *
49 * <h2>Default CDB entries:</h2>
1ecefac2 50 * HLT/ConfigHLT/BarrelGeomMultiplicityTrigger: TList storing the detector geometries
46906312 51 * HLT/ConfigHLT/Solenoidbz: TObjString -solenoidBz field
52 *
53 * <h2>Performance:</h2>
54 *
55 *
56 * <h2>Memory consumption:</h2>
57 *
58 *
59 * <h2>Output size:</h2>
60 *
61 *
62 * \ingroup alihlt_trigger_components
63 */
64class AliHLTTriggerBarrelGeomMultiplicity : public AliHLTTrigger
65{
66 public:
1ecefac2 67
46906312 68 AliHLTTriggerBarrelGeomMultiplicity();
69 ~AliHLTTriggerBarrelGeomMultiplicity();
70
46906312 71 /// inherited from AliHLTComponent: create an instance
72 virtual AliHLTComponent* Spawn();
73
1ecefac2 74 /// inherited from AliHLTTrigger: name of this trigger
75 virtual const char* GetTriggerName() const;
76
46906312 77 protected:
78 /// inherited from AliHLTComponent: handle the initialization
79 int DoInit(int argc, const char** argv);
80
81 /// inherited from AliHLTComponent: handle cleanup
82 int DoDeinit();
83
46906312 84 /// inherited from AliHLTComponent: handle dcs update event
85 int ReadPreprocessorValues(const char* modules);
86
87 /// inherited from AliHLTComponent, scan one argument and
88 /// its parameters
1ecefac2 89 virtual int ScanConfigurationArgument(int argc, const char** argv);
90
91 // Get the detector geometries from CDB entry
92 virtual int GetDetectorGeomsFromCDBObject(const char *cdbEntry, const char *chainId);
93
94 // Get the detector geometries from a root file
95 virtual int GetDetectorGeomsFromFile(const char *filename);
96
97 /// inherited from AliHLTComponent: handle re-configuration event
98 int Reconfigure(const char* cdbEntry = 0, const char* chainId = 0);
46906312 99
100 private:
101
102 /// inherited from AliHLTTrigger: calculate the trigger
1ecefac2 103 virtual int DoTrigger();
46906312 104
105 /// check whether a track meets the criteria
106 template<class T>
107 bool CheckCondition(T* track, float b);
108
109 // check whether a track is in the desired detectors
1ecefac2 110 template<class T>
111 bool IsInDetectors(T* track, float b);
112
113 // magnetic field (dca estimation for)
114 Float_t fSolenoidBz;
115
116 // minimum number of tracks satisfying the cut
117 Int_t fMinTracks;
118
119 // array of (sub-)detectors to trigger on
120 TObjArray *fDetectorArray; // !transient
121
fde46e9e 122 // Trigger decision parameters
123 AliHLTTriggerDecisionParameters *fTriggerDecisionPars; //!transient
1ecefac2 124
125 // The trigger name
126 char *fTriggerName; //!transient
127
128 /// the default configuration entry for this component
129 char* fOCDBEntry; //!transient
46906312 130
46906312 131
1ecefac2 132 ClassDef(AliHLTTriggerBarrelGeomMultiplicity, 0);
46906312 133
134};
135
1ecefac2 136#endif