]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/global/AliHLTGlobalVertexerComponent.h
Adding component to generate histograms for clusters.
[u/mrichter/AliRoot.git] / HLT / global / AliHLTGlobalVertexerComponent.h
CommitLineData
4d5ee3db 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 *
6
7/** @file AliHLTGlobalVertexerComponent.h
8 @author Sergey Gorbunov
9 @brief Component for monitor V0 physics
10*/
11
12#include "AliHLTProcessor.h"
13#include "AliKFParticle.h"
14#include "AliKFVertex.h"
15class TH1F;
16class TH2F;
17class AliESDtrack;
18class AliESDVertex;
19class AliTracker;
20class AliESDtrack;
21class AliESDEvent;
22
23/**
24 * @class AliHLTTPCGlobalVertexerComponent
25 * Component for reconstruct primary vertex and V0's
26 */
27class AliHLTGlobalVertexerComponent : public AliHLTProcessor
28{
29public:
30 /** default constructor */
31 AliHLTGlobalVertexerComponent();
32 /** destructor */
33 virtual ~AliHLTGlobalVertexerComponent();
34
35 // Public functions to implement AliHLTComponent's interface.
36 // These functions are required for the registration process
37
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);
46
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();
51
52protected:
53
54 // Protected functions to implement AliHLTComponent's interface.
55 // These functions provide initialization as well as the actual processing
56 // capabilities of the component.
57
58 /** interface function, see AliHLTComponent for description */
59 int DoInit( int argc, const char** argv );
60 /** interface function, see AliHLTComponent for description */
61 int DoDeinit();
62 /** interface function, see AliHLTComponent for description */
63 int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData );
64
65 int Reconfigure(const char* cdbEntry, const char* chainId);
66
67 using AliHLTProcessor::DoEvent;
68
69private:
70 /** copy constructor prohibited */
71 AliHLTGlobalVertexerComponent(const AliHLTGlobalVertexerComponent&);
72 /** assignment operator prohibited */
73 AliHLTGlobalVertexerComponent& operator=(const AliHLTGlobalVertexerComponent&);
74 /**
75 * Configure the component.
76 * Parse a string for the configuration arguments and set the component
77 * properties.
78 */
79 int Configure(const char* arguments);
80
81 class AliESDTrackInfo
82 {
83 public:
84 AliESDTrackInfo(): fParticle(),fPrimDeviation(0),fPrimUsedFlag(0),fOK(0){}
85
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
90 };
91 void SetESD( AliESDEvent *event );
92 void FindPrimaryVertex();
93 void FindV0s();
94
95
96 AliESDEvent *fESD; // pointer to esd event
97 AliESDTrackInfo *fTrackInfos; // information about esd tracks
98 AliKFVertex fPrimaryVtx; // reconstructed KF primary vertex
99
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
104
105 Bool_t fPlotHistograms;// flag to produce histogramms
608cfbda 106 Bool_t fFitTracksToVertex; // flag to store vertex constrained track parameters
4d5ee3db 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
112
113
114 ClassDef(AliHLTGlobalVertexerComponent, 0);
115
116};
117#endif