]>
Commit | Line | Data |
---|---|---|
99345a64 | 1 | #ifndef ALIDIELECTRONV0CUTS_H |
2 | #define ALIDIELECTRONV0CUTS_H | |
3 | ||
4 | /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | //############################################################# | |
8 | //# # | |
9 | //# Class AliDielectronV0Cuts # | |
10 | //# Provide cuts for all variables handled in # | |
11 | //# AliDielectronV0Manager # | |
12 | //# # | |
13 | //# Authors: # | |
14 | //# Anton Andronic, GSI / A.Andronic@gsi.de # | |
15 | //# Ionut C. Arsene, GSI / I.C.Arsene@gsi.de # | |
16 | //# Julian Book, Uni Ffm / Julian.Book@cern.ch # | |
17 | //# Frederick Kramer, Uni Ffm, / Frederick.Kramer@cern.ch # | |
18 | //# Magnus Mager, CERN / Magnus.Mager@cern.ch # | |
19 | //# WooJin J. Park, GSI / W.J.Park@gsi.de # | |
20 | //# Jens Wiechula, Uni HD / Jens.Wiechula@cern.ch # | |
21 | //# # | |
22 | //############################################################# | |
23 | ||
24 | #include <Rtypes.h> | |
25 | ||
26 | #include <AliDielectronVarCuts.h> | |
27 | ||
28 | class AliDielectronV0Cuts : public AliDielectronVarCuts { | |
29 | public: | |
f1f59b2e | 30 | enum EV0finder { |
31 | kAll = 0, | |
32 | kOffline, | |
33 | kOnTheFly | |
34 | }; | |
6ed39778 | 35 | enum PIDCutType { kBoth=0, kAny }; |
99345a64 | 36 | |
37 | AliDielectronV0Cuts(); | |
38 | AliDielectronV0Cuts(const char* name, const char* title); | |
39 | virtual ~AliDielectronV0Cuts(); | |
40 | //TODO: make copy constructor and assignment operator public | |
41 | ||
42 | // | |
43 | //Analysis cuts interface | |
44 | // | |
f2d9961b | 45 | void InitEvent(AliVTrack *trk); |
46 | Bool_t IsNewEvent(const AliVEvent *ev); | |
99345a64 | 47 | virtual Bool_t IsSelected(TObject* track); |
48 | virtual Bool_t IsSelected(TList* /* list */ ) {return kFALSE;} | |
f1f59b2e | 49 | void SetV0finder(EV0finder finder) {fV0finder=finder;} |
f2d9961b | 50 | void SetPdgCodes(Int_t mother, Int_t negDaughter, Int_t posDaughter) {fMotherPdg=mother; fNegPdg=negDaughter; fPosPdg=posDaughter;} |
51 | void SetExcludeTracks(Bool_t exclude) {fExcludeTracks=exclude;} | |
6ed39778 | 52 | void SetDefaultPID(Int_t def, PIDCutType type=kBoth) {fPID=def; fPIDCutType=type; } |
061ca303 | 53 | void ResetUniqueEventNumbers() { fOrbit=0; fPeriod=0; fBunchCross=0; } |
99345a64 | 54 | |
6ed39778 | 55 | // cut information |
56 | virtual void Print(const Option_t* option = "") const; | |
57 | ||
99345a64 | 58 | private: |
59 | ||
f2d9961b | 60 | TBits fV0TrackArr; // array with booleans where TrackID corresponds to bitnumber |
61 | Bool_t fExcludeTracks; // cut logic: exclude or include tracks corresponding to a V0 candidate | |
f1f59b2e | 62 | EV0finder fV0finder; // which v0 finder |
f2d9961b | 63 | |
64 | Int_t fMotherPdg; // target pdg code of the mother | |
65 | Int_t fNegPdg; // target pdg code of the negative daughter | |
66 | Int_t fPosPdg; // target pdg code of the positive daughter | |
882407d7 | 67 | Int_t fPID; // default PID usage (see AliDielectronPID) |
6ed39778 | 68 | PIDCutType fPIDCutType; // apply PIDcuts to one or both daughter tracks |
f2d9961b | 69 | |
70 | // memebers needed to identify an event | |
71 | UInt_t fOrbit; // orbit number | |
72 | UInt_t fPeriod; // period number | |
73 | UShort_t fBunchCross; // bunch cross number | |
99345a64 | 74 | |
75 | AliDielectronV0Cuts(const AliDielectronV0Cuts &c); | |
76 | AliDielectronV0Cuts &operator=(const AliDielectronV0Cuts &c); | |
77 | ||
6ed39778 | 78 | ClassDef(AliDielectronV0Cuts,3) // cut class for V0 candidates |
99345a64 | 79 | }; |
80 | ||
81 | #endif | |
82 |