]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/trigger/AliHLTD0Trigger.h
scripts for testing new BarrelMultiplicityTrigger
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTD0Trigger.h
CommitLineData
5f4502cc 1//-*- Mode: C++ -*-
2// $Id: AliHLTD0Trigger.h
3#ifndef ALIHLTD0TRIGGER_H
4#define ALIHLTD0TRIGGER_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 AliHLTD0Trigger.h
10/// @author Gaute Ovrebekk
11/// @date 2009-10-28
12/// @brief HLT trigger component for D0->Kpi
13
14#include "AliHLTTrigger.h"
9929f8f5 15#include <vector>
629b904b 16#include "AliHLTD0toKpi.h"
9929f8f5 17
5f4502cc 18class TH1F;
9929f8f5 19class TObjArray;
629b904b 20class AliESDVertex;
21class AliExternalTrackParam;
2a743e38 22class AliHLTMCEvent;
5f4502cc 23
24/**
25 * @class AliHLTD0Trigger
26 *
27 * HLT trigger component for D0->Kpi
28 *
29 * <h2>General properties:</h2>
30 *
31 * Component ID: \b D0Trigger <br>
32 * Library: \b libAliHLTTrigger.so <br>
33 * Input Data Types: kAliHLTDataTypeESDObject, kAliHLTDataTypeESDTree
34 * kAliHLTDataTypeTrack <br>
35 * Output Data Types: ::kAliHLTAnyDataType <br>
36 *
37 * <h2>Mandatory arguments:</h2>
38 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
8d9d674e 39 * TODO: code audit 2010-07-23 describe component arguments
5f4502cc 40 *
41 * <h2>Optional arguments:</h2>
42 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
43 *
44 * <h2>Configuration:</h2>
45 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
46 * \li -pt <i> pt cut for decay products </i> <br>
47 * \li -dca <i> dca cut for distance between decay tracks </i> <br>
48 * \li -invmass <i> inv. mass half width of D0 </i> <br>
49 * \li -costhetastar <i> cos of decay angle </i> <br>
50 * \li -d0 <i> Impact parameter for decay products </i> <br>
51 * \li -d0d0 <i> Product of impact parameter for decay products </i> <br>
52 * \li -cospoint <i> pointing angle </i> <br>
252bba71 53 * \li -plothistogram <i> ploting the inv. mass and pt of D0 </i> <br>
15f6cee9 54 * \li -useKF <i> will use partilce KF for vertex finding </i> <br>
5f4502cc 55 *
56 * By default, configuration is loaded from OCDB, can be overridden by
57 * component arguments.
58 *
59 * <h2>Default CDB entries:</h2>
60 * HLT/ConfigHLT/D0Trigger: TObjString storing the arguments
61 *
62 * <h2>Performance:</h2>
63 *
64 *
65 * <h2>Memory consumption:</h2>
66 *
67 *
68 * <h2>Output size:</h2>
69 *
70 *
71 * \ingroup alihlt_trigger_components
72 */
73class AliHLTD0Trigger : public AliHLTTrigger
74{
75 public:
76 AliHLTD0Trigger();
77 ~AliHLTD0Trigger();
78
79 /// inherited from AliHLTTrigger: name of this trigger
80 virtual const char* GetTriggerName() const;
81 /// inherited from AliHLTComponent: create an instance
82 virtual AliHLTComponent* Spawn();
10d746a6 83
84 /// inherited from AliHLTComponent: return OCDB requirements
85 void GetOCDBObjectDescription( TMap* const targetMap);
5f4502cc 86
87 protected:
88 /// inherited from AliHLTComponent: handle the initialization
89 int DoInit(int argc, const char** argv);
90
91 /// inherited from AliHLTComponent: handle cleanup
92 int DoDeinit();
93
94 /// inherited from AliHLTComponent: handle re-configuration event
95 int Reconfigure(const char* cdbEntry, const char* chainId);
96
97 /// inherited from AliHLTComponent, scan one argument and
98 /// its parameters
99 int ScanConfigurationArgument(int argc, const char** argv);
100
101 private:
06d76128 102 /// Not implemented. Do not allow copying of this object.
103 AliHLTD0Trigger(const AliHLTD0Trigger& );
104 /// Not implemented. Do not allow copying of this object.
105 AliHLTD0Trigger& operator=(const AliHLTD0Trigger& );
5f4502cc 106
107 /// inherited from AliHLTTrigger: calculate the trigger
108 virtual int DoTrigger();
629b904b 109
8d9d674e 110 // TODO: code audit 2010-07-23 describe functions, add a short description
111 // also in the cxx file
629b904b 112 void SingleTrackSelect(AliExternalTrackParam*);
9929f8f5 113 Int_t RecV0(const TObject* iter);
9f96f527 114 void RecD0(Int_t&,Int_t&,Int_t&);
115 int CheckTrackMC(AliExternalTrackParam* pt, AliExternalTrackParam* pn);
9929f8f5 116
5f4502cc 117 /// pt cut for decay, minimum [GeV/c]
118 float fPtMin; //! transient
119 /// Distance between decay tracks [cm] ??
120 float fdca; //! transient
121 /// Inv. mass half width [GeV]
122 float finvMass; //! transient
123 /// Decay angle
124 float fcosThetaStar; //! transient
125 /// Distance from primary vertex for decay tracks [cm]
126 float fd0; //! transient
127 /// Product of d0 for the two decay tracks [cm^2]
128 float fd0d0; //! transient
129 /// Pionting angle
130 float fcosPoint; //! transient
131
8d9d674e 132 // TODO: code audit 2010-07-23 member variable description missing
5f4502cc 133 bool fplothisto; //! transient
9929f8f5 134 bool fUseV0; //! transient
135
136 Double_t mD0PDG; //! transient
5f4502cc 137
138 /// D0 inv. mass plot
9929f8f5 139 TH1F *fD0mass; //! transient
252bba71 140 TH1F *fD0pt; //! transient
9929f8f5 141
629b904b 142 vector<AliExternalTrackParam*> fPos; //! transient
143 vector<AliExternalTrackParam*> fNeg; //! transient
9929f8f5 144
629b904b 145 AliHLTD0toKpi *fd0calc; //! transient
146 TObjArray *ftwoTrackArray; //! transient
5f4502cc 147
629b904b 148 Int_t fTotalD0; //! transient
9f96f527 149 Int_t fTotalD0Onetrue; //! transient
2a743e38 150 Int_t fTotalD0true; //! transient
151 AliESDVertex *fVertex; //! transient
152 Double_t fField; //!transient
629b904b 153
2a743e38 154 AliHLTMCEvent* fEvent; //!transient
155
15f6cee9 156 bool fuseKF; //!transient
157
5f4502cc 158 /// the default configuration entry for this component
159 static const char* fgkOCDBEntry; //!transient
160
161 ClassDef(AliHLTD0Trigger, 0)
162};
163#endif //ALIHLTD0TRIGGER_H