#include "AliMUONSDigitizerV2.h"
#include "AliMUONDigitizerV3.h"
+#include "AliMUONSt1GeometryBuilderV2.h"
+#include "AliMUONSt2GeometryBuilderV2.h"
+#include "AliMUONSlatGeometryBuilder.h"
+#include "AliMUONTriggerGeometryBuilder.h"
+
// Defaults parameters for Z positions of chambers
// taken from values for "stations" in AliMUON::AliMUON
// const Float_t zch[7]={528, 690., 975., 1249., 1449., 1610, 1710.};
fCurIterPad(0),
fTriggerScalerEvent(kFALSE),
fSDigitizerType(""),
- fDigitizerType("")
+ fDigitizerType(""),
+ fRawWriter(0x0)
{
// Default Constructor
//
fCurIterPad(0),
fTriggerScalerEvent(kFALSE),
fSDigitizerType(sDigitizerClassName),
- fDigitizerType(digitizerClassName)
+ fDigitizerType(digitizerClassName),
+ fRawWriter(0x0)
{
AliDebug(1,Form("ctor this=%p",this));
fIshunt = 0;
fGeometryBuilder
->AddBuilder(new AliMUONCommonGeometryBuilder(this));
-//
-// Creating List of Chambers
+ // By default, add also all the needed geometry builders.
+ // If you want to change this from outside, please use ResetGeometryBuilder
+ // method, followed by AddGeometryBuilder ones.
+
+ AddGeometryBuilder(new AliMUONSt1GeometryBuilderV2(this));
+ AddGeometryBuilder(new AliMUONSt2GeometryBuilderV2(this));
+ AddGeometryBuilder(new AliMUONSlatGeometryBuilder(this));
+ AddGeometryBuilder(new AliMUONTriggerGeometryBuilder(this));
+
+ //
+ // Creating List of Chambers
Int_t ch;
fChambers = new TObjArray(AliMUONConstants::NCh());
delete fMUONData;
delete fGeometryBuilder;
delete fSegmentation;
+ delete fRawWriter;
}
//________________________________________________________________________
void AliMUON::Digits2Raw()
{
// convert digits of the current event to raw data
- AliMUONRawWriter rawData(fLoader,fMUONData);
-
- if (fTriggerScalerEvent == kTRUE) rawData.SetScalerEvent();
- if (!rawData.Digits2Raw()) AliInfo("pb writting raw data");
+ if (!fRawWriter)
+ {
+ fRawWriter = new AliMUONRawWriter(fMUONData);
+ if (fTriggerScalerEvent == kTRUE)
+ {
+ fRawWriter->SetScalerEvent();
+ }
+ }
+
+ if (!fRawWriter->Digits2Raw())
+ {
+ AliError("pb writting raw data");
+ }
}
//_______________________________________________________________________
return mRaw;
}
-//________________________________________________________________________
+//________________________________________________________________________
+void
+AliMUON::ResetGeometryBuilder()
+{
+ // Only to be used by "experts" wanting to change the geometry builders
+ // to be used.
+ // As the ctor of AliMUON now defines a default geometrybuilder, this
+ // ResetGeometryBuilder() must be called prior to call the
+ // AddGeometryBuilder()
+ delete fGeometryBuilder;
+ fGeometryBuilder = new AliMUONGeometryBuilder(this);
+ fGeometryBuilder
+ ->AddBuilder(new AliMUONCommonGeometryBuilder(this));
+}
class AliMUONGeometry;
class AliMUONGeometryTransformer;
class AliMUONGeometryBuilder;
+class AliMUONRawWriter;
class AliMUONVGeometryBuilder;
class AliESD;
{
public:
AliMUON();
- AliMUON(const char *name, const char *title,
- const char* sDigitizerType="sdigitizer:default",
- const char* digitizerType="digitizer:default");
- virtual ~AliMUON();
+ AliMUON(const char* name, const char *title="FactoryV4",
+ const char* sDigitizerType="sdigitizer:AliMUONSDigitizerV2",
+ const char* digitizerType="digitizer:NewDigitizerOldTrigger");
+ virtual ~AliMUON();
// Geometry
- void AddGeometryBuilder(AliMUONVGeometryBuilder* geomBuilder);
+ void AddGeometryBuilder(AliMUONVGeometryBuilder* geomBuilder);
+ void ResetGeometryBuilder();
+
virtual void BuildGeometry();
virtual Int_t IsVersion() const {return 0;}
TString fSDigitizerType; // Class to use for SDigitizer
TString fDigitizerType; // Class to use for Digitizer
- ClassDef(AliMUON,11) // MUON Detector base class
+ AliMUONRawWriter* fRawWriter; //!
+
+ ClassDef(AliMUON,12) // MUON Detector base class
};
#endif