/[PAMELA software]/PamelaLevel2/inc/PamLevel2.h
ViewVC logotype

Annotation of /PamelaLevel2/inc/PamLevel2.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations) (download)
Fri Sep 29 10:02:30 2006 UTC (18 years, 2 months ago) by pam-fi
Branch: MAIN
Changes since 1.3: +46 -15 lines
File MIME type: text/plain
Added RunInfo and TrkLevel1 - some bugs fixed

1 pam-fi 1.1
2    
3     /**
4     * \file PamLevel2.h
5     * \author Elena Vannuccini
6     */
7     #ifndef pamlevel2_h
8     #define pamlevel2_h
9    
10 pam-fi 1.2 #include <TRefArray.h>
11 pam-fi 1.1
12 pam-fi 1.4 #include <TrkLevel1.h>
13 pam-fi 1.1 #include <TrkLevel2.h>
14     #include <CaloLevel2.h>
15     #include <ToFLevel2.h>
16     #include <TrigLevel2.h>
17     #include <S4Level2.h>
18     #include <NDLevel2.h>
19     #include <AcLevel2.h>
20 pam-fi 1.2 #include <OrbitalInfo.h>
21 pam-fi 1.4 #include <OrbitalInfo.h>
22     #include <RunInfo.h>
23     #include <GLTables.h>
24    
25 pam-fi 1.1
26     #include <TTree.h>
27 pam-fi 1.2 #include <TChain.h>
28 pam-fi 1.1 #include <TFile.h>
29 pam-fi 1.2 #include <TList.h>
30     #include <TKey.h>
31     #include <TSystemFile.h>
32     #include <TSystemDirectory.h>
33 pam-fi 1.1
34     #include <iostream>
35     using namespace std;
36    
37     /**
38     * \brief Class to describe particle tracks in the apparatus, including tracker and track-related variables from other detectors (calorimeter and TOF).
39     *
40     * This class inherites from TrkTrack, CaloTrkVar ecc...
41     *
42     */
43     class PamTrack : public TrkTrack, public CaloTrkVar, public ToFTrkVar {
44    
45     private:
46    
47     TrkTrack* trk_track;
48     CaloTrkVar* calo_track;
49     ToFTrkVar* tof_track;
50    
51     public:
52    
53     PamTrack();
54    
55     PamTrack(TrkTrack* , CaloTrkVar* , ToFTrkVar* );
56    
57     ClassDef(PamTrack,1);
58     };
59    
60     /**
61     * \brief Class to describe PAMELA LEVEL2 data.
62     *
63     * This class inherites from TrkLevel2, CaloLevel2 ecc... and it overrides the TrkLevel2:GetTrack(int it) and TrkLevel2:GetTrackImage(int it) methods.
64     * This allows to solve the tracker ambiguity (that is, to choose between track images) by using also information from other detectors.
65     */
66    
67 pam-fi 1.4 class PamLevel2 : public CaloLevel2, public TrkLevel2, public TrkLevel1, public ToFLevel2, public TrigLevel2, public S4Level2, public NDLevel2, public AcLevel2, public OrbitalInfo {
68 pam-fi 1.1
69     private:
70    
71 pam-fi 1.4 TrkLevel1* trk_l1_obj;
72     TrkLevel2* trk_obj;
73     CaloLevel2* calo_obj;
74 pam-fi 1.2 ToFLevel2* tof_obj;
75     TrigLevel2* trig_obj;
76     S4Level2* s4_obj;
77     NDLevel2* nd_obj;
78     AcLevel2* ac_obj;
79     OrbitalInfo* orb_obj;
80 pam-fi 1.4
81     GL_RUN* run_obj;
82 pam-fi 1.1
83 pam-fi 1.4 TRefArray* sorted_tracks; // TEMPORANEO ... lo mettero` membro di TrkLevel2
84    
85     TChain* Tout;
86 pam-fi 1.2
87 pam-fi 1.1 public:
88    
89 pam-fi 1.2 Bool_t CAL;
90     Bool_t TRK;
91     Bool_t TRG;
92     Bool_t TOF;
93     Bool_t S4;
94     Bool_t ND;
95     Bool_t AC;
96     Bool_t ORB;
97 pam-fi 1.4
98     Bool_t TRK_L1;
99 pam-fi 1.2
100 pam-fi 1.1 PamLevel2();
101 pam-fi 1.2 ~PamLevel2();
102    
103     void Clear();
104    
105 pam-fi 1.4 TrkLevel1* GetTrkLevel1() { return trk_l1_obj; };
106     TrkLevel2* GetTrkLevel2() { return trk_obj; };
107     CaloLevel2* GetCaloLevel2() { return calo_obj; };
108 pam-fi 1.2 ToFLevel2* GetToFLevel2() { return tof_obj; };
109     TrigLevel2* GetTrigLevel2() { return trig_obj; };
110     S4Level2* GetS4Level2() { return s4_obj; };
111     NDLevel2* GetNDLevel2() { return nd_obj; };
112     AcLevel2* GetAcLevel2() { return ac_obj; };
113     OrbitalInfo* GetOrbitalInfo(){ return orb_obj; };
114 pam-fi 1.4 GL_RUN* GetRunInfo() { return run_obj; };
115    
116 pam-fi 1.2 // =====================================
117     // methods needed to read Level2 trees
118     // =====================================
119     void SetWhichTrees(TString);
120     TList* GetListOfLevel2Files(TString, TString);
121     Bool_t CheckLevel2File(TString);
122 pam-fi 1.4 /* TTree* LoadPamTrees(TFile*);
123 pam-fi 1.2 TTree* LoadPamTrees(TFile*,TString);
124     TChain* LoadPamTrees(TList*,TString);
125 pam-fi 1.4 TTree* LoadRunTree(TFile*);
126     TChain* LoadRunTree(TList*);*/
127     void SetBranchAddress();
128     TTree* GetPamTree(TFile*,TString);
129     TTree* GetPamTree(TFile* f){return GetPamTree(f,"+ALL");};
130     TChain* GetPamTree(TList*,TString);
131     TTree* GetRunTree(TFile*);
132     TChain* GetRunTree(TList*);
133 pam-fi 1.1
134 pam-fi 1.2 // =====================================
135     // methods needed to set brach addresses
136     // =====================================
137     void* GetPointerToTrk() {return &trk_obj;};
138 pam-fi 1.4 void* GetPointerToTrk(int s){
139     switch (s) {
140     case 1: return &trk_l1_obj;
141     case 2: return &trk_obj;
142     default: return 0;
143     };
144     };
145     void* GetPointerToCalo() {return &calo_obj; };
146     void* GetPointerToToF() {return &tof_obj; };
147     void* GetPointerToTrig() {return &trig_obj; };
148     void* GetPointerToS4() {return &s4_obj; };
149     void* GetPointerToND() {return &nd_obj; };
150     void* GetPointerToAc() {return &ac_obj; };
151     void* GetPointerToOrb() {return &orb_obj; };
152     void* GetPointerToRun() {return &run_obj; };
153     void* GetPointerTo(const char*);
154 pam-fi 1.3
155     // ==============================================
156     // methods to retrieve subdetectors stored tracks
157     // ==============================================
158     TrkTrack* GetTrkStoredTrack(int seqno){return TrkLevel2::GetStoredTrack(seqno); };
159     CaloTrkVar* GetCaloStoredTrack(int);
160     ToFTrkVar* GetToFStoredTrack(int);
161     //
162     PamTrack* GetPamTrackAlong(TrkTrack*);
163     // PamTrack* GetPamTrackAlong(CaloTrkVar*); //se serve
164     // PamTrack* GetPamTrackAlong(ToFTrkVar*); //se serve
165    
166 pam-fi 1.1 // =================================
167     // methods to retrieve pamela tracks
168     // =================================
169 pam-fi 1.3 PamTrack* GetStoredTrack(Int_t);
170     //
171     void SortTracks(TString); //assign value to variable sorted_tracks
172 pam-fi 1.2 TRefArray* GetTracks(); //return sorted_tracks
173     PamTrack* GetTrack(int);
174 pam-fi 1.1 PamTrack* GetTrackImage(int);
175 pam-fi 1.2
176 pam-fi 1.1 ClassDef(PamLevel2,1);
177     };
178    
179     //===============================================================================================
180     //
181     //
182     //
183     //
184     //===============================================================================================
185    
186    
187     #endif
188    

  ViewVC Help
Powered by ViewVC 1.1.23