]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/trigger/AliHLTD0Trigger.h
790102c6c5a2386e786a575294cdafc474dd5e9e
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTD0Trigger.h
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"
15 #include <vector>
16 #include "AliHLTD0toKpi.h"
17
18 class TH1F;
19 class TObjArray;
20 class AliESDVertex;
21 class AliExternalTrackParam;
22 class AliHLTMCEvent;
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 -->
39  *
40  * <h2>Optional arguments:</h2>
41  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
42  *
43  * <h2>Configuration:</h2>
44  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
45  * \li -pt    <i> pt cut for decay products </i> <br>
46  * \li -dca    <i> dca cut for distance between decay tracks  </i> <br>
47  * \li -invmass    <i> inv. mass half width of D0  </i> <br>
48  * \li -costhetastar    <i> cos of decay angle  </i> <br>
49  * \li -d0    <i> Impact parameter for decay products  </i> <br>
50  * \li -d0d0    <i> Product of impact parameter for decay products  </i> <br>
51  * \li -cospoint    <i> pointing angle  </i> <br>
52  * \li -plothistogram    <i> ploting the inv. mass histogram  </i> <br>
53  *
54  * By default, configuration is loaded from OCDB, can be overridden by
55  * component arguments.
56  *
57  * <h2>Default CDB entries:</h2>
58  * HLT/ConfigHLT/D0Trigger: TObjString storing the arguments
59  *
60  * <h2>Performance:</h2>
61  * 
62  *
63  * <h2>Memory consumption:</h2>
64  * 
65  *
66  * <h2>Output size:</h2>
67  * 
68  *
69  * \ingroup alihlt_trigger_components
70  */
71 class AliHLTD0Trigger : public AliHLTTrigger
72 {
73  public:
74   AliHLTD0Trigger();
75   ~AliHLTD0Trigger();
76
77   /// inherited from AliHLTTrigger: name of this trigger
78   virtual const char* GetTriggerName() const;
79   /// inherited from AliHLTComponent: create an instance
80   virtual AliHLTComponent* Spawn();
81
82  protected:
83   /// inherited from AliHLTComponent: handle the initialization
84   int DoInit(int argc, const char** argv);
85
86   /// inherited from AliHLTComponent: handle cleanup
87   int DoDeinit();
88
89   /// inherited from AliHLTComponent: handle re-configuration event
90   int Reconfigure(const char* cdbEntry, const char* chainId);
91
92   /// inherited from AliHLTComponent, scan one argument and
93   /// its parameters
94   int ScanConfigurationArgument(int argc, const char** argv);
95
96  private:
97   /// Not implemented. Do not allow copying of this object.
98   AliHLTD0Trigger(const AliHLTD0Trigger& );
99   /// Not implemented. Do not allow copying of this object.
100   AliHLTD0Trigger& operator=(const  AliHLTD0Trigger& );
101
102   /// inherited from AliHLTTrigger: calculate the trigger
103   virtual int DoTrigger();
104   
105   void SingleTrackSelect(AliExternalTrackParam*);
106   Int_t RecV0(const TObject* iter);
107   void RecD0(Int_t&,Int_t&);
108   bool CheckTrackMC(AliExternalTrackParam* pt, AliExternalTrackParam* pn);
109
110   /// pt cut for decay, minimum [GeV/c]
111   float fPtMin;                                            //! transient
112   /// Distance between decay tracks [cm] ??
113   float fdca;                                              //! transient
114   /// Inv. mass half width [GeV]
115   float finvMass;                                          //! transient
116   /// Decay angle
117   float fcosThetaStar;                                     //! transient  
118   /// Distance from primary vertex for decay tracks [cm] 
119   float fd0;                                               //! transient
120   /// Product of d0 for the two decay tracks [cm^2]
121   float fd0d0;                                             //! transient
122   /// Pionting angle
123   float fcosPoint;                                         //! transient 
124
125   bool fplothisto;                                         //! transient 
126   bool fUseV0;                                             //! transient 
127
128   Double_t mD0PDG;                                         //! transient
129
130   /// D0 inv. mass plot
131   TH1F *fD0mass;                                           //! transient  
132
133   vector<AliExternalTrackParam*> fPos;                       //! transient
134   vector<AliExternalTrackParam*> fNeg;                       //! transient
135
136   AliHLTD0toKpi *fd0calc;                                   //! transient
137   TObjArray *ftwoTrackArray;                                //! transient
138
139   Int_t fTotalD0;                                           //! transient
140   Int_t fTotalD0true;                                       //! transient
141   AliESDVertex *fVertex;                                    //! transient
142   Double_t fField;                                          //!transient
143   
144   AliHLTMCEvent* fEvent;                                    //!transient
145
146   /// the default configuration entry for this component
147   static const char* fgkOCDBEntry; //!transient
148
149   ClassDef(AliHLTD0Trigger, 0)
150 };
151 #endif //ALIHLTD0TRIGGER_H