1 #ifndef ALIHLTGLOBALVERTEXERCOMPONENT_H
2 #define ALIHLTGLOBALVERTEXEROMPONENT_H
3 //* This file is property of and copyright by the ALICE HLT Project *
4 //* ALICE Experiment at CERN, All rights reserved. *
5 //* See cxx source for full Copyright notice *
7 /** @file AliHLTGlobalVertexerComponent.h
8 @author Sergey Gorbunov
9 @brief Component for monitor V0 physics
12 #include "AliHLTProcessor.h"
13 #include "AliKFParticle.h"
14 #include "AliKFVertex.h"
24 * @class AliHLTTPCGlobalVertexerComponent
25 * Component for reconstruct primary vertex and V0's
27 class AliHLTGlobalVertexerComponent : public AliHLTProcessor
30 /** default constructor */
31 AliHLTGlobalVertexerComponent();
33 virtual ~AliHLTGlobalVertexerComponent();
35 // Public functions to implement AliHLTComponent's interface.
36 // These functions are required for the registration process
38 /** interface function, see AliHLTComponent for description */
39 const char* GetComponentID();
40 /** interface function, see AliHLTComponent for description */
41 void GetInputDataTypes(AliHLTComponentDataTypeList& list);
42 /** interface function, see AliHLTComponent for description */
43 AliHLTComponentDataType GetOutputDataType();
44 /** interface function, see AliHLTComponent for description */
45 int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
47 /** interface function, see AliHLTComponent for description */
48 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
49 /** interface function, see AliHLTComponent for description */
50 AliHLTComponent* Spawn();
54 // Protected functions to implement AliHLTComponent's interface.
55 // These functions provide initialization as well as the actual processing
56 // capabilities of the component.
58 /** interface function, see AliHLTComponent for description */
59 int DoInit( int argc, const char** argv );
60 /** interface function, see AliHLTComponent for description */
62 /** interface function, see AliHLTComponent for description */
63 int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData );
65 int Reconfigure(const char* cdbEntry, const char* chainId);
67 using AliHLTProcessor::DoEvent;
70 /** copy constructor prohibited */
71 AliHLTGlobalVertexerComponent(const AliHLTGlobalVertexerComponent&);
72 /** assignment operator prohibited */
73 AliHLTGlobalVertexerComponent& operator=(const AliHLTGlobalVertexerComponent&);
75 * Configure the component.
76 * Parse a string for the configuration arguments and set the component
79 int Configure(const char* arguments);
84 AliESDTrackInfo(): fParticle(),fPrimDeviation(0),fPrimUsedFlag(0),fOK(0){}
86 AliKFParticle fParticle; //* assigned KFParticle
87 Double_t fPrimDeviation; //* deviation from the primary vertex
88 Bool_t fPrimUsedFlag; //* flag shows that the particle was used for primary vertex fit
89 Bool_t fOK; //* is the track good enough
91 void SetESD( AliESDEvent *event );
92 void FindPrimaryVertex();
96 AliESDEvent *fESD; // pointer to esd event
97 AliESDTrackInfo *fTrackInfos; // information about esd tracks
98 AliKFVertex fPrimaryVtx; // reconstructed KF primary vertex
100 TH2F *fHistPrimVertexXY; // primary vertex distribution in XY;
101 TH2F *fHistPrimVertexZX; // primary vertex distribution in ZX;
102 TH2F *fHistPrimVertexZY; // primary vertex distribution in ZY;
103 Int_t fNEvents; // n of processed events
105 Bool_t fPlotHistograms;// flag to produce histogramms
106 Bool_t fFitTracksToVertex; // flag to store vertex constrained track parameters
107 Double_t fConstrainedTrackDeviation; // deviation of a track from prim.vtx <=cut
108 Double_t fV0DaughterPrimDeviation; // v0: daughters deviation from prim vertex >= cut
109 Double_t fV0PrimDeviation; // v0: v0 deviation from prim vertex <= cut
110 Double_t fV0Chi; // v0: v0 sqrt(chi^2/NDF) <= cut
111 Double_t fV0DecayLengthInSigmas; // v0: v0 decay length/sigma_length >= cut
114 ClassDef(AliHLTGlobalVertexerComponent, 0);