]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/trigger/AliHLTTriggerBarrelGeomMultiplicity.h
scripts for testing new BarrelMultiplicityTrigger
[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"
fde46e9e 14
15class AliHLTTriggerDecisionParameters;
16
46906312 17/**
18 * @class AliHLTTriggerBarrelGeomMultiplicity
19 * HLT trigger component for charged particle multiplicity in the
20 * central barrel.
21 *
c308d915 22 * Triggers on charged particle number in a certain geometrical acceptance
46906312 23 *
24 * <h2>General properties:</h2>
25 *
26 * Component ID: \b BarrelGeomMultiplicityTrigger <br>
27 * Library: \b libAliHLTTrigger.so <br>
28 * Input Data Types: kAliHLTDataTypeESDObject, kAliHLTDataTypeESDTree
29 * kAliHLTDataTypeTrack <br>
30 * Output Data Types: ::kAliHLTAnyDataType <br>
31 *
32 * <h2>Mandatory arguments:</h2>
33 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
c308d915 34 * \li -triggername <i> n </i> <br>
35 * specifies which configuration object to use for the trigger
46906312 36 *
37 * <h2>Optional arguments:</h2>
38 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
c308d915 39 * \li -geomfile <i> n </i> <br>
40 * specifies root file containing configuration objects
46906312 41 *
42 * <h2>Configuration:</h2>
43 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
44 * \li -mintracks <i> n </i> <br>
45 * required number of tracks for a trigger
46906312 46 * \li -solenoidBz <i> field </i> <br>
47 * magnetic field needed if the input is not an ESD object
48 *
49 * By default, configuration is loaded from OCDB, can be overridden by
50 * component arguments.
51 *
52 * <h2>Default CDB entries:</h2>
c308d915 53 * HLT/ConfigHLT/BarrelGeomMultiplicityTrigger/<triggername>: TObjArray storing the
54 * geometries and readout parameters.
46906312 55 * HLT/ConfigHLT/Solenoidbz: TObjString -solenoidBz field
56 *
57 * <h2>Performance:</h2>
58 *
59 *
60 * <h2>Memory consumption:</h2>
61 *
62 *
63 * <h2>Output size:</h2>
64 *
65 *
66 * \ingroup alihlt_trigger_components
67 */
68class AliHLTTriggerBarrelGeomMultiplicity : public AliHLTTrigger
69{
70 public:
1ecefac2 71
46906312 72 AliHLTTriggerBarrelGeomMultiplicity();
73 ~AliHLTTriggerBarrelGeomMultiplicity();
74
46906312 75 /// inherited from AliHLTComponent: create an instance
76 virtual AliHLTComponent* Spawn();
77
1ecefac2 78 /// inherited from AliHLTTrigger: name of this trigger
79 virtual const char* GetTriggerName() const;
80
46906312 81 protected:
82 /// inherited from AliHLTComponent: handle the initialization
83 int DoInit(int argc, const char** argv);
84
85 /// inherited from AliHLTComponent: handle cleanup
86 int DoDeinit();
87
46906312 88 /// inherited from AliHLTComponent: handle dcs update event
89 int ReadPreprocessorValues(const char* modules);
90
91 /// inherited from AliHLTComponent, scan one argument and
92 /// its parameters
1ecefac2 93 virtual int ScanConfigurationArgument(int argc, const char** argv);
94
95 // Get the detector geometries from CDB entry
96 virtual int GetDetectorGeomsFromCDBObject(const char *cdbEntry, const char *chainId);
97
98 // Get the detector geometries from a root file
99 virtual int GetDetectorGeomsFromFile(const char *filename);
100
101 /// inherited from AliHLTComponent: handle re-configuration event
102 int Reconfigure(const char* cdbEntry = 0, const char* chainId = 0);
46906312 103
104 private:
105
106 /// inherited from AliHLTTrigger: calculate the trigger
1ecefac2 107 virtual int DoTrigger();
46906312 108
109 /// check whether a track meets the criteria
110 template<class T>
111 bool CheckCondition(T* track, float b);
112
113 // check whether a track is in the desired detectors
1ecefac2 114 template<class T>
115 bool IsInDetectors(T* track, float b);
116
117 // magnetic field (dca estimation for)
118 Float_t fSolenoidBz;
119
120 // minimum number of tracks satisfying the cut
121 Int_t fMinTracks;
122
123 // array of (sub-)detectors to trigger on
124 TObjArray *fDetectorArray; // !transient
125
fde46e9e 126 // Trigger decision parameters
127 AliHLTTriggerDecisionParameters *fTriggerDecisionPars; //!transient
1ecefac2 128
129 // The trigger name
130 char *fTriggerName; //!transient
131
c308d915 132 // the default configuration entry for this component
1ecefac2 133 char* fOCDBEntry; //!transient
46906312 134
b210e538 135 /** Keep the copy constructor private since it should not be used */
136 AliHLTTriggerBarrelGeomMultiplicity(const AliHLTTriggerBarrelGeomMultiplicity & );
137
138 /** Keep the assignement operator private since it should not be used */
139 AliHLTTriggerBarrelGeomMultiplicity & operator = (const AliHLTTriggerBarrelGeomMultiplicity &);
46906312 140
1ecefac2 141 ClassDef(AliHLTTriggerBarrelGeomMultiplicity, 0);
46906312 142
143};
144
1ecefac2 145#endif