]>
Commit | Line | Data |
---|---|---|
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" | |
15 | class TH1F; | |
16 | class TH2F; | |
17 | class AliESDtrack; | |
18 | class AliESDVertex; | |
19 | class AliTracker; | |
20 | class AliESDtrack; | |
21 | class AliESDEvent; | |
22 | ||
23 | /** | |
24 | * @class AliHLTTPCGlobalVertexerComponent | |
25 | * Component for reconstruct primary vertex and V0's | |
26 | */ | |
27 | class AliHLTGlobalVertexerComponent : public AliHLTProcessor | |
28 | { | |
29 | public: | |
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 | ||
52 | protected: | |
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 | ||
69 | private: | |
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 |