]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTrackerQADataMakerRec.cxx
Fixes for #86059: Install data when ALICE_ROOT does not point to source (Christian)
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackerQADataMakerRec.cxx
index 3fb31205bcffb6009c08ab427d43c4d7214f0713..a4fa64186207e124f28a245d9f020a9b40b09f94 100644 (file)
@@ -540,9 +540,18 @@ void AliMUONTrackerQADataMakerRec::EndOfDetectorCycleDigits(Int_t specie, TObjAr
       TH1* hddl = GetDigitsData(AliMUONQAIndices::kTrackerDDLOccupancy, itc);
       TH1* hddlevents = GetDigitsData(AliMUONQAIndices::kTrackerDDLNofEventsUsed, itc);
     
-      if (itc==-1 && (!hbp || !hnevents || !hddl || !hddlevents) ) { // RS: produce error only for trigger-blind class
-       AliError(Form("Missing some histograms : cannot work : hbp=%p hnevents=%p hddl=%p hddlevents=%p",hbp,hnevents,hddl,hddlevents));
-       continue; //return; // RS
+      if ( (!hbp || !hnevents || !hddl || !hddlevents) ) 
+      { 
+        if (itc==-1)
+        {
+          // report error only for trigger-blind class
+          AliError(Form("Missing some histograms : cannot work : hbp=%p hnevents=%p hddl=%p hddlevents=%p",hbp,hnevents,hddl,hddlevents));
+          continue; //return; // RS
+        }
+        else
+        {
+          continue;
+        }
       }
       //    
       ProjectTrackerData(TrackerCalData(specie), *hbp,*hnevents,*hddl,*hddlevents);    
@@ -700,7 +709,7 @@ void AliMUONTrackerQADataMakerRec::FillReadoutStatus(AliMUONLogger& log, AliMUON
 
   //
   if (!hparity || !htoken || !hpadding || !hrostatus || !hnevents) return;
-  
+    
   Int_t nevents = TMath::Nint(hnevents->GetBinContent(1));
   
   if ( !nevents ) 
@@ -708,10 +717,16 @@ void AliMUONTrackerQADataMakerRec::FillReadoutStatus(AliMUONLogger& log, AliMUON
     TPaveText* text = new TPaveText(0,0,0.99,0.99,"NDC");
     text->AddText("FATAL : 0 event seen ? That's NOT normal...");
     text->SetFillColor(2); // red = FATAL
+    hrostatus->GetListOfFunctions()->Delete();
     hrostatus->GetListOfFunctions()->Add(text);
     return;
   }
   
+  hparity->Reset();
+  htoken->Reset();
+  hpadding->Reset();
+  hrostatus->Reset();
+  
   /////////////////////////////////////////////////////////////////
   /// Start by counting the number of errors
   /////////////////////////////////////////////////////////////////
@@ -1044,7 +1059,7 @@ void AliMUONTrackerQADataMakerRec::InitRaws()
     
   Add2RawsList(new TH1F("hTrackerIsThere","tracker is there",1,0,1),AliMUONQAIndices::kTrackerIsThere,kTRUE,kFALSE,kFALSE);
   //
-  ClonePerTrigClass(AliQAv1::kRAWS); // this should be the last line
+  //ClonePerTrigClass(AliQAv1::kRAWS); // this should be the last line  DONE at parent level
 }
 
 //__________________________________________________________________
@@ -1068,7 +1083,7 @@ void AliMUONTrackerQADataMakerRec::InitDigits()
   /// Book histograms that are common to Raws and Digits
   BookHistograms(AliQAv1::kDIGITSR);
   //
-  ClonePerTrigClass(AliQAv1::kDIGITS); // this should be the last line
+  //ClonePerTrigClass(AliQAv1::kDIGITS); // this should be the last line  DONE at parent level
 } 
 
 //____________________________________________________________________________ 
@@ -1172,7 +1187,7 @@ void AliMUONTrackerQADataMakerRec::InitRecPoints()
   
   MappingCheckRecPoints(AliRecoParam::AConvert(Master()->GetEventSpecie()),kTRUE);
   //
-  ClonePerTrigClass(AliQAv1::kRECPOINTS); // this should be the last line
+  //ClonePerTrigClass(AliQAv1::kRECPOINTS); // this should be the last line  DONE at parent level
 }
 
 //____________________________________________________________________________ 
@@ -1407,7 +1422,7 @@ void AliMUONTrackerQADataMakerRec::InitESDs()
   TH1F* hESDSumLocalChi2PerDE = new TH1F("hESDSumLocalChi2PerDE", "sum of local chi2 (~0.5*(#chi^{2}_{X}+#chi^{2}_{Y})) per DE;DetElem ID;#Sigma(local #chi^{2})", nDE+1, -0.5, nDE+0.5);
   Add2ESDsList(hESDSumLocalChi2PerDE, AliMUONQAIndices::kESDSumLocalChi2PerDE, expert, !image);
   //
-  ClonePerTrigClass(AliQAv1::kESDS); // this should be the last line
+  //ClonePerTrigClass(AliQAv1::kESDS); // this should be the last line  DONE at parent level
 }
 
 //____________________________________________________________________________
@@ -1571,14 +1586,13 @@ void AliMUONTrackerQADataMakerRec::MakeESDs(AliESDEvent* esd)
   AliCodeTimerAuto(Form("%s",AliRecoParam::GetEventSpecieName(AliRecoParam::AConvert(Master()->GetEventSpecie()))),0);
    
   // load ESD event in the interface
-  AliMUONESDInterface esdInterface;
-  if (GetRecoParam()) AliMUONESDInterface::ResetTracker(GetRecoParam(), kFALSE);
-  else AliError("Unable to get recoParam: use default ones for residual calculation");
-  esdInterface.LoadEvent(*esd);
+  if (!AliMUONESDInterface::GetTracker()) {
+    if (GetRecoParam()) AliMUONESDInterface::ResetTracker(GetRecoParam(), kFALSE);
+    else AliError("Unable to get recoParam: use default ones for residual calculation");
+  }
   
-  FillESDsData(AliMUONQAIndices::kESDnTracks,esdInterface.GetNTracks());
   
-  Int_t nTrackMatchTrig = 0;
+  Int_t nTrkTracks = 0, nTrackMatchTrig = 0;
   
   // loop over tracks
   Int_t nTracks = (Int_t) esd->GetNumberOfMuonTracks(); 
@@ -1587,23 +1601,25 @@ void AliMUONTrackerQADataMakerRec::MakeESDs(AliESDEvent* esd)
     // get the ESD track and skip "ghosts"
     AliESDMuonTrack* esdTrack = esd->GetMuonTrack(iTrack);
     if (!esdTrack->ContainTrackerData()) continue;
+    nTrkTracks++;
     
     // get corresponding MUON track
-    AliMUONTrack* track = esdInterface.FindTrack(esdTrack->GetUniqueID());
+    AliMUONTrack track;
+    AliMUONESDInterface::ESDToMUON(*esdTrack, track);
     
     if (esdTrack->ContainTriggerData()) nTrackMatchTrig++;
     
     FillESDsData(AliMUONQAIndices::kESDMomentum,esdTrack->P());
     FillESDsData(AliMUONQAIndices::kESDPt,esdTrack->Pt());
     FillESDsData(AliMUONQAIndices::kESDRapidity,esdTrack->Y());
-    FillESDsData(AliMUONQAIndices::kESDChi2,track->GetNormalizedChi2());
-    FillESDsData(AliMUONQAIndices::kESDProbChi2,TMath::Prob(track->GetGlobalChi2(),track->GetNDF()));
+    FillESDsData(AliMUONQAIndices::kESDChi2,track.GetNormalizedChi2());
+    FillESDsData(AliMUONQAIndices::kESDProbChi2,TMath::Prob(track.GetGlobalChi2(),track.GetNDF()));
     FillESDsData(AliMUONQAIndices::kESDThetaX,esdTrack->GetThetaXUncorrected() / TMath::Pi() * 180.);
     FillESDsData(AliMUONQAIndices::kESDThetaY,esdTrack->GetThetaYUncorrected() / TMath::Pi() * 180.);
-    FillESDsData(AliMUONQAIndices::kESDnClustersPerTrack,track->GetNClusters());
+    FillESDsData(AliMUONQAIndices::kESDnClustersPerTrack,track.GetNClusters());
     
     // loop over clusters
-    AliMUONTrackParam* trackParam = static_cast<AliMUONTrackParam*>(track->GetTrackParamAtCluster()->First());
+    AliMUONTrackParam* trackParam = static_cast<AliMUONTrackParam*>(track.GetTrackParamAtCluster()->First());
     while (trackParam) {
       
       AliMUONVCluster* cluster = trackParam->GetClusterPtr();
@@ -1645,12 +1661,13 @@ void AliMUONTrackerQADataMakerRec::MakeESDs(AliESDEvent* esd)
       FillESDsData(AliMUONQAIndices::kESDSumLocalChi2YPerDE,deID, localChi2Y);
       FillESDsData(AliMUONQAIndices::kESDSumLocalChi2PerDE,deID, localChi2);
       
-      trackParam = static_cast<AliMUONTrackParam*>(track->GetTrackParamAtCluster()->After(trackParam));
+      trackParam = static_cast<AliMUONTrackParam*>(track.GetTrackParamAtCluster()->After(trackParam));
       
     }
     
   }
 
+  FillESDsData(AliMUONQAIndices::kESDnTracks,nTrkTracks);
   FillESDsData(AliMUONQAIndices::kESDMatchTrig,nTrackMatchTrig);
   //
 }