//______________________________________________________________________________
AliMUONGMSSubprocessor::AliMUONGMSSubprocessor(AliMUONPreprocessor* master)
: AliMUONVSubprocessor(master, "GMS", "Upload GMS matrices to OCDB"),
- fTransformer()
+ fTransformer(0)
{
/// Constructor
- fTransformer.CreateModules();
}
//______________________________________________________________________________
AliMUONGMSSubprocessor::~AliMUONGMSSubprocessor()
{
/// Destructor
+
+ delete fTransformer;
}
//
+//______________________________________________________________________________
+void AliMUONGMSSubprocessor::Initialize(Int_t /*run*/,
+ UInt_t /*startTime*/, UInt_t /*endTime*/)
+{
+/// Instantiate geometry transformer
+
+ if ( ! fTransformer ) {
+ fTransformer = new AliMUONGeometryTransformer();
+ fTransformer->CreateModules();
+ }
+}
+
//______________________________________________________________________________
UInt_t AliMUONGMSSubprocessor::ProcessFile(const TString& fileName)
{
// Convert matrices into Alice alignment objects
for (Int_t i=0; i<array->GetEntriesFast(); i++ ) {
TGeoHMatrix* matrix = (TGeoHMatrix*)array->At(i);
- fTransformer.AddMisAlignModule(matrix->GetUniqueID(), *matrix);
+ fTransformer->AddMisAlignModule(matrix->GetUniqueID(), *matrix);
}
- TObject* data = const_cast< TClonesArray*>(fTransformer.GetMisAlignmentData());
+ TObject* data = const_cast< TClonesArray*>(fTransformer->GetMisAlignmentData());
//Now we have to store the final CDB file
Master()->Log("Storing GMS");
Bool_t result = Master()->Store("SHUTTLE", "GMS", data, &metaData, 0, 0);
// Clear MisAlignArray in transformer
- fTransformer.ClearMisAlignmentData();
+ fTransformer->ClearMisAlignmentData();
return (result!=kTRUE);
}
virtual ~AliMUONGMSSubprocessor();
// methods
+ virtual void Initialize(Int_t run, UInt_t startTime, UInt_t endTime);
virtual UInt_t Process(TMap* /*dcsAliasMap*/);
private:
static const TString fgkMatrixArrayName; ///< The fixed matrix array name
// data members
- AliMUONGeometryTransformer fTransformer;///< Geometry transformer
+ AliMUONGeometryTransformer* fTransformer; ///< Geometry transformer
ClassDef(AliMUONGMSSubprocessor, 1) // Shuttle sub-processor for GMS
};