4 // Copyright(c) 2003, IceCube Experiment at the South Pole, All rights reserved.
5 // See cxx source for full Copyright notice.
15 #include "AliSample.h"
19 class IceDwalk : public TTask
22 IceDwalk(const char* name="IceDwalk",const char* title="Direct walk reconstruction"); // Constructor
23 virtual ~IceDwalk(); // Destructor
24 virtual void Exec(Option_t* opt); // Direct walk reconstruction
25 void SetDmin(Float_t d,TString s="A"); // Set minimum hit distance to form a track element
26 void SetDtmarg(Int_t dt,TString s="A"); // Set maximum hit time difference margin for track elements
27 void SetMaxDhit(Float_t d,TString s="A"); // Set maximum distance (in scat. length) for hit association
28 void SetTangmax(Float_t ang,TString s="A"); // Set max. angular separation for track candidate clustering into jets
29 void SetTdistmax(Float_t d,TString s="A",Int_t invol=1);// Set maximum track distance for track candidate clustering
30 void SetJangmax(Float_t ang,TString s="A",Int_t iter=1);// Set max. angular separation for jet merging into 1 single track
31 void SetJdistmax(Float_t d,TString s="A",Int_t invol=1);// Set maximum jet distance for jet merging
32 void SetMaxMod(Int_t nmax,TString s="A"); // Set max. number of good fired (D)OMs for events to be processed
33 void SetMinMod(Int_t nmin,TString s="A"); // Set min. number of good fired (D)OMs for events to be processed
34 void SetMaxHits(Int_t nmax,TString s="A"); // Set max. number of good hits per (D)OM to be processed
35 void SetVgroupUsage(Int_t flag,TString s="A"); // (De)activate usage of distinct phase and group velocities
36 void SetAsType(Int_t flag,TString s); // Select # assoc. hits or strings for quality indicator
37 void SetTrackName(TString s); // Set (alternative) name for the produced first guess tracks
38 void SetCharge(Float_t charge); // Set user defined charge for the produced first guess tracks
41 IceEvent* fEvt; // Pointer to the event structure
42 Float_t fDminA; // Minimum Amanda OM hit distance (in m) to form a track element
43 Float_t fDminI; // Minimum InIce DOM hit distance (in m) to form a track element
44 Int_t fDtmargA; // Maximum Amanda OM hit time difference margin (in ns) for track elements
45 Int_t fDtmargI; // Maximum InIce DOM hit time difference margin (in ns) for track elements
46 Float_t fMaxdhitA; // Maximum Amanda OM hit distance (in scat. length) for hit association
47 Float_t fMaxdhitI; // Maximum InIce DOM hit distance (in scat. length) for hit association
48 Float_t fTangmaxA; // Amanda angular separation (in deg) within which track candidates are clustered in a jet
49 Float_t fTangmaxI; // InIce angular separation (in deg) within which track candidates are clustered in a jet
50 Float_t fTdistmaxA; // Maximum Amanda track distance (in m) for track candidate clustering
51 Float_t fTdistmaxI; // Maximum InIce track distance (in m) for track candidate clustering
52 Int_t fTinvolA; // Amanda flag to denote maximum track distance testing inside/outside detector volume
53 Int_t fTinvolI; // InIce flag to denote maximum track distance testing inside/outside detector volume
54 Float_t fJangmaxA; // Amanda angular separation (in deg) within which jets are merged into 1 single track
55 Float_t fJangmaxI; // InIce angular separation (in deg) within which jets are merged into 1 single track
56 Int_t fJiterateA; // Amanda flag to indicate iteration in the jet merging process
57 Int_t fJiterateI; // InIce flag to indicate iteration in the jet merging process
58 Float_t fJdistmaxA; // Amanda maximum jet distance (in m) for jet merging
59 Float_t fJdistmaxI; // InIce maximum jet distance (in m) for jet merging
60 Int_t fJinvolA; // Amanda flag to denote maximum jet distance testing inside/outside detector volume
61 Int_t fJinvolI; // InIce flag to denote maximum jet distance testing inside/outside detector volume
62 Int_t fMaxmodA; // The max. number of good fired Amanda OMs for events to get processed
63 Int_t fMaxmodI; // The max. number of good fired InIce DOMs for events to get processed
64 Int_t fMinmodA; // The min. number of good fired Amanda OMs for events to get processed
65 Int_t fMinmodI; // The min. number of good fired InIce DOMs for events to get processed
66 Int_t fMaxhitsA; // The maximum number of good hits per Amanda OM to be processed
67 Int_t fMaxhitsI; // The maximum number of good hits per InIce DOM to be processed
68 Int_t fVgroupA; // Amanda flag to indicate usage of distinct phase and group velocities
69 Int_t fVgroupI; // InIce flag to indicate usage of distinct phase and group velocities
70 Int_t fAsTypeA; // Amanda flag to indicate usage of # assoc. hits or strings for quality
71 Int_t fAsTypeI; // InIce flag to indicate usage of # assoc. hits or strings for quality
72 TString fTrackname; // The name identifier for the produced first guess tracks
73 Float_t fCharge; // User defined charge of the produced first guess tracks
75 virtual void Amanda(); // Direct walk reconstruction for Amanda OM signals
76 virtual void InIce(); // Direct walk reconstruction for InIce DOM signals
77 virtual void AssociateHits(TObjArray& tes,TObjArray& hits,Int_t vgroup,Float_t maxdhit,Int_t astype,Float_t& qmax);// Hit association
78 virtual void SelectQvalue(TObjArray& tes,Int_t astype,Float_t qmax); // TC selection via Q-value
79 virtual void ClusterTracks(TObjArray& tes,TObjArray& jets,Float_t tangmax,Int_t tinvol,Float_t tdistmax,Int_t astype,Float_t qmax);// Track clustering
80 virtual void MergeJets(TObjArray& jets,Float_t jangmax,Float_t jdistmax,Int_t jinvol,Int_t jiterate,Int_t astype);// Jet Merging
81 virtual void StoreTracks(TObjArray& jets,Float_t jangmax,TString name,TString title); // Final track storage
83 ClassDef(IceDwalk,10) // TTask derived class to perform (improved) direct walk reconstruction