NCFS-Pack
A generic (astro)particle physics analysis framework
 
Loading...
Searching...
No Matches
NcTreeMaker.h
Go to the documentation of this file.
1#ifndef NcTreeMaker_h
2#define NcTreeMaker_h
3// Copyright(c) 2008 NCFS/IIHE, All Rights Reserved.
4// See cxx source for full Copyright notice.
5
6#include "TSystem.h"
7#include "TFile.h"
8#include "TTree.h"
9
10#include "NcJob.h"
11#include "NcEvent.h"
12#include "NcAstrolab.h"
13
15
16class NcTreeMaker : public TTask
17{
18 public :
19 NcTreeMaker(const char* name="NcTreeMaker",const char* title="ROOT tree data generation"); // Constructor
20 virtual ~NcTreeMaker(); // Destructor
21 NcTreeMaker(const NcTreeMaker& q); // Copy constructor
22 virtual TObject* Clone(const char* name="") const; // Make a deep copy and provide its pointer
23 virtual void Exec(Option_t* opt); // Event selection
24 void CloseTree(); // Proper writing and closing of the output tree
25 void SetOutputFile(TString fname,TString ftitle,TString tname="Data",TString ttitle="All event data"); // Create output file for the ROOT data tree
26 void SetTrackMaximum(Int_t n); // Set maximum number of tracks per name in the output tree
27 void UseTracks(TString name,Int_t n=-1,Int_t mode=0); // Specify track names to be used
28 void UseDevices(TString classname); // Specify device classes to be used
29 void Select(TString type,TString obs,TString uname=""); // Select observables for the output tree
30 void SetAstrolab(NcAstrolab* lab); // Specify the astrolab to be used
31 NcAstrolab* GetAstrolab() const; // Provide pointer to the astrolab
32
33 protected :
34 Int_t fFirst; // Flag to indicate first invokation
35 TFile* fOutfile; // The output file
36 TTree* fOuttree; // The output tree
37 TObjArray* fTrees; // Array with pointers of all created trees with observables
38 Int_t fNtkmax; // The maximum number of tracks per name in the output tree
39 NcEvent* fEvt; // Pointer to the current event structure
40 NcAstrolab* fAstrolab; // Pointer to the astrolab
41 Int_t fTrackflag; // Flag to indicate usage of individual track selection criteria
42 Int_t fEventflag; // Flag to indicate usage of total event selection criteria
43 Int_t fDeviceflag; // Flag to indicate usage of device selection criteria
44 TObjArray* fUseTracks; // The track names to be used
45 TArrayI* fUseNtk; // The max. numbers of the various track names to be used
46 TArrayI* fUseTkMode; // The modes for the retrieval of the various tracks from the event based on the name (pattern)
47 Int_t fTrackMomenta; // Track momentum selection flag
48 Int_t fTrackEnergies; // Track energy selection flag
49 Int_t fTrackCharges; // Track charge selection flag
50 Int_t fTrackMasses; // Track mass selection flag
51 Int_t fTrackMjds; // Track MJD selection flag
52 Int_t fTrackSecs; // Track elapsed seconds selection flag
53 Int_t fTrackIds; // Track Ids selection flag
54 Int_t fTrackNsigs; // Track number of associated signals selection flag
55 TObjArray* fTrackUnames; // The names of the track user words to be selected
56 Int_t fTn;
57 Float_t* fTp;
58 Float_t* fTthetap;
59 Float_t* fTphip;
60 Float_t* fTe;
61 Float_t* fTq;
62 Float_t* fTm;
63 Double_t* fTmjd;
64 Double_t* fTsec;
65 Int_t* fTid;
66 Int_t* fTnsig;
67 Float_t** fTuser;
68 Int_t fEventJruns; // Event run number selection flag
69 Int_t fEventJevts; // Event event number selection flag
70 Int_t fEventMjds; // Event MJD selection flag
71 Int_t fEventSecs; // Event elapsed seconds selection flag
72 Int_t fEventMomenta; // Event momentum selection flag
73 Int_t fEventEnergies; // Event energy selection flag
74 Int_t fEventCharges; // Event charge selection flag
75 Int_t fEventMasses; // Event invariant mass selection flag
76 Int_t fEventWeights; // Event weight selection flag
77 TObjArray* fEventUnames; // The names of the event user words to be selected
78 Int_t fEjrun;
79 Int_t fEjevt;
80 Double_t fEweight;
81 Double_t fEmjd;
82 Double_t fEsec;
83 Float_t fEp;
84 Float_t fEthetap;
85 Float_t fEphip;
86 Float_t fEe;
87 Float_t fEq;
88 Float_t fEm;
89 Float_t* fEuser;
90 TObjArray* fUseDevices; // The device classes to be used
91 Int_t fDeviceNdevs; // Device class number of fired devices selection flag
92 Int_t fDeviceNhits; // Device class number of hits selection flag
93 Int_t fDndev;
94 Int_t fDnhit;
95 void Track(); // Obtain individual track observables
96 void Event(); // Obtain total event observables
97 void Device(); // Obtain device observables
98 void AstroTrack(); // Create individual track observables from astrophysical reference objects
99
100 ClassDef(NcTreeMaker,5) // TTask derived class to generate a plain ROOT tree from NCFS generic event structures
101};
102#endif
Virtual lab to provide (astro)physical parameters, treat data and relate observations with astrophysi...
Definition NcAstrolab.h:47
Creation and investigation of an NCFS generic event structure.
Definition NcEvent.h:15
TFile * fOutfile
Definition NcTreeMaker.h:35
NcAstrolab * fAstrolab
Definition NcTreeMaker.h:40
Float_t fEm
! Variable for event data storage in output tree
Definition NcTreeMaker.h:88
Int_t fEventSecs
Definition NcTreeMaker.h:71
Int_t fTrackMomenta
Definition NcTreeMaker.h:47
Float_t fEq
! Variable for event data storage in output tree
Definition NcTreeMaker.h:87
Int_t fTrackIds
Definition NcTreeMaker.h:53
Float_t * fTq
! Array for track data storage in output tree
Definition NcTreeMaker.h:61
TObjArray * fUseDevices
Definition NcTreeMaker.h:90
Float_t fEe
! Variable for event data storage in output tree
Definition NcTreeMaker.h:86
Double_t fEsec
! Variable for event data storage in output tree
Definition NcTreeMaker.h:82
Int_t fTrackEnergies
Definition NcTreeMaker.h:48
Int_t fNtkmax
Definition NcTreeMaker.h:38
void Select(TString type, TString obs, TString uname="")
TObjArray * fTrackUnames
Definition NcTreeMaker.h:55
Int_t fDeviceNhits
Definition NcTreeMaker.h:92
Int_t fEventJruns
Definition NcTreeMaker.h:68
NcTreeMaker(const char *name="NcTreeMaker", const char *title="ROOT tree data generation")
NcEvent * fEvt
Definition NcTreeMaker.h:39
Int_t fEventMomenta
Definition NcTreeMaker.h:72
Int_t fDeviceNdevs
Definition NcTreeMaker.h:91
Double_t * fTsec
! Array for track data storage in output tree
Definition NcTreeMaker.h:64
Float_t * fTthetap
! Array for track data storage in output tree
Definition NcTreeMaker.h:58
Int_t fEjrun
! Variable for event data storage in output tree
Definition NcTreeMaker.h:78
Int_t fTrackCharges
Definition NcTreeMaker.h:49
Float_t * fEuser
! Variable for event data storage in output tree
Definition NcTreeMaker.h:89
Float_t * fTp
! Array for track data storage in output tree
Definition NcTreeMaker.h:57
Int_t fDnhit
! Variable for device data storage in output tree
Definition NcTreeMaker.h:94
virtual ~NcTreeMaker()
Int_t fEventflag
Definition NcTreeMaker.h:42
Float_t * fTm
! Array for track data storage in output tree
Definition NcTreeMaker.h:62
Double_t fEweight
! Variable for event data storage in output tree
Definition NcTreeMaker.h:80
Int_t fDeviceflag
Definition NcTreeMaker.h:43
virtual void Exec(Option_t *opt)
TObjArray * fTrees
Definition NcTreeMaker.h:37
Int_t fTn
! Number of tracks in the output tree storage array
Definition NcTreeMaker.h:56
Int_t fDndev
! Variable for device data storage in output tree
Definition NcTreeMaker.h:93
Int_t fEventWeights
Definition NcTreeMaker.h:76
Int_t fEventJevts
Definition NcTreeMaker.h:69
Int_t fTrackflag
Definition NcTreeMaker.h:41
TObjArray * fEventUnames
Definition NcTreeMaker.h:77
Float_t ** fTuser
! Matrix array for track data storage in output tree
Definition NcTreeMaker.h:67
void SetAstrolab(NcAstrolab *lab)
Float_t fEp
! Variable for event data storage in output tree
Definition NcTreeMaker.h:83
virtual TObject * Clone(const char *name="") const
NcAstrolab * GetAstrolab() const
TTree * fOuttree
Definition NcTreeMaker.h:36
Int_t * fTnsig
! Array for track data storage in output tree
Definition NcTreeMaker.h:66
Int_t fEventCharges
Definition NcTreeMaker.h:74
TArrayI * fUseNtk
Definition NcTreeMaker.h:45
Float_t * fTphip
! Array for track data storage in output tree
Definition NcTreeMaker.h:59
void SetTrackMaximum(Int_t n)
Int_t fTrackMjds
Definition NcTreeMaker.h:51
Double_t * fTmjd
! Array for track data storage in output tree
Definition NcTreeMaker.h:63
Int_t fEventMasses
Definition NcTreeMaker.h:75
TArrayI * fUseTkMode
Definition NcTreeMaker.h:46
Int_t fEventMjds
Definition NcTreeMaker.h:70
Int_t fEjevt
! Variable for event data storage in output tree
Definition NcTreeMaker.h:79
Int_t * fTid
! Array for track data storage in output tree
Definition NcTreeMaker.h:65
Double_t fEmjd
! Variable for event data storage in output tree
Definition NcTreeMaker.h:81
Float_t fEphip
! Variable for event data storage in output tree
Definition NcTreeMaker.h:85
void UseDevices(TString classname)
Int_t fTrackMasses
Definition NcTreeMaker.h:50
Int_t fTrackNsigs
Definition NcTreeMaker.h:54
Float_t * fTe
! Array for track data storage in output tree
Definition NcTreeMaker.h:60
Int_t fEventEnergies
Definition NcTreeMaker.h:73
TObjArray * fUseTracks
Definition NcTreeMaker.h:44
void SetOutputFile(TString fname, TString ftitle, TString tname="Data", TString ttitle="All event data")
Int_t fTrackSecs
Definition NcTreeMaker.h:52
void UseTracks(TString name, Int_t n=-1, Int_t mode=0)
Float_t fEthetap
! Variable for event data storage in output tree
Definition NcTreeMaker.h:84