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

Annotation of /PamelaLevel2/inc/PamLevel2.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.54 - (hide annotations) (download)
Tue Mar 24 09:15:00 2015 UTC (9 years, 8 months ago) by pam-fi
Branch: MAIN
CVS Tags: HEAD
Changes since 1.53: +6 -3 lines
File MIME type: text/plain
CVSk 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.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 pam-ts 1.48 #include <ExtTrack.h>
36 pam-fi 1.4
37 pam-fi 1.1
38     #include <TTree.h>
39 pam-fi 1.7 #include <TFriendElement.h>
40 pam-fi 1.2 #include <TChain.h>
41 pam-fi 1.26 #include <TChainElement.h>
42 pam-fi 1.1 #include <TFile.h>
43 mocchiut 1.52 #include <TTimeStamp.h>
44 pam-fi 1.2 #include <TList.h>
45     #include <TKey.h>
46     #include <TSystemFile.h>
47     #include <TSystemDirectory.h>
48 pam-fi 1.13 #include <TSQLServer.h>
49 pam-fi 1.1
50 pam-fi 1.26 #include <stdlib.h>
51 pam-fi 1.1 #include <iostream>
52 pam-fi 1.26 #include <iomanip>
53     using namespace std;
54 pam-fi 1.13
55     #define NCLONES 10
56    
57 pam-fi 1.1 using namespace std;
58    
59 pam-fi 1.30
60     /////////////////////////////////////////////////////////////////////////////
61     /////////////////////////////////////////////////////////////////////////////
62     /////////////////////////////////////////////////////////////////////////////
63     /////////////////////////////////////////////////////////////////////////////
64     /**
65     * \brief Class to describe GP output (to be moved to PamelaDigitizer)
66 pam-fi 1.41 *
67 pam-fi 1.30 */
68    
69     class GPamela : public TObject {
70    
71     private:
72    
73     public:
74    
75     // Declaration of leave types
76     Int_t Irun;
77     Int_t Ievnt;
78     Int_t Ipa;
79     Float_t X0;
80     Float_t Y0;
81     Float_t Z0;
82     Float_t Theta;
83     Float_t Phi;
84     Float_t P0;
85     Int_t Nthtof;
86     UChar_t Ipltof[100]; //[Nthtof]
87     UChar_t Ipaddle[100]; //[Nthtof]
88     UChar_t Ipartof[100]; //[Nthtof]
89     Float_t Xintof[100]; //[Nthtof]
90     Float_t Yintof[100]; //[Nthtof]
91     Float_t Zintof[100]; //[Nthtof]
92     Float_t Xouttof[100]; //[Nthtof]
93     Float_t Youttof[100]; //[Nthtof]
94     Float_t Zouttof[100]; //[Nthtof]
95     Float_t Ereltof[100]; //[Nthtof]
96     Float_t Timetof[100]; //[Nthtof]
97     Float_t Pathtof[100]; //[Nthtof]
98     Float_t P0tof[100]; //[Nthtof]
99     Int_t Nthcat;
100     UChar_t Iparcat[50]; //[Nthcat]
101     UChar_t Icat[50]; //[Nthcat]
102     Float_t Xincat[50]; //[Nthcat]
103     Float_t Yincat[50]; //[Nthcat]
104     Float_t Zincat[50]; //[Nthcat]
105     Float_t Xoutcat[50]; //[Nthcat]
106     Float_t Youtcat[50]; //[Nthcat]
107     Float_t Zoutcat[50]; //[Nthcat]
108     Float_t Erelcat[50]; //[Nthcat]
109     Float_t Timecat[50]; //[Nthcat]
110     Float_t Pathcat[50]; //[Nthcat]
111     Float_t P0cat[50]; //[Nthcat]
112     Int_t Nthcas;
113     UChar_t Iparcas[50]; //[Nthcas]
114     UChar_t Icas[50]; //[Nthcas]
115     Float_t Xincas[50]; //[Nthcas]
116     Float_t Yincas[50]; //[Nthcas]
117     Float_t Zincas[50]; //[Nthcas]
118     Float_t Xoutcas[50]; //[Nthcas]
119     Float_t Youtcas[50]; //[Nthcas]
120     Float_t Zoutcas[50]; //[Nthcas]
121     Float_t Erelcas[50]; //[Nthcas]
122     Float_t Timecas[50]; //[Nthcas]
123     Float_t Pathcas[50]; //[Nthcas]
124     Float_t P0cas[50]; //[Nthcas]
125     Int_t Nthspe;
126     UChar_t Iparspe[100]; //[Nthspe]
127     UChar_t Itrpb[100]; //[Nthspe]
128     UChar_t Itrsl[100]; //[Nthspe]
129     UChar_t Itspa[100]; //[Nthspe]
130     Float_t Xinspe[100]; //[Nthspe]
131     Float_t Yinspe[100]; //[Nthspe]
132     Float_t Zinspe[100]; //[Nthspe]
133     Float_t Xoutspe[100]; //[Nthspe]
134     Float_t Youtspe[100]; //[Nthspe]
135     Float_t Zoutspe[100]; //[Nthspe]
136     Float_t Xavspe[100]; //[Nthspe]
137     Float_t Yavspe[100]; //[Nthspe]
138     Float_t Zavspe[100]; //[Nthspe]
139     Float_t Erelspe[100]; //[Nthspe]
140     Float_t Pathspe[100]; //[Nthspe]
141     Float_t P0spe[100]; //[Nthspe]
142     UChar_t Nxmult[100]; //[Nthspe]
143     UChar_t Nymult[100]; //[Nthspe]
144     Int_t Nstrpx;
145     UChar_t Npstripx[1000]; //[Nstrpx]
146     UChar_t Ntstripx[1000]; //[Nstrpx]
147     UShort_t Istripx[1000]; //[Nstrpx]
148     //UInt_t Istripx[1000]; //[Nstrpx]
149     Float_t Qstripx[1000]; //[Nstrpx]
150     Float_t Xstripx[1000]; //[Nstrpx]
151     Int_t Nstrpy;
152     UChar_t Npstripy[1000]; //[Nstrpy]
153     UChar_t Ntstripy[1000]; //[Nstrpy]
154     UShort_t Istripy[1000]; //[Nstrpy]
155     //UInt_t Istripy[1000]; //[Nstrpy]
156     Float_t Qstripy[1000]; //[Nstrpy]
157     Float_t Ystripy[1000]; //[Nstrpy]
158     Int_t Nthcali;
159     UChar_t Icaplane[4224]; //[Nthcali]
160     UChar_t Icastrip[4224]; //[Nthcali]
161     Int_t Icamod[4224]; //[Nthcali]
162     Float_t Enestrip[4224]; //[Nthcali]
163     Int_t Nthcal;
164     UChar_t Icapl[1000]; //[Nthcal]
165     UChar_t Icasi[1000]; //[Nthcal]
166     UChar_t Icast[1000]; //[Nthcal]
167     Float_t Xincal[1000]; //[Nthcal]
168     Float_t Yincal[1000]; //[Nthcal]
169     Float_t Zincal[1000]; //[Nthcal]
170     Float_t Erelcal[1000]; //[Nthcal]
171     Int_t Nthnd;
172     UChar_t Itubend[200]; //[Nthnd]
173     UChar_t Iparnd[200]; //[Nthnd]
174     Float_t Xinnd[200]; //[Nthnd]
175     Float_t Yinnd[200]; //[Nthnd]
176     Float_t Zinnd[200]; //[Nthnd]
177     Float_t Xoutnd[200]; //[Nthnd]
178     Float_t Youtnd[200]; //[Nthnd]
179     Float_t Zoutnd[200]; //[Nthnd]
180     Float_t Erelnd[200]; //[Nthnd]
181     Float_t Timend[200]; //[Nthnd]
182     Float_t Pathnd[200]; //[Nthnd]
183     Float_t P0nd[200]; //[Nthnd]
184     Int_t Nthcard;
185     UChar_t Iparcard[100]; //[Nthcard]
186     UChar_t Icard[100]; //[Nthcard]
187     Float_t Xincard[100]; //[Nthcard]
188     Float_t Yincard[100]; //[Nthcard]
189     Float_t Zincard[100]; //[Nthcard]
190     Float_t Xoutcard[100]; //[Nthcard]
191     Float_t Youtcard[100]; //[Nthcard]
192     Float_t Zoutcard[100]; //[Nthcard]
193     Float_t Erelcard[100]; //[Nthcard]
194     Float_t Timecard[100]; //[Nthcard]
195     Float_t Pathcard[100]; //[Nthcard]
196     Float_t P0card[100]; //[Nthcard]
197    
198     GPamela(){ Clear(); };
199     // ~GPamela(){ Delete(); };
200     ~GPamela(){ Clear(); };
201    
202     void Clear();
203     void Delete();
204     void SetBranchAddress( TChain* );
205     void SetBranchAddress( TTree* t){ SetBranchAddress( (TChain*)t );};
206    
207     GPamela* GetGPamela(){return this;};
208    
209     ClassDef(GPamela,1);
210    
211     };
212     /////////////////////////////////////////////////////////////////////////////
213     /////////////////////////////////////////////////////////////////////////////
214     /////////////////////////////////////////////////////////////////////////////
215     /////////////////////////////////////////////////////////////////////////////
216    
217    
218    
219 pam-fi 1.1 /**
220     * \brief Class to describe particle tracks in the apparatus, including tracker and track-related variables from other detectors (calorimeter and TOF).
221     *
222 pam-fi 1.41 * This class inherites from TrkTrack, CaloTrkVar ecc...
223     *
224 pam-fi 1.1 */
225 pam-fi 1.10 //class PamTrack : public TrkTrack, public CaloTrkVar, public ToFTrkVar {
226     class PamTrack : public TObject {
227 pam-fi 1.1
228     private:
229    
230 pam-ts 1.48 ExtTrack* trk_ext_track;
231 pam-fi 1.1 TrkTrack* trk_track;
232     CaloTrkVar* calo_track;
233     ToFTrkVar* tof_track;
234 mocchiut 1.36 OrbitalInfoTrkVar* orb_track;
235 mocchiut 1.27 Int_t pscore;
236     Int_t iscore;
237 pam-fi 1.10 bool candeleteobj;
238    
239     // TClonesArray *Cluster; ///< clusters (if stored)
240    
241 pam-fi 1.1 public:
242    
243 pam-fi 1.54
244 pam-fi 1.1 PamTrack();
245 mocchiut 1.36 PamTrack(TrkTrack* , CaloTrkVar* , ToFTrkVar*, OrbitalInfoTrkVar* );
246 pam-ts 1.48 PamTrack(ExtTrack* , CaloTrkVar* , ToFTrkVar*, OrbitalInfoTrkVar* );
247 pam-fi 1.10 PamTrack(const PamTrack&);
248     ~PamTrack(){ Delete(); };
249 pam-fi 1.1
250 pam-fi 1.54 void Copy(PamTrack& ) const;
251    
252 pam-fi 1.50 void Clear(Option_t *option);
253     void Clear(){Clear("");};
254 pam-fi 1.10 void Delete();
255 pam-fi 1.1
256 mocchiut 1.27 Bool_t IsSolved(){if ((pscore-iscore)>0) return true; return false;};
257     Int_t GetScore(){return (pscore-iscore);};
258     Int_t GetPScore(){return (pscore);};
259     Int_t GetIScore(){return (iscore);};
260     void SetPScore(Int_t p){pscore=p;};
261     void SetIScore(Int_t i){iscore=i;};
262    
263 pam-ts 1.48 ExtTrack* GetExtTrack(){return trk_ext_track;};
264 pam-fi 1.10 TrkTrack* GetTrkTrack(){return trk_track;};
265 pam-fi 1.8 CaloTrkVar* GetCaloTrack(){return calo_track;};
266 pam-fi 1.10 ToFTrkVar* GetToFTrack(){return tof_track;};
267 mocchiut 1.36 OrbitalInfoTrkVar* GetOrbitalInfoTrack(){return orb_track;};
268 pam-fi 1.8
269 pam-ts 1.48 ClassDef(PamTrack,3);
270 pam-fi 1.1 };
271    
272     /**
273     * \brief Class to describe PAMELA LEVEL2 data.
274     *
275 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.
276 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.
277     */
278 pam-fi 1.41
279 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 {
280     class PamLevel2 : public TObject {
281 pam-fi 1.1
282     private:
283    
284 pam-fi 1.13 // ------------------------------
285     // variables to retrieve run info
286     // ------------------------------
287 pam-fi 1.17 Long64_t irun; //current run entry, relative to the TChain
288 pam-fi 1.31 Long64_t irunt; //current run entry, relative to the TTree in the TChain
289 pam-fi 1.17 Long64_t runfirstentry; //first entry of run, relative to the TChain
290     Long64_t runlastentry; //last entry of run, relative to the TChain
291     Long64_t irunentry; //position of current entry, relative to the run
292 mocchiut 1.44 Long64_t totrunentry;
293     Long64_t totrunentrymax;
294     Long64_t totrunentrymin;
295     ULong64_t prevabstime; // abs time of previous event
296     UInt_t prevpktnum; // packet number of previous event
297     ULong64_t abstime; // current abs time
298     UInt_t pktnum; // current packet number
299     Bool_t isFragment;
300 mocchiut 1.45 Bool_t isSync; ///< the file is fully sinchronized between L2 and L0/DB data
301 mocchiut 1.46 // Bool_t hasL0EE; ///< backward compatibility flag for preselected event list
302 mocchiut 1.45 Long64_t il0entry; ///< entry of level0 file in selection list
303 pam-fi 1.13 TChain* run_tree;
304     TTree* run_tree_clone;
305 mocchiut 1.52 TChain* proc_tree;
306     TTree* proc_tree_clone;
307 pam-fi 1.13 TChain* sel_tree;
308     TTree* sel_tree_clone;
309 pam-fi 1.32 int *irunoffset;
310 mocchiut 1.40 GL_TIMESYNC *gltsync; // Emiliano
311 mocchiut 1.42 Bool_t fUpdateRunInfo; // Emiliano
312 mocchiut 1.47 Bool_t fUseDBinRunInfo; // Emiliano
313 pam-fi 1.26
314 mocchiut 1.51 Bool_t fDiscarded; ///< true if any file from a list is missing
315 emocchiutti 1.53 TString customString; ///< String passed to ProcessingInfo
316 mocchiut 1.51
317 pam-fi 1.26 // -------------------------------------------
318     // variables to store total live and dead time
319     // -------------------------------------------
320 pam-fi 1.41 ULong64_t totdltime[3];// 0=live 1=dead 2=n.events
321 pam-fi 1.26
322 pam-fi 1.13 // ---------------------------------
323     // variables to retrieve level0 info
324     // ---------------------------------
325     TFile* l0_file;
326     TTree* l0_tree;
327 pam-fi 1.41 Int_t iroot;
328 mocchiut 1.45 Long64_t prevshift; // shift needed to sync level2 data with the DB (nested+DV_skipped packets) - global position in level2 file EM
329     Long64_t yprevshift; // shift needed to sync level2 data with level0 data (nested+DV_skipped packets) - run wise EM
330 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
331 pam-fi 1.13 // --------------------------------------------
332     // variables to store Level0 info (if required)
333     // --------------------------------------------
334     EventHeader* h0_obj;
335     TrkLevel0* trk0_obj;
336 pam-fi 1.17 CaloLevel0* calo0_obj;
337 pam-fi 1.13
338     // ---------------------------
339     // variables to connect the DB
340     // ---------------------------
341     TSQLServer* dbc;
342     TString host;
343     TString user;
344     TString psw;
345    
346     // ---------------------------------------------
347     // variables to retrieve and clone level1-2 info
348     // ---------------------------------------------
349     TChain* pam_tree;
350     TTree* pam_tree_clone[NCLONES];
351 mocchiut 1.18
352 pam-fi 1.13 // --------------------------------------------
353 pam-fi 1.41 // variables to store Level1-2 info
354 pam-fi 1.13 // --------------------------------------------
355 pam-fi 1.6 TrkLevel1* trk1_obj;
356     TrkLevel2* trk2_obj;
357     TrkHough* trkh_obj;
358     CaloLevel1* calo1_obj;
359     CaloLevel2* calo2_obj;
360 pam-ts 1.48 ToFLevel2* tof2_obj;
361 pam-fi 1.2 TrigLevel2* trig_obj;
362     S4Level2* s4_obj;
363     NDLevel2* nd_obj;
364     AcLevel2* ac_obj;
365 pam-ts 1.48 OrbitalInfo* orb2_obj;
366 pam-fi 1.6 GL_RUN* run_obj;
367 mocchiut 1.11 SoftInfo* soft_obj; // Emiliano
368 mocchiut 1.52 ProcInfo* proc_obj; //EM
369 pam-fi 1.10
370 pam-ts 1.48
371    
372     Int_t extAlgFlag;
373    
374     TClonesArray* trk_ext_obj;
375     TClonesArray* trk_ext_nuc_obj;
376     TClonesArray* trk_nuc_obj;
377    
378    
379     TClonesArray* calo_ext_obj;
380     TClonesArray* calo_ext_nuc_obj;
381     TClonesArray* calo_nuc_obj;
382    
383     TClonesArray* tof_ext_obj;
384     TClonesArray* tof_ext_nuc_obj;
385     TClonesArray* tof_nuc_obj;
386    
387     TClonesArray* orb_ext_obj;
388     TClonesArray* orb_ext_nuc_obj;
389     TClonesArray* orb_nuc_obj;
390    
391    
392     TrkLevel2* trk2_nuc_obj;
393     CaloLevel2* calo2_nuc_obj;
394     ToFLevel2* tof2_nuc_obj;
395     OrbitalInfo* orb2_nuc_obj;
396    
397    
398    
399 pam-fi 1.30 // --------------------------------------------
400     // variables to handle GP
401     // --------------------------------------------
402     GPamela* gp_obj;
403    
404 pam-fi 1.13 // -----------------------------------
405     // variables to sort the track
406     // -----------------------------------
407 pam-fi 1.10 TClonesArray *tsorted;
408     TClonesArray *timage;
409 pam-ts 1.48 TClonesArray *text; //array of pamtrack objects built from extended algorythm
410     TClonesArray *tsorted_nuc;
411     TClonesArray *timage_nuc;
412     TClonesArray *text_nuc; //array of pamtrack objects built from extended algorythm
413    
414 pam-fi 1.41 PamTrack *track; //store the last required
415 mocchiut 1.20 TString howtosort;
416     Float_t sortthr;
417 pam-fi 1.7
418 pam-fi 1.41 Bool_t issorted; // true if the current event has already been sorted with the current sort criteria
419     Long64_t lastsorted; // the last event whose tracks has been sorted
420 pam-ts 1.48
421    
422     Bool_t issorted_new; // true if the current event has already been sorted with the current sort criteria
423     Long64_t lastsorted_new; // the last event whose tracks has been sorted
424    
425 pam-fi 1.30 // --------------------------------------
426     // flags to load level0-1-2 trees/braches
427     // --------------------------------------
428 pam-fi 1.6 Bool_t CAL2; //level2 branch
429     Bool_t CAL1; //level1 branch
430 pam-fi 1.13 Bool_t CAL0; //yoda
431 pam-fi 1.6
432     Bool_t TRK2; //level2 branch
433     Bool_t TRK1; //level1 branch
434     Bool_t TRKh; //hough branch
435 pam-fi 1.13 Bool_t TRK0; //yoda
436    
437     Bool_t TOF;
438     Bool_t TOF0;
439 pam-fi 1.6
440     Bool_t TRG;
441     Bool_t S4;
442     Bool_t ND;
443     Bool_t AC;
444     Bool_t ORB;
445 pam-fi 1.9
446 pam-fi 1.30 Bool_t GP; //GP simulation tree
447 pam-fi 1.25
448 pam-ts 1.48
449     Bool_t EXT;//get tracks from extended tracking algorythm
450     Bool_t NUC;//get tracks from nuclei algorythm
451    
452 mocchiut 1.52 Bool_t PROC;//EM
453    
454 pam-ts 1.49 const char* trkAlg;
455 pam-ts 1.48
456 pam-fi 1.30 // -----------
457     // other flags
458     // -----------
459     Bool_t RUN; // RunInfo tree
460     Bool_t ISGP; // GP simulation (...sort of patch, to skip OBT check, since OrbitalInfo is sometime missing)
461     Int_t SELLI; // tree of selected events (there is a selection list)
462 pam-fi 1.13
463 pam-fi 1.34 Bool_t DBG;
464    
465 mocchiut 1.18 void Initialize();
466    
467 pam-fi 1.13
468     public:
469 pam-fi 1.41
470 mocchiut 1.39 PamLevel2(TString ddir,TList *list,TString detlist);
471 mocchiut 1.18 PamLevel2(TString ddir,TString list,TString detlist);
472     PamLevel2(TString ddir,TString list);
473 pam-fi 1.1 PamLevel2();
474 pam-fi 1.10 ~PamLevel2(){Delete();};
475 pam-fi 1.41
476 pam-fi 1.6 void Clear();
477 mocchiut 1.18 void Reset();
478 pam-fi 1.10 void Delete();
479 pam-fi 1.2
480 pam-fi 1.41
481 pam-fi 1.13 // =============================================
482     // methods needed to read/write Level0-1-2 trees
483     // =============================================
484 pam-fi 1.6 void SetWhichTrees(TString);
485 pam-fi 1.8 void GetWhichTrees(TFile*);
486    
487     TTree* GetPamTree(TFile*,TString);
488 pam-fi 1.41 TTree* GetPamTree(TFile* f){return GetPamTree(f,"");};
489 pam-fi 1.8
490 pam-fi 1.6 TList* GetListOfLevel2Files(TString, TString);
491     Bool_t CheckLevel2File(TString);
492     TChain* GetPamTree(TList*,TString);
493 pam-fi 1.8 TChain* GetPamTree(TString ddir,TString list,TString detlist){ return GetPamTree(GetListOfLevel2Files(ddir,list),detlist); };
494     TChain* GetPamTree(TString ddir,TString list){ return GetPamTree(GetListOfLevel2Files(ddir,list),""); };
495 pam-fi 1.26 TChain* AddFriend(TString);
496 pam-fi 1.8
497 pam-fi 1.6 TTree* GetRunTree(TFile*);
498     TChain* GetRunTree(TList*);
499 mocchiut 1.12 TChain* GetRunTree(TString ddir,TString list){ return GetRunTree(GetListOfLevel2Files(ddir,list)); };
500 mocchiut 1.44 Bool_t UpdateRunInfo(Long64_t);///< new implementation to solve Mori's bug
501 pam-fi 1.17 Bool_t UpdateRunInfo(TTree *,Long64_t);
502     Bool_t UpdateRunInfo(TChain *,Long64_t);
503 pam-fi 1.7
504 mocchiut 1.43 void SkipRunInfoUpdate(); // Emiliano
505 mocchiut 1.42 void DoRunInfoUpdate(){fUpdateRunInfo = true;}; // [default] Emiliano
506 mocchiut 1.47 void UseDBinRunInfo(){fUseDBinRunInfo = true;}; // [default] Emiliano
507     void NoDBinRunInfo(){fUseDBinRunInfo = false;}; // EM
508 mocchiut 1.42 void NoDBconnections(){SkipRunInfoUpdate();}; // Emiliano
509    
510 pam-fi 1.8 void CreateCloneTrees0(TChain *fChain, TFile* file);
511     void CreateCloneTrees(TFile* file);
512 pam-fi 1.23 void CreateCloneTrees(){CreateCloneTrees(NULL);};
513 pam-fi 1.7 void FillCloneTrees();
514     TTree *GetCloneTree(TString);
515     void WriteCloneTrees();
516    
517 pam-fi 1.6 void SetBranchAddress(TTree *);
518     void SetBranchAddress(TChain *);
519    
520 pam-fi 1.17 // Int_t GetEntry(Int_t);
521     Int_t GetEntry(Long64_t);
522 pam-fi 1.41 Long64_t GetReadEntry();
523     Int_t GetYodaEntry();
524 mocchiut 1.21
525 mocchiut 1.45 void SetMaxShift(Int_t sh); // EMILIANO method to change the maxshift variable
526 pam-fi 1.41
527 mocchiut 1.21 Long64_t GetEntries(){return pam_tree->GetEntries();};
528 pam-fi 1.13 TChain* GetPamTree(){return pam_tree;};
529     TChain* GetRunTree(){return run_tree;};
530 mocchiut 1.52 TChain* GetProcessingInfoTree(){return proc_tree;};
531 pam-fi 1.13 TTree* GetYodaTree();
532    
533 mocchiut 1.16 TFile* GetYodaFile(){return l0_file;}; // can be useful to know the name of level0 file we are using or similar things
534    
535 pam-fi 1.13 // =============
536     // DB connection
537     // =============
538     void SetDBHost(TString str){host=str;};
539     void SetDBUser(TString str){user=str;};
540     void SetDBPsw(TString str){psw=str;};
541 pam-fi 1.24 TSQLServer* GetSQLServer(){return dbc;};
542     Bool_t SetDBConnection();
543 pam-fi 1.13
544 pam-fi 1.10 // ========================================================
545     // methods needed to retrieve subdetector general variables
546     // ========================================================
547 pam-fi 1.6 void* GetPointerTo(const char*);
548 pam-fi 1.15 EventHeader *GetEventHeader() { return h0_obj; };
549 pam-fi 1.24
550     /* TrkLevel0 *GetTrkLevel0() { return trk0_obj; }; */
551     /* CaloLevel0 *GetCaloLevel0() { return calo0_obj; }; */
552     TrkLevel0 *GetTrkLevel0();
553     CaloLevel0 *GetCaloLevel0();
554    
555 pam-fi 1.13
556     TrkLevel1 *GetTrkLevel1() { return trk1_obj; };
557     TrkLevel2 *GetTrkLevel2() { return trk2_obj; };
558     TrkHough *GetTrkHough() { return trkh_obj; };
559 pam-fi 1.10 CaloLevel1 *GetCaloLevel1() { return calo1_obj;};
560     CaloLevel2 *GetCaloLevel2() { return calo2_obj;};
561 pam-ts 1.48 ToFLevel2 *GetToFLevel2() { return tof2_obj; };
562 pam-fi 1.13 TrigLevel2 *GetTrigLevel2() { return trig_obj; };
563     S4Level2 *GetS4Level2() { return s4_obj; };
564     NDLevel2 *GetNDLevel2() { return nd_obj; };
565     AcLevel2 *GetAcLevel2() { return ac_obj; };
566 pam-ts 1.48 OrbitalInfo *GetOrbitalInfo(){ return orb2_obj; };
567 pam-fi 1.13 GL_RUN *GetRunInfo() { return run_obj; };
568 mocchiut 1.11 SoftInfo *GetSoftInfo() { return soft_obj; }; // Emiliano
569 mocchiut 1.52 ProcInfo *GetProcInfo() { return proc_obj; }; // Emiliano
570 pam-fi 1.34 GPamela *GetGPamela() { return gp_obj; };
571 pam-fi 1.3
572     // ==============================================
573     // methods to retrieve subdetectors stored tracks
574     // ==============================================
575 pam-fi 1.10 TrkTrack* GetTrkStoredTrack(int seqno){return trk2_obj->TrkLevel2::GetStoredTrack(seqno); };
576 pam-fi 1.6 CaloTrkVar* GetCaloStoredTrack(int);
577     ToFTrkVar* GetToFStoredTrack(int);
578 mocchiut 1.36 OrbitalInfoTrkVar* GetOrbitalInfoStoredTrack(int);
579 pam-fi 1.6 //
580 pam-fi 1.54 // PamTrack* GetPamTrackAlong(TrkTrack*);
581 pam-fi 1.3 // PamTrack* GetPamTrackAlong(CaloTrkVar*); //se serve
582     // PamTrack* GetPamTrackAlong(ToFTrkVar*); //se serve
583 pam-fi 1.41
584 pam-fi 1.1 // =================================
585     // methods to retrieve pamela tracks
586     // =================================
587 pam-fi 1.54 // PamTrack* GetStoredTrack(Int_t);//obsolete
588 pam-fi 1.6 //
589     void SortTracks(TString); //assign value to variable sorted_tracks
590 mocchiut 1.20 void SortTracks(); //assign value to variable sorted_tracks
591 pam-fi 1.10 // TRefArray* GetTracks(); //return sorted_tracks
592     TClonesArray* GetTracks(); //return sorted_tracks
593 pam-ts 1.49 PamTrack* GetTrackOld(int);
594     PamTrack* GetTrackImageOld(int);
595     PamTrack* GetTrack(int i){ return GetTrackOld(i); };
596     PamTrack* GetTrackImage(int i){ return GetTrackImageOld(i); };
597     void SetSortingMethod(TString how);
598 mocchiut 1.20 TString GetSortingMethod(){return howtosort;};
599     void SetNucleiSortingThreshold(Float_t nucleithr){ sortthr = nucleithr; return;};
600     Float_t GetNucleiSortingThreshold(){ return sortthr;};
601 pam-fi 1.41
602 pam-ts 1.48
603    
604    
605     // =================================
606     // methods to handle new tracking algorythms
607     // =================================
608 pam-ts 1.49 /* Int_t GetTrackingAlgorythmFlag(){return extAlgFlag;}; */
609     /* void SetTrackingAlgorythm(const char * alg); */
610     /* const char* GetTrackingAlgorythm(); */
611    
612     Int_t GetNTracks(const char*);
613     PamTrack* GetTrack(int,const char*);
614     PamTrack* GetTrackImage(int, const char*);
615 pam-fi 1.54 Bool_t TrackHasImage(int i, const char* alg){return GetTrackImage(i,alg)!=NULL;};
616 pam-ts 1.49
617     /* Int_t GetNTracks(){return GetNTracks(trkAlg); }; */
618     /* PamTrack* GetTrack(int i) { return GetTrack(i,trkAlg); }; */
619     /* PamTrack* GetTrackImage(int i){ return GetTrackImage(i,trkAlg); }; */
620    
621 pam-ts 1.48 void SortTracksNew(); //assign value to variable sorted_tracks
622    
623    
624 pam-fi 1.6 // =================================
625     // other methods
626     // =================================
627 pam-fi 1.10 // Int_t ntrk(){ return trk2_obj->TrkLevel2::ntrk(); };
628 pam-fi 1.6
629 pam-fi 1.33
630     Long64_t GetRunID(){ return irun;};
631     Long64_t GetRunEntryID(){ return irunentry; };
632    
633 pamela 1.14 // -----
634     // flags methods
635     // -----
636     Bool_t IsCAL2(){return CAL2;}; //level2 branch
637     Bool_t IsCAL1(){return CAL1;}; //level1 branch
638     Bool_t IsCAL0(){return CAL0;}; //yoda
639    
640     Bool_t IsTRK2(){return TRK2;}; //level2 branch
641     Bool_t IsTRK1(){return TRK1;}; //level1 branch
642     Bool_t IsTRKh(){return TRKh;}; //hough branch
643     Bool_t IsTRK0(){return TRK0;}; //yoda
644    
645     Bool_t IsTOF(){return TOF;};
646     Bool_t IsTOF0(){return TOF0;};
647    
648     Bool_t IsTRG(){return TRG;};
649     Bool_t IsS4(){return S4;};
650     Bool_t IsND(){return ND;};
651     Bool_t IsAC(){return AC;};
652     Bool_t IsORB(){return ORB;};
653    
654     Bool_t IsRUN(){return RUN;};
655    
656 pam-ts 1.48 Bool_t IsEXT(){return EXT;};
657     Bool_t IsNUC(){return NUC;};
658    
659 mocchiut 1.38 Bool_t IsGood(Bool_t strict=true);
660 mocchiut 1.22
661 pamela 1.14 Int_t IsSELLI(){return SELLI;}; //trees of selected events (there is a selection list)
662 pam-fi 1.41 void SetSELLI(Int_t selli){SELLI=selli;};
663 pam-fi 1.6
664 mocchiut 1.52 Bool_t IsPROC(){return PROC;};//EM
665    
666 mocchiut 1.51 Bool_t HasDiscardedFiles(){return fDiscarded;}; ///< true if something went wrong and not all files were processed
667    
668 pam-fi 1.25 Bool_t IsGP(){return ISGP;};
669    
670     void SetGP(Bool_t tt){ISGP=tt;};
671    
672 pam-fi 1.37 void SetDebug(Bool_t set){ DBG=set; TrkParams::SetVerboseMode(); };
673 pam-fi 1.25
674 emocchiutti 1.53 void SetCustomString(TString cus){customString=cus;};
675     TString GetCustomString(){return customString;};
676 pam-ts 1.48
677 mocchiut 1.52 ClassDef(PamLevel2,4);
678 pam-fi 1.1 };
679    
680     //===============================================================================================
681     //
682     //
683     //
684     //
685     //===============================================================================================
686    
687    
688     #endif
689    

  ViewVC Help
Powered by ViewVC 1.1.23