Simple implementation of the VEventPool which allows to loop several times over the...
[u/mrichter/AliRoot.git] / ANALYSIS / AliEventPoolLoop.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /* $Id$ */
17  
18
19 // Realisation of an AliVEventPool which allows the user to
20 // run the analysis in a loop, i.e. passing several times over 
21 // the same event chain.
22 // Author Andreas Morsch
23 // andreas.morsch@cern.ch
24
25
26 #include "AliEventPoolLoop.h"
27
28 ClassImp(AliEventPoolLoop)
29
30
31 ////////////////////////////////////////////////////////////////////////
32
33 AliEventPoolLoop::AliEventPoolLoop():
34     AliVEventPool(),
35     fMaxIterations(0),
36     fNIteration(0)
37 {
38   // Default constructor
39 }
40
41 AliEventPoolLoop::AliEventPoolLoop(Int_t nit):
42     AliVEventPool(),
43     fMaxIterations(nit),
44     fNIteration(0)
45 {
46   // Default constructor
47 }
48
49 AliEventPoolLoop::AliEventPoolLoop(const char* name, const char* title):
50     AliVEventPool(name, title),
51     fMaxIterations(0),
52     fNIteration(0)
53 {
54   // Constructor
55 }
56
57
58 AliEventPoolLoop::AliEventPoolLoop(const AliEventPoolLoop& obj):
59     AliVEventPool(obj),
60     fMaxIterations(obj.fMaxIterations),
61     fNIteration(obj.fNIteration)
62 {
63     // Copy constructor
64 }
65
66 AliEventPoolLoop& AliEventPoolLoop::operator=(const AliEventPoolLoop& other)
67 {
68 // Assignment operator
69     AliVEventPool::operator=(other);
70     fMaxIterations = other.fMaxIterations;
71     fNIteration    = other.fNIteration;
72     return *this;
73 }
74
75
76 void AliEventPoolLoop::Init()
77 {
78 // Initialisation
79
80     fMaxIterations = 0;
81     fNIteration    = 0;
82 }
83
84 TChain* AliEventPoolLoop::GetNextChain()
85 {
86     //
87     if (fNIteration >= fMaxIterations) {
88         return (0);
89     } else {
90         fNIteration++;
91         return fChain;
92     }
93 }
94
95 void  AliEventPoolLoop::GetCurrentBin(Float_t* /*bin*/)
96 {
97     //
98 }
99
100 Int_t AliEventPoolLoop::GetDimension()
101 {
102     //
103     return (0);
104 }
105