Modifications needed for the compilation of the femtoscopy code (Adam-Mike)
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / Cut / AliFemtoBasicEventCut.h
1 /***************************************************************************
2  *
3  * $Id$
4  *
5  * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu
6  ***************************************************************************
7  *
8  * Description: part of STAR HBT Framework: AliFemtoMaker package
9  *   A simple event-wise cut that selects on multiplicity and z-position
10  *   of primary vertex           
11  *
12  ***************************************************************************
13  *
14  * $Log$
15  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
16  * First version on CVS
17  *
18  * Revision 1.5  2000/03/23 22:57:28  laue
19  * Clone() function implemented
20  *
21  * Revision 1.4  2000/01/25 17:35:02  laue
22  * I. In order to run the stand alone version of the AliFemtoMaker the following
23  * changes have been done:
24  * a) all ClassDefs and ClassImps have been put into #ifdef __ROOT__ statements
25  * b) unnecessary includes of StMaker.h have been removed
26  * c) the subdirectory AliFemtoMaker/doc/Make has been created including everything
27  * needed for the stand alone version
28  *
29  * II. To reduce the amount of compiler warning
30  * a) some variables have been type casted
31  * b) some destructors have been declared as virtual
32  *
33  * Revision 1.3  1999/10/15 01:57:04  lisa
34  * Important enhancement of AliFemtoMaker - implement Franks CutMonitors
35  * ----------------------------------------------------------
36  * This means 3 new files in Infrastructure area (CutMonitor),
37  * several specific CutMonitor classes in the Cut area
38  * and a new base class in the Base area (AliFemtoCutMonitor).
39  * This means also changing all Cut Base class header files from .h to .h
40  * so we have access to CutMonitor methods from Cint command line.
41  * This last means
42  * 1) files which include these header files are slightly modified
43  * 2) a side benefit: the TrackCuts and V0Cuts no longer need
44  * a SetMass() implementation in each Cut class, which was stupid.
45  * Also:
46  * -----
47  * Include Franks AliFemtoAssociationReader
48  * ** None of these changes should affect any user **
49  *
50  * Revision 1.2  1999/07/06 22:33:21  lisa
51  * Adjusted all to work in pro and new - dev itself is broken
52  *
53  * Revision 1.1.1.1  1999/06/29 16:02:56  lisa
54  * Installation of AliFemtoMaker
55  *
56  **************************************************************************/
57
58 #ifndef AliFemtoBasicEventCut_hh
59 #define AliFemtoBasicEventCut_hh
60
61 // do I need these lines ?
62 //#ifndef StMaker_H
63 //#include "StMaker.h"
64 //#endif
65
66 #include "Base/AliFemtoEventCut.h"
67
68 class AliFemtoBasicEventCut : public AliFemtoEventCut {
69
70 public:
71
72   AliFemtoBasicEventCut();
73   AliFemtoBasicEventCut(AliFemtoBasicEventCut&);
74   //~AliFemtoBasicEventCut();
75
76   void SetEventMult(const int& lo,const int& hi);
77   void SetVertZPos(const float& lo, const float& hi);
78   int NEventsPassed();
79   int NEventsFailed();
80
81   virtual AliFemtoString Report();
82   virtual bool Pass(const AliFemtoEvent*);
83
84   AliFemtoBasicEventCut* Clone();
85
86 private:   // here are the quantities I want to cut on...
87
88   int fEventMult[2];      // range of multiplicity
89   float fVertZPos[2];     // range of z-position of vertex
90
91   long fNEventsPassed;
92   long fNEventsFailed;
93
94 #ifdef __ROOT__
95   ClassDef(AliFemtoBasicEventCut, 1)
96 #endif
97
98 };
99
100 inline void AliFemtoBasicEventCut::SetEventMult(const int& lo, const int& hi){fEventMult[0]=lo; fEventMult[1]=hi;}
101 inline void AliFemtoBasicEventCut::SetVertZPos(const float& lo, const float& hi){fVertZPos[0]=lo; fVertZPos[1]=hi;}
102 inline int  AliFemtoBasicEventCut::NEventsPassed() {return fNEventsPassed;}
103 inline int  AliFemtoBasicEventCut::NEventsFailed() {return fNEventsFailed;}
104 inline AliFemtoBasicEventCut* AliFemtoBasicEventCut::Clone() { AliFemtoBasicEventCut* c = new AliFemtoBasicEventCut(*this); return c;}
105 inline AliFemtoBasicEventCut::AliFemtoBasicEventCut(AliFemtoBasicEventCut& c) : AliFemtoEventCut(c) {
106   fEventMult[0] = c.fEventMult[0];
107   fEventMult[1] = c.fEventMult[1];
108   fVertZPos[0] = c.fVertZPos[0];
109   fVertZPos[1] = c.fVertZPos[1];
110   fNEventsPassed = 0;
111   fNEventsFailed = 0;
112 }
113
114
115 #endif