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

Annotation of /PamelaLevel2/inc/PamLevel2.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.42 - (hide annotations) (download)
Tue May 11 03:57:46 2010 UTC (14 years, 6 months ago) by mocchiut
Branch: MAIN
Changes since 1.41: +5 -0 lines
File MIME type: text/plain
Skip DB connections - no RunInfo update added

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.13 #include <TrkStruct.h>
13     #include <TrkParams.h>
14     #include <TrkLevel0.h>
15 pam-fi 1.4 #include <TrkLevel1.h>
16 pam-fi 1.1 #include <TrkLevel2.h>
17 pam-fi 1.6 #include <TrkHough.h>
18 mocchiut 1.16 #include <CaloLevel0.h>
19 pam-fi 1.6 #include <CaloLevel1.h>
20 pam-fi 1.1 #include <CaloLevel2.h>
21     #include <ToFLevel2.h>
22     #include <TrigLevel2.h>
23     #include <S4Level2.h>
24     #include <NDLevel2.h>
25     #include <AcLevel2.h>
26 pam-fi 1.2 #include <OrbitalInfo.h>
27 pam-fi 1.41 #include <InclinationInfo.h> // EMILIANO, now this library is included in libDarthVader.so
28     // and the header installed in $PAM_INC. If you get the
29 mocchiut 1.35 // error "Cannot find InclinationInfo.h" update your DV installation
30 pam-fi 1.41 #include <OrientationInfo.h> // EMILIANO, now this library is included in libDarthVader.so
31     // and the header installed in $PAM_INC. If you get the
32 mocchiut 1.36 // error "Cannot find InclinationInfo.h" update your DV installation
33 pam-fi 1.4 #include <RunInfo.h>
34     #include <GLTables.h>
35    
36 pam-fi 1.1
37     #include <TTree.h>
38 pam-fi 1.7 #include <TFriendElement.h>
39 pam-fi 1.2 #include <TChain.h>
40 pam-fi 1.26 #include <TChainElement.h>
41 pam-fi 1.1 #include <TFile.h>
42 pam-fi 1.2 #include <TList.h>
43     #include <TKey.h>
44     #include <TSystemFile.h>
45     #include <TSystemDirectory.h>
46 pam-fi 1.13 #include <TSQLServer.h>
47 pam-fi 1.1
48 pam-fi 1.26 #include <stdlib.h>
49 pam-fi 1.1 #include <iostream>
50 pam-fi 1.26 #include <iomanip>
51     using namespace std;
52 pam-fi 1.13
53     #define NCLONES 10
54    
55 pam-fi 1.1 using namespace std;
56    
57 pam-fi 1.30
58     /////////////////////////////////////////////////////////////////////////////
59     /////////////////////////////////////////////////////////////////////////////
60     /////////////////////////////////////////////////////////////////////////////
61     /////////////////////////////////////////////////////////////////////////////
62     /**
63     * \brief Class to describe GP output (to be moved to PamelaDigitizer)
64 pam-fi 1.41 *
65 pam-fi 1.30 */
66    
67     class GPamela : public TObject {
68    
69     private:
70    
71     public:
72    
73     // Declaration of leave types
74     Int_t Irun;
75     Int_t Ievnt;
76     Int_t Ipa;
77     Float_t X0;
78     Float_t Y0;
79     Float_t Z0;
80     Float_t Theta;
81     Float_t Phi;
82     Float_t P0;
83     Int_t Nthtof;
84     UChar_t Ipltof[100]; //[Nthtof]
85     UChar_t Ipaddle[100]; //[Nthtof]
86     UChar_t Ipartof[100]; //[Nthtof]
87     Float_t Xintof[100]; //[Nthtof]
88     Float_t Yintof[100]; //[Nthtof]
89     Float_t Zintof[100]; //[Nthtof]
90     Float_t Xouttof[100]; //[Nthtof]
91     Float_t Youttof[100]; //[Nthtof]
92     Float_t Zouttof[100]; //[Nthtof]
93     Float_t Ereltof[100]; //[Nthtof]
94     Float_t Timetof[100]; //[Nthtof]
95     Float_t Pathtof[100]; //[Nthtof]
96     Float_t P0tof[100]; //[Nthtof]
97     Int_t Nthcat;
98     UChar_t Iparcat[50]; //[Nthcat]
99     UChar_t Icat[50]; //[Nthcat]
100     Float_t Xincat[50]; //[Nthcat]
101     Float_t Yincat[50]; //[Nthcat]
102     Float_t Zincat[50]; //[Nthcat]
103     Float_t Xoutcat[50]; //[Nthcat]
104     Float_t Youtcat[50]; //[Nthcat]
105     Float_t Zoutcat[50]; //[Nthcat]
106     Float_t Erelcat[50]; //[Nthcat]
107     Float_t Timecat[50]; //[Nthcat]
108     Float_t Pathcat[50]; //[Nthcat]
109     Float_t P0cat[50]; //[Nthcat]
110     Int_t Nthcas;
111     UChar_t Iparcas[50]; //[Nthcas]
112     UChar_t Icas[50]; //[Nthcas]
113     Float_t Xincas[50]; //[Nthcas]
114     Float_t Yincas[50]; //[Nthcas]
115     Float_t Zincas[50]; //[Nthcas]
116     Float_t Xoutcas[50]; //[Nthcas]
117     Float_t Youtcas[50]; //[Nthcas]
118     Float_t Zoutcas[50]; //[Nthcas]
119     Float_t Erelcas[50]; //[Nthcas]
120     Float_t Timecas[50]; //[Nthcas]
121     Float_t Pathcas[50]; //[Nthcas]
122     Float_t P0cas[50]; //[Nthcas]
123     Int_t Nthspe;
124     UChar_t Iparspe[100]; //[Nthspe]
125     UChar_t Itrpb[100]; //[Nthspe]
126     UChar_t Itrsl[100]; //[Nthspe]
127     UChar_t Itspa[100]; //[Nthspe]
128     Float_t Xinspe[100]; //[Nthspe]
129     Float_t Yinspe[100]; //[Nthspe]
130     Float_t Zinspe[100]; //[Nthspe]
131     Float_t Xoutspe[100]; //[Nthspe]
132     Float_t Youtspe[100]; //[Nthspe]
133     Float_t Zoutspe[100]; //[Nthspe]
134     Float_t Xavspe[100]; //[Nthspe]
135     Float_t Yavspe[100]; //[Nthspe]
136     Float_t Zavspe[100]; //[Nthspe]
137     Float_t Erelspe[100]; //[Nthspe]
138     Float_t Pathspe[100]; //[Nthspe]
139     Float_t P0spe[100]; //[Nthspe]
140     UChar_t Nxmult[100]; //[Nthspe]
141     UChar_t Nymult[100]; //[Nthspe]
142     Int_t Nstrpx;
143     UChar_t Npstripx[1000]; //[Nstrpx]
144     UChar_t Ntstripx[1000]; //[Nstrpx]
145     UShort_t Istripx[1000]; //[Nstrpx]
146     //UInt_t Istripx[1000]; //[Nstrpx]
147     Float_t Qstripx[1000]; //[Nstrpx]
148     Float_t Xstripx[1000]; //[Nstrpx]
149     Int_t Nstrpy;
150     UChar_t Npstripy[1000]; //[Nstrpy]
151     UChar_t Ntstripy[1000]; //[Nstrpy]
152     UShort_t Istripy[1000]; //[Nstrpy]
153     //UInt_t Istripy[1000]; //[Nstrpy]
154     Float_t Qstripy[1000]; //[Nstrpy]
155     Float_t Ystripy[1000]; //[Nstrpy]
156     Int_t Nthcali;
157     UChar_t Icaplane[4224]; //[Nthcali]
158     UChar_t Icastrip[4224]; //[Nthcali]
159     Int_t Icamod[4224]; //[Nthcali]
160     Float_t Enestrip[4224]; //[Nthcali]
161     Int_t Nthcal;
162     UChar_t Icapl[1000]; //[Nthcal]
163     UChar_t Icasi[1000]; //[Nthcal]
164     UChar_t Icast[1000]; //[Nthcal]
165     Float_t Xincal[1000]; //[Nthcal]
166     Float_t Yincal[1000]; //[Nthcal]
167     Float_t Zincal[1000]; //[Nthcal]
168     Float_t Erelcal[1000]; //[Nthcal]
169     Int_t Nthnd;
170     UChar_t Itubend[200]; //[Nthnd]
171     UChar_t Iparnd[200]; //[Nthnd]
172     Float_t Xinnd[200]; //[Nthnd]
173     Float_t Yinnd[200]; //[Nthnd]
174     Float_t Zinnd[200]; //[Nthnd]
175     Float_t Xoutnd[200]; //[Nthnd]
176     Float_t Youtnd[200]; //[Nthnd]
177     Float_t Zoutnd[200]; //[Nthnd]
178     Float_t Erelnd[200]; //[Nthnd]
179     Float_t Timend[200]; //[Nthnd]
180     Float_t Pathnd[200]; //[Nthnd]
181     Float_t P0nd[200]; //[Nthnd]
182     Int_t Nthcard;
183     UChar_t Iparcard[100]; //[Nthcard]
184     UChar_t Icard[100]; //[Nthcard]
185     Float_t Xincard[100]; //[Nthcard]
186     Float_t Yincard[100]; //[Nthcard]
187     Float_t Zincard[100]; //[Nthcard]
188     Float_t Xoutcard[100]; //[Nthcard]
189     Float_t Youtcard[100]; //[Nthcard]
190     Float_t Zoutcard[100]; //[Nthcard]
191     Float_t Erelcard[100]; //[Nthcard]
192     Float_t Timecard[100]; //[Nthcard]
193     Float_t Pathcard[100]; //[Nthcard]
194     Float_t P0card[100]; //[Nthcard]
195    
196     GPamela(){ Clear(); };
197     // ~GPamela(){ Delete(); };
198     ~GPamela(){ Clear(); };
199    
200     void Clear();
201     void Delete();
202     void SetBranchAddress( TChain* );
203     void SetBranchAddress( TTree* t){ SetBranchAddress( (TChain*)t );};
204    
205     GPamela* GetGPamela(){return this;};
206    
207     ClassDef(GPamela,1);
208    
209     };
210     /////////////////////////////////////////////////////////////////////////////
211     /////////////////////////////////////////////////////////////////////////////
212     /////////////////////////////////////////////////////////////////////////////
213     /////////////////////////////////////////////////////////////////////////////
214    
215    
216    
217 pam-fi 1.1 /**
218     * \brief Class to describe particle tracks in the apparatus, including tracker and track-related variables from other detectors (calorimeter and TOF).
219     *
220 pam-fi 1.41 * This class inherites from TrkTrack, CaloTrkVar ecc...
221     *
222 pam-fi 1.1 */
223 pam-fi 1.10 //class PamTrack : public TrkTrack, public CaloTrkVar, public ToFTrkVar {
224     class PamTrack : public TObject {
225 pam-fi 1.1
226     private:
227    
228     TrkTrack* trk_track;
229     CaloTrkVar* calo_track;
230     ToFTrkVar* tof_track;
231 mocchiut 1.36 OrbitalInfoTrkVar* orb_track;
232 mocchiut 1.27 Int_t pscore;
233     Int_t iscore;
234 pam-fi 1.10 bool candeleteobj;
235    
236     // TClonesArray *Cluster; ///< clusters (if stored)
237    
238 pam-fi 1.1 public:
239    
240     PamTrack();
241 mocchiut 1.36 PamTrack(TrkTrack* , CaloTrkVar* , ToFTrkVar*, OrbitalInfoTrkVar* );
242 pam-fi 1.10 PamTrack(const PamTrack&);
243     ~PamTrack(){ Delete(); };
244 pam-fi 1.1
245 pam-fi 1.10 void Clear();
246     void Clear(Option_t *option){Clear();};
247     void Delete();
248 pam-fi 1.1
249 mocchiut 1.27 Bool_t IsSolved(){if ((pscore-iscore)>0) return true; return false;};
250     Int_t GetScore(){return (pscore-iscore);};
251     Int_t GetPScore(){return (pscore);};
252     Int_t GetIScore(){return (iscore);};
253     void SetPScore(Int_t p){pscore=p;};
254     void SetIScore(Int_t i){iscore=i;};
255    
256 pam-fi 1.10 TrkTrack* GetTrkTrack(){return trk_track;};
257 pam-fi 1.8 CaloTrkVar* GetCaloTrack(){return calo_track;};
258 pam-fi 1.10 ToFTrkVar* GetToFTrack(){return tof_track;};
259 mocchiut 1.36 OrbitalInfoTrkVar* GetOrbitalInfoTrack(){return orb_track;};
260 pam-fi 1.8
261 mocchiut 1.36 ClassDef(PamTrack,2);
262 pam-fi 1.1 };
263    
264     /**
265     * \brief Class to describe PAMELA LEVEL2 data.
266     *
267 pam-fi 1.41 * This class inherites from TrkLevel2, CaloLevel2 ecc... and it overrides the TrkLevel2:GetTrack(int it) and TrkLevel2:GetTrackImage(int it) methods.
268 pam-fi 1.1 * This allows to solve the tracker ambiguity (that is, to choose between track images) by using also information from other detectors.
269     */
270 pam-fi 1.41
271 pam-fi 1.10 //class PamLevel2 : public CaloLevel2, public CaloLevel1, public ToFLevel2, public TrkLevel2, public TrkLevel1, public TrkHough, public TrigLevel2, public S4Level2, public NDLevel2, public AcLevel2, public OrbitalInfo {
272     class PamLevel2 : public TObject {
273 pam-fi 1.1
274     private:
275    
276 pam-fi 1.13 // ------------------------------
277     // variables to retrieve run info
278     // ------------------------------
279 pam-fi 1.17 Long64_t irun; //current run entry, relative to the TChain
280 pam-fi 1.31 Long64_t irunt; //current run entry, relative to the TTree in the TChain
281 pam-fi 1.17 Long64_t runfirstentry; //first entry of run, relative to the TChain
282     Long64_t runlastentry; //last entry of run, relative to the TChain
283     Long64_t irunentry; //position of current entry, relative to the run
284 pam-fi 1.13 TChain* run_tree;
285     TTree* run_tree_clone;
286     TChain* sel_tree;
287     TTree* sel_tree_clone;
288 pam-fi 1.32 int *irunoffset;
289 mocchiut 1.40 GL_TIMESYNC *gltsync; // Emiliano
290 mocchiut 1.42 Bool_t fUpdateRunInfo; // Emiliano
291 pam-fi 1.26
292     // -------------------------------------------
293     // variables to store total live and dead time
294     // -------------------------------------------
295 pam-fi 1.41 ULong64_t totdltime[3];// 0=live 1=dead 2=n.events
296 pam-fi 1.26
297 pam-fi 1.13 // ---------------------------------
298     // variables to retrieve level0 info
299     // ---------------------------------
300     TFile* l0_file;
301     TTree* l0_tree;
302 pam-fi 1.41 Int_t iroot;
303 mocchiut 1.16 Int_t prevshift; // to remember if any shift is needed to synchronize l0 and l2 data instead of calculating any time
304 pam-fi 1.41 Int_t maxshift; // EMILIANO maximum discrepancy between L2 and L0 data (the bigger the better concering synch but the processing speed drops) default = 10
305 pam-fi 1.13 // --------------------------------------------
306     // variables to store Level0 info (if required)
307     // --------------------------------------------
308     EventHeader* h0_obj;
309     TrkLevel0* trk0_obj;
310 pam-fi 1.17 CaloLevel0* calo0_obj;
311 pam-fi 1.13
312     // ---------------------------
313     // variables to connect the DB
314     // ---------------------------
315     TSQLServer* dbc;
316     TString host;
317     TString user;
318     TString psw;
319    
320     // ---------------------------------------------
321     // variables to retrieve and clone level1-2 info
322     // ---------------------------------------------
323     TChain* pam_tree;
324     TTree* pam_tree_clone[NCLONES];
325 mocchiut 1.18
326 pam-fi 1.13 // --------------------------------------------
327 pam-fi 1.41 // variables to store Level1-2 info
328 pam-fi 1.13 // --------------------------------------------
329 pam-fi 1.6 TrkLevel1* trk1_obj;
330     TrkLevel2* trk2_obj;
331     TrkHough* trkh_obj;
332     CaloLevel1* calo1_obj;
333     CaloLevel2* calo2_obj;
334 pam-fi 1.2 ToFLevel2* tof_obj;
335     TrigLevel2* trig_obj;
336     S4Level2* s4_obj;
337     NDLevel2* nd_obj;
338     AcLevel2* ac_obj;
339 pam-fi 1.6 OrbitalInfo* orb_obj;
340     GL_RUN* run_obj;
341 mocchiut 1.11 SoftInfo* soft_obj; // Emiliano
342 pam-fi 1.10
343 pam-fi 1.30 // --------------------------------------------
344     // variables to handle GP
345     // --------------------------------------------
346     GPamela* gp_obj;
347    
348 pam-fi 1.13 // -----------------------------------
349     // variables to sort the track
350     // -----------------------------------
351 pam-fi 1.10 TClonesArray *tsorted;
352     TClonesArray *timage;
353 pam-fi 1.41 PamTrack *track; //store the last required
354 mocchiut 1.20 TString howtosort;
355     Float_t sortthr;
356 pam-fi 1.7
357 pam-fi 1.41 Bool_t issorted; // true if the current event has already been sorted with the current sort criteria
358     Long64_t lastsorted; // the last event whose tracks has been sorted
359 pam-fi 1.30 // --------------------------------------
360     // flags to load level0-1-2 trees/braches
361     // --------------------------------------
362 pam-fi 1.6 Bool_t CAL2; //level2 branch
363     Bool_t CAL1; //level1 branch
364 pam-fi 1.13 Bool_t CAL0; //yoda
365 pam-fi 1.6
366     Bool_t TRK2; //level2 branch
367     Bool_t TRK1; //level1 branch
368     Bool_t TRKh; //hough branch
369 pam-fi 1.13 Bool_t TRK0; //yoda
370    
371     Bool_t TOF;
372     Bool_t TOF0;
373 pam-fi 1.6
374     Bool_t TRG;
375     Bool_t S4;
376     Bool_t ND;
377     Bool_t AC;
378     Bool_t ORB;
379 pam-fi 1.9
380 pam-fi 1.30 Bool_t GP; //GP simulation tree
381 pam-fi 1.25
382 pam-fi 1.30 // -----------
383     // other flags
384     // -----------
385     Bool_t RUN; // RunInfo tree
386     Bool_t ISGP; // GP simulation (...sort of patch, to skip OBT check, since OrbitalInfo is sometime missing)
387     Int_t SELLI; // tree of selected events (there is a selection list)
388 pam-fi 1.13
389 pam-fi 1.34 Bool_t DBG;
390    
391 mocchiut 1.18 void Initialize();
392    
393 pam-fi 1.13
394     public:
395 pam-fi 1.41
396 mocchiut 1.39 PamLevel2(TString ddir,TList *list,TString detlist);
397 mocchiut 1.18 PamLevel2(TString ddir,TString list,TString detlist);
398     PamLevel2(TString ddir,TString list);
399 pam-fi 1.1 PamLevel2();
400 pam-fi 1.10 ~PamLevel2(){Delete();};
401 pam-fi 1.41
402 pam-fi 1.6 void Clear();
403 mocchiut 1.18 void Reset();
404 pam-fi 1.10 void Delete();
405 pam-fi 1.2
406 pam-fi 1.41
407 pam-fi 1.13 // =============================================
408     // methods needed to read/write Level0-1-2 trees
409     // =============================================
410 pam-fi 1.6 void SetWhichTrees(TString);
411 pam-fi 1.8 void GetWhichTrees(TFile*);
412    
413     TTree* GetPamTree(TFile*,TString);
414 pam-fi 1.41 TTree* GetPamTree(TFile* f){return GetPamTree(f,"");};
415 pam-fi 1.8
416 pam-fi 1.6 TList* GetListOfLevel2Files(TString, TString);
417     Bool_t CheckLevel2File(TString);
418     TChain* GetPamTree(TList*,TString);
419 pam-fi 1.8 TChain* GetPamTree(TString ddir,TString list,TString detlist){ return GetPamTree(GetListOfLevel2Files(ddir,list),detlist); };
420     TChain* GetPamTree(TString ddir,TString list){ return GetPamTree(GetListOfLevel2Files(ddir,list),""); };
421 pam-fi 1.26 TChain* AddFriend(TString);
422 pam-fi 1.8
423 pam-fi 1.6 TTree* GetRunTree(TFile*);
424     TChain* GetRunTree(TList*);
425 mocchiut 1.12 TChain* GetRunTree(TString ddir,TString list){ return GetRunTree(GetListOfLevel2Files(ddir,list)); };
426 pam-fi 1.28 Bool_t UpdateRunInfo(Long64_t);//{ return UpdateRunInfo(run_tree,iev); };
427 pam-fi 1.17 Bool_t UpdateRunInfo(TTree *,Long64_t);
428     Bool_t UpdateRunInfo(TChain *,Long64_t);
429 pam-fi 1.7
430 mocchiut 1.42 void SkipRunInfoUpdate(){fUpdateRunInfo = false;}; // Emiliano
431     void DoRunInfoUpdate(){fUpdateRunInfo = true;}; // [default] Emiliano
432     void NoDBconnections(){SkipRunInfoUpdate();}; // Emiliano
433    
434 pam-fi 1.8 void CreateCloneTrees0(TChain *fChain, TFile* file);
435     void CreateCloneTrees(TFile* file);
436 pam-fi 1.23 void CreateCloneTrees(){CreateCloneTrees(NULL);};
437 pam-fi 1.7 void FillCloneTrees();
438     TTree *GetCloneTree(TString);
439     void WriteCloneTrees();
440    
441 pam-fi 1.6 void SetBranchAddress(TTree *);
442     void SetBranchAddress(TChain *);
443    
444 pam-fi 1.17 // Int_t GetEntry(Int_t);
445     Int_t GetEntry(Long64_t);
446 pam-fi 1.41 Long64_t GetReadEntry();
447     Int_t GetYodaEntry();
448 mocchiut 1.21
449 mocchiut 1.29 void SetMaxShift(Int_t sh){ maxshift = sh; return;}; // EMILIANO method to change the maxshift variable
450 pam-fi 1.41
451 mocchiut 1.21 Long64_t GetEntries(){return pam_tree->GetEntries();};
452 pam-fi 1.13 TChain* GetPamTree(){return pam_tree;};
453     TChain* GetRunTree(){return run_tree;};
454     TTree* GetYodaTree();
455    
456 mocchiut 1.16 TFile* GetYodaFile(){return l0_file;}; // can be useful to know the name of level0 file we are using or similar things
457    
458 pam-fi 1.13 // =============
459     // DB connection
460     // =============
461     void SetDBHost(TString str){host=str;};
462     void SetDBUser(TString str){user=str;};
463     void SetDBPsw(TString str){psw=str;};
464 pam-fi 1.24 TSQLServer* GetSQLServer(){return dbc;};
465     Bool_t SetDBConnection();
466 pam-fi 1.13
467 pam-fi 1.10 // ========================================================
468     // methods needed to retrieve subdetector general variables
469     // ========================================================
470 pam-fi 1.6 void* GetPointerTo(const char*);
471 pam-fi 1.15 EventHeader *GetEventHeader() { return h0_obj; };
472 pam-fi 1.24
473     /* TrkLevel0 *GetTrkLevel0() { return trk0_obj; }; */
474     /* CaloLevel0 *GetCaloLevel0() { return calo0_obj; }; */
475     TrkLevel0 *GetTrkLevel0();
476     CaloLevel0 *GetCaloLevel0();
477    
478 pam-fi 1.13
479     TrkLevel1 *GetTrkLevel1() { return trk1_obj; };
480     TrkLevel2 *GetTrkLevel2() { return trk2_obj; };
481     TrkHough *GetTrkHough() { return trkh_obj; };
482 pam-fi 1.10 CaloLevel1 *GetCaloLevel1() { return calo1_obj;};
483     CaloLevel2 *GetCaloLevel2() { return calo2_obj;};
484 pam-fi 1.13 ToFLevel2 *GetToFLevel2() { return tof_obj; };
485     TrigLevel2 *GetTrigLevel2() { return trig_obj; };
486     S4Level2 *GetS4Level2() { return s4_obj; };
487     NDLevel2 *GetNDLevel2() { return nd_obj; };
488     AcLevel2 *GetAcLevel2() { return ac_obj; };
489     OrbitalInfo *GetOrbitalInfo(){ return orb_obj; };
490     GL_RUN *GetRunInfo() { return run_obj; };
491 mocchiut 1.11 SoftInfo *GetSoftInfo() { return soft_obj; }; // Emiliano
492 pam-fi 1.34 GPamela *GetGPamela() { return gp_obj; };
493 pam-fi 1.3
494     // ==============================================
495     // methods to retrieve subdetectors stored tracks
496     // ==============================================
497 pam-fi 1.10 TrkTrack* GetTrkStoredTrack(int seqno){return trk2_obj->TrkLevel2::GetStoredTrack(seqno); };
498 pam-fi 1.6 CaloTrkVar* GetCaloStoredTrack(int);
499     ToFTrkVar* GetToFStoredTrack(int);
500 mocchiut 1.36 OrbitalInfoTrkVar* GetOrbitalInfoStoredTrack(int);
501 pam-fi 1.6 //
502     PamTrack* GetPamTrackAlong(TrkTrack*);
503 pam-fi 1.3 // PamTrack* GetPamTrackAlong(CaloTrkVar*); //se serve
504     // PamTrack* GetPamTrackAlong(ToFTrkVar*); //se serve
505 pam-fi 1.41
506 pam-fi 1.1 // =================================
507     // methods to retrieve pamela tracks
508     // =================================
509 pam-fi 1.3 PamTrack* GetStoredTrack(Int_t);
510 pam-fi 1.6 //
511     void SortTracks(TString); //assign value to variable sorted_tracks
512 mocchiut 1.20 void SortTracks(); //assign value to variable sorted_tracks
513 pam-fi 1.10 // TRefArray* GetTracks(); //return sorted_tracks
514     TClonesArray* GetTracks(); //return sorted_tracks
515 pam-fi 1.6 PamTrack* GetTrack(int);
516 pam-fi 1.1 PamTrack* GetTrackImage(int);
517 pam-fi 1.41 void SetSortingMethod(TString how);
518 mocchiut 1.20 TString GetSortingMethod(){return howtosort;};
519     void SetNucleiSortingThreshold(Float_t nucleithr){ sortthr = nucleithr; return;};
520     Float_t GetNucleiSortingThreshold(){ return sortthr;};
521 pam-fi 1.41
522 pam-fi 1.6 // =================================
523     // other methods
524     // =================================
525 pam-fi 1.10 // Int_t ntrk(){ return trk2_obj->TrkLevel2::ntrk(); };
526 pam-fi 1.6
527 pam-fi 1.33
528     Long64_t GetRunID(){ return irun;};
529     Long64_t GetRunEntryID(){ return irunentry; };
530    
531 pamela 1.14 // -----
532     // flags methods
533     // -----
534     Bool_t IsCAL2(){return CAL2;}; //level2 branch
535     Bool_t IsCAL1(){return CAL1;}; //level1 branch
536     Bool_t IsCAL0(){return CAL0;}; //yoda
537    
538     Bool_t IsTRK2(){return TRK2;}; //level2 branch
539     Bool_t IsTRK1(){return TRK1;}; //level1 branch
540     Bool_t IsTRKh(){return TRKh;}; //hough branch
541     Bool_t IsTRK0(){return TRK0;}; //yoda
542    
543     Bool_t IsTOF(){return TOF;};
544     Bool_t IsTOF0(){return TOF0;};
545    
546     Bool_t IsTRG(){return TRG;};
547     Bool_t IsS4(){return S4;};
548     Bool_t IsND(){return ND;};
549     Bool_t IsAC(){return AC;};
550     Bool_t IsORB(){return ORB;};
551    
552     Bool_t IsRUN(){return RUN;};
553    
554 mocchiut 1.38 Bool_t IsGood(Bool_t strict=true);
555 mocchiut 1.22
556 pamela 1.14 Int_t IsSELLI(){return SELLI;}; //trees of selected events (there is a selection list)
557 pam-fi 1.41 void SetSELLI(Int_t selli){SELLI=selli;};
558 pam-fi 1.6
559 pam-fi 1.25 Bool_t IsGP(){return ISGP;};
560    
561     void SetGP(Bool_t tt){ISGP=tt;};
562    
563 pam-fi 1.37 void SetDebug(Bool_t set){ DBG=set; TrkParams::SetVerboseMode(); };
564 pam-fi 1.25
565 pam-fi 1.41
566 pam-fi 1.1 ClassDef(PamLevel2,1);
567     };
568    
569     //===============================================================================================
570     //
571     //
572     //
573     //
574     //===============================================================================================
575    
576    
577     #endif
578    

  ViewVC Help
Powered by ViewVC 1.1.23