--- PamelaLevel2/inc/PamLevel2.h 2014/03/12 16:37:26 1.47 +++ PamelaLevel2/inc/PamLevel2.h 2014/10/15 08:51:50 1.48 @@ -32,6 +32,7 @@ // error "Cannot find InclinationInfo.h" update your DV installation #include #include +#include #include @@ -225,6 +226,7 @@ private: + ExtTrack* trk_ext_track; TrkTrack* trk_track; CaloTrkVar* calo_track; ToFTrkVar* tof_track; @@ -239,6 +241,7 @@ PamTrack(); PamTrack(TrkTrack* , CaloTrkVar* , ToFTrkVar*, OrbitalInfoTrkVar* ); + PamTrack(ExtTrack* , CaloTrkVar* , ToFTrkVar*, OrbitalInfoTrkVar* ); PamTrack(const PamTrack&); ~PamTrack(){ Delete(); }; @@ -253,12 +256,13 @@ void SetPScore(Int_t p){pscore=p;}; void SetIScore(Int_t i){iscore=i;}; + ExtTrack* GetExtTrack(){return trk_ext_track;}; TrkTrack* GetTrkTrack(){return trk_track;}; CaloTrkVar* GetCaloTrack(){return calo_track;}; ToFTrkVar* GetToFTrack(){return tof_track;}; OrbitalInfoTrkVar* GetOrbitalInfoTrack(){return orb_track;}; - ClassDef(PamTrack,2); + ClassDef(PamTrack,3); }; /** @@ -344,15 +348,44 @@ TrkHough* trkh_obj; CaloLevel1* calo1_obj; CaloLevel2* calo2_obj; - ToFLevel2* tof_obj; + ToFLevel2* tof2_obj; TrigLevel2* trig_obj; S4Level2* s4_obj; NDLevel2* nd_obj; AcLevel2* ac_obj; - OrbitalInfo* orb_obj; + OrbitalInfo* orb2_obj; GL_RUN* run_obj; SoftInfo* soft_obj; // Emiliano + + + Int_t extAlgFlag; + + TClonesArray* trk_ext_obj; + TClonesArray* trk_ext_nuc_obj; + TClonesArray* trk_nuc_obj; + + + TClonesArray* calo_ext_obj; + TClonesArray* calo_ext_nuc_obj; + TClonesArray* calo_nuc_obj; + + TClonesArray* tof_ext_obj; + TClonesArray* tof_ext_nuc_obj; + TClonesArray* tof_nuc_obj; + + TClonesArray* orb_ext_obj; + TClonesArray* orb_ext_nuc_obj; + TClonesArray* orb_nuc_obj; + + + TrkLevel2* trk2_nuc_obj; + CaloLevel2* calo2_nuc_obj; + ToFLevel2* tof2_nuc_obj; + OrbitalInfo* orb2_nuc_obj; + + + // -------------------------------------------- // variables to handle GP // -------------------------------------------- @@ -363,12 +396,22 @@ // ----------------------------------- TClonesArray *tsorted; TClonesArray *timage; + TClonesArray *text; //array of pamtrack objects built from extended algorythm + TClonesArray *tsorted_nuc; + TClonesArray *timage_nuc; + TClonesArray *text_nuc; //array of pamtrack objects built from extended algorythm + PamTrack *track; //store the last required TString howtosort; Float_t sortthr; Bool_t issorted; // true if the current event has already been sorted with the current sort criteria Long64_t lastsorted; // the last event whose tracks has been sorted + + + Bool_t issorted_new; // true if the current event has already been sorted with the current sort criteria + Long64_t lastsorted_new; // the last event whose tracks has been sorted + // -------------------------------------- // flags to load level0-1-2 trees/braches // -------------------------------------- @@ -392,6 +435,12 @@ Bool_t GP; //GP simulation tree + + Bool_t EXT;//get tracks from extended tracking algorythm + Bool_t NUC;//get tracks from nuclei algorythm + + char* trkAlg; + // ----------- // other flags // ----------- @@ -496,12 +545,12 @@ TrkHough *GetTrkHough() { return trkh_obj; }; CaloLevel1 *GetCaloLevel1() { return calo1_obj;}; CaloLevel2 *GetCaloLevel2() { return calo2_obj;}; - ToFLevel2 *GetToFLevel2() { return tof_obj; }; + ToFLevel2 *GetToFLevel2() { return tof2_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; }; + OrbitalInfo *GetOrbitalInfo(){ return orb2_obj; }; GL_RUN *GetRunInfo() { return run_obj; }; SoftInfo *GetSoftInfo() { return soft_obj; }; // Emiliano GPamela *GetGPamela() { return gp_obj; }; @@ -534,6 +583,24 @@ void SetNucleiSortingThreshold(Float_t nucleithr){ sortthr = nucleithr; return;}; Float_t GetNucleiSortingThreshold(){ return sortthr;}; + + + +// ================================= +// methods to handle new tracking algorythms +// ================================= + Int_t GetTrackingAlgorythmFlag(){return extAlgFlag;}; + void SetTrakingAlgorythm(char *); + char* GetTrakingAlgorythm(); + + Int_t GetNTracks(char*); +// Int_t GetNTracks(){ return GetNTracks(trkAlg); }; + PamTrack* GetTrack(int,char*); + PamTrack* GetTrackImage(int, char*); + void SortTracksNew(); //assign value to variable sorted_tracks +// PamTrack* GetTrackImage(int,char*); + + // ================================= // other methods // ================================= @@ -566,6 +633,9 @@ Bool_t IsRUN(){return RUN;}; + Bool_t IsEXT(){return EXT;}; + Bool_t IsNUC(){return NUC;}; + Bool_t IsGood(Bool_t strict=true); Int_t IsSELLI(){return SELLI;}; //trees of selected events (there is a selection list) @@ -577,7 +647,7 @@ void SetDebug(Bool_t set){ DBG=set; TrkParams::SetVerboseMode(); }; - + ClassDef(PamLevel2,2); };