]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/global/AliHLTPrimaryVertexFinderComponent.h
adding PrimaryVertexFinder and V0Finder component to registration, to be consolidated...
[u/mrichter/AliRoot.git] / HLT / global / AliHLTPrimaryVertexFinderComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTPRIMARYVERTEXFINDERCOMPONENT_H
4 #define ALIHLTPRIMARYVERTEXFINDERCOMPONENT_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   AliHLTPrimaryVertexFinderComponent.h
10 /// @author Timur Pocheptsov
11 /// @date   2010-12-26
12 /// @brief  Primary vertex finder component
13 ///
14
15 #include <vector>
16
17 #include "AliHLTVertexFinderBase.h"
18 #include "AliKFVertex.h"
19
20 //Primary vertex finder, developed by Sergey Gorbunov.
21 //Based on KF package.
22 //Produces primary vertex (AliKFVertex object) and
23 //indices of input tracks, which participates
24 //in primary construction.
25 //Can be configured with two options:
26 //-fitTracksToVertex 0/1
27 //-constrainedTrackDeviation value.
28
29 class AliHLTPrimaryVertexFinderComponent : public AliHLTVertexFinderBase
30 {
31 public:
32   AliHLTPrimaryVertexFinderComponent();
33
34   //AliHLTComponent's final-overriders.
35   const char* GetComponentID();
36   void GetInputDataTypes(AliHLTComponentDataTypeList& list);
37   AliHLTComponentDataType GetOutputDataType();
38   int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
39   void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
40   AliHLTComponent* Spawn();
41
42   int DoInit(int argc, const char** argv);
43   int ScanConfigurationArgument(int argc, const char** argv);
44   int DoDeinit();
45
46   using AliHLTProcessor::DoEvent;
47   int DoEvent(const AliHLTComponentEventData& evtData,
48               AliHLTComponentTriggerData& trigData);
49
50 private:
51   //Aux. staff.
52   void FindPrimaryVertex();
53   int DoOutput();
54
55   std::vector<char> fPrimaryOutput; //Ids of primary tracks.
56   AliKFVertex fPrimaryVtx; //Reconstructed KF primary vertex.
57   bool fFitTracksToVertex; //Flag to store vertex constrained track parameters
58   double fConstrainedTrackDeviation; //Deviation of a track from prim.vtx <=cut
59
60   static const double fgDefaultDeviation; //Default value for fConstrainedTrackDeviation.
61
62   //Compiler generated dtor, copy-ctor and copy-assignment operators are ok.
63
64   ClassDef(AliHLTPrimaryVertexFinderComponent, 0);
65 };
66
67 #endif