]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONNode.h
Changes to be in sync with what we have in the OCDB
[u/mrichter/AliRoot.git] / MUON / AliMUONNode.h
CommitLineData
0b936dc0 1#ifndef ALIMUONNODE_H
2#define ALIMUONNODE_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5* See cxx source for full Copyright notice */
6
7// $Id$
8
9/// \ingroup geometry
10/// \class AliMUONNode
11/// \brief A node of a segment tree
12///
13// author Laurent Aphecetche
14
15#ifndef ROOT_TObject
16# include "TObject.h"
17#endif
18
19class TObjArray;
20
21class AliMUONNode : public TObject
22{
23public:
24 AliMUONNode(Double_t a, Double_t b, Double_t midpoInt_t);
25 virtual ~AliMUONNode();
26
27 void Print(const char* opt="") const;
28
29 void Contribution(Double_t b, Double_t e, TObjArray& stack);
30
31 void InsertInterval(Double_t b, Double_t e, TObjArray& stack);
32
33 void DeleteInterval(Double_t b, Double_t e, TObjArray& stack);
34
35 Bool_t IsFullyContained(Double_t b, Double_t e) const;
36
37 void Update();
38
39 void Demote();
40
41 void Promote();
42
43 /// Get cardinality
44 Int_t C() const { return fC; }
45
46 /// Increase cardinality
47 void C(Int_t v) { fC += v; }
48
49 /// Get potent state
50 Int_t P() const { return fP; }
51
52 /// Set left node
53 void LeftNode(AliMUONNode* n) { fLeftNode = n; }
54
55 /// Set right node
56 void RightNode(AliMUONNode* n) { fRightNode = n; }
57
58private:
59
60 /// not implemented
61 AliMUONNode(const AliMUONNode& node);
62 /// not implemented
63 AliMUONNode& operator=(const AliMUONNode& node);
cddcc1f3 64 AliMUONNode* fLeftNode; ///< left node
65 AliMUONNode* fRightNode; ///< right node
0b936dc0 66
cddcc1f3 67 Double_t fMin; ///< Min
68 Double_t fMax; ///< Max
69 Double_t fMidPoint; ///< (Min+Max)/2
0b936dc0 70
cddcc1f3 71 Int_t fC; ///< cardinality
72 Int_t fP; ///< potent state
0b936dc0 73
cddcc1f3 74 ClassDef(AliMUONNode,0) // A node of a segment tree
0b936dc0 75};
76
77#endif