]>
Commit | Line | Data |
---|---|---|
caa58e1a | 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 |