AliRoot Core  3dc7879 (3dc7879)
AliMUON.h
Go to the documentation of this file.
1 #ifndef ALIMUON_H
2 #define ALIMUON_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 /* $Id$ */
7 // Revision of includes 12/01/2009
8 
13 
14 
15 #include "AliDetector.h"
16 #include "AliMUONChamber.h"
17 #include "AliMUONTrigger.h"
18 
19 #include <TString.h>
20 
21 class AliMUONResponse;
22 class AliMUONGeometry;
25 class AliMUONRawWriter;
27 class AliMUONDigitMaker;
28 class AliMUONVHitStore;
31 class AliMUONRecoParam;
32 
33 class AliLoader;
34 
35 class TObjArray;
36 
37 class AliMUON : public AliDetector
38 {
39  public:
40  AliMUON();
41  AliMUON(const char* name, const char* title);
42  virtual ~AliMUON();
43 
44  // Geometry
46  void ResetGeometryBuilder();
47 
48 
53 
54  // MUONLoader definition
55  virtual AliLoader* MakeLoader(const char* topfoldername); //builds standard getter (AliLoader type)
56 
57  virtual void SetTreeAddress();
58 
60  virtual void SetSplitLevel(Int_t SplitLevel) {fSplitLevel=SplitLevel;}
61 
62  // Digitisation
63  virtual AliDigitizer* CreateDigitizer(AliDigitizationInput* digInput) const;
64  virtual void SDigits2Digits();
65  virtual void Hits2SDigits();
66  virtual void Digits2Raw();
67  virtual Bool_t Raw2SDigits(AliRawReader* rawReader);
68 
69  // Trigger
72  { return new AliMUONTrigger(); }
73 
74 
75  // Configuration Methods (per station id)
76  //
77  // Set Signal Generation Parameters
78  virtual void SetSigmaIntegration(Int_t id, Float_t p1);
79  virtual void SetChargeSlope(Int_t id, Float_t p1);
80  virtual void SetChargeSpread(Int_t id, Float_t p1, Float_t p2);
81  virtual void SetMaxAdc(Int_t id, Int_t p1);
82  // Set Response Model
83  virtual void SetResponseModel(Int_t id, const AliMUONResponse& response);
84 
85  // Set Stepping Parameters
86  virtual void SetMaxStepGas(Float_t p1);
87  virtual void SetMaxStepAlu(Float_t p1);
88  virtual void SetMaxDestepGas(Float_t p1);
89  virtual void SetMaxDestepAlu(Float_t p1);
90 
91  // Get Stepping Parameters
92  virtual Float_t GetMaxStepGas() const;
93  virtual Float_t GetMaxStepAlu() const;
94  virtual Float_t GetMaxDestepGas() const;
95  virtual Float_t GetMaxDestepAlu() const;
96 
97  // Set alignement option
98  virtual void SetAlign(Bool_t align = true);
99  virtual void SetAlign(const TString& fileName, Bool_t align = true);
100 
102  virtual void SetIsMaxStep(Bool_t isMaxStep) { fIsMaxStep = isMaxStep; }
103 
105  virtual void SetTriggerScalerEvent(Bool_t scaler = true){fTriggerScalerEvent = scaler;}
106 
108  virtual void SetTriggerResponseV1(Int_t trigResV1 = 0)
109  { fTriggerResponseV1 = trigResV1; }
110  virtual Int_t GetTriggerResponseV1() const;
112  virtual void SetTriggerCoinc44(Int_t trigCoinc44 = 0)
113  { fTriggerCoinc44 = trigCoinc44; }
114  virtual Int_t GetTriggerCoinc44() const;
116  virtual void SetTriggerEffCells(Bool_t trigEffCells = true)
117  { fTriggerEffCells = trigEffCells; }
118  virtual Bool_t GetTriggerEffCells() const;
120  virtual void SetDigitizerWithNoise(Int_t digitizerWithNoise, Double_t nsigmas=4.0)
121  { fDigitizerWithNoise = digitizerWithNoise; fDigitizerNSigmas = nsigmas; }
122 
123  virtual Int_t GetDigitizerWithNoise() const;
124 
125  virtual Double_t GetDigitizerNSigmas() const { return fDigitizerNSigmas; }
126 
128  virtual void SetTailEffect(Bool_t isTailEffect) { fIsTailEffect=isTailEffect; }
129 
131  virtual void SetConvertTrigger(Bool_t convertTrigger = true) { fConvertTrigger = convertTrigger;}
132 
133  // Getters
135  virtual AliMUONChamber& Chamber(Int_t id)
136  {return *((AliMUONChamber *) (*fChambers)[id]);}
137 
138  virtual void MakeBranch(Option_t* opt=" ");
139  virtual void ResetHits();
140 
142  void SetDigitStoreClassName(const char* classname) { fDigitStoreConcreteClassName = classname; }
144  const TString DigitStoreClassName() const { return fDigitStoreConcreteClassName; }
145 
146  protected:
148  AliMUON(const AliMUON& rMUON);
150  AliMUON& operator = (const AliMUON& rhs);
151 
152  const AliMUONGeometry* GetGeometry() const;
153 
155 
156  Int_t fNCh;
157  Int_t fNTrackingCh;
158  Int_t fSplitLevel;
161 
162  //
163  Bool_t fAccCut;
164  Float_t fAccMin;
165  Float_t fAccMax;
166  //
167  // Stepping Parameters
168  Float_t fMaxStepGas;
169  Float_t fMaxStepAlu;
170  Float_t fMaxDestepGas;
171  Float_t fMaxDestepAlu;
172 
173  // Pad Iterator
174  Int_t fMaxIterPad;
175  Int_t fCurIterPad;
176 
177  // Options
178  Bool_t fIsMaxStep;
184  Double_t fDigitizerNSigmas;
185  Bool_t fIsTailEffect;
187 
189 
191 
193 
195 
197 
199 
200  ClassDef(AliMUON,26) // MUON Detector base class
201 };
202 #endif
203 
const AliMUONGeometry * GetGeometry() const
Definition: AliMUON.cxx:230
AliMUONVHitStore * fHitStore
! container of hits
Definition: AliMUON.h:192
virtual void SetTriggerEffCells(Bool_t trigEffCells=true)
Set trigger chamber efficiency by cells.
Definition: AliMUON.h:116
Reading Raw data class for trigger and tracker chambers.
const TString DigitStoreClassName() const
Return digit store class name.
Definition: AliMUON.h:144
Bool_t fAccCut
Transport acceptance cut.
Definition: AliMUON.h:163
AliMUONDigitCalibrator * fDigitCalibrator
! digit calibrator (for raw2sdigits)
Definition: AliMUON.h:198
Abstract base class for geometry construction per module(s)
Manager class for geometry construction via geometry builders.
Bool_t fConvertTrigger
Switch to enable trigger raw2sdigit conversion.
Definition: AliMUON.h:186
Int_t fNTrackingCh
Number of tracking chambers*.
Definition: AliMUON.h:157
virtual void SetDigitizerWithNoise(Int_t digitizerWithNoise, Double_t nsigmas=4.0)
Set off generation of noisy digits.
Definition: AliMUON.h:120
virtual Float_t GetMaxStepGas() const
Definition: AliMUON.cxx:387
Virtual store to hold digit.
#define TObjArray
AliTPCcalibAlign align
Definition: CalibAlign.C:43
virtual void ResetHits()
Definition: AliMUON.cxx:311
Float_t fAccMin
Minimum acceptance cut used during transport.
Definition: AliMUON.h:164
virtual Float_t GetMaxDestepGas() const
Definition: AliMUON.cxx:403
Int_t fMaxIterPad
Maximum pad index.
Definition: AliMUON.h:174
Int_t fSplitLevel
Splitlevel when making branches in outfiles.
Definition: AliMUON.h:158
Float_t fMaxStepGas
Maximum step size inside the chamber gas.
Definition: AliMUON.h:168
Top container class for geometry transformations.
MUON tracking chamber class.
virtual void SetAlign(Bool_t align=true)
Definition: AliMUON.cxx:419
virtual void SetMaxDestepGas(Float_t p1)
Definition: AliMUON.cxx:372
AliMUONRecoParam * GetRecoParam() const
Definition: AliMUON.cxx:651
virtual void SetIsMaxStep(Bool_t isMaxStep)
Set flag to inactivate calls to TVirtualMC::GetMC()->SetMaxStep.
Definition: AliMUON.h:102
virtual void SetSigmaIntegration(Int_t id, Float_t p1)
Definition: AliMUON.cxx:339
virtual Bool_t GetTriggerEffCells() const
Definition: AliMUON.cxx:631
virtual Bool_t Raw2SDigits(AliRawReader *rawReader)
Definition: AliMUON.cxx:520
TObjArray * fChambers
List of Tracking Chambers.
Definition: AliMUON.h:159
virtual AliMUONChamber & Chamber(Int_t id)
Return reference to Chamber id.
Definition: AliMUON.h:135
AliDetector class for MUON subsystem providing simulation data management.
Definition: AliMUON.h:37
virtual AliLoader * MakeLoader(const char *topfoldername)
Return segmentation.
Definition: AliMUON.cxx:582
Class with MUON reconstruction parameters.
virtual void SetTailEffect(Bool_t isTailEffect)
Parametrised tail effect in resolution histogram.
Definition: AliMUON.h:128
AliMUON()
Definition: AliMUON.cxx:85
virtual void SetTriggerScalerEvent(Bool_t scaler=true)
Set scaler event for trigger.
Definition: AliMUON.h:105
Bool_t fIsTailEffect
Switch to turn on/off the tail effect.
Definition: AliMUON.h:185
virtual void SetSplitLevel(Int_t SplitLevel)
Set split level for making branches in outfiles.
Definition: AliMUON.h:60
TString fileName(const char *dir, int runNumber, const char *da, int i, const char *type)
virtual void SetConvertTrigger(Bool_t convertTrigger=true)
Enable trigger raw2sdigits conversion.
Definition: AliMUON.h:131
virtual void SetMaxAdc(Int_t id, Int_t p1)
Definition: AliMUON.cxx:348
virtual Int_t GetTriggerCoinc44() const
Definition: AliMUON.cxx:621
void AddGeometryBuilder(AliMUONVGeometryBuilder *geomBuilder)
Definition: AliMUON.cxx:222
virtual void SetMaxStepGas(Float_t p1)
Definition: AliMUON.cxx:358
Int_t fTriggerCoinc44
Flag to select TriggerCoinc44.
Definition: AliMUON.h:181
virtual void SetResponseModel(Int_t id, const AliMUONResponse &response)
Definition: AliMUON.cxx:435
Double_t fDigitizerNSigmas
nsigma cut for noise generation
Definition: AliMUON.h:184
void SetDigitStoreClassName(const char *classname)
Set digit store class name.
Definition: AliMUON.h:142
virtual AliTriggerDetector * CreateTriggerDetector() const
Create trigger.
Definition: AliMUON.h:71
MUON trigger detector class.
Float_t fMaxStepAlu
Maximum step size inside the chamber aluminum.
Definition: AliMUON.h:169
Int_t fTriggerResponseV1
Flag to select TriggerResponseV1 (for cluster size in MTR)
Definition: AliMUON.h:180
Float_t fMaxDestepGas
Maximum relative energy loss in gas.
Definition: AliMUON.h:170
Class to calibrate the digits.
virtual Int_t GetDigitizerWithNoise() const
Definition: AliMUON.cxx:641
virtual void SetTreeAddress()
Definition: AliMUON.cxx:290
AliMUON & operator=(const AliMUON &rhs)
Not implemented.
virtual Int_t GetTriggerResponseV1() const
Definition: AliMUON.cxx:611
const AliMUONGeometryTransformer * GetGeometryTransformer() const
Definition: AliMUON.cxx:243
Bool_t fTriggerScalerEvent
Flag to generates scaler event.
Definition: AliMUON.h:179
Container class for geometry modules.
void ResetGeometryBuilder()
Definition: AliMUON.cxx:596
Raw data class for trigger and tracker chambers.
virtual void SetTriggerCoinc44(Int_t trigCoinc44=0)
Set trigger coinc44.
Definition: AliMUON.h:112
AliMUONGeometryBuilder * fGeometryBuilder
Geometry builder.
Definition: AliMUON.h:160
AliMUONGeometryBuilder * GetGeometryBuilder() const
Return geometry builder.
Definition: AliMUON.h:50
AliMUONDigitMaker * fDigitMaker
! pointer to the digit maker class
Definition: AliMUON.h:190
Single entry point to access MUON calibration data.
Chamber response base class.
virtual Float_t GetMaxStepAlu() const
Definition: AliMUON.cxx:395
AliMUONCalibrationData * fCalibrationData
pointer of calibration data
Definition: AliMUON.h:196
Bool_t fTriggerEffCells
Flag to select TriggerEffCells.
Definition: AliMUON.h:182
virtual Float_t GetMaxDestepAlu() const
Definition: AliMUON.cxx:411
Int_t fNCh
Number of chambers.
Definition: AliMUON.h:156
virtual void SetMaxStepAlu(Float_t p1)
Definition: AliMUON.cxx:365
virtual void SDigits2Digits()
Definition: AliMUON.cxx:453
virtual void Digits2Raw()
Definition: AliMUON.cxx:473
virtual void MakeBranch(Option_t *opt=" ")
Definition: AliMUON.cxx:256
virtual ~AliMUON()
Definition: AliMUON.cxx:207
Float_t fMaxDestepAlu
Maximum relative energy loss in aluminum.
Definition: AliMUON.h:171
virtual void SetMaxDestepAlu(Float_t p1)
Definition: AliMUON.cxx:379
virtual AliDigitizer * CreateDigitizer(AliDigitizationInput *digInput) const
Definition: AliMUON.cxx:442
virtual void SetChargeSpread(Int_t id, Float_t p1, Float_t p2)
Definition: AliMUON.cxx:330
virtual Double_t GetDigitizerNSigmas() const
Definition: AliMUON.h:125
TString fDigitStoreConcreteClassName
to be able to select what the sdigitizer uses
Definition: AliMUON.h:194
virtual void SetChargeSlope(Int_t id, Float_t p1)
Definition: AliMUON.cxx:320
Int_t fCurIterPad
Current pad index.
Definition: AliMUON.h:175
Int_t fDigitizerWithNoise
Flag to switch on/off generation of noisy digits.
Definition: AliMUON.h:183
Float_t fAccMax
Minimum acceptance cut used during transport.
Definition: AliMUON.h:165
AliMUONRawWriter * fRawWriter
! Raw data writer
Definition: AliMUON.h:188
virtual void SetTriggerResponseV1(Int_t trigResV1=0)
Set trigger response version.
Definition: AliMUON.h:108
Bool_t fIsMaxStep
Flag to inactivate calls to TVirtualMC::GetMC()->SetMaxStep.
Definition: AliMUON.h:178
virtual void Hits2SDigits()
Definition: AliMUON.cxx:464