]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/global/AliHLTV0FinderComponent.h
activating automatic emulation of TPC compressed clusters
[u/mrichter/AliRoot.git] / HLT / global / AliHLTV0FinderComponent.h
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
20 class AliHLTV0FinderComponent : public AliHLTVertexFinderBase
21 {
22 public:
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
40 private:
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