Line data Source code
1 : #ifndef ALIMUONTREEMANAGER_H
2 : #define ALIMUONTREEMANAGER_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 core
10 : /// \class AliMUONTreeManager
11 : /// \brief Helper class to ease TTree (MUON) branches manipulations
12 : ///
13 : // Author Laurent Aphecetche, Subatech
14 :
15 : #ifndef ROOT_TObject
16 : # include "TObject.h"
17 : #endif
18 :
19 : class AliMUONVStore;
20 : class TTree;
21 : class TBranch;
22 :
23 0 : class AliMUONTreeManager : public TObject
24 : {
25 : public:
26 :
27 : AliMUONTreeManager();
28 : virtual ~AliMUONTreeManager();
29 :
30 : void AddClassName(TTree& tree, const char* pattern,
31 : const char* className) const;
32 :
33 : Bool_t MakeBranch(TTree& tree, const char* storeClassName,
34 : const char* branchClassName, const char* branchName,
35 : void* address,
36 : Int_t bufferSize = 4000, Int_t splitLevel = 99) const;
37 :
38 : Bool_t SetAddress(TTree& tree, const char* branchName, void* address) const;
39 :
40 : TObject* CreateObject(const TTree& tree, const char* detail) const;
41 :
42 : void UpdateBranchStatuses(TTree& tree, const char* pattern) const;
43 :
44 : /** Debug method to get an event, but checking beforehand that all selected
45 : branches do have a non-zero address set (otherwise we leak memory).
46 : */
47 : void GetEvent(TTree& tree, Int_t event) const;
48 :
49 : /// Debug method to show the tree branch statuses and addresses.
50 : void ShowStatus(TTree& tree) const;
51 :
52 : private:
53 :
54 : TString GetClassName(const TTree& tree, const char* pattern,
55 : Bool_t makeDefault) const;
56 :
57 : TString DefaultClassName(const char* treename, const char* pattern) const;
58 :
59 18 : ClassDef(AliMUONTreeManager,0) // Helper class to handle MUON TTrees
60 : };
61 :
62 : #endif
|