Add fast merging option (Diego)
[u/mrichter/AliRoot.git] / PWG3 / dielectron / AliDielectronPairLegCuts.h
1 #ifndef ALIDIELECTRONPAIRLEGCUTS_H
2 #define ALIDIELECTRONPAIRLEGCUTS_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 AliDielectronPairLegCuts                    #
10 //#         Manage Cuts on the legs of the pair               #
11 //#                                                           #
12 //#  Authors:                                                 #
13 //#   Anton     Andronic, GSI / A.Andronic@gsi.de             #
14 //#   Ionut C.  Arsene,   GSI / I.C.Arsene@gsi.de             #
15 //#   Julian    Book,     Uni Ffm / Julian.Book@cern.ch       #
16 //#   Frederick Kramer,   Uni Ffm, / Frederick.Kramer@cern.ch #
17 //#   Magnus    Mager,    CERN / Magnus.Mager@cern.ch         #
18 //#   WooJin J. Park,     GSI / W.J.Park@gsi.de               #
19 //#   Jens      Wiechula, Uni HD / Jens.Wiechula@cern.ch      #
20 //#                                                           #
21 //#############################################################
22
23 #include <AliAnalysisFilter.h>
24
25 #include <AliAnalysisCuts.h>
26
27 class AliDielectronPairLegCuts : public AliAnalysisCuts {
28 public:
29   enum CutType { kBothLegs=0, kAnyLeg, kMixLegs };
30
31   AliDielectronPairLegCuts();
32   AliDielectronPairLegCuts(const char* name, const char* title);
33   virtual ~AliDielectronPairLegCuts() {;}
34   //TODO: make copy constructor and assignment operator public
35   //      and implement them
36   
37   //
38   //AliAnalysisCuts interface
39   //
40   virtual Bool_t IsSelected(TObject* track);
41   virtual Bool_t IsSelected(TList*   /* list */ ) {return kFALSE;}
42 //   virtual Long64_t Merge(TCollection* /* list */)      { return 0; }
43
44   AliAnalysisFilter& GetLeg1Filter() { return fFilterLeg1; }
45   AliAnalysisFilter& GetLeg2Filter() { return fFilterLeg2; }
46
47   void SetCutType(CutType type) {fCutType=type;}
48 private:
49   AliAnalysisFilter fFilterLeg1;     // Analysis Filter for leg1
50   AliAnalysisFilter fFilterLeg2;     // Analysis Filter for leg2
51
52   CutType fCutType;                  // Type of the cut
53
54   AliDielectronPairLegCuts(const AliDielectronPairLegCuts &c);
55   AliDielectronPairLegCuts &operator=(const AliDielectronPairLegCuts &c);
56   
57   ClassDef(AliDielectronPairLegCuts,1)         //Cut class providing cuts for both legs of a pair
58 };
59
60 #endif