]>
Commit | Line | Data |
---|---|---|
b2a297fa | 1 | #ifndef ALIDIELECTRONVARCUTS_H |
2 | #define ALIDIELECTRONVARCUTS_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 AliDielectronVarCuts # | |
10 | //# Provide cuts for all variables handled in # | |
11 | //# AliDielectronVarManager # | |
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 | #include <AliAnalysisCuts.h> | |
26 | #include <AliDielectronVarManager.h> | |
27 | ||
28 | class AliDielectronVarCuts : public AliAnalysisCuts { | |
29 | public: | |
30 | AliDielectronVarCuts(); | |
31 | AliDielectronVarCuts(const char* name, const char* title); | |
32 | virtual ~AliDielectronVarCuts(); | |
33 | //TODO: make copy constructor and assignment operator public | |
34 | void AddCut(Double_t min, Double_t max, AliDielectronVarManager::ValueTypes type); | |
35 | ||
36 | // | |
37 | //Analysis cuts interface | |
38 | // | |
39 | virtual Bool_t IsSelected(TObject* track); | |
40 | virtual Bool_t IsSelected(TList* /* list */ ) {return kFALSE;} | |
41 | ||
42 | // virtual Bool_t IsSelected(TObject* track, TObject */*event*/=0); | |
43 | // virtual Long64_t Merge(TCollection* /* list */) { return 0; } | |
44 | ||
45 | // | |
46 | // Cut information | |
47 | // | |
48 | virtual UInt_t GetSelectedCutsMask() const { return fSelectedCutsMask; } | |
49 | Bool_t IsCutActive(AliDielectronVarManager::ValueTypes cut) { return TESTBIT(fActiveCutsMask,cut); } | |
50 | ||
51 | private: | |
52 | ||
53 | UChar_t fActiveCuts[AliDielectronVarManager::kNMaxValues]; // list of activated cuts | |
54 | UChar_t fNActiveCuts; // number of acive cuts | |
55 | UInt_t fActiveCutsMask; // maks of active cuts | |
56 | ||
57 | UInt_t fSelectedCutsMask; // Maks of selected cuts, is available after calling IsSelected | |
58 | ||
59 | Double_t fCutMin[AliDielectronVarManager::kNMaxValues]; // minimum values for the cuts | |
60 | Double_t fCutMax[AliDielectronVarManager::kNMaxValues]; // maximum values for the cuts | |
61 | ||
62 | void ActivateCut(AliDielectronVarManager::ValueTypes cutName); | |
63 | ||
64 | AliDielectronVarCuts(const AliDielectronVarCuts &c); | |
65 | AliDielectronVarCuts &operator=(const AliDielectronVarCuts &c); | |
66 | ||
67 | ClassDef(AliDielectronVarCuts,1) //Cut class providing cuts to all infomation available for the AliVParticle interface | |
68 | }; | |
69 | ||
70 | ||
71 | // | |
72 | //Inline functions | |
73 | // | |
74 | inline void AliDielectronVarCuts::AddCut(Double_t min, Double_t max, AliDielectronVarManager::ValueTypes type) | |
75 | { | |
76 | // | |
77 | // Set cut range and activate it | |
78 | // | |
79 | fCutMin[type]=min; | |
80 | fCutMax[type]=max; | |
81 | ActivateCut(type); | |
82 | } | |
83 | ||
84 | #endif | |
85 |