warning fixed
[u/mrichter/AliRoot.git] / RALICE / AliEventSelector.h
1 #ifndef ALIEVENTSELECTOR_H
2 #define ALIEVENTSELECTOR_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 // $Id$
8
9 #include "AliJob.h"
10 #include "AliAstrolab.h"
11 #include "AliEvent.h"
12
13 class AliEventSelector : public AliAstrolab
14 {
15  public :
16   AliEventSelector(const char* name="AliEventSelector",const char* title="Event selection"); // Constructor
17   virtual ~AliEventSelector();                                                               // Destructor
18   AliEventSelector(const AliEventSelector& q);               // Copy constructor
19   virtual TObject* Clone(const char* name="") const;         // Make a deep copy and provide its pointer
20   virtual void Exec(Option_t* opt);                          // Event selection
21   void SetSelector(TString type,Int_t flag=1);               // Specify selection types to be used
22   void SetLogic(TString type);                               // Set type of decision logic
23   void UseTracks(TString name,Int_t n=-1);                   // Specify track names to be used
24   void SetAstroMatch(Double_t da,Double_t dt,TString dir);   // Set parameters for Astro matching
25   void SetRange(TString type,TString obs,Double_t low,Double_t up); // Set range of various observables
26   void SetRange(TString type,TString obs,TString name,Int_t nlow,Int_t nup); // Set range of various observables
27
28  protected :
29   Int_t fFirst;                 // Flag to indicate first invokation
30   AliEvent* fEvt;               // Pointer to the current event structure
31   AliDevice* fParams;           // The device containing all parameter settings and final select flag
32   Int_t fTrackflag;             // Flag to indicate usage of individual track selection criteria
33   Int_t fEventflag;             // Flag to indicate usage of total event selection criteria
34   Int_t fAstroflag;             // Flag to indicate usage of Astrolab selection criteria
35   Int_t fLogic;                 // Decision logic (0=unknown  1=and  2=or)
36   TObjArray* fUseNames;         // The track names to be used 
37   TArrayI* fUseNtk;             // The max. numbers of the various track names to be used
38   Int_t fSelect;                // Event selection flag (-1=reject  0=unknown  1=accept)
39   Double_t fAstroDa;            // Maximum angular distance (deg.) w.r.t. the reference object
40   Double_t fAstroDt;            // Maximum absolute time difference (sec.) w.r.t. the reference signal
41   Int_t fAstroDir;              // Direction flag for pointing to external objects
42   Float_t fTrackCharges[2];     // Track charge range selections
43   Float_t fTrackMasses[2];      // Track mass range selections
44   Double_t fTrackMomenta[6];    // Track momentum range selections
45   Double_t fTrackEnergies[6];   // Track energy range selections 
46   Double_t fTrackRapidities[4]; // Track rapidity range selections
47   Int_t fTrackDevices[2];       // Range of number of track associated devices
48   TString fTrackDevClass;       // (Derived) class name of track associated devices
49   Float_t fEventCharges[2];     // Event charge range selections
50   Float_t fEventMasses[2];      // Event mass range selections
51   Double_t fEventMomenta[6];    // Event momentum range selections
52   Double_t fEventEnergies[6];   // Event energy range selections 
53   Int_t fEventDevices[2];       // Range of number of event associated devices
54   TString fEventDevClass;       // (Derived) class name of event associated devices
55   Int_t fEventTracks[10];       // Range of number of various track types
56   TString fEventTrkName;        // Name of the tracks for total number of tracks selection
57   void Track(Int_t mode);       // Check criteria for individual track observables
58   void Event();                 // Check criteria for total event observables
59   void Astro();                 // Check for matches with external (astrophysical) objects
60
61  ClassDef(AliEventSelector,1) // TTask derived class to perform generic event selection
62 };
63 #endif