]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONReconstructor.cxx
- Adding hits pattern in trigger chambers in AliMUONTrack (Diego)
[u/mrichter/AliRoot.git] / MUON / AliMUONReconstructor.cxx
index 7bf15bebf075b005cc1bd3d1b2e9c5ef4d6f8117..5ecfd42618fee5a4b935cc637c929aeaccb4bd92 100644 (file)
@@ -395,11 +395,16 @@ void AliMUONReconstructor::Reconstruct(AliRunLoader* runLoader,
     //    AliDebug(1,Form("Making Digit Container for event %d",iEvent));
     //    loader->MakeDigitsContainer();
     //  }
-    //  Digits are not stored on disk and created on flight from rawdata.
-    //  In order to write digits on disk the following lines should be uncommented
-    //  fMUONData->MakeBranch("D,GLT");
-    //  fMUONData->SetTreeAddress("D,GLT");
-    fMUONData->SetDataContainer("D, GLT");
+    // Write digits from raw data on disk
+    if (strstr(GetOption(),"SAVEDIGITS")) {
+       if (!loader->TreeD())fMUONData->GetLoader()->MakeDigitsContainer();
+       fMUONData->MakeBranch("D,GLT");
+       fMUONData->SetTreeAddress("D,GLT");
+       AliInfo("Digits from raw data will be stored.");
+    }
+    else {
+       fMUONData->SetDataContainer("D, GLT");
+    }
     rawTimer.Start(kFALSE);
     fDigitMaker->Raw2Digits(rawReader);
     rawTimer.Stop();
@@ -410,10 +415,12 @@ void AliMUONReconstructor::Reconstruct(AliRunLoader* runLoader,
       calibration->ExecuteTask();
       calibTimer.Stop();
     }
-    // Digits are not stored on disk and created on flight from rawdata.
-    // In order to write digits on disk the following lines should be uncommented
-    // fMUONData->Fill("D,GLT");
-    // loader->WriteDigits("OVERWRITE");
+
+    // Write digits from raw data on disk
+    if (strstr(GetOption(),"SAVEDIGITS")) {
+       fMUONData->Fill("D,GLT");
+       loader->WriteDigits("OVERWRITE");
+    }
     //----------------------- digit2cluster & Trigger2Trigger -------------------
     clusterTimer.Start(kFALSE);
 
@@ -478,7 +485,8 @@ void AliMUONReconstructor::FillESD(AliRunLoader* runLoader, AliESD* esd) const
   Double_t fitFmin, chi2MatchTrigger;
   Double_t xRec, yRec, zRec, bendingSlope, nonBendingSlope, inverseBendingMomentum;
   Double_t xVtx, yVtx, zVtx, bendingSlopeAtVtx, nonBendingSlopeAtVtx, inverseBendingMomentumAtVtx;
-  Bool_t matchTrigger;
+  Int_t matchTrigger;
+  UShort_t hitsPatternInTrigCh;
 
   // setting pointer for tracks, triggertracks & trackparam at vertex
   AliMUONTrack* recTrack = 0;
@@ -555,6 +563,7 @@ void AliMUONReconstructor::FillESD(AliRunLoader* runLoader, AliESD* esd) const
     fitFmin          = recTrack->GetFitFMin();
     matchTrigger     = recTrack->GetMatchTrigger();
     chi2MatchTrigger = recTrack->GetChi2MatchTrigger();
+    hitsPatternInTrigCh = recTrack->GetHitsPatternInTrigCh();
 
     // setting data member of ESD MUON
     // at first station
@@ -576,6 +585,7 @@ void AliMUONReconstructor::FillESD(AliRunLoader* runLoader, AliESD* esd) const
     theESDTrack->SetNHit(nTrackHits);
     theESDTrack->SetMatchTrigger(matchTrigger);
     theESDTrack->SetChi2MatchTrigger(chi2MatchTrigger);
+    theESDTrack->SetHitsPatternInTrigCh(hitsPatternInTrigCh);
 
     // storing ESD MUON Track into ESD Event 
     if (nRecTracks != 0)