]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/Alieve/MUONData.h
Patch for the MUON visualization (Ivana)
[u/mrichter/AliRoot.git] / EVE / Alieve / MUONData.h
1 #ifndef ALIEVE_MUONData_H
2 #define ALIEVE_MUONData_H
3
4 #include <Reve/Reve.h>
5
6 #include <TObject.h>
7
8 #include <vector>
9
10 class TTree;
11 class TString;
12 class TList;
13
14 class AliRawReader;
15 class AliMUONRawStreamTracker;
16 class AliMUONRawStreamTrigger;
17 class AliMUONDigit;
18 class AliMpSegFactory;
19 class AliMpDDLStore;
20 class AliMUONLocalTriggerBoard;
21 class AliMUONLocalStruct;
22 class AliMUONLocalStruct;
23
24 namespace Alieve {
25
26 class MUONChamberData;
27
28 class MUONData : public TObject, public Reve::ReferenceCount
29 {
30
31  protected:
32
33   std::vector<MUONChamberData*>   fChambers;           // vector of 14 chambers
34
35   static AliRawReader*            fgRawReader;         // raw reader
36   static AliMUONRawStreamTracker* fgRawStreamTracker;  // tracker raw streamer 
37   static AliMUONRawStreamTrigger* fgRawStreamTrigger;  // trigger raw streamer
38   static AliMpSegFactory*         fgSegFactory;        // segmentation mapping
39   static AliMpDDLStore*           fgBusPatchManager;   // bus mapping
40
41   Int_t    fNTracks;              // number of tracks
42   Float_t* fTrackPoints;          // array with track points coordinates
43   Int_t    fNPoints;              // total number of track points
44
45   Int_t GetTrackerMapping(Int_t buspatchId, UShort_t manuId,
46                           UChar_t channelId, AliMUONDigit* digit );
47
48   Int_t GetTriggerMapping(AliMUONLocalTriggerBoard* localBoard, 
49                           AliMUONLocalStruct* localStruct,
50                           TList& digitList);
51
52   void GetTriggerChamber(AliMUONLocalStruct* localStruct,
53                          Int_t& xyPattern, Int_t& iChamber, Int_t& iCath, 
54                          Int_t iCase);
55  public:
56
57   MUONData();
58   virtual ~MUONData();
59
60   MUONData(const MUONData&);
61   MUONData& operator=(const MUONData&);
62
63   void LoadDigits(TTree* tree);
64   void LoadTracks(TTree* tree);
65   void LoadRaw(TString fileName);
66   void LoadRawTracker();
67   void LoadRawTrigger();
68
69   void CreateChamber(Int_t chamber);
70   void CreateAllChambers();
71   void DropAllChambers();
72   void DeleteAllChambers();
73
74   MUONChamberData* GetChamberData(Int_t chamber);
75
76   Int_t    GetNTracks() { return fNTracks; };
77   Int_t    GetNPoints() { return fNPoints; };
78   Float_t* GetTrackPoints() { return fTrackPoints; };
79
80   ClassDef(MUONData,1);           // Manages MUON data for one event
81
82 };
83
84 }
85
86 #endif