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

Annotation of /PamelaLevel2/inc/PamLevel2.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations) (download)
Mon Aug 7 08:24:48 2006 UTC (18 years, 3 months ago) by pam-fi
Branch: MAIN
Changes since 1.2: +15 -3 lines
File MIME type: text/plain
improoved track image selection

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     #include <TrkLevel2.h>
13     #include <CaloLevel2.h>
14     #include <ToFLevel2.h>
15     #include <TrigLevel2.h>
16     #include <S4Level2.h>
17     #include <NDLevel2.h>
18     #include <AcLevel2.h>
19 pam-fi 1.2 #include <OrbitalInfo.h>
20 pam-fi 1.1
21     #include <TTree.h>
22 pam-fi 1.2 #include <TChain.h>
23 pam-fi 1.1 #include <TFile.h>
24 pam-fi 1.2 #include <TList.h>
25     #include <TKey.h>
26     #include <TSystemFile.h>
27     #include <TSystemDirectory.h>
28 pam-fi 1.1
29     #include <iostream>
30     using namespace std;
31    
32     /**
33     * \brief Class to describe particle tracks in the apparatus, including tracker and track-related variables from other detectors (calorimeter and TOF).
34     *
35     * This class inherites from TrkTrack, CaloTrkVar ecc...
36     *
37     */
38     class PamTrack : public TrkTrack, public CaloTrkVar, public ToFTrkVar {
39    
40     private:
41    
42     TrkTrack* trk_track;
43     CaloTrkVar* calo_track;
44     ToFTrkVar* tof_track;
45    
46     public:
47    
48     PamTrack();
49    
50     PamTrack(TrkTrack* , CaloTrkVar* , ToFTrkVar* );
51    
52     ClassDef(PamTrack,1);
53     };
54    
55     /**
56     * \brief Class to describe PAMELA LEVEL2 data.
57     *
58     * This class inherites from TrkLevel2, CaloLevel2 ecc... and it overrides the TrkLevel2:GetTrack(int it) and TrkLevel2:GetTrackImage(int it) methods.
59     * This allows to solve the tracker ambiguity (that is, to choose between track images) by using also information from other detectors.
60     */
61    
62 pam-fi 1.2 class PamLevel2 : public CaloLevel2, public TrkLevel2, public ToFLevel2, public TrigLevel2, public S4Level2, public NDLevel2, public AcLevel2, public OrbitalInfo {
63 pam-fi 1.1
64     private:
65    
66 pam-fi 1.2 TrkLevel2* trk_obj;
67     CaloLevel2* calo_obj;
68     ToFLevel2* tof_obj;
69     TrigLevel2* trig_obj;
70     S4Level2* s4_obj;
71     NDLevel2* nd_obj;
72     AcLevel2* ac_obj;
73     OrbitalInfo* orb_obj;
74 pam-fi 1.1
75 pam-fi 1.2 TRefArray* sorted_tracks; // TEMPORANEO ... lo mettero` menbro di TrkLevel2
76    
77 pam-fi 1.1 public:
78    
79 pam-fi 1.2 Bool_t CAL;
80     Bool_t TRK;
81     Bool_t TRG;
82     Bool_t TOF;
83     Bool_t S4;
84     Bool_t ND;
85     Bool_t AC;
86     Bool_t ORB;
87    
88 pam-fi 1.1 PamLevel2();
89 pam-fi 1.2 ~PamLevel2();
90    
91     void Clear();
92    
93     TrkLevel2* GetTrkLevel2() { return trk_obj; };
94     CaloLevel2* GetCaloLevel2() { return calo_obj; };
95     ToFLevel2* GetToFLevel2() { return tof_obj; };
96     TrigLevel2* GetTrigLevel2() { return trig_obj; };
97     S4Level2* GetS4Level2() { return s4_obj; };
98     NDLevel2* GetNDLevel2() { return nd_obj; };
99     AcLevel2* GetAcLevel2() { return ac_obj; };
100     OrbitalInfo* GetOrbitalInfo(){ return orb_obj; };
101    
102     // =====================================
103     // methods needed to read Level2 trees
104     // =====================================
105     void SetWhichTrees(TString);
106     TList* GetListOfLevel2Files(TString, TString);
107     Bool_t CheckLevel2File(TString);
108     TTree* LoadPamTrees(TFile*);
109     TTree* LoadPamTrees(TFile*,TString);
110     TChain* LoadPamTrees(TList*,TString);
111 pam-fi 1.1
112 pam-fi 1.2 // =====================================
113     // methods needed to set brach addresses
114     // =====================================
115     void* GetPointerToTrk() {return &trk_obj;};
116     void* GetPointerToCalo() {return &calo_obj;};
117     void* GetPointerToToF() {return &tof_obj;};
118     void* GetPointerToTrig() {return &trig_obj;};
119     void* GetPointerToS4() {return &s4_obj;};
120     void* GetPointerToND() {return &nd_obj;};
121     void* GetPointerToAc() {return &ac_obj;};
122     void* GetPointerToOrb() {return &orb_obj;};
123 pam-fi 1.3
124     // ==============================================
125     // methods to retrieve subdetectors stored tracks
126     // ==============================================
127     TrkTrack* GetTrkStoredTrack(int seqno){return TrkLevel2::GetStoredTrack(seqno); };
128     CaloTrkVar* GetCaloStoredTrack(int);
129     ToFTrkVar* GetToFStoredTrack(int);
130     //
131     PamTrack* GetPamTrackAlong(TrkTrack*);
132     // PamTrack* GetPamTrackAlong(CaloTrkVar*); //se serve
133     // PamTrack* GetPamTrackAlong(ToFTrkVar*); //se serve
134    
135 pam-fi 1.1 // =================================
136     // methods to retrieve pamela tracks
137     // =================================
138 pam-fi 1.3 PamTrack* GetStoredTrack(Int_t);
139     //
140     void SortTracks(TString); //assign value to variable sorted_tracks
141 pam-fi 1.2 TRefArray* GetTracks(); //return sorted_tracks
142     PamTrack* GetTrack(int);
143 pam-fi 1.1 PamTrack* GetTrackImage(int);
144 pam-fi 1.2
145 pam-fi 1.1 ClassDef(PamLevel2,1);
146     };
147    
148     //===============================================================================================
149     //
150     //
151     //
152     //
153     //===============================================================================================
154    
155    
156     #endif
157    

  ViewVC Help
Powered by ViewVC 1.1.23