Filter task for kinematics (Ernesto Lopez)
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisTaskKineFilter.h
1 #ifndef ALIANALYSISTASKKINEFILTER_H
2 #define ALIANALYSISTASKKINEFILTER_H
3  
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //
8 //  Analysis task for Kinematic filtering
9 //  Fill AOD tracks from Kinematic stack
10 //
11
12 #include <TList.h> 
13 #include "AliAnalysisTaskSE.h"
14
15 class AliMCEvent;
16 class TChain;
17 class AliAODEvent;
18 class AliAnalysisFilter;
19 class TParticle;
20 class AliAODTrack;  
21 class AliAODVertex;
22
23 class AliAnalysisTaskKineFilter : public AliAnalysisTaskSE
24 {
25  public:
26                                   AliAnalysisTaskKineFilter();
27                                   AliAnalysisTaskKineFilter( const char* name );
28                                   AliAnalysisTaskKineFilter(const AliAnalysisTaskKineFilter& obj);
29     virtual                      ~AliAnalysisTaskKineFilter() {;}
30      AliAnalysisTaskKineFilter&   operator=(const AliAnalysisTaskKineFilter& other);
31     
32     // Implementation of interface methods
33     virtual                void   UserCreateOutputObjects();
34     virtual                void   Exec( Option_t *option );
35     
36     // Setters
37     virtual                void   SetTrackFilter(AliAnalysisFilter* trackF) {fTrackFilter = trackF;}
38     
39  private:
40                           Int_t   LoopOverSecondaries(TParticle *mother, Int_t& jTracks, Int_t& jVertices, Int_t& nPos, Int_t& nNeg );
41                            void   SetChargeAndPID(Int_t pdgCode, AliAODTrack *track);
42                            void   SetVertexType(TParticle *part, AliAODVertex *vertex);
43                          
44               AliAnalysisFilter*  fTrackFilter; //  Track Filter
45                     
46     ClassDef( AliAnalysisTaskKineFilter, 1 ); // Analysis task for Kinematic filtering
47 };
48  
49 #endif