| 96 | // ------------------------------ | // ------------------------------ | 
| 97 | // variables to retrieve run info | // variables to retrieve run info | 
| 98 | // ------------------------------ | // ------------------------------ | 
| 99 | Int_t     irun;          //current run entry, relative to the TChain | //    Int_t     irun;          //current run entry, relative to the TChain | 
| 100 | ULong64_t runfirstentry; //first entry of run, relative to the TChain | Long64_t  irun;          //current run entry, relative to the TChain | 
| 101 | ULong64_t runlastentry;  //last  entry of run, relative to the TChain | //    ULong64_t runfirstentry; //first entry of run, relative to the TChain | 
| 102 | Int_t     irunentry;     //position of current entry, relative to the run | //    ULong64_t runlastentry;  //last  entry of run, relative to the TChain | 
| 103 |  | //    Int_t     irunentry;     //position of current entry, relative to the run | 
| 104 |  | Long64_t  runfirstentry; //first entry of run, relative to the TChain | 
| 105 |  | Long64_t  runlastentry;  //last  entry of run, relative to the TChain | 
| 106 |  | Long64_t  irunentry;     //position of current entry, relative to the run | 
| 107 | TChain*   run_tree; | TChain*   run_tree; | 
| 108 | TTree*    run_tree_clone; | TTree*    run_tree_clone; | 
| 109 | TChain*   sel_tree; | TChain*   sel_tree; | 
| 121 | // -------------------------------------------- | // -------------------------------------------- | 
| 122 | EventHeader* h0_obj; | EventHeader* h0_obj; | 
| 123 | TrkLevel0*   trk0_obj; | TrkLevel0*   trk0_obj; | 
| 124 | CaloLevel0*   calo0_obj; | CaloLevel0*  calo0_obj; | 
| 125 |  |  | 
| 126 | // --------------------------- | // --------------------------- | 
| 127 | // variables to connect the DB | // variables to connect the DB | 
| 136 | // --------------------------------------------- | // --------------------------------------------- | 
| 137 | TChain* pam_tree; | TChain* pam_tree; | 
| 138 | TTree*  pam_tree_clone[NCLONES]; | TTree*  pam_tree_clone[NCLONES]; | 
| 139 |  |  | 
| 140 | // -------------------------------------------- | // -------------------------------------------- | 
| 141 | // variables to store Level0 info (if required) | // variables to store Level0 info (if required) | 
| 142 | // -------------------------------------------- | // -------------------------------------------- | 
| 160 | TClonesArray *tsorted; | TClonesArray *tsorted; | 
| 161 | TClonesArray *timage; | TClonesArray *timage; | 
| 162 | PamTrack    *track; //store the last required | PamTrack    *track; //store the last required | 
| 163 |  | TString howtosort; | 
| 164 |  | Float_t sortthr; | 
| 165 |  |  | 
| 166 | // ----- | // ----- | 
| 167 | // flags | // flags | 
| 188 |  |  | 
| 189 | Int_t  SELLI; //trees of selected events (there is a selection list) | Int_t  SELLI; //trees of selected events (there is a selection list) | 
| 190 |  |  | 
| 191 |  | void Initialize(); | 
| 192 |  |  | 
| 193 |  |  | 
| 194 | public: | public: | 
| 195 |  |  | 
| 196 |  | PamLevel2(TString ddir,TString list,TString detlist); | 
| 197 |  | PamLevel2(TString ddir,TString list); | 
| 198 | PamLevel2(); | PamLevel2(); | 
| 199 | ~PamLevel2(){Delete();}; | ~PamLevel2(){Delete();}; | 
| 200 |  |  | 
| 201 | void Clear(); | void Clear(); | 
| 202 |  | void Reset(); | 
| 203 | void Delete(); | void Delete(); | 
| 204 |  |  | 
| 205 |  |  | 
| 221 | TTree*  GetRunTree(TFile*); | TTree*  GetRunTree(TFile*); | 
| 222 | TChain* GetRunTree(TList*); | TChain* GetRunTree(TList*); | 
| 223 | TChain* GetRunTree(TString ddir,TString list){ return GetRunTree(GetListOfLevel2Files(ddir,list)); }; | TChain* GetRunTree(TString ddir,TString list){ return GetRunTree(GetListOfLevel2Files(ddir,list)); }; | 
| 224 | Bool_t  UpdateRunInfo(TTree *,ULong64_t); | Bool_t  UpdateRunInfo(TTree *,Long64_t); | 
| 225 | Bool_t  UpdateRunInfo(TChain *,ULong64_t); | Bool_t  UpdateRunInfo(TChain *,Long64_t); | 
| 226 |  | Bool_t  UpdateRunInfo(Long64_t iev);//{ return UpdateRunInfo(run_tree,iev); }; | 
| 227 |  |  | 
| 228 | void    CreateCloneTrees0(TChain *fChain, TFile* file); | void    CreateCloneTrees0(TChain *fChain, TFile* file); | 
| 229 | void    CreateCloneTrees(TFile* file); | void    CreateCloneTrees(TFile* file); | 
| 230 |  | void    CreateCloneTrees(){CreateCloneTrees(NULL);}; | 
| 231 | void    FillCloneTrees(); | void    FillCloneTrees(); | 
| 232 | TTree  *GetCloneTree(TString); | TTree  *GetCloneTree(TString); | 
| 233 | void    WriteCloneTrees(); | void    WriteCloneTrees(); | 
| 235 | void    SetBranchAddress(TTree *); | void    SetBranchAddress(TTree *); | 
| 236 | void    SetBranchAddress(TChain *); | void    SetBranchAddress(TChain *); | 
| 237 |  |  | 
| 238 | Int_t   GetEntry(Int_t); | //    Int_t   GetEntry(Int_t); | 
| 239 |  | Int_t   GetEntry(Long64_t); | 
| 240 | Int_t   GetYodaEntry(); | Int_t   GetYodaEntry(); | 
| 241 |  |  | 
| 242 |  | Long64_t GetEntries(){return pam_tree->GetEntries();}; | 
| 243 | TChain* GetPamTree(){return pam_tree;}; | TChain* GetPamTree(){return pam_tree;}; | 
| 244 | TChain* GetRunTree(){return run_tree;}; | TChain* GetRunTree(){return run_tree;}; | 
| 245 | TTree*  GetYodaTree(); | TTree*  GetYodaTree(); | 
| 252 | void SetDBHost(TString str){host=str;}; | void SetDBHost(TString str){host=str;}; | 
| 253 | void SetDBUser(TString str){user=str;}; | void SetDBUser(TString str){user=str;}; | 
| 254 | void SetDBPsw(TString str){psw=str;}; | void SetDBPsw(TString str){psw=str;}; | 
| 255 |  | TSQLServer* GetSQLServer(){return dbc;}; | 
| 256 |  | Bool_t SetDBConnection(); | 
| 257 |  |  | 
| 258 | //  ======================================================== | //  ======================================================== | 
| 259 | //  methods needed to retrieve subdetector general variables | //  methods needed to retrieve subdetector general variables | 
| 260 | //  ======================================================== | //  ======================================================== | 
| 261 | void*       GetPointerTo(const char*); | void*       GetPointerTo(const char*); | 
| 262 | EventHeader  *GetEventHeader()  { return h0_obj; }; | EventHeader  *GetEventHeader()  { return h0_obj; }; | 
| 263 | TrkLevel0    *GetTrkLevel0()  { return trk0_obj; }; |  | 
| 264 | CaloLevel0   *GetCaloLevel0()  { return calo0_obj; }; | /*     TrkLevel0    *GetTrkLevel0()   { return trk0_obj; }; */ | 
| 265 |  | /*     CaloLevel0   *GetCaloLevel0()  { return calo0_obj; }; */ | 
| 266 |  | TrkLevel0    *GetTrkLevel0(); | 
| 267 |  | CaloLevel0   *GetCaloLevel0(); | 
| 268 |  |  | 
| 269 |  |  | 
| 270 | TrkLevel1    *GetTrkLevel1()  { return trk1_obj; }; | TrkLevel1    *GetTrkLevel1()  { return trk1_obj; }; | 
| 271 | TrkLevel2    *GetTrkLevel2()  { return trk2_obj; }; | TrkLevel2    *GetTrkLevel2()  { return trk2_obj; }; | 
| 298 | PamTrack*     GetStoredTrack(Int_t); | PamTrack*     GetStoredTrack(Int_t); | 
| 299 | // | // | 
| 300 | void          SortTracks(TString);          //assign value to variable sorted_tracks | void          SortTracks(TString);          //assign value to variable sorted_tracks | 
| 301 |  | void          SortTracks();          //assign value to variable sorted_tracks | 
| 302 | //    TRefArray*    GetTracks();                  //return sorted_tracks | //    TRefArray*    GetTracks();                  //return sorted_tracks | 
| 303 | TClonesArray* GetTracks();                  //return sorted_tracks | TClonesArray* GetTracks();                  //return sorted_tracks | 
| 304 | PamTrack*     GetTrack(int); | PamTrack*     GetTrack(int); | 
| 305 | PamTrack*     GetTrackImage(int); | PamTrack*     GetTrackImage(int); | 
| 306 |  | void          SetSortingMethod(TString how){ howtosort = how; return;}; | 
| 307 |  | TString       GetSortingMethod(){return howtosort;}; | 
| 308 |  | void          SetNucleiSortingThreshold(Float_t nucleithr){ sortthr = nucleithr; return;}; | 
| 309 |  | Float_t       GetNucleiSortingThreshold(){ return sortthr;}; | 
| 310 |  |  | 
| 311 | //  ================================= | //  ================================= | 
| 312 | //  other methods | //  other methods | 
| 336 |  |  | 
| 337 | Bool_t IsRUN(){return RUN;}; | Bool_t IsRUN(){return RUN;}; | 
| 338 |  |  | 
| 339 |  | Bool_t IsGood(); | 
| 340 |  |  | 
| 341 | Int_t  IsSELLI(){return SELLI;}; //trees of selected events (there is a selection list) | Int_t  IsSELLI(){return SELLI;}; //trees of selected events (there is a selection list) | 
| 342 |  |  | 
| 343 | ClassDef(PamLevel2,1); | ClassDef(PamLevel2,1); |