AliRoot Core  3dc7879 (3dc7879)
AliMUONVDigit.h
Go to the documentation of this file.
1 #ifndef ALIMUONVDIGIT_H
2 #define ALIMUONVDIGIT_H
3 
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6 
7 // $Id$
8 
12 // Author Laurent Aphecetche, Subatech
13 
14 #ifndef ROOT_TObject
15 # include "TObject.h"
16 #endif
17 
18 class AliMUONVDigit : public TObject
19 {
20 public:
21  AliMUONVDigit();
22  AliMUONVDigit(Int_t detElemId, Int_t manuId, Int_t manuChannel, Int_t cathode);
23  virtual ~AliMUONVDigit();
24 
25  virtual Bool_t IsEqual(const TObject* object) const;
27  virtual Bool_t IsSortable() const { return kTRUE; }
28  virtual Int_t Compare(const TObject* object) const;
29 
30  virtual const char* GetName() const;
31 
33  virtual Int_t DetElemId() const=0;
35  virtual Int_t PadX() const=0;
37  virtual Int_t PadY() const=0;
39  virtual Int_t Cathode() const=0;
40 
42  virtual Float_t Charge() const=0;
43 
45  virtual Int_t ADC() const = 0;
46 
48  virtual Int_t ManuId() const = 0;
50  virtual Int_t ManuChannel() const=0;
51 
53  virtual Bool_t IsSaturated() const=0;
55  virtual void Saturated(Bool_t saturated=kTRUE)=0;
56 
58  virtual Bool_t IsNoiseOnly() const=0;
60  virtual void NoiseOnly(Bool_t /*value*/=kTRUE) { }
61 
63  virtual Bool_t IsEfficiencyApplied() const=0;
65  virtual void EfficiencyApplied(Bool_t /*value*/=kTRUE) {}
66 
68  virtual Bool_t IsCalibrated() const=0;
70  virtual void Calibrated(Bool_t value)=0;
71 
73  virtual Bool_t IsChargeInFC() const { return kFALSE; }
75  virtual void ChargeInFC(Bool_t value=kTRUE)=0;
76 
78  virtual Bool_t IsConverted() const { return kFALSE; }
79 
81  virtual Bool_t IsUsed() const = 0;
83  virtual void Used(Bool_t value) = 0;
84 
86  virtual UInt_t StatusMap() const=0;
88  virtual void SetStatusMap(UInt_t statusMap)=0;
89 
91  virtual void SetADC(Int_t adc)=0;
93  virtual void SetPadXY(Int_t padx, Int_t pady)=0;
95  virtual void SetCharge(Float_t q)=0;
97  virtual void AddCharge(Float_t q) { SetCharge(Charge()+q); }
98 
100  virtual Bool_t MergeWith(const AliMUONVDigit& other)=0;
101 
103  virtual Bool_t IsTracker() const { return !IsTrigger(); }
107  virtual Bool_t IsTrigger() const { return DetElemId()>=1100; }
108 
109  virtual void Print(Option_t* opt="") const;
110 
112 
114  virtual Bool_t HasMCInformation() const = 0;
115 
117  virtual Int_t Hit() const { return 0; }
119  virtual void SetHit(Int_t /*n*/) { }
121  virtual Float_t Time() const {return 0;}
123  virtual void SetTime(Float_t /*t*/) { }
125  virtual Int_t Ntracks() const { return 0; }
127  virtual void AddTrack(Int_t /*trackNumber*/, Float_t /*trackCharge*/) {}
129  virtual Int_t Track(Int_t /*i*/) const { return 0; }
131  virtual Float_t TrackCharge(Int_t /*i*/) const { return 0; }
133  virtual void PatchTracks(Int_t /*mask*/) {}
134 
135  static UInt_t BuildUniqueID(Int_t detElemId, Int_t manuId,
136  Int_t manuChannel, Int_t cathode);
137 
138  static void DecodeUniqueID(UInt_t uniqueID,
139  Int_t& detElemId, Int_t& manuId,
140  Int_t& manuChannel, Int_t& cathode);
141 
142  static Int_t DetElemId(UInt_t uniqueID);
143  static Int_t ManuId(UInt_t uniqueID);
144  static Int_t ManuChannel(UInt_t uniqueID);
145  static Int_t Cathode(UInt_t uniqueID);
146 
148  static Int_t LocalBoardNumber(UInt_t uniqueID) { return ManuId(uniqueID); }
150  static Int_t LocalBoardChannel(UInt_t uniqueID) { return ManuChannel(uniqueID); }
151 
152 
153  ClassDef(AliMUONVDigit,0) // ABC of a MUON Digit
154 };
155 
156 #endif
virtual void EfficiencyApplied(Bool_t=kTRUE)
Set the efficiencyApplied status.
Definition: AliMUONVDigit.h:65
virtual Int_t ManuChannel() const =0
The channel within ManuId() this digit belongs to (manuChannel for tracker, localBoardChannel for tri...
virtual UInt_t StatusMap() const =0
A word describing the status of the neighbours of this digit.
virtual Int_t Hit() const
Hit number that contributed to this simulated digit.
virtual Int_t PadY() const =0
The y-index of this digit (>=0)
virtual Float_t TrackCharge(Int_t) const
Return the i-th track charge.
virtual void SetStatusMap(UInt_t statusMap)=0
Set the statusMap.
static Int_t LocalBoardNumber(UInt_t uniqueID)
Return the localBoardNumber from the uniqueID.
static void DecodeUniqueID(UInt_t uniqueID, Int_t &detElemId, Int_t &manuId, Int_t &manuChannel, Int_t &cathode)
virtual const char * GetName() const
virtual Int_t ADC() const =0
Raw ADC value of this digit.
virtual Bool_t IsTrigger() const
virtual Int_t Track(Int_t) const
Return the i-th track number.
virtual void ChargeInFC(Bool_t value=kTRUE)=0
Set the unit value (see note 1 in AliMUONVDigit.cxx)
virtual void Calibrated(Bool_t value)=0
Set the calibrated status (see note 1 in AliMUONVDigit.cxx)
virtual void AddTrack(Int_t, Float_t)
Add a track (and its charge) to the list of tracks we handle.
virtual Bool_t IsChargeInFC() const
Whether this digit has charge in femto coulomb (see note 1 in AliMUONVDigit.cxx)
Definition: AliMUONVDigit.h:73
virtual void SetCharge(Float_t q)=0
Set the charge of this digit.
virtual Float_t Charge() const =0
The charge of this digit, calibrated or not depending on IsCalibrated()
virtual Bool_t IsCalibrated() const =0
Whether this digit has been calibrated or not (see note 1 in AliMUONVDigit.cxx)
virtual Bool_t IsEqual(const TObject *object) const
virtual Int_t DetElemId() const =0
The detection element this digit belongs to.
virtual void NoiseOnly(Bool_t=kTRUE)
Set the noiseOnly status.
Definition: AliMUONVDigit.h:60
virtual void Used(Bool_t value)=0
Set the used status.
virtual Bool_t IsConverted() const
Whether or not this digit was obtained from a conversion (e.g. real to simulated) ...
Definition: AliMUONVDigit.h:78
virtual ~AliMUONVDigit()
virtual Bool_t HasMCInformation() const =0
Below are methods only relevant for MC digigts.
virtual void AddCharge(Float_t q)
Add a charge.
Definition: AliMUONVDigit.h:97
virtual Bool_t IsUsed() const =0
Whether this digit is used somewhere (typically in a cluster)
virtual void SetADC(Int_t adc)=0
Set the ADC value.
virtual Int_t Cathode() const =0
Cathode number this digit is on (0 or 1)
virtual void SetTime(Float_t)
Set hit age.
virtual void SetPadXY(Int_t padx, Int_t pady)=0
Set the ix and iy of this digit.
virtual Int_t PadX() const =0
The x-index of this digit (>=0)
virtual Float_t Time() const
Hit age.
virtual Bool_t IsNoiseOnly() const =0
Whether this (simulated) digit is purely noise.
virtual Bool_t IsTracker() const
Whether this digit is a tracker digit (false if belongs to trigger)
virtual Bool_t IsEfficiencyApplied() const =0
Whether this (simulated) digit got corrected by chamber efficiency.
static UInt_t BuildUniqueID(Int_t detElemId, Int_t manuId, Int_t manuChannel, Int_t cathode)
virtual Int_t Ntracks() const
Number of tracks contributing to this digit.
virtual void Print(Option_t *opt="") const
static Int_t LocalBoardChannel(UInt_t uniqueID)
Return the localBoardChannel from the uniqueID.
virtual Bool_t IsSortable() const
Advertise that we can be sorted in TCollections.
Definition: AliMUONVDigit.h:27
virtual void Saturated(Bool_t saturated=kTRUE)=0
Set the saturation status.
virtual Int_t ManuId() const =0
The electronic card id this digit belongs to (manuId for tracker, localboardId for trigger) ...
ABC of a MUON digit.
Definition: AliMUONVDigit.h:18
virtual Bool_t IsSaturated() const =0
Whether the ADC has saturated.
virtual Bool_t MergeWith(const AliMUONVDigit &other)=0
Merge this with other.
virtual void PatchTracks(Int_t)
Patch track with a mask.
virtual void SetHit(Int_t)
Set the hit number.
virtual Int_t Compare(const TObject *object) const