]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/global/AliHLTV0FinderComponent.h
Additional libraries to link hltdimserver
[u/mrichter/AliRoot.git] / HLT / global / AliHLTV0FinderComponent.h
CommitLineData
f078d002 1//-*- Mode: C++ -*-
2// $Id$
3#ifndef ALIHLTV0FINDERCOMPONENT_H
4#define ALIHLTV0FINDERCOMPONENT_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 AliHLTV0FinderComponent.h
10/// @author Timur Pocheptsov
11/// @date 2010-12-26
12/// @brief V0 finder component
13///
14
15#include <vector>
16
17#include "AliHLTVertexFinderBase.h"
18#include "AliKFVertex.h"
19
20class AliHLTV0FinderComponent : public AliHLTVertexFinderBase
21{
22public:
23 AliHLTV0FinderComponent();
24
25 //AliHLTComponent's final-overriders.
26 const char* GetComponentID();
27 void GetInputDataTypes(AliHLTComponentDataTypeList& list);
28 AliHLTComponentDataType GetOutputDataType();
29 int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
30 void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
31 AliHLTComponent* Spawn();
32
33 int DoInit(int argc, const char** argv);
34 int ScanConfigurationArgument(int argc, const char** argv);
35 int DoDeinit();
36
37 using AliHLTProcessor::DoEvent;
38 int DoEvent(const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
39
40private:
41 //Aux. staff.
42
43 //Read AliKFVertex, produced by primary finder.
44 bool ReadPrimaryVertex();
45 //Read input tracks.
46 bool ReadTracks();
47 //
48 void FindPrimaryDeviations();
49 //If track (id) is from primary.
50 bool IsPrimaryTrack(int id)const;
51 //
52 void FindV0s();
53 //PushBack the output (v0s pairs' indices).
54 int DoOutput();
55
56 AliKFVertex fPrimaryVtx; //Primary vertex.
57 std::vector<int> fPrimaryTracks; //"bit mask": 1 - track is prim, 0 - no.
58 int fNPrimaryTracks; //Number of primary tracks.
59 int fMinPrimID; //Min id of primary tracks.
60 int fMaxPrimID; //Max id of primary tracks.
61
62 //V0 finder cuts.
63 double fDaughterPrimDeviation; //daughters deviation from prim vertex >= cut
64 double fPrimDeviation; //v0 deviation from prim vertex <= cut
65 double fChi; //v0 sqrt(chi^2/NDF) <= cut
66 double fDecayLengthInSigmas; //v0 decay length/sigma_length >= cut
67 int fPosPID; //Pid for a positive track, when constracting v0.
68 int fNegPID; //Pid for a negative track, when constracting v0.
69
70 //Output of V0 finder.
71 std::vector<int> fV0s; //Indices of track pairs, participating in a V0s.
72
73 //For gammas, special version of AliKFParitcle must be constructed.
74 bool fGammaFinder;
75
76 //defaults for cuts.
77 static const double fgDaughterPrimDeviation;
78 static const double fgPrimDeviation;
79 static const double fgChi;
80 static const double fgDecayLengthInSigmas;
81
82 //Compiler generated dtor, copy-ctor and copy-assignment operators are ok.
83
84 ClassDef(AliHLTV0FinderComponent, 0);
85};
86
87#endif