]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
protections and extended selection of tracks (Ben)
authorabercuci <abercuci@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 18 Sep 2008 08:33:37 +0000 (08:33 +0000)
committerabercuci <abercuci@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 18 Sep 2008 08:33:37 +0000 (08:33 +0000)
EVE/EveDet/AliEveTRDTrackList.cxx
TRD/qaRec/macros/PH.C
TRD/qaRec/macros/chargeDistr.C
TRD/qaRec/macros/clusterSelection.C

index 1ec45808661237dfb4cd958423d5b22a83b8d5a2..39535829541fc99e74602425ac47858b9de5c577 100644 (file)
@@ -190,12 +190,18 @@ Int_t AliEveTRDTrackList::AddMacro(const Char_t* path, const Char_t* nameC, Bool
     fMacroList->Add(new TObjString(entryName));
     fMacroList->Sort();
 
+    // We do not know, where the element has been inserted - deselect this list
+    fMacroListSelected = 0;
+
     returnValue = SUCCESS;
   }
   else if (isSelectionMacro && fMacroSelList->FindObject(entryName) == 0)
   {
     fMacroSelList->Add(new TObjString(entryName));
     fMacroSelList->Sort();
+  
+    // We do not know, where the element has been inserted - deselect this list
+    fMacroSelListSelected = 0;
     
     returnValue = SUCCESS;
   }
@@ -214,11 +220,17 @@ void AliEveTRDTrackList::AddMacroFast(const Char_t* entry, Bool_t toSelectionLis
   {
     fMacroSelList->Add(new TObjString(entry));
     fMacroSelList->Sort();
+
+    // We do not know, where the element has been inserted - deselect this list
+    fMacroSelListSelected = 0;
   }
   else 
   {
     fMacroList->Add(new TObjString(entry));
     fMacroList->Sort();
+
+    // We do not know, where the element has been inserted - deselect this list
+    fMacroListSelected = 0;
   }
 }
 
@@ -278,6 +290,7 @@ void AliEveTRDTrackList::ApplyProcessMacros(TList* iterator)
 
   AliEveTRDTrack* track = 0;
   AliTRDtrackV1 *trackv1 = 0;
+  TH1* returnedHist = 0x0;
 
   // Clear root
   gROOT->Reset();
@@ -362,8 +375,15 @@ void AliEveTRDTrackList::ApplyProcessMacros(TList* iterator)
       // Process for macro type 2 (histo)
       if (isHistoMacro[i])
       {
-        if (histos[histoIndex] == 0)  histos[histoIndex] = (TH1*)gROOT->ProcessLineSync(cmds[i]);
-        else  histos[histoIndex]->Add((const TH1*)gROOT->ProcessLineSync(cmds[i]));
+        returnedHist = (TH1*)gROOT->ProcessLineSync(cmds[i]);
+        if (returnedHist != 0x0)
+        {
+          if (histos[histoIndex] == 0)  histos[histoIndex] = (TH1*)gROOT->ProcessLineSync(cmds[i]);
+          else  histos[histoIndex]->Add((const TH1*)gROOT->ProcessLineSync(cmds[i]));
+      
+          delete returnedHist;
+          returnedHist = 0;
+        }
         histoIndex++;
       }
       // Process for macro type 1
index fe1672e6526920a86208aa334cacd99faaf5acef..869654905af3351374f00f30dfd614cac1d7254a 100644 (file)
@@ -19,7 +19,7 @@ TH1* PH(const AliTRDtrackV1* track)
   ph->GetXaxis()->SetTitle("drift time [1/100ns]");
   ph->GetYaxis()->SetTitle("<PH> [a.u.]");
 
-  for (Int_t ily = 0; ily < AliTRDgeometry::kNlayer; ily++){
+  for (Int_t ily = 0; ily < AliTRDgeometry::kNlayer; ily++) {
     if(!(tracklet = track->GetTracklet(ily))) continue;
     if(!tracklet->IsOK()) continue;
     
@@ -32,3 +32,4 @@ TH1* PH(const AliTRDtrackV1* track)
 
   return ph;
 }
+
index 14c4562269e4c849e1bdb09a97cc8fa1fe2410ff..cda1293875c73d6fcd517cc1cb1277c39fc61f91 100644 (file)
@@ -12,7 +12,7 @@ void chargeDistr(const AliTRDtrackV1* track, Double_t* &results, Int_t& nResults
   AliTRDcluster* cls = 0;
   AliTRDseedV1 *tracklet = 0x0;
 
-  // Count cluster
+  // Count clusters
   nResults = 0;
   for (Int_t trackletInd = 0; trackletInd < Nt; trackletInd++)
   {
@@ -27,17 +27,20 @@ void chargeDistr(const AliTRDtrackV1* track, Double_t* &results, Int_t& nResults
          }
   }
   
+  // Nothing to do?
+  if (nResults == 0)  return;
+
   // Allocate memory for the results (AliEveTRDTrackList will clean this memory automatically)
   results = new Double_t[nResults];
   for (Int_t i = 0; i < nResults; i++)  results[i] = -100;
   Int_t currentIndex = 0;
 
-  for (Int_t trackletInd = 0; trackletInd < Nt; trackletInd++)
+  for (Int_t trackletInd = 0; trackletInd < Nt && currentIndex < nResults; trackletInd++)
   {
     if(!(tracklet = track->GetTracklet(trackletInd))) continue;
     if(!tracklet->IsOK()) continue;
     
-    for (Int_t clusterInd = 0; clusterInd < 34; clusterInd++) 
+    for (Int_t clusterInd = 0; clusterInd < AliTRDseed::knTimebins; clusterInd++) 
     {
       if(!(cls = tracklet->GetClusters(clusterInd))) continue;
             
index 30017b248059917a4189436f3f0b223fa7d69966..6651aa43e83ec3bcd692e52390ace7945cba0ab4 100644 (file)
@@ -13,7 +13,8 @@
 
 Bool_t clusterSelection(const AliTRDtrackV1 *track)
 {
-  if(!track) return kFALSE;
+  if (!track) return kFALSE;
   if (track->GetNumberOfClusters() > 60) return kFALSE;
   return kTRUE;
 }
+