--- PamelaLevel2/inc/PamLevel2.h 2006/11/28 10:58:34 1.6 +++ PamelaLevel2/inc/PamLevel2.h 2006/12/05 12:13:39 1.7 @@ -26,6 +26,7 @@ #include +#include #include #include #include @@ -66,9 +67,10 @@ * This allows to solve the tracker ambiguity (that is, to choose between track images) by using also information from other detectors. */ -class PamLevel2 : public CaloLevel2, public CaloLevel1, public TrkLevel2, public TrkLevel1, public TrkHough, public ToFLevel2, public TrigLevel2, public S4Level2, public NDLevel2, public AcLevel2, public OrbitalInfo { +class PamLevel2 : public CaloLevel2, public CaloLevel1, public ToFLevel2, public TrkLevel2, public TrkLevel1, public TrkHough, public TrigLevel2, public S4Level2, public NDLevel2, public AcLevel2, public OrbitalInfo { private: + public: TrkLevel1* trk1_obj; TrkLevel2* trk2_obj; @@ -86,11 +88,35 @@ GL_RUN* run_obj; +/* TrkLevel1* trk1_clone; */ +/* TrkLevel2* trk2_clone; */ +/* TrkHough* trkh_clone; */ + +/* CaloLevel1* calo1_clone; */ +/* CaloLevel2* calo2_clone; */ + +/* ToFLevel2* tof_clone; */ +/* TrigLevel2* trig_clone; */ +/* S4Level2* s4_clone; */ +/* NDLevel2* nd_clone; */ +/* AcLevel2* ac_clone; */ +/* OrbitalInfo* orb_clone; */ + +/* TTree* T_clone; //tracker */ +/* TTree* C_clone; //calo */ +/* TTree* O_clone; //tof */ +/* TTree* R_clone; //trigger */ +/* TTree* S_clone; //s4 */ +/* TTree* A_clone; //anti */ +/* TTree* N_clone; //nd */ +/* TTree* B_clone; //orbital */ + + TTree* tree_clone[8]; + TRefArray* sorted_tracks; // TChain* Tout; - public: Bool_t CAL2; //level2 branch Bool_t CAL1; //level1 branch @@ -111,62 +137,67 @@ void Clear(); - TrkLevel1* GetTrkLevel1() { return trk1_obj; }; - TrkLevel2* GetTrkLevel2() { return trk2_obj; }; - TrkHough* GetTrkHough() { return trkh_obj; }; - CaloLevel1* GetCaloLevel1() { return calo1_obj; }; - CaloLevel2* GetCaloLevel2() { return calo2_obj; }; - ToFLevel2* GetToFLevel2() { return tof_obj; }; - TrigLevel2* GetTrigLevel2() { return trig_obj; }; - S4Level2* GetS4Level2() { return s4_obj; }; - NDLevel2* GetNDLevel2() { return nd_obj; }; - AcLevel2* GetAcLevel2() { return ac_obj; }; - OrbitalInfo* GetOrbitalInfo(){ return orb_obj; }; - GL_RUN* GetRunInfo() { return run_obj; }; - -// ===================================== -// methods needed to read Level2 trees -// ===================================== +/* TrkLevel1* GetTrkLevel1() { return trk1_obj; }; */ +/* TrkLevel2* GetTrkLevel2() { return trk2_obj; }; */ +/* TrkHough* GetTrkHough() { return trkh_obj; }; */ +/* CaloLevel1* GetCaloLevel1() { return calo1_obj; }; */ +/* CaloLevel2* GetCaloLevel2() { return calo2_obj; }; */ +/* ToFLevel2* GetToFLevel2() { return tof_obj; }; */ +/* TrigLevel2* GetTrigLevel2() { return trig_obj; }; */ +/* S4Level2* GetS4Level2() { return s4_obj; }; */ +/* NDLevel2* GetNDLevel2() { return nd_obj; }; */ +/* AcLevel2* GetAcLevel2() { return ac_obj; }; */ +/* OrbitalInfo* GetOrbitalInfo(){ return orb_obj; }; */ +/* TrkLevel1* GetTrkLevel1() { return ; }; */ +/* TrkLevel2* GetTrkLevel2() { return TrkLevel2::GetTrkLevel2(); }; */ +/* TrkHough* GetTrkHough() { return TrkHough::GetTrkHough(); }; */ +/* CaloLevel1* GetCaloLevel1() { return CaloLevel1::GetCaloLevel1(); }; */ +/* CaloLevel2* GetCaloLevel2() { return CaloLevel2::GetCaloLevel2(); }; */ +/* ToFLevel2* GetToFLevel2() { return ToFLevel2::GetToFLevel2(); }; */ +/* TrigLevel2* GetTrigLevel2() { return TrigLevel2::GetTrigLevel2(); }; */ +/* S4Level2* GetS4Level2() { return S4Level2::GetS4Level2(); }; */ +/* NDLevel2* GetNDLevel2() { return NDLevel2::GetNDLevel2(); }; */ +/* AcLevel2* GetAcLevel2() { return AcLevel2::GetAcLevel2(); }; */ +/* OrbitalInfo* GetOrbitalInfo(){ return OrbitalInfo::GetOrbitalInfo(); }; */ + GL_RUN* GetRunInfo() { return run_obj; }; + +// ========================================= +// methods needed to read/write Level2 trees +// ========================================= void SetWhichTrees(TString); TList* GetListOfLevel2Files(TString, TString); Bool_t CheckLevel2File(TString); -// void SetBranchAddress(); TTree* GetPamTree(TFile*,TString); TTree* GetPamTree(TFile* f){return GetPamTree(f,"+ALL");}; TChain* GetPamTree(TList*,TString); TTree* GetRunTree(TFile*); TChain* GetRunTree(TList*); - + +// TTree* GetNewPamTree(); +// void FillNewPamTree(TTree*); +// void FillNewPamTree(); + void CreateCloneTrees(TChain *fChain); + void FillCloneTrees(); + TTree *GetCloneTree(TString); + void WriteCloneTrees(); + void SetBranchAddress(TTree *); void SetBranchAddress(TChain *); // ===================================== // methods needed to set brach addresses // ===================================== - void* GetPointerToTrk() {return &trk2_obj;}; - void* GetPointerToTrk(int s){ - switch (s) { - case 1: return &trk1_obj; - case 2: return &trk2_obj; - case 3: return &trkh_obj; - default: return 0; - }; - }; - void* GetPointerToCalo() {return &calo2_obj; }; - void* GetPointerToCalo(int s){ - switch (s) { - case 1: return &calo1_obj; - case 2: return &calo2_obj; - default: return 0; - }; - }; - void* GetPointerToToF() {return &tof_obj; }; - void* GetPointerToTrig() {return &trig_obj; }; - void* GetPointerToS4() {return &s4_obj; }; - void* GetPointerToND() {return &nd_obj; }; - void* GetPointerToAc() {return &ac_obj; }; - void* GetPointerToOrb() {return &orb_obj; }; - void* GetPointerToRun() {return &run_obj; }; +/* void* GetPointerToTrk(); */ +/* void* GetPointerToTrk(int s); */ +/* void* GetPointerToCalo(); */ +/* void* GetPointerToCalo(int s); */ +/* void* GetPointerToToF(); */ +/* void* GetPointerToTrig(); */ +/* void* GetPointerToS4(); */ +/* void* GetPointerToND(); */ +/* void* GetPointerToAc(); */ +/* void* GetPointerToOrb(); */ +/* void* GetPointerToRun(); */ void* GetPointerTo(const char*); // ==============================================