Fixed compiler warnings:
authorihrivnac <Ivana.Hrivnacova@cern.ch>
Wed, 9 Jul 2014 15:29:41 +0000 (17:29 +0200)
committerihrivnac <Ivana.Hrivnacova@cern.ch>
Wed, 9 Jul 2014 15:29:41 +0000 (17:29 +0200)
- removed fkDataStreams data member from reader classes and pass data stream
  via functions arguments
- added fixed test of result in AliMpDDLStore::SetPatchModules
  (causing warning about unused parameter)

17 files changed:
MUON/mapping/AliMpDDLStore.cxx
MUON/mapping/AliMpDDLStore.h
MUON/mapping/AliMpDEStore.cxx
MUON/mapping/AliMpDEStore.h
MUON/mapping/AliMpDEVisu.cxx
MUON/mapping/AliMpManuStore.cxx
MUON/mapping/AliMpManuStore.h
MUON/mapping/AliMpMotifReader.cxx
MUON/mapping/AliMpMotifReader.h
MUON/mapping/AliMpSectorReader.cxx
MUON/mapping/AliMpSectorReader.h
MUON/mapping/AliMpSegmentation.cxx
MUON/mapping/AliMpSegmentation.h
MUON/mapping/AliMpSt345Reader.cxx
MUON/mapping/AliMpSt345Reader.h
MUON/mapping/AliMpTriggerReader.cxx
MUON/mapping/AliMpTriggerReader.h

index b5feea3..53b59b4 100644 (file)
@@ -126,7 +126,6 @@ AliMpDDLStore* AliMpDDLStore::ReadData(const AliMpDataStreams& dataStreams,
 //______________________________________________________________________________
 AliMpDDLStore::AliMpDDLStore(const AliMpDataStreams& dataStreams)
         : TObject(),
-        fkDataStreams(dataStreams),
         fDDLs(fgkNofDDLs+fgkNofTriggerDDLs), // FIXEME
         fBusPatches(),
         fManuList12(),
@@ -145,19 +144,18 @@ AliMpDDLStore::AliMpDDLStore(const AliMpDataStreams& dataStreams)
     AliMpSegmentation::ReadData(dataStreams, true);
     
   // Create all detection elements
-  ReadDDLs();
-  ReadTrigger();
+  ReadDDLs(dataStreams);
+  ReadTrigger(dataStreams);
   SetTriggerDDLs();
   SetManus();
-  ReadBusPatchSpecial();
+  ReadBusPatchSpecial(dataStreams);
   SetPatchModules();
-  ReadBusPatchInfo();
+  ReadBusPatchInfo(dataStreams);
 }
 
 //______________________________________________________________________________
 AliMpDDLStore::AliMpDDLStore(TRootIOCtor* ioCtor)
         : TObject(),
-        fkDataStreams(ioCtor),
         fDDLs(),
         fBusPatches(ioCtor),
         fRegionalTrigger(ioCtor)
@@ -220,12 +218,12 @@ Int_t AliMpDDLStore::GetBusPatchIndex(Int_t detElemId, Int_t manuId) const
 }
 
 //______________________________________________________________________________
-Bool_t AliMpDDLStore::ReadDDLs() 
+Bool_t AliMpDDLStore::ReadDDLs(const AliMpDataStreams& dataStreams)
 {
     /// Read ddl <-> bus patch file
 
     istream& in 
-      = fkDataStreams.
+      = dataStreams.
           CreateDataStream(AliMpFiles::BusPatchFilePath());
 
     char line[255];
@@ -312,11 +310,11 @@ Bool_t AliMpDDLStore::ReadDDLs()
 }
 
 //______________________________________________________________________________
-Bool_t  AliMpDDLStore::ReadTrigger() 
+Bool_t  AliMpDDLStore::ReadTrigger(const AliMpDataStreams& dataStreams)
 {
     /// create trigger DDL object and Global crate object
   
-  if ( ! fRegionalTrigger.ReadData(fkDataStreams) ) return false;
+  if ( ! fRegionalTrigger.ReadData(dataStreams) ) return false;
 
   return true;
 }
@@ -489,13 +487,13 @@ Bool_t AliMpDDLStore::SetManus()
 }
 
 //______________________________________________________________________________
-Bool_t AliMpDDLStore::ReadBusPatchSpecial()
+Bool_t AliMpDDLStore::ReadBusPatchSpecial(const AliMpDataStreams& dataStreams)
 {
 /// Read file with bus patches with a special order of manus
 /// and reset the manus arrays filled via SetManu function
 
   istream& in 
-    = fkDataStreams.
+    = dataStreams.
         CreateDataStream(AliMpFiles::BusPatchSpecialFilePath());
 
   char line[255];
@@ -593,6 +591,7 @@ Bool_t AliMpDDLStore::SetPatchModules()
                 newResult = busPatch->SetNofManusPerModule(fManuBridge2[GetManuListIndex(idDE)].At(i));
             else
                 newResult = busPatch->SetNofManusPerModule();
+            result = result && newResult;
         }
     }
 
@@ -600,12 +599,12 @@ Bool_t AliMpDDLStore::SetPatchModules()
 }
 
 //______________________________________________________________________________
-Bool_t AliMpDDLStore::ReadBusPatchInfo() 
+Bool_t AliMpDDLStore::ReadBusPatchInfo(const AliMpDataStreams& dataStreams)
 {
     /// read the buspatch info file and set buspatch info
 
     istream& in 
-      = fkDataStreams.
+      = dataStreams.
           CreateDataStream(AliMpFiles::BusPatchInfoFilePath());
 
     char line[255];
index e61cbe7..c3b5c1d 100644 (file)
@@ -88,13 +88,13 @@ class AliMpDDLStore : public  TObject {
     // methods
     Int_t  GetManuListIndex(Int_t detElemId) const;
     Int_t  GetBusPatchIndex(Int_t detElemId, Int_t manuId) const;
-    Bool_t ReadDDLs();
-    Bool_t ReadTrigger();
+    Bool_t ReadDDLs(const AliMpDataStreams& dataStreams);
+    Bool_t ReadTrigger(const AliMpDataStreams& dataStreams);
     Bool_t SetTriggerDDLs();
     Bool_t SetManus();
-    Bool_t ReadBusPatchSpecial();
+    Bool_t ReadBusPatchSpecial(const AliMpDataStreams& dataStreams);
     Bool_t SetPatchModules();
-    Bool_t ReadBusPatchInfo();
+    Bool_t ReadBusPatchInfo(const AliMpDataStreams& dataStreams);
     Int_t  GetLocalBoardId(TString name) const;
 
     // static data members     
@@ -103,7 +103,6 @@ class AliMpDDLStore : public  TObject {
     static const Int_t    fgkNofTriggerDDLs; ///< Total number of trigger DDLs
 
     // data members    
-    const AliMpDataStreams&  fkDataStreams;  //!< Data streams
     TObjArray     fDDLs;           ///< Array of DDL objects
     AliMpExMap    fBusPatches;     ///< The map of bus patches per their IDs
     TArrayI       fManuList12[16]; ///< Arrays of 1st manu in bus
index 091e94d..e04e302 100644 (file)
@@ -96,7 +96,6 @@ AliMpDEStore* AliMpDEStore::ReadData(const AliMpDataStreams& dataStreams,
 //______________________________________________________________________________
 AliMpDEStore::AliMpDEStore(const AliMpDataStreams& dataStreams)
 : TObject(),
-  fkDataStreams(dataStreams),
   fDetElements()
 {  
 /// Standard constructor
@@ -105,13 +104,12 @@ AliMpDEStore::AliMpDEStore(const AliMpDataStreams& dataStreams)
   fDetElements.SetOwner(true);
 
   // Create all detection elements
-  FillDEs();
+  FillDEs(dataStreams);
 }
 
 //______________________________________________________________________________
 AliMpDEStore::AliMpDEStore(TRootIOCtor* ioCtor)
 : TObject(),
-  fkDataStreams(ioCtor),
   fDetElements(ioCtor)
 {  
 /// Constructor for IO
@@ -153,7 +151,8 @@ Bool_t AliMpDEStore::IsPlaneType(const TString& planeTypeName)
 
 //______________________________________________________________________________
 Bool_t
-AliMpDEStore::ReadDENames(AliMp::StationType station, 
+AliMpDEStore::ReadDENames(const AliMpDataStreams& dataStreams,
+                          AliMp::StationType station,
                           AliMq::Station12Type station12)
 { 
 /// Read det element names for cath = 0 from the file specified by name
@@ -161,7 +160,7 @@ AliMpDEStore::ReadDENames(AliMp::StationType station,
 
   // Open stream
   istream& in 
-    = fkDataStreams.
+    = dataStreams.
         CreateDataStream(AliMpFiles::DENamesFilePath(station, station12));
   
   // Read plane types per cathods
@@ -265,14 +264,14 @@ AliMpDEStore::ReadDENames(AliMp::StationType station,
 }
 
 //______________________________________________________________________________
-void AliMpDEStore::FillDEs()
+void AliMpDEStore::FillDEs(const AliMpDataStreams& dataStreams)
 {
 /// Fill DE names from files
   AliDebugClass(2,"");
-  Bool_t result1 = ReadDENames(AliMp::kStation12, AliMq::kStation1);
-  Bool_t result2 = ReadDENames(AliMp::kStation12, AliMq::kStation2);
-  Bool_t result3 = ReadDENames(AliMp::kStation345);
-  Bool_t result4 = ReadDENames(AliMp::kStationTrigger);
+  Bool_t result1 = ReadDENames(dataStreams, AliMp::kStation12, AliMq::kStation1);
+  Bool_t result2 = ReadDENames(dataStreams, AliMp::kStation12, AliMq::kStation2);
+  Bool_t result3 = ReadDENames(dataStreams, AliMp::kStation345);
+  Bool_t result4 = ReadDENames(dataStreams, AliMp::kStationTrigger);
   
   Bool_t result = result1 && result2 && result3 && result4;
   if ( ! result ) {
index cd41a1d..bf28cd5 100644 (file)
@@ -55,16 +55,16 @@ class AliMpDEStore : public  TObject {
     // methods
     Bool_t IsPlaneType(const TString& planeTypeName);
  
-    Bool_t ReadDENames(AliMp::StationType stationType, 
+    Bool_t ReadDENames(const AliMpDataStreams& dataStreams,
+                       AliMp::StationType stationType,
                        AliMq::Station12Type station12Type = AliMq::kNotSt12);
-    void   FillDEs();
+    void   FillDEs(const AliMpDataStreams& dataStreams);
 
     // static data members     
     static AliMpDEStore* fgInstance;       ///< Singleton instance
     static const char    fgkCommentPrefix; ///< Comment prefix in DE names file
 
     // data members    
-    const AliMpDataStreams&  fkDataStreams; //!< Data streams
     AliMpExMap  fDetElements; ///< Map between DE Ids and DE objects
       
   ClassDef(AliMpDEStore,1)  // The manager class for definition of detection element types
index 2fd08e7..724213a 100644 (file)
@@ -447,9 +447,9 @@ void AliMpDEVisu::DrawSlat(Option_t* option, Bool_t popup)
 
   AliMpSlatMotifMap mm;
   
-  AliMpSt345Reader reader(dataStreams,&mm);  
-  AliMpSlat* slatCurrent = reader.ReadSlat(nameType.Data(), fCurrentPlane);
-  AliMpSlat* slatOther   = reader.ReadSlat(nameType.Data(), AliMp::OtherPlaneType(fCurrentPlane));
+  AliMpSt345Reader reader(&mm);
+  AliMpSlat* slatCurrent = reader.ReadSlat(dataStreams,nameType.Data(), fCurrentPlane);
+  AliMpSlat* slatOther   = reader.ReadSlat(dataStreams,nameType.Data(), AliMp::OtherPlaneType(fCurrentPlane));
   
   AliMpVPainter* painter = AliMpVPainter::CreatePainter(slatCurrent);
   painter->Draw(option);
@@ -481,11 +481,11 @@ void AliMpDEVisu::DrawQuadrant(Option_t* option, Bool_t popup)
 
   AliMpDataStreams dataStreams;
   
-  AliMpSectorReader readerCurrent(dataStreams, station, fCurrentPlane);
-  AliMpSector* sectorCurrent = readerCurrent.BuildSector();
+  AliMpSectorReader readerCurrent(station, fCurrentPlane);
+  AliMpSector* sectorCurrent = readerCurrent.BuildSector(dataStreams);
     
-  AliMpSectorReader readerOther(dataStreams, station, AliMp::OtherPlaneType(fCurrentPlane));
-  AliMpSector* sectorOther = readerOther.BuildSector();
+  AliMpSectorReader readerOther(station, AliMp::OtherPlaneType(fCurrentPlane));
+  AliMpSector* sectorOther = readerOther.BuildSector(dataStreams);
   
   AliMpVPainter *painter = AliMpVPainter::CreatePainter(sectorCurrent);
   painter->Draw(option);
index 6aeace1..fe9e891 100644 (file)
@@ -100,7 +100,6 @@ AliMpManuStore* AliMpManuStore::ReadData(const AliMpDataStreams& dataStreams,
 //______________________________________________________________________________
 AliMpManuStore::AliMpManuStore(const AliMpDataStreams& dataStreams)
 : TObject(),
-  fkDataStreams(dataStreams),
   fManuToSerialNbs(),
   fSerialNbToManus(),
   fNofManusInDE(),
@@ -118,13 +117,12 @@ AliMpManuStore::AliMpManuStore(const AliMpDataStreams& dataStreams)
      return;
   }      
 
-  ReadManuSerial();
+  ReadManuSerial(dataStreams);
 }
 
 //______________________________________________________________________________
-AliMpManuStore::AliMpManuStore(TRootIOCtor* ioCtor)
+AliMpManuStore::AliMpManuStore(TRootIOCtor* /*ioCtor*/)
 : TObject(),
-  fkDataStreams(ioCtor),
   fManuToSerialNbs(),
   fSerialNbToManus(),
   fNofManusInDE(),
@@ -151,7 +149,8 @@ AliMpManuStore::~AliMpManuStore()
 //
 
 //______________________________________________________________________________
-Bool_t AliMpManuStore::ReadData(const AliMpDetElement* de, Int_t& nofManus)
+Bool_t AliMpManuStore::ReadData(const AliMpDataStreams& dataStreams,
+                                const AliMpDetElement* de, Int_t& nofManus)
 {
 /// Read manu serial numbers for the given detection element
 
@@ -171,7 +170,7 @@ Bool_t AliMpManuStore::ReadData(const AliMpDetElement* de, Int_t& nofManus)
   static Int_t manuMask = AliMpConstants::ManuMask(AliMp::kNonBendingPlane);
 
   istream& in 
-    = fkDataStreams.
+    = dataStreams.
         CreateDataStream(
           AliMpFiles::ManuToSerialPath(deName, stationType, station12Type));
 
@@ -208,7 +207,7 @@ Bool_t AliMpManuStore::ReadData(const AliMpDetElement* de, Int_t& nofManus)
 }
 
 //______________________________________________________________________________
-Bool_t  AliMpManuStore::ReadManuSerial()
+Bool_t  AliMpManuStore::ReadManuSerial(const AliMpDataStreams& dataStreams)
 {
 /// Read data files for all detection elements.
 /// Return true if reading was successful.
@@ -222,7 +221,7 @@ Bool_t  AliMpManuStore::ReadManuSerial()
     AliMpDetElement* detElement = it.CurrentDE();
 
     Int_t nofManus;
-    Bool_t result = ReadData(detElement, nofManus);  
+    Bool_t result = ReadData(dataStreams, detElement, nofManus);
     fNofManusInDE.Add(detElement->GetId(), nofManus);
     fNofManus += nofManus;
     
index 30cf5ad..f58df84 100644 (file)
@@ -59,8 +59,9 @@ class AliMpManuStore : public  TObject {
     AliMpManuStore& operator=(const AliMpManuStore& rhs);
  
     // methods
-    Bool_t ReadData(const AliMpDetElement* detElement, Int_t& nofManus);
-    Bool_t ReadManuSerial();
+    Bool_t ReadData(const AliMpDataStreams& dataStreams,
+                    const AliMpDetElement* detElement, Int_t& nofManus);
+    Bool_t ReadManuSerial(const AliMpDataStreams& dataStreams);
     
     // not yet in use methods
     void   ReplaceManu(Int_t detElemId, Int_t manuId, Int_t serialNb);
@@ -71,7 +72,6 @@ class AliMpManuStore : public  TObject {
     static Bool_t          fgWarnIfDoublon; ///< Option to warn about doublons
 
     // data members    
-    const AliMpDataStreams& fkDataStreams; //!< Data streams
     mutable TExMap fManuToSerialNbs; ///< Map from manuId to serial #   
     mutable TExMap fSerialNbToManus; ///< Map manu serial # to manuId
     mutable TExMap fNofManusInDE;    ///< Number of manus with serial nbs in DE
index d1e8d81..b3c20c7 100644 (file)
@@ -51,12 +51,10 @@ ClassImp(AliMpMotifReader)
 /// \endcond
 
 //_____________________________________________________________________________
-AliMpMotifReader::AliMpMotifReader(const AliMpDataStreams& dataStreams,
-                                   AliMp::StationType station, 
+AliMpMotifReader::AliMpMotifReader(AliMp::StationType station,
                                    AliMq::Station12Type station12,
-                                   AliMp::PlaneType plane) 
+                                   AliMp::PlaneType plane)
   : TObject(),
-    fkDataStreams(dataStreams),
     fStationType(station),
     fStation12Type(station12),
     fPlaneType(plane)
@@ -75,7 +73,9 @@ AliMpMotifReader::~AliMpMotifReader()
 //
 
 //_____________________________________________________________________________
-AliMpMotifType* AliMpMotifReader::BuildMotifType(const TString& motifTypeId)
+AliMpMotifType* AliMpMotifReader::BuildMotifType(
+                                       const AliMpDataStreams& dataStreams,
+                                       const TString& motifTypeId)
 {
 /// Read the streams describing a motif in the "$MINSTALL/data" directory
 /// and fill the AliMpMotifType structure with.
@@ -85,15 +85,15 @@ AliMpMotifType* AliMpMotifReader::BuildMotifType(const TString& motifTypeId)
   // Open streams
   //
   istream& padPosStream 
-    = fkDataStreams.
+    = dataStreams.
         CreateDataStream(AliMpFiles::PadPosFilePath(
                             fStationType, fStation12Type, fPlaneType, motifTypeId));
   istream& bergToGCStream 
-    = fkDataStreams.
+    = dataStreams.
         CreateDataStream(AliMpFiles::BergToGCFilePath(fStationType, fStation12Type));
       
   istream& motifTypeStream 
-    = fkDataStreams.
+    = dataStreams.
         CreateDataStream(AliMpFiles::MotifFilePath(
                             fStationType, fStation12Type, fPlaneType, motifTypeId));
 
@@ -242,7 +242,8 @@ AliMpMotifType* AliMpMotifReader::BuildMotifType(const TString& motifTypeId)
 
 //_____________________________________________________________________________
 AliMpMotifSpecial*  
-AliMpMotifReader::BuildMotifSpecial(const TString& motifID,
+AliMpMotifReader::BuildMotifSpecial(const AliMpDataStreams& dataStreams,
+                                    const TString& motifID,
                                     AliMpMotifType* motifType,
                                     Double_t scale)
 {
@@ -252,7 +253,7 @@ AliMpMotifReader::BuildMotifSpecial(const TString& motifID,
   // Open streams
   //
   istream& in 
-    = fkDataStreams.
+    = dataStreams.
         CreateDataStream(AliMpFiles::MotifSpecialFilePath(
                              fStationType, fStation12Type, fPlaneType, motifID));
 
index f284e1f..0ac800a 100644 (file)
@@ -34,15 +34,16 @@ class AliMpDataStreams;
 class AliMpMotifReader : public TObject
 {
   public:
-    AliMpMotifReader(const AliMpDataStreams& dataStreams,
-                     AliMp::StationType station, 
+    AliMpMotifReader(AliMp::StationType station,
                      AliMq::Station12Type station12,
                      AliMp::PlaneType plane);
     virtual ~AliMpMotifReader();
   
     // methods   
-    AliMpMotifType*     BuildMotifType(const TString& motifTypeId);
-    AliMpMotifSpecial*  BuildMotifSpecial(const TString& motifID,
+    AliMpMotifType*     BuildMotifType(const AliMpDataStreams& dataStreams,
+                                       const TString& motifTypeId);
+    AliMpMotifSpecial*  BuildMotifSpecial(const AliMpDataStreams& dataStreams,
+                                          const TString& motifID,
                                           AliMpMotifType* motifType,
                                           Double_t scale=1.0);
     TString MotifSpecialName(const TString& motifID, Double_t scale);
@@ -56,7 +57,6 @@ class AliMpMotifReader : public TObject
     AliMpMotifReader&  operator = (const AliMpMotifReader& right);
 
     // data members  
-    const AliMpDataStreams& fkDataStreams;///< data streams
     AliMp::StationType    fStationType;   ///< station type 
     AliMq::Station12Type  fStation12Type; ///< station12 type 
     AliMp::PlaneType      fPlaneType;     ///< plane type 
index bcaa59b..1b0d6ef 100755 (executable)
@@ -144,15 +144,13 @@ const TString& AliMpSectorReader::GetPadRowSegmentKeyword()
 //
   
 //_____________________________________________________________________________
-AliMpSectorReader::AliMpSectorReader(const AliMpDataStreams& dataStreams,
-                                     AliMq::Station12Type station, 
+AliMpSectorReader::AliMpSectorReader(AliMq::Station12Type station,
                                      AliMp::PlaneType plane) 
   : TObject(),
-    fkDataStreams(dataStreams),
     fStationType(station),
     fPlaneType(plane),
     fSector(0),
-    fMotifReader(new AliMpMotifReader(dataStreams, AliMp::kStation12, station, plane))
+    fMotifReader(new AliMpMotifReader(AliMp::kStation12, station, plane))
  
 {
 /// Standard constructor
@@ -171,7 +169,8 @@ AliMpSectorReader::~AliMpSectorReader()
 //
 
 //_____________________________________________________________________________
-void  AliMpSectorReader::ReadSectorData(istream& in)
+void  AliMpSectorReader::ReadSectorData(const AliMpDataStreams& dataStreams,
+                                        istream& in)
 {
 /// Read sector input data;
 /// prepare zones and rows vectors to be filled in.
@@ -217,11 +216,12 @@ void  AliMpSectorReader::ReadSectorData(istream& in)
      return;
   }      
   
-  ReadZoneData(in);
+  ReadZoneData(dataStreams, in);
 }  
 
 //_____________________________________________________________________________
-void AliMpSectorReader::ReadZoneData(istream& in)
+void AliMpSectorReader::ReadZoneData(const AliMpDataStreams& dataStreams,
+                                     istream& in)
 {
 /// Read zone input data;
 /// create zone and adds it to zones vector.
@@ -246,18 +246,19 @@ void AliMpSectorReader::ReadZoneData(istream& in)
      return;
   }  
     
-  ReadSubZoneData(in, zone);
+  ReadSubZoneData(dataStreams, in, zone);
 }
 
 //_____________________________________________________________________________
-void AliMpSectorReader::ReadSubZoneData(istream& in, AliMpZone* zone)
+void AliMpSectorReader::ReadSubZoneData(const AliMpDataStreams& dataStreams,
+                                        istream& in, AliMpZone* zone)
 {
 /// Read subzone input data;
 /// create subzone and its to the specified zone.
 
   AliDebugStream(2) << GetSubZoneKeyword() << endl;
 
-  AliMpVMotif* motif = ReadMotifData(in, zone);
+  AliMpVMotif* motif = ReadMotifData(dataStreams, in, zone);
   AliMpSubZone* subZone = new AliMpSubZone(motif); 
   zone->AddSubZone(subZone); 
 
@@ -269,11 +270,13 @@ void AliMpSectorReader::ReadSubZoneData(istream& in, AliMpZone* zone)
      return;
   }  
     
-  ReadRowSegmentsData(in, zone, subZone);
+  ReadRowSegmentsData(dataStreams, in, zone, subZone);
 }   
 
 //_____________________________________________________________________________
-AliMpVMotif*  AliMpSectorReader::ReadMotifData(istream& in, AliMpZone* zone)
+AliMpVMotif*  AliMpSectorReader::ReadMotifData(
+                                     const AliMpDataStreams& dataStreams,
+                                     istream& in, AliMpZone* zone)
 {
 /// Read the motif input data.
 
@@ -293,7 +296,7 @@ AliMpVMotif*  AliMpSectorReader::ReadMotifData(istream& in, AliMpZone* zone)
   if (!motif) {    
     motifType = motifMap->FindMotifType(motifTypeID);
     if (!motifType) {
-      motifType = fMotifReader->BuildMotifType(motifTypeID);     
+      motifType = fMotifReader->BuildMotifType(dataStreams, motifTypeID);
       motifMap->AddMotifType(motifType);
     }
     
@@ -301,7 +304,7 @@ AliMpVMotif*  AliMpSectorReader::ReadMotifData(istream& in, AliMpZone* zone)
       motif = new AliMpMotif(motifID, motifType, 
                      zone->GetPadDimensionX(), zone->GetPadDimensionY());
     else 
-      motif = fMotifReader->BuildMotifSpecial(motifID, motifType);
+      motif = fMotifReader->BuildMotifSpecial(dataStreams, motifID, motifType);
       
     if (motif) 
       motifMap->AddMotif(motif);
@@ -312,7 +315,8 @@ AliMpVMotif*  AliMpSectorReader::ReadMotifData(istream& in, AliMpZone* zone)
 }  
 
 //_____________________________________________________________________________
-void AliMpSectorReader::ReadRowSegmentsData(istream& in, 
+void AliMpSectorReader::ReadRowSegmentsData(const AliMpDataStreams& dataStreams,
+                                      istream& in,
                                       AliMpZone* zone, AliMpSubZone* subZone)
 {
 /// Read row segments input data of a specified zone and subzone;
@@ -361,10 +365,10 @@ void AliMpSectorReader::ReadRowSegmentsData(istream& in,
   if (in.eof()) return;
 
   if (nextKeyword == GetZoneKeyword()) {
-    ReadZoneData(in);
+    ReadZoneData(dataStreams, in);
   }
   else if (nextKeyword == GetSubZoneKeyword()) {
-    ReadSubZoneData(in, zone);
+    ReadSubZoneData(dataStreams, in, zone);
   }   
   else {
     AliErrorStream() << "Wrong file format." << endl;
@@ -372,7 +376,9 @@ void AliMpSectorReader::ReadRowSegmentsData(istream& in,
 }   
 
 //_____________________________________________________________________________
-void AliMpSectorReader::ReadSectorSpecialData(istream& in, AliMp::XDirection direction)
+void AliMpSectorReader::ReadSectorSpecialData(
+                            const AliMpDataStreams& dataStreams,
+                            istream& in, AliMp::XDirection direction)
 {
 /// Read sector input data
 /// with a special (irregular) motifs.
@@ -397,12 +403,14 @@ void AliMpSectorReader::ReadSectorSpecialData(istream& in, AliMp::XDirection dir
     return;
   }  
 
-  ReadMotifsSpecialData(in);     
-  ReadRowSpecialData(in, direction); 
+  ReadMotifsSpecialData(dataStreams, in);
+  ReadRowSpecialData(dataStreams, in, direction);
 }  
 
 //_____________________________________________________________________________
-void AliMpSectorReader::ReadMotifsSpecialData(istream& in)
+void AliMpSectorReader::ReadMotifsSpecialData(
+                            const AliMpDataStreams& dataStreams,
+                            istream& in)
 {
 /// Read the special (irregular) motifs input data.
 
@@ -412,7 +420,7 @@ void AliMpSectorReader::ReadMotifsSpecialData(istream& in)
   do {
     Int_t zone;
     in >> zone;
-    AliMpVMotif* motif =  ReadMotifData(in, fSector->GetZone(zone));
+    AliMpVMotif* motif =  ReadMotifData(dataStreams, in, fSector->GetZone(zone));
     AliMpSubZone* subZone = new AliMpSubZone(motif); 
     fSector->GetZone(zone)->AddSubZone(subZone); 
   
@@ -429,7 +437,9 @@ void AliMpSectorReader::ReadMotifsSpecialData(istream& in)
 }  
 
 //_____________________________________________________________________________
-void AliMpSectorReader::ReadRowSpecialData(istream& in, AliMp::XDirection direction)
+void AliMpSectorReader::ReadRowSpecialData(
+                            const AliMpDataStreams& dataStreams,
+                            istream& in, AliMp::XDirection direction)
 {
 /// Read row input data
 /// with a special (irregular) motifs.
@@ -471,7 +481,7 @@ void AliMpSectorReader::ReadRowSpecialData(istream& in, AliMp::XDirection direct
      return;
   }  
     
-  ReadRowSegmentSpecialData(in, segment, direction); 
+  ReadRowSegmentSpecialData(dataStreams, in, segment, direction);
   
   // Update row segment and set it to all subzones associated with
   // contained motifs
@@ -490,9 +500,11 @@ void AliMpSectorReader::ReadRowSpecialData(istream& in, AliMp::XDirection direct
 }  
 
 //_____________________________________________________________________________
-void AliMpSectorReader::ReadRowSegmentSpecialData(istream& in, 
-                                            AliMpVRowSegmentSpecial* segment,
-                                           AliMp::XDirection direction)
+void AliMpSectorReader::ReadRowSegmentSpecialData(
+                            const AliMpDataStreams& dataStreams,
+                            istream& in,
+                            AliMpVRowSegmentSpecial* segment,
+                           AliMp::XDirection direction)
 {
 /// Read row segment input data
 /// with a special (irregular) motifs.
@@ -579,10 +591,10 @@ void AliMpSectorReader::ReadRowSegmentSpecialData(istream& in,
   if (in.eof()) return;
 
   if (nextKeyword == GetPadRowsKeyword()) {
-    ReadRowSegmentSpecialData(in, segment, direction);
+    ReadRowSegmentSpecialData(dataStreams, in, segment, direction);
   }
   else if (nextKeyword == GetRowSpecialKeyword()) {
-    ReadRowSpecialData(in, direction);
+    ReadRowSpecialData(dataStreams, in, direction);
   }   
   else {
     AliErrorStream() << "Wrong file format." << endl;
@@ -594,7 +606,7 @@ void AliMpSectorReader::ReadRowSegmentSpecialData(istream& in,
 //
 
 //_____________________________________________________________________________
-AliMpSector* AliMpSectorReader::BuildSector()
+AliMpSector* AliMpSectorReader::BuildSector(const AliMpDataStreams& dataStreams)
 {
 /// Read the mapping data from stream and create the basic objects:         \n
 /// zones, subzones, rows, row segments, motifs.
@@ -602,10 +614,10 @@ AliMpSector* AliMpSectorReader::BuildSector()
   // Open input stream
   //
   istream& in 
-    = fkDataStreams.
+    = dataStreams.
         CreateDataStream(AliMpFiles::SectorFilePath(fStationType,fPlaneType));
 
-  ReadSectorData(in);
+  ReadSectorData(dataStreams, in);
   delete &in;
   
   fSector->SetRowSegmentOffsets();
@@ -616,12 +628,12 @@ AliMpSector* AliMpSectorReader::BuildSector()
   
   TString sectorSpecialFileName 
     = AliMpFiles::SectorSpecialFilePath(fStationType, fPlaneType);
-  if ( fkDataStreams.IsDataStream(sectorSpecialFileName) ) {
+  if ( dataStreams.IsDataStream(sectorSpecialFileName) ) {
     istream& in2 
-      = fkDataStreams.
+      = dataStreams.
           CreateDataStream(sectorSpecialFileName);
   
-    ReadSectorSpecialData(in2, AliMp::kLeft);
+    ReadSectorSpecialData(dataStreams, in2, AliMp::kLeft);
     
     delete &in2;
   }  
@@ -629,12 +641,12 @@ AliMpSector* AliMpSectorReader::BuildSector()
   // Open input file for special outer zone
   TString sectorSpecialFileName2 
     = AliMpFiles::SectorSpecialFilePath2(fStationType, fPlaneType);
-  if ( fkDataStreams.IsDataStream(sectorSpecialFileName2) ) {
+  if ( dataStreams.IsDataStream(sectorSpecialFileName2) ) {
     istream& in3
-      = fkDataStreams.
+      = dataStreams.
           CreateDataStream(sectorSpecialFileName2);
     
-    ReadSectorSpecialData(in3, AliMp::kRight);
+    ReadSectorSpecialData(dataStreams, in3, AliMp::kRight);
     
     delete &in3;
   }   
index e2c3d69..2a06bda 100755 (executable)
@@ -39,12 +39,11 @@ using std::istream;
 class AliMpSectorReader : public TObject
 {
   public:
-    AliMpSectorReader(const AliMpDataStreams& dataStreams,
-                      AliMq::Station12Type station, AliMp::PlaneType plane);
+    AliMpSectorReader(AliMq::Station12Type station, AliMp::PlaneType plane);
     virtual ~AliMpSectorReader();
   
     // methods   
-    AliMpSector*  BuildSector();
+    AliMpSector*  BuildSector(const AliMpDataStreams& dataStreams);
     
   private:  
     /// Not implemented
@@ -66,21 +65,30 @@ class AliMpSectorReader : public TObject
     static const TString&  GetPadRowSegmentKeyword();
   
    // methods
-    void  ReadSectorData(istream& in);
-    void  ReadZoneData(istream& in);
-    void  ReadSubZoneData(istream& in, AliMpZone* zone);
-    void  ReadRowSegmentsData(istream& in,
-                          AliMpZone* zone, AliMpSubZone* subZone);
-    AliMpVMotif*  ReadMotifData(istream& in, AliMpZone* zone);
-    void  ReadSectorSpecialData(istream& in, AliMp::XDirection direction);
-    void  ReadMotifsSpecialData(istream& in);
-    void  ReadRowSpecialData(istream& in, AliMp::XDirection direction);
-    void  ReadRowSegmentSpecialData(istream& in,
-                          AliMpVRowSegmentSpecial* segment,
-                         AliMp::XDirection direction);
-  
+    void  ReadSectorData(const AliMpDataStreams& dataStreams,
+                         istream& in);
+    void  ReadZoneData(const AliMpDataStreams& dataStreams,
+                         istream& in);
+    void  ReadSubZoneData(const AliMpDataStreams& dataStreams,
+                         istream& in, AliMpZone* zone);
+    void  ReadRowSegmentsData(const AliMpDataStreams& dataStreams,
+                         istream& in,
+                         AliMpZone* zone, AliMpSubZone* subZone);
+
+    AliMpVMotif*  ReadMotifData(const AliMpDataStreams& dataStreams,
+                         istream& in, AliMpZone* zone);
+    void  ReadSectorSpecialData(const AliMpDataStreams& dataStreams,
+                         istream& in, AliMp::XDirection direction);
+    void  ReadMotifsSpecialData(const AliMpDataStreams& dataStreams,
+                         istream& in);
+    void  ReadRowSpecialData(const AliMpDataStreams& dataStreams,
+                         istream& in, AliMp::XDirection direction);
+    void  ReadRowSegmentSpecialData(const AliMpDataStreams& dataStreams,
+                         istream& in,
+                         AliMpVRowSegmentSpecial* segment,
+                         AliMp::XDirection direction);
+
     // data members  
-    const AliMpDataStreams&  fkDataStreams; ///< data streams
     AliMq::Station12Type  fStationType; ///< station type 
     AliMp::PlaneType      fPlaneType;   ///< plane type 
     AliMpSector*          fSector;      ///< sector
index ce9b566..37dd5a6 100644 (file)
@@ -107,7 +107,6 @@ AliMpSegmentation* AliMpSegmentation::ReadData(const AliMpDataStreams& dataStrea
 //______________________________________________________________________________
 AliMpSegmentation::AliMpSegmentation(const AliMpDataStreams& dataStreams)
 : TObject(),
-  fkDataStreams(dataStreams),
   fDetElements(0),
   fMpSegmentations(true),
   fElCardsMap(),
@@ -132,7 +131,8 @@ AliMpSegmentation::AliMpSegmentation(const AliMpDataStreams& dataStreams)
     
     for ( Int_t cath = AliMp::kCath0; cath <= AliMp::kCath1; ++cath ) 
     { 
-      if ( CreateMpSegmentation(it.CurrentDEId(), AliMp::GetCathodType(cath)) ) ++n;
+      if ( CreateMpSegmentation(dataStreams,
+                                it.CurrentDEId(), AliMp::GetCathodType(cath)) ) ++n;
     }
      
     if ( n == 2 &&  // should always be the case except when we play with the CreateMpSegmentation method...
@@ -148,7 +148,6 @@ AliMpSegmentation::AliMpSegmentation(const AliMpDataStreams& dataStreams)
 //______________________________________________________________________________
 AliMpSegmentation::AliMpSegmentation(TRootIOCtor* ioCtor)
 : TObject(),
-  fkDataStreams(ioCtor),
   fDetElements(0),
   fMpSegmentations(),
   fElCardsMap(ioCtor),
@@ -184,7 +183,8 @@ AliMpSegmentation::~AliMpSegmentation()
 
 //______________________________________________________________________________
 AliMpVSegmentation* 
-AliMpSegmentation::CreateMpSegmentation(Int_t detElemId, AliMp::CathodType cath)
+AliMpSegmentation::CreateMpSegmentation(const AliMpDataStreams& dataStreams,
+                                        Int_t detElemId, AliMp::CathodType cath)
 {
 /// Create mapping segmentation for given detElemId and cath
 /// or return it if it was already built
@@ -213,18 +213,18 @@ AliMpSegmentation::CreateMpSegmentation(Int_t detElemId, AliMp::CathodType cath)
 
   if ( stationType == AliMp::kStation12 ) {
     AliMq::Station12Type station12Type = detElement->GetStation12Type();
-    AliMpSectorReader reader(fkDataStreams, station12Type, planeType);
-    AliMpSector* sector = reader.BuildSector();
+    AliMpSectorReader reader(station12Type, planeType);
+    AliMpSector* sector = reader.BuildSector(dataStreams);
     mpSegmentation = new AliMpFastSegmentation(new AliMpSectorSegmentation(sector, true));
   }
   else if ( stationType == AliMp::kStation345 ) { 
-    AliMpSt345Reader reader(fkDataStreams,fSlatMotifMap);
-    AliMpSlat* slat = reader.ReadSlat(deTypeName, planeType);
+    AliMpSt345Reader reader(fSlatMotifMap);
+    AliMpSlat* slat = reader.ReadSlat(dataStreams, deTypeName, planeType);
     mpSegmentation = new AliMpFastSegmentation(new AliMpSlatSegmentation(slat, true));
   }
   else if ( stationType == AliMp::kStationTrigger ) {
-    AliMpTriggerReader reader(fkDataStreams,fSlatMotifMap);
-    AliMpTrigger* trigger = reader.ReadSlat(deTypeName, planeType);
+    AliMpTriggerReader reader(fSlatMotifMap);
+    AliMpTrigger* trigger = reader.ReadSlat(dataStreams, deTypeName, planeType);
     mpSegmentation = new AliMpTriggerSegmentation(trigger, true);
   }
   else   
index 2e97125..3c3ab3b 100644 (file)
@@ -106,6 +106,7 @@ class AliMpSegmentation : public  TObject {
     AliMpSegmentation& operator=(const AliMpSegmentation& rhs);
 
     AliMpVSegmentation* CreateMpSegmentation(
+                              const AliMpDataStreams& dataStreams,
                               Int_t detElemId, AliMp::CathodType cath);
                               
 
@@ -115,7 +116,6 @@ class AliMpSegmentation : public  TObject {
     static AliMpSegmentation* fgInstance; ///< Singleton instance
 
     // data members
-    const AliMpDataStreams&  fkDataStreams;  //!< Data streams
     AliMpDEStore*      fDetElements;    ///< Detection element store
     AliMpStringObjMap  fMpSegmentations;///< Map of mapping segmentations to DE seg names
     AliMpExMap         fElCardsMap;     ///< Map of el. cards IDs to segmentations
index 66ed6c4..38f1099 100644 (file)
@@ -56,10 +56,9 @@ ClassImp(AliMpSt345Reader)
 /// \endcond
 
 //_____________________________________________________________________________
-AliMpSt345Reader::AliMpSt345Reader(const AliMpDataStreams& dataStreams, AliMpSlatMotifMap* motifMap) 
+AliMpSt345Reader::AliMpSt345Reader(AliMpSlatMotifMap* motifMap)
 : 
 TObject(),
-fkDataStreams(dataStreams),
 fMotifMap(motifMap)
 {
   ///
@@ -77,19 +76,19 @@ AliMpSt345Reader::~AliMpSt345Reader()
 
 //_____________________________________________________________________________
 AliMpPCB*
-AliMpSt345Reader::ReadPCB(const char* pcbType)
+AliMpSt345Reader::ReadPCB(const AliMpDataStreams& dataStreams,
+                          const char* pcbType)
 { 
   ///
   /// Create a new AliMpPCB object, by reading it from file.
   /// The returned object must be deleted by the client
   
   istream& in 
-    = fkDataStreams.
+    = dataStreams.
         CreateDataStream(AliMpFiles::SlatPCBFilePath(
                              AliMp::kStation345, pcbType));
  
-  AliMpMotifReader reader(fkDataStreams, 
-                          AliMp::kStation345, AliMq::kNotSt12, AliMp::kNonBendingPlane); 
+  AliMpMotifReader reader(AliMp::kStation345, AliMq::kNotSt12, AliMp::kNonBendingPlane); 
   // note that the nonbending
   // parameter is of no use for station345, as far as reading motif is 
   // concerned, as all motifs are supposed to be in the same directory
@@ -137,7 +136,7 @@ AliMpSt345Reader::ReadPCB(const char* pcbType)
       if (!motifType)
       {
         AliDebug(1,Form("Reading motifType %s from file",sMotifType.Data()));
-        motifType = reader.BuildMotifType(sMotifType.Data());
+        motifType = reader.BuildMotifType(dataStreams, sMotifType.Data());
         fMotifMap->AddMotifType(motifType);
       }
       else
@@ -156,14 +155,15 @@ AliMpSt345Reader::ReadPCB(const char* pcbType)
 
 //_____________________________________________________________________________
 AliMpSlat*
-AliMpSt345Reader::ReadSlat(const char* slatType, AliMp::PlaneType planeType)
+AliMpSt345Reader::ReadSlat(const AliMpDataStreams& dataStreams,
+                           const char* slatType, AliMp::PlaneType planeType)
 {
   ///
   /// Create a new AliMpSlat object, by reading it from file.
   /// The returned object must be deleted by the client.
   
   istream& in 
-    = fkDataStreams.
+    = dataStreams.
         CreateDataStream(AliMpFiles::SlatFilePath(
                              AliMp::kStation345, slatType, planeType));
 
@@ -194,7 +194,7 @@ AliMpSt345Reader::ReadSlat(const char* slatType, AliMp::PlaneType planeType)
       TString pcbName(tmp(0,blankPos));
       TString manus(tmp(blankPos+1,tmp.Length()-blankPos));
       
-      AliMpPCB* pcbType = ReadPCB(pcbName.Data());       
+      AliMpPCB* pcbType = ReadPCB(dataStreams,pcbName.Data());
       if (!pcbType)
            {
         AliErrorClass(Form("Cannot read pcbType=%s",pcbName.Data()));
index 5d79e41..d97e9d3 100644 (file)
@@ -37,12 +37,14 @@ class AliMpDataStreams;
 class AliMpSt345Reader : public TObject
 {
  public:
-  AliMpSt345Reader(const AliMpDataStreams& dataStreams, AliMpSlatMotifMap* motifMap);
+  AliMpSt345Reader(AliMpSlatMotifMap* motifMap);
   virtual ~AliMpSt345Reader();
 
-  AliMpSlat* ReadSlat(const char* slatType, AliMp::PlaneType planeType);
+  AliMpSlat* ReadSlat(const AliMpDataStreams& dataStreams,
+                      const char* slatType, AliMp::PlaneType planeType);
 
-  AliMpPCB* ReadPCB(const char* pcbType);
+  AliMpPCB* ReadPCB(const AliMpDataStreams& dataStreams,
+                    const char* pcbType);
 
 private:
   /// Not implemented
@@ -52,7 +54,6 @@ private:
   /// Not implemented
   AliMpSt345Reader& operator=(const AliMpSt345Reader& rhs);
 
-  const AliMpDataStreams&  fkDataStreams; ///< data streams
   AliMpSlatMotifMap* fMotifMap; //!< storage for motifTypes and motifs...
   
   ClassDef(AliMpSt345Reader,0) // Reader for slat stations mapping files 
index 7e12c62..ad89ce8 100644 (file)
@@ -106,9 +106,8 @@ const TString& AliMpTriggerReader::GetKeywordFlipY()
 //
 
 //_____________________________________________________________________________
-AliMpTriggerReader::AliMpTriggerReader(const AliMpDataStreams& dataStreams, AliMpSlatMotifMap* motifMap) 
+AliMpTriggerReader::AliMpTriggerReader(AliMpSlatMotifMap* motifMap)
 : TObject(),
-  fkDataStreams(dataStreams),
   fMotifMap(motifMap),
   fLocalBoardMap()
 {
@@ -129,7 +128,8 @@ AliMpTriggerReader::~AliMpTriggerReader()
 
 //_____________________________________________________________________________
 AliMpSlat*
-AliMpTriggerReader::BuildSlat(const char* slatName,
+AliMpTriggerReader::BuildSlat(const AliMpDataStreams&  dataStreams, 
+                              const char* slatName,
                               AliMp::PlaneType planeType,
                               const TList& lines,
                               Double_t scale)
@@ -178,7 +178,7 @@ AliMpTriggerReader::BuildSlat(const char* slatName,
         pcbName = s.str().c_str();
       }
       
-      AliMpPCB* pcbType = ReadPCB(pcbName.Data());       
+      AliMpPCB* pcbType = ReadPCB(dataStreams, pcbName.Data());
       if (!pcbType)
       {
         AliErrorClass(Form("Cannot read pcbType=%s",pcbName.Data()));
@@ -205,7 +205,7 @@ AliMpTriggerReader::BuildSlat(const char* slatName,
           std::ostringstream name;
           name << localBoards(0,pos-1) << localBoardNumbers[i];
           AliDebugClass(3,name.str().c_str());
-          localBoardNumbers[i] = LocalBoardNumber(name.str().c_str());
+          localBoardNumbers[i] = LocalBoardNumber(dataStreams,name.str().c_str());
           AliDebugClass(3,Form("LOCALBOARDNUMBER %d\n",localBoardNumbers[i]));
           allLocalBoards.Set(allLocalBoards.GetSize()+1);
           allLocalBoards[allLocalBoards.GetSize()-1] = localBoardNumbers[i];
@@ -258,7 +258,8 @@ AliMpTriggerReader::GetBoardNameFromPCBLine(const TString& s)
   
 //_____________________________________________________________________________
 void
-AliMpTriggerReader::FlipLines(TList& lines, Bool_t flipX, Bool_t flipY,
+AliMpTriggerReader::FlipLines(const AliMpDataStreams&  dataStreams,
+                              TList& lines, Bool_t flipX, Bool_t flipY,
                               Int_t srcLine, Int_t destLine)
 {
   ///
@@ -349,7 +350,7 @@ AliMpTriggerReader::FlipLines(TList& lines, Bool_t flipX, Bool_t flipY,
               {
                 std::ostringstream bs;
                 bs << boardName(0,boardName.Length()-1) << b;
-                if ( LocalBoardNumber(bs.str().c_str()) >= 0 )
+                if ( LocalBoardNumber(dataStreams,bs.str().c_str()) >= 0 )
                 {
                   AliDebugClass(4,Form("Replacing %s by %s in %s\n",
                                   boardName(boardName.Length()-2,2).Data(),
@@ -364,7 +365,7 @@ AliMpTriggerReader::FlipLines(TList& lines, Bool_t flipX, Bool_t flipY,
             }  
             // Check that the replacement we did is ok. If not,
             // skip the line.
-            Int_t lbn = LocalBoardNumber(GetBoardNameFromPCBLine(s));
+            Int_t lbn = LocalBoardNumber(dataStreams,GetBoardNameFromPCBLine(s));
             if ( lbn < 0 )
             {
               AliDebugClass(4,Form("Removing line %s\n",s.Data()));
@@ -474,13 +475,14 @@ AliMpTriggerReader::GetLine(const TString& slatType)
 
 //_____________________________________________________________________________
 int
-AliMpTriggerReader::LocalBoardNumber(const char* localBoardName)
+AliMpTriggerReader::LocalBoardNumber(const AliMpDataStreams&  dataStreams,
+                                     const char* localBoardName)
 {
   /// From local board name to local board number
 
   if ( !fLocalBoardMap.GetSize() ) 
   {
-    ReadLocalBoardMapping();
+    ReadLocalBoardMapping(dataStreams);
   }
   
   TPair* pair = (TPair*)fLocalBoardMap.FindObject(localBoardName);
@@ -494,7 +496,8 @@ AliMpTriggerReader::LocalBoardNumber(const char* localBoardName)
 
 //_____________________________________________________________________________
 void 
-AliMpTriggerReader::ReadLines(const char* slatType,
+AliMpTriggerReader::ReadLines(const AliMpDataStreams&  dataStreams,
+                              const char* slatType,
                               AliMp::PlaneType planeType,
                               TList& lines,
                               Double_t& scale,
@@ -511,7 +514,7 @@ AliMpTriggerReader::ReadLines(const char* slatType,
                        srcLine,destLine));
   
   istream& in 
-    = fkDataStreams.
+    = dataStreams.
         CreateDataStream(AliMpFiles::SlatFilePath(
                              AliMp::kStationTrigger,slatType, planeType));
   
@@ -550,7 +553,8 @@ AliMpTriggerReader::ReadLines(const char* slatType,
     }
     else if ( isScaleLine > 0 && slatType2 != slatType )
     {
-      ReadLines(slatType2.Data(),planeType,lines,scale,flipX,flipY,srcLine,destLine);
+      ReadLines(dataStreams,
+                slatType2.Data(),planeType,lines,scale,flipX,flipY,srcLine,destLine);
     }
     else    
     {
@@ -566,7 +570,8 @@ AliMpTriggerReader::ReadLines(const char* slatType,
         }
         flipX |= fx;
         flipY |= fy;
-        ReadLines(slatType2.Data(),planeType,lines,scale,flipX,flipY,srcLine,destLine);
+        ReadLines(dataStreams,
+                  slatType2.Data(),planeType,lines,scale,flipX,flipY,srcLine,destLine);
       }
       else
       {
@@ -580,7 +585,7 @@ AliMpTriggerReader::ReadLines(const char* slatType,
                                         
 //_____________________________________________________________________________
 void
-AliMpTriggerReader::ReadLocalBoardMapping()
+AliMpTriggerReader::ReadLocalBoardMapping(const AliMpDataStreams&  dataStreams)
 {
   /// Reads the file that contains the mapping local board name <-> number
 
@@ -589,7 +594,7 @@ AliMpTriggerReader::ReadLocalBoardMapping()
   UShort_t mask;
   
   istream& in 
-    = fkDataStreams.
+    = dataStreams.
         CreateDataStream(AliMpFiles::LocalTriggerBoardMapping());
 
   char line[80];
@@ -633,7 +638,8 @@ AliMpTriggerReader::ReadLocalBoardMapping()
 
 //_____________________________________________________________________________
 AliMpPCB*
-AliMpTriggerReader::ReadPCB(const char* pcbType)
+AliMpTriggerReader::ReadPCB(const AliMpDataStreams&  dataStreams,
+                            const char* pcbType)
 { 
   ///
   /// Create a new AliMpPCB object, by reading it from file.
@@ -654,12 +660,11 @@ AliMpTriggerReader::ReadPCB(const char* pcbType)
   }
   
   istream& in 
-    = fkDataStreams.
+    = dataStreams.
         CreateDataStream(AliMpFiles::SlatPCBFilePath(
                              AliMp::kStationTrigger,pcbName));
  
-  AliMpMotifReader reader(fkDataStreams,
-                          AliMp::kStationTrigger, AliMq::kNotSt12, AliMp::kNonBendingPlane); 
+  AliMpMotifReader reader(AliMp::kStationTrigger, AliMq::kNotSt12, AliMp::kNonBendingPlane); 
   // note that the nonbending
   // parameter is of no use for trigger, as far as reading motif is 
   // concerned, as all motifs are supposed to be in the same directory
@@ -717,7 +722,7 @@ AliMpTriggerReader::ReadPCB(const char* pcbType)
         {
           AliDebug(1,Form("Reading motifType %s (%s) from file",
                           sMotifType.Data(),id.Data()));
-          motifType = reader.BuildMotifType(sMotifType.Data());
+          motifType = reader.BuildMotifType(dataStreams,sMotifType.Data());
           fMotifMap->AddMotifType(motifType);
         }
         else
@@ -725,7 +730,7 @@ AliMpTriggerReader::ReadPCB(const char* pcbType)
           AliDebug(1,Form("Got motifType %s (%s) from motifMap",
                           sMotifType.Data(),id.Data()));        
         }
-        specialMotif = reader.BuildMotifSpecial(sMotifSpecial,motifType,scale);
+        specialMotif = reader.BuildMotifSpecial(dataStreams,sMotifSpecial,motifType,scale);
         fMotifMap->AddMotif(specialMotif);
       }
       else
@@ -752,7 +757,7 @@ AliMpTriggerReader::ReadPCB(const char* pcbType)
       if ( !motifType)
       {
         AliDebug(1,Form("Reading motifType %s from file",sMotifType.Data()));
-        motifType = reader.BuildMotifType(sMotifType.Data());
+        motifType = reader.BuildMotifType(dataStreams,sMotifType.Data());
         fMotifMap->AddMotifType(motifType);
       }
       else
@@ -776,7 +781,8 @@ AliMpTriggerReader::ReadPCB(const char* pcbType)
 
 //_____________________________________________________________________________
 AliMpTrigger*
-AliMpTriggerReader::ReadSlat(const char* slatType, AliMp::PlaneType planeType)
+AliMpTriggerReader::ReadSlat(const AliMpDataStreams&  dataStreams,
+                             const char* slatType, AliMp::PlaneType planeType)
 {
   ///
   /// Create a new AliMpTrigger object, by reading it from file.
@@ -792,7 +798,8 @@ AliMpTriggerReader::ReadSlat(const char* slatType, AliMp::PlaneType planeType)
   
   // Read the file and its include (if any) and store the result
   // in a TObjArray of TObjStrings.
-  ReadLines(slatType,planeType,lines,scale,flipX,flipY,srcLine,destLine);
+  ReadLines(dataStreams,
+            slatType,planeType,lines,scale,flipX,flipY,srcLine,destLine);
 
   // Here some more sanity checks could be done.
   // For the moment we only insure that the first line contains 
@@ -807,7 +814,7 @@ AliMpTriggerReader::ReadSlat(const char* slatType, AliMp::PlaneType planeType)
   
   AliDebugClass(2,Form("Scale=%g\n",scale));
   
-  FlipLines(lines,flipX,flipY,srcLine,destLine);
+  FlipLines(dataStreams,lines,flipX,flipY,srcLine,destLine);
   
   // Now splits the lines in packets corresponding to different layers 
   // (if any), and create sub-slats.
@@ -842,7 +849,8 @@ AliMpTriggerReader::ReadSlat(const char* slatType, AliMp::PlaneType planeType)
     TList& lines1 = *((TList*)layers.At(ilayer));
     std::ostringstream slatName;
     slatName << slatType << "-LAYER" << ilayer;
-    AliMpSlat* slat = BuildSlat(slatName.str().c_str(),planeType,lines1,scale);
+    AliMpSlat* slat = BuildSlat(dataStreams,
+                                slatName.str().c_str(),planeType,lines1,scale);
     if ( slat )
     {
       Bool_t ok = triggerSlat->AdoptLayer(slat);
index e60cedf..6b7ecd5 100644 (file)
@@ -40,16 +40,18 @@ class TList;
 class AliMpTriggerReader : public TObject
 {
  public:
-  AliMpTriggerReader(const AliMpDataStreams& dataStreams, AliMpSlatMotifMap* motifMap);
+  AliMpTriggerReader(AliMpSlatMotifMap* motifMap);
   virtual ~AliMpTriggerReader();
 
-  AliMpTrigger* ReadSlat(const char* slatType, AliMp::PlaneType planeType);
+  AliMpTrigger* ReadSlat(const AliMpDataStreams&  dataStreams,
+                         const char* slatType, AliMp::PlaneType planeType);
 
-  AliMpPCB* ReadPCB(const char* pcbType);
+  AliMpPCB* ReadPCB(const AliMpDataStreams&  dataStreams, const char* pcbType);
   
 private:
     
-  AliMpSlat* BuildSlat(const char* slatName, 
+  AliMpSlat* BuildSlat(const AliMpDataStreams&  dataStreams,
+                              const char* slatName,
                               AliMp::PlaneType planeType,
                               const TList& descriptionLines,
                               Double_t scale=1.0);
@@ -61,7 +63,8 @@ private:
   Int_t DecodeScaleLine(const TString& sline, 
                                Double_t& scale, TString& slatType);
   
-  void FlipLines(TList& lines, Bool_t flipX, Bool_t flipY, 
+  void FlipLines(const AliMpDataStreams&  dataStreams,
+                        TList& lines, Bool_t flipX, Bool_t flipY,
                         Int_t srcLine, Int_t destLine);
   
   TString GetBoardNameFromPCBLine(const TString& sline);
@@ -70,17 +73,19 @@ private:
   
   Int_t IsLayerLine(const TString& sline) const;
     
-  int LocalBoardNumber(const char* localBoardName);
+  int LocalBoardNumber(const AliMpDataStreams&  dataStreams,
+                       const char* localBoardName);
   
   // AliMpPCB* PCB(const char* pcbType); 
   
-  void ReadLines(const char* slatType,
+  void ReadLines(const AliMpDataStreams&  dataStreams,
+                        const char* slatType,
                         AliMp::PlaneType planeType,
                         TList& lines,
                         Double_t& scale, Bool_t& flipX, Bool_t& flipY,
                         Int_t& srcLine, Int_t& destLine);
   
-  void ReadLocalBoardMapping();
+  void ReadLocalBoardMapping(const AliMpDataStreams&  dataStreams);
   
 private:
   /// Not implemented
@@ -96,7 +101,6 @@ private:
   static const TString& GetKeywordFlipY();
   
   // data members
-  const AliMpDataStreams&  fkDataStreams; //!< data streams
   AliMpSlatMotifMap* fMotifMap; //!< storage for motifTypes and motifs...
   
   TMap fLocalBoardMap; //!< map of TObjString to TObjString