]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/trigger/AliHLTTriggerCosmics.h
#97492 Request to: patch AliSimulation; port to Release; make tag on release; for...
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTriggerCosmics.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTTRIGGERCOSMICS_H
4 #define ALIHLTTRIGGERCOSMICS_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   AliHLTTriggerCosmics.h
10 /// @author Kalliopi Kanaki
11 /// @date   2011-02-23
12 /// @brief  HLT trigger component for tagging cosmics tracks inside the TPC
13
14 #include "AliHLTTrigger.h"
15 #include "TString.h"
16
17 class AliESDtrack;
18 class AliTPCcalibTime;
19
20 /**
21  * @class AliHLTTriggerCosmics
22  * HLT trigger component for charged particle multiplicity in the
23  * central barrel.
24  * 
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.
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
56  * \li -min-ldca    <i> dca  </i> <br>
57  *      minimum longitudinal dca to reference point
58  * \li -max-ldca    <i> dca  </i> <br>
59  *      maximum longitudinal dca to reference point
60  * \li -min-tdca    <i> dca  </i> <br>
61  *      minimum transverse dca to reference point
62  * \li -max-tdca    <i> dca  </i> <br>
63  *      maximum transverse dca to reference point
64  * \li -triggername    <i> name  </i> <br>
65  *      The name of this specific trigger.
66  *
67  * By default, configuration is loaded from OCDB, can be overridden by
68  * component arguments.
69  *
70  * <h2>Default CDB entries:</h2>
71  * HLT/ConfigHLT/BarrelMultiplicityTrigger: TObjString storing the arguments <br>
72  * HLT/ConfigHLT/<name>: for triggers with specific names
73  *
74  * HLT/ConfigHLT/H_._Barrel_pT_Single_._V0001.001
75  *   - TriggerName : H-Barrel_pT_Single-V0001.001
76  *   - ObjectType  : AliHLTESDTrackCuts 
77  * HLT/ConfigHLT/H_._Barrel_pT_Single_._V0002.001
78  *   - TriggerName : H-Barrel_pT_Single-V0002.001
79  *   - ObjectType  : AliHLTESDTrackCuts 
80  * HLT/ConfigHLT/H_._Barrel_pT_Single_._V0003.001
81  *   - TriggerName : H-Barrel_pT_Single-V0003.001
82  *   - ObjectType  : AliHLTESDTrackCuts 
83  *
84  * <h2>Performance:</h2>
85  * 
86  *
87  * <h2>Memory consumption:</h2>
88  * 
89  *
90  * <h2>Output size:</h2>
91  * 
92  *
93  * \ingroup alihlt_trigger_components
94  */
95 class AliHLTTriggerCosmics : public AliHLTTrigger
96 {
97  public:
98   AliHLTTriggerCosmics();
99   virtual ~AliHLTTriggerCosmics();
100
101   /// inherited from AliHLTTrigger: name of this trigger
102   virtual const char* GetTriggerName() const;
103   /// inherited from AliHLTComponent: create an instance
104   virtual AliHLTComponent* Spawn();
105
106  protected:
107   /// inherited from AliHLTComponent: handle the initialization
108   int DoInit(int argc, const char** argv);
109
110   /// inherited from AliHLTComponent: handle cleanup
111   int DoDeinit();
112
113   /// inherited from AliHLTComponent: handle re-configuration event
114   int Reconfigure(const char* cdbEntry, const char* chainId);
115
116   /// inherited from AliHLTComponent: handle dcs update event
117   int ReadPreprocessorValues(const char* modules);
118
119   /// Configure from CDB object, checking if AliHLTESDTrackCuts or TObjString
120   int ConfigureFromCDBObject(TString cdbPath);
121
122   /// inherited from AliHLTComponent, scan one argument and
123   /// its parameters
124   //int ScanConfigurationArgument(int argc, const char** argv);
125
126  private:
127   /// copy constructor prohibited 
128   AliHLTTriggerCosmics (const AliHLTTriggerCosmics&);
129   
130   /// assignment operator prohibited
131   AliHLTTriggerCosmics& operator=(const AliHLTTriggerCosmics&);
132
133   /// inherited from AliHLTTrigger: calculate the trigger
134   virtual int DoTrigger();
135
136   /// Name of the trigger
137   TString  fName;               //! transient
138   /// object for accessing the offline code 
139   AliTPCcalibTime *fTrackSelection; //! transient
140   
141   /// the default configuration entry for this component
142   static const char* fgkDefaultOCDBEntry; //!transient
143
144   ClassDef(AliHLTTriggerCosmics, 1)
145 };
146 #endif //ALIHLTTRIGGERCOSMICS_H