]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONRawData.h
Add variable numbers of DSP's/buspatches and DDL (Christian)
[u/mrichter/AliRoot.git] / MUON / AliMUONRawData.h
CommitLineData
f6762c71 1#ifndef ALIMUONRAWDATA_H
2#define ALIMUONRAWDATA_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
692de412 6/*$Id$*/
7
8/// \ingroup rec
9/// \class AliMUONRawData
10/// \brief Raw data class for trigger and tracker chambers
11///
12/// Raw data class for trigger and tracker chambers
13
f6762c71 14#include <TObject.h>
a2da7817 15#include <TExMap.h>
69be760c 16#include "AliMUONSubEventTracker.h"
69be760c 17
f6762c71 18class TClonesArray;
a2da7817 19class TArrayI;
f6762c71 20class AliLoader;
21class AliMUONData;
22class AliMUONDigit;
23class AliMUONDDLTracker;
69be760c 24class AliMUONDDLTrigger;
c8b4255f 25class AliMUONGlobalTrigger;
1195fa7b 26class AliMUONSubEventTrigger;
1197ff51 27class AliRawReader;
ce6a659c 28class AliMUONGlobalTrigger;
f6762c71 29
30class AliMUONRawData : public TObject
31{
32 public:
33 AliMUONRawData(AliLoader* loader); // Constructor
34 virtual ~AliMUONRawData(void); // Destructor
35
36 // write raw data
1197ff51 37 Int_t Digits2Raw();
38 Int_t Raw2Digits(AliRawReader* rawReader);
f6762c71 39
a2da7817 40 Int_t ReadTrackerDDL(AliRawReader* rawReader);
41 Int_t ReadTriggerDDL(AliRawReader* rawReader);
42
12098105 43 void GetDspInfo(Int_t iCh, Int_t& iDspMax, Int_t* iBusPerDSP);
44 Int_t GetDDLfromBus(Int_t busPatchId);
45
f6762c71 46 AliMUONData* GetMUONData() {return fMUONData;}
47
a2da7817 48 void AddData(const AliMUONSubEventTracker* event) {
49 TClonesArray &temp = *fSubEventArray;
69be760c 50 new(temp[temp.GetEntriesFast()])AliMUONSubEventTracker(*event);
51 }
52
69be760c 53
a2da7817 54 // could be private function (public for debugging)
55 Int_t GetInvMapping(const AliMUONDigit* digit, Int_t &busPatchId,
f1501d74 56 UShort_t &manuId, UChar_t &channelId);
69be760c 57
a2da7817 58 Int_t GetMapping(Int_t buspatchId, UShort_t manuId,
1197ff51 59 UChar_t channelId, AliMUONDigit* digit );
60
61
e79761f1 62 Int_t GetGlobalTriggerPattern(const AliMUONGlobalTrigger* gloTrg) const;
63 AliMUONGlobalTrigger* GetGlobalTriggerPattern(Int_t gloTrg) const;
69be760c 64
a2da7817 65 Int_t GetDEfromBus(Int_t busPatchId);
66 TArrayI* GetBusfromDE(Int_t idDE);
67
f6762c71 68 protected:
69 AliMUONRawData(); // Default constructor
70 AliMUONRawData (const AliMUONRawData& rhs); // copy constructor
71 AliMUONRawData& operator=(const AliMUONRawData& rhs); // assignment operator
72
73 private:
f6762c71 74
1195fa7b 75 AliMUONData* fMUONData; //! Data container for MUON subsystem
1195fa7b 76
1195fa7b 77 AliLoader* fLoader; //! alice loader
1195fa7b 78
a2da7817 79 FILE* fFile[2]; //! DDL binary file pointer one per 1/2 chamber
69be760c 80
e79761f1 81 TClonesArray* fSubEventArray; //! array to sub event tracker
ce6a659c 82
e79761f1 83 AliMUONDDLTracker* fDDLTracker; //! DDL tracker class pointers
84 AliMUONDDLTrigger* fDDLTrigger; //! DDL trigger class pointers
69be760c 85
e79761f1 86 TExMap fDetElemIdToBusPatch; //! Map from idDE to BusPatch
87 TExMap fBusPatchToDetElem; //! Map from BusPatch to idDE
12098105 88 TExMap fBusPatchToDDL; //! Map from BusPatch to iDDL
89
90 Int_t fMaxBusPerCh[10]; //! max buspatch number per chamber
a2da7817 91
69be760c 92 // writing raw data
93 Int_t WriteTrackerDDL(Int_t iCh);
94 Int_t WriteTriggerDDL();
f6762c71 95
a2da7817 96 void ReadBusPatchFile();
1197ff51 97
98 ClassDef(AliMUONRawData,1) // MUON cluster reconstructor in ALICE
f6762c71 99};
100
101#endif