Implemented Raw2SDigits method for tracker (Christian)
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 28 Sep 2006 16:22:23 +0000 (16:22 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 28 Sep 2006 16:22:23 +0000 (16:22 +0000)
MUON/AliMUON.cxx
MUON/AliMUON.h
MUON/AliMUONDigitMaker.cxx
MUON/AliMUONDigitMaker.h
MUON/AliMUONRawStreamTracker.h
MUON/AliMUONRawStreamTrigger.h
MUON/MUONbaseLinkDef.h
MUON/MUONrecLinkDef.h
MUON/libMUONbase.pkg
MUON/libMUONrec.pkg

index 22a13c0..9e862ad 100644 (file)
@@ -73,6 +73,7 @@
 
 #include "AliMUONSDigitizerV2.h"
 #include "AliMUONDigitizerV3.h"
+#include "AliMUONDigitMaker.h"
 
 #include "AliMUONSt1GeometryBuilderV2.h"
 #include "AliMUONSt2GeometryBuilderV2.h"
@@ -123,7 +124,9 @@ AliMUON::AliMUON()
     fTriggerCoinc44(0),
     fSDigitizerType(""),
     fDigitizerType(""),
-  fRawWriter(0x0)
+    fRawWriter(0x0),
+    fDigitMaker(0x0)
+
 {
 /// Default Constructor
     
@@ -159,7 +162,8 @@ AliMUON::AliMUON(const char *name, const char *title,
     fTriggerCoinc44(0),
     fSDigitizerType(sDigitizerClassName),
     fDigitizerType(digitizerClassName),
-  fRawWriter(0x0)
+    fRawWriter(0x0),
+    fDigitMaker(new AliMUONDigitMaker(kFALSE)) 
 {
 /// Standard constructor  
   
@@ -215,7 +219,6 @@ AliMUON::AliMUON(const char *name, const char *title,
     for (Int_t circ=0; circ<AliMUONConstants::NTriggerCircuit(); circ++) {
       fTriggerCircuitsNew->AddAt(new AliMUONTriggerCircuitNew(),circ);          
     }
-    
 }
 
 //____________________________________________________________________
@@ -243,6 +246,7 @@ AliMUON::~AliMUON()
   delete fGeometryBuilder;
   delete fSegmentation;
   delete fRawWriter;
+  delete fDigitMaker;
 }
 
 //_____________________________________________________________________________
@@ -548,6 +552,28 @@ void AliMUON::Digits2Raw()
   }
 }
 
+//_____________________________________________________________________
+Bool_t AliMUON::Raw2SDigits(AliRawReader* rawReader)
+{
+/// Convert  raw data to SDigit
+/// Only for tracking for the moment (ChF) 
+
+  //fLoader->LoadDigits("READ");
+  if (!fLoader->TreeS()) fLoader->MakeSDigitsContainer();
+
+  fMUONData->MakeBranch("S");
+  fMUONData->SetTreeAddress("S");
+  fDigitMaker->Raw2Digits(rawReader);
+  fMUONData->Fill("S");
+
+  fLoader->WriteSDigits("OVERWRITE");
+  fMUONData->ResetSDigits();
+  fLoader->UnloadSDigits();
+
+  return kTRUE;
+
+}
+
 //_______________________________________________________________________
 AliLoader* AliMUON::MakeLoader(const char* topfoldername)
 { 
@@ -559,6 +585,9 @@ AliLoader* AliMUON::MakeLoader(const char* topfoldername)
  fLoader   = new AliLoader(GetName(),topfoldername);
  fMUONData = new AliMUONData(fLoader,GetName(),GetName()); 
  fMUONData->SetSplitLevel(fSplitLevel);
+
+ fDigitMaker->SetMUONData(fMUONData);
+
  return fLoader;
 }
 //_______________________________________________________________________
index bef888f..33a3af7 100644 (file)
@@ -38,6 +38,7 @@ class AliMUONGeometryBuilder;
 class AliMUONRawWriter;
 class AliMUONVGeometryBuilder;
 class AliESD;
+class AliMUONDigitMaker;
 
 class AliMUON : public  AliDetector 
 {
@@ -86,7 +87,8 @@ class AliMUON : public  AliDetector
     virtual void   SDigits2Digits();      
     virtual void   Hits2SDigits();
     virtual void   Digits2Raw();
-    
+    virtual Bool_t Raw2SDigits(AliRawReader* rawReader);
+
     // Trigger
                    /// Create trigger
     virtual AliTriggerDetector* CreateTriggerDetector() const
@@ -192,6 +194,8 @@ class AliMUON : public  AliDetector
     
     AliMUONRawWriter* fRawWriter; //!< Raw data writer
     
+    AliMUONDigitMaker* fDigitMaker; //!< pointer to the digit maker class
+
     ClassDef(AliMUON,13)  // MUON Detector base class
 };
 #endif
index 235b83b..1b1f6e2 100644 (file)
 
 ClassImp(AliMUONDigitMaker) // Class implementation in ROOT context
 //__________________________________________________________________________
-AliMUONDigitMaker::AliMUONDigitMaker()
+AliMUONDigitMaker::AliMUONDigitMaker(Bool_t flag)
   : TObject(),
     fMUONData(0x0),
     fSegFactory(new AliMpSegFactory()),
     fBusPatchManager(new AliMpBusPatch()),
     fScalerEvent(kFALSE),
+    fDigitFlag(flag),
     fRawStreamTracker(new AliMUONRawStreamTracker()),    
     fRawStreamTrigger(new AliMUONRawStreamTrigger()),    
     fDigit(new AliMUONDigit()),
@@ -156,7 +157,8 @@ Int_t AliMUONDigitMaker::Raw2Digits(AliRawReader* rawReader)
   ReadTrackerDDL(rawReader);
 
   // generate trigger
-  ReadTriggerDDL(rawReader);
+  if (fDigitFlag)
+    ReadTriggerDDL(rawReader);
 
   return kTRUE;
 
@@ -247,7 +249,12 @@ Int_t AliMUONDigitMaker::ReadTrackerDDL(AliRawReader* rawReader)
 
            // fill digits
            iChamber = fDigit->DetElemId()/100 - 1;
-           fMUONData->AddDigit(iChamber, *fDigit);
+
+           if (fDigitFlag)
+             fMUONData->AddDigit(iChamber, *fDigit);
+           else
+             fMUONData->AddSDigit(iChamber, *fDigit);
+
 
          } // iData
        } // iBusPatch
index 6414d4a..35cb8c7 100644 (file)
@@ -5,7 +5,7 @@
 
 /*$Id$*/
 
-/// \ingroup rec
+/// \ingroup base
 /// \class AliMUONDigitMaker
 /// \brief Raw data class for trigger and tracker chambers
 ///
@@ -28,7 +28,7 @@ class AliMUONRawStreamTrigger;
 class AliMUONDigitMaker : public TObject 
 {
  public:
-  AliMUONDigitMaker(); // Constructor
+  AliMUONDigitMaker(Bool_t digit = kTRUE); // Constructor
   virtual ~AliMUONDigitMaker(void); // Destructor
     
   // write raw data
@@ -55,6 +55,8 @@ class AliMUONDigitMaker : public TObject
 
   Bool_t           fScalerEvent;       //!< flag to generates scaler event
 
+  Bool_t           fDigitFlag;        //!< true for Digit, false for SDigit
+
   AliMUONRawStreamTracker* fRawStreamTracker;  //!< pointer of raw stream for tracker
   AliMUONRawStreamTrigger* fRawStreamTrigger;  //!< pointer of raw stream for trigger
 
index 0554f09..a5d1a1d 100644 (file)
@@ -5,7 +5,7 @@
 
 /*$Id$*/
 
-/// \ingroup raw
+/// \ingroup base
 /// \class AliMUONRawStreamTracker
 /// \brief Class for reading MUON raw digits
 ///
index 21cf53f..7f27920 100644 (file)
@@ -5,7 +5,7 @@
 
 /*$Id$*/
 
-/// \ingroup raw
+/// \ingroup base
 /// \class AliMUONRawStreamTrigger
 /// \brief Class for reading MUON raw digits
 ///
index 39a81a8..d57c8a8 100644 (file)
 #pragma link C++ class AliMUONCalibrationData+;
 #pragma link C++ class AliMUONTriggerEfficiencyCells+;
 
+// raw data
+#pragma link C++ class AliMUONDigitMaker+;
+#pragma link C++ class AliMUONRawStreamTracker+;
+#pragma link C++ class AliMUONRawStreamTrigger+;
+
 // debug
 #pragma link C++ class AliMUONCheck+;
 
index 5f78f59..5954aa8 100644 (file)
 // calibration
 #pragma link C++ class AliMUONDigitCalibrator+;
 
-// raw data
-#pragma link C++ class AliMUONDigitMaker+;
-#pragma link C++ class AliMUONRawStreamTracker+;
-#pragma link C++ class AliMUONRawStreamTrigger+;
-
 // display
 #pragma link C++ class AliMUONDisplay+; 
 #pragma link C++ class AliMUONRecoCheck+;
index 22e0471..58c7ae9 100644 (file)
@@ -40,7 +40,10 @@ SRCS:=  AliMUON.cxx AliMUONv1.cxx \
         AliMUONCalibParam2F.cxx \
         AliMUONCalibrationData.cxx \
         AliMUONCheck.cxx \
-        AliMUONTriggerEfficiencyCells.cxx
+        AliMUONTriggerEfficiencyCells.cxx\
+        AliMUONRawStreamTrigger.cxx \
+        AliMUONRawStreamTracker.cxx  \
+        AliMUONDigitMaker.cxx 
      
 HDRS:= $(SRCS:.cxx=.h)
 
index 53756ed..8c3c965 100644 (file)
@@ -20,9 +20,6 @@ SRCS:= AliMUONClusterReconstructor.cxx \
        AliMUONDetElement.cxx \
        AliMUONEventRecoCombi.cxx \
        AliMUONDigitCalibrator.cxx \
-       AliMUONRawStreamTrigger.cxx \
-       AliMUONRawStreamTracker.cxx  \
-       AliMUONDigitMaker.cxx \
        AliMillepede.cxx \
        AliMUONAlignment.cxx \
        AliMUONDisplay.cxx \