X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONGMSSubprocessor.cxx;h=027d1275bd7194de572ba392c03c9011764a3655;hb=80e562faf750dc609608d0023c8ce8fc9c621cb6;hp=3409188d8066d6a6f47305e33aca0e0551fd87a7;hpb=04aa997f6f4369d8372c2c8f93a73adff59b7eb6;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONGMSSubprocessor.cxx b/MUON/AliMUONGMSSubprocessor.cxx index 3409188d806..027d1275bd7 100644 --- a/MUON/AliMUONGMSSubprocessor.cxx +++ b/MUON/AliMUONGMSSubprocessor.cxx @@ -25,20 +25,22 @@ #include "AliMUONPreprocessor.h" #include "AliCDBMetaData.h" -#include "AliLog.h" #include #include #include +#include #include +/// \cond CLASSIMP ClassImp(AliMUONGMSSubprocessor) +/// \endcond const Int_t AliMUONGMSSubprocessor::fgkSystem = AliPreprocessor::kDAQ; const TString AliMUONGMSSubprocessor::fgkDataId = "GMS"; const TString AliMUONGMSSubprocessor::fgkMatrixArrayName = "GMSarray"; -//______________________________________________________________________________________________ +//______________________________________________________________________________ AliMUONGMSSubprocessor::AliMUONGMSSubprocessor(AliMUONPreprocessor* master) : AliMUONVSubprocessor(master, "GMS", "Upload GMS matrices to OCDB"), fTransformer(true) @@ -47,33 +49,37 @@ AliMUONGMSSubprocessor::AliMUONGMSSubprocessor(AliMUONPreprocessor* master) fTransformer.ReadGeometryData("volpath.dat", "transform.dat"); } -//______________________________________________________________________________________________ +//______________________________________________________________________________ AliMUONGMSSubprocessor::~AliMUONGMSSubprocessor() { /// Destructor } -//______________________________________________________________________________________________ -UInt_t AliMUONGMSSubprocessor::Process(TMap* /*dcsAliasMap*/) + +// +// private methods +// + + +//______________________________________________________________________________ +UInt_t AliMUONGMSSubprocessor::ProcessFile(const TString& fileName) { /// Convert TGeoHMatrix to AliAlignObjMatrix and fill them into AliTestDataDCS object - const char* fileName - = Master()->GetFile(fgkSystem, fgkDataId, fgkDataId); - if ( ! fileName) { - AliErrorStream() << "File not found" << endl; - return 1; - } + Master()->Log(Form("Processing GMS file %s", fileName.Data())); // Open root file - TFile f(fileName); + TFile f(fileName.Data()); + if ( ! f.IsOpen() ) { + Master()->Log(Form("Cannot open file %s",fileName.Data())); + return 1; + } // Get array with matrices TClonesArray* array = (TClonesArray*)f.Get(fgkMatrixArrayName); if ( ! array ) { - AliErrorStream() << "TClonesArray with not found in file " - << fileName << endl; - return 1; + Master()->Log(Form("TClonesArray not found in file %s",fileName.Data())); + return 2; } // Convert matrices into Alice alignment objects @@ -84,16 +90,41 @@ UInt_t AliMUONGMSSubprocessor::Process(TMap* /*dcsAliasMap*/) TObject* data = const_cast< TClonesArray*>(fTransformer.GetMisAlignmentData()); //Now we have to store the final CDB file + Master()->Log("Storing GMS"); AliCDBMetaData metaData; metaData.SetBeamPeriod(0); metaData.SetResponsible(""); metaData.SetComment("This preprocessor fills GMS alignment objects."); - UInt_t result = Master()->Store("SHUTTLE", "GMS", data, &metaData, 0, 0); + Bool_t result = Master()->Store("SHUTTLE", "GMS", data, &metaData, 0, 0); // Clear MisAlignArray in transformer fTransformer.ClearMisAlignmentData(); + return (result!=kTRUE); +} + +// +// public methods +// + + +//______________________________________________________________________________ +UInt_t AliMUONGMSSubprocessor::Process(TMap* /*dcsAliasMap*/) +{ +/// Process GMS alignment files. +/// Return failure (0) in case procession of some file has failed + + UInt_t result = 1; + TList* sources = Master()->GetFileSources(fgkSystem, fgkDataId); + TIter next(sources); + TObjString* o(0x0); + while ( ( o = static_cast(next()) ) ) { + TString fileName(Master()->GetFile(fgkSystem, fgkDataId, o->GetName())); + result *= ProcessFile(fileName); + } + delete sources; + return result; }