removing TPC analysis classes from end 2006
authorjgrosseo <jgrosseo@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 21 Apr 2010 14:41:45 +0000 (14:41 +0000)
committerjgrosseo <jgrosseo@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 21 Apr 2010 14:41:45 +0000 (14:41 +0000)
17 files changed:
PWG0/PWG0depLinkDef.h
PWG0/PWG0selectorsLinkDef.h
PWG0/TPC/AliROCClusterAnalysisSelector.cxx [deleted file]
PWG0/TPC/AliROCClusterAnalysisSelector.h [deleted file]
PWG0/TPC/AliROCESDAnalysisSelector.cxx [deleted file]
PWG0/TPC/AliROCESDAnalysisSelector.h [deleted file]
PWG0/TPC/AliROCRawAnalysisSelector.cxx [deleted file]
PWG0/TPC/AliROCRawAnalysisSelector.h [deleted file]
PWG0/TPC/AliTPCClusterHistograms.cxx [deleted file]
PWG0/TPC/AliTPCClusterHistograms.h [deleted file]
PWG0/TPC/AliTPCRawHistograms.cxx [deleted file]
PWG0/TPC/AliTPCRawHistograms.h [deleted file]
PWG0/TPC/runROCClusterAnalysis.C [deleted file]
PWG0/TPC/runROCESDAnalysis.C [deleted file]
PWG0/TPC/runROCRawAnalysis.C [deleted file]
PWG0/libPWG0dep.pkg
PWG0/libPWG0selectors.pkg

index 74cb52a..bc132cd 100644 (file)
@@ -8,9 +8,6 @@
 #pragma link off all classes;
 #pragma link off all functions;
 
-#pragma link C++ class AliTPCClusterHistograms+;
-#pragma link C++ class AliTPCRawHistograms+;
-
 #pragma link C++ class AlidNdPtTask+;
 #pragma link C++ class AlidNdPtHelper+;
 #pragma link C++ class AlidNdPtAnalysis+;
index 1d52265..5619502 100644 (file)
@@ -8,9 +8,6 @@
 #pragma link off all classes;
 #pragma link off all functions;
 
-#pragma link C++ class AliROCESDAnalysisSelector+;
-#pragma link C++ class AliROCRawAnalysisSelector+;
-#pragma link C++ class AliROCClusterAnalysisSelector+;
 #pragma link C++ class AliHighMultiplicitySelector+;
 #pragma link C++ class AliMultiplicityTask+;
 #pragma link C++ class AliCutTask+;
diff --git a/PWG0/TPC/AliROCClusterAnalysisSelector.cxx b/PWG0/TPC/AliROCClusterAnalysisSelector.cxx
deleted file mode 100644 (file)
index bd509ee..0000000
+++ /dev/null
@@ -1,367 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/* $Id$ */
-
-// 
-//  This class analyses TPC cosmics data from clusters
-//
-//  Authors: Jan.Fiete.Grosse-Oetringhaus@cern.ch, Claus.Jorgensen@cern.ch
-//
-
-#include "AliROCClusterAnalysisSelector.h"
-
-#include <AliLog.h>
-#include <AliTPCclusterMI.h>
-#include <AliRunLoader.h>
-
-#include <AliTPCClustersRow.h>
-#include <AliESD.h>
-
-
-#include <TFile.h>
-#include <TMath.h>
-#include <TTree.h>
-#include <TCanvas.h>
-#include <TSystem.h>
-#include <TObjArray.h>
-#include <TTimeStamp.h>
-#include <TRandom.h>
-
-#include "TPC/AliTPCClusterHistograms.h"
-
-extern TSystem* gSystem;
-
-ClassImp(AliROCClusterAnalysisSelector)
-
-AliROCClusterAnalysisSelector::AliROCClusterAnalysisSelector() :
-  AliSelectorRL(),
-  fNMaxObjectsToSave(0),
-  fObjectsToSave(0)
-{
-  //
-  // Constructor. Initialization of pointers
-  //
-
-  fNMaxObjectsToSave = 50;
-  fObjectsToSave     = new TObjArray();
-  
-  for (Int_t i=0; i<kTPCHists; i++)
-    fClusterHistograms[i] = 0;
-}
-
-AliROCClusterAnalysisSelector::~AliROCClusterAnalysisSelector()
-{
-  //
-  // Destructor
-  //
-}
-
-void AliROCClusterAnalysisSelector::SlaveBegin(TTree* tree)
-{
-  //
-  
-  AliSelectorRL::SlaveBegin(tree);
-} 
-
-void AliROCClusterAnalysisSelector::Init(TTree *tree)
-{
-  // The Init() function is called when the selector needs to initialize
-  // a new tree or chain. Typically here the branch addresses of the tree
-  // will be set. It is normaly not necessary to make changes to the
-  // generated code, but the routine can be extended by the user if needed.
-  // Init() will be called many times when running with PROOF.
-
-  AliSelectorRL::Init(tree);
-  
-  // Set branch address
-  if (tree) {  
-    tree->SetBranchStatus("*", 0);
-    tree->SetBranchStatus("fTimeStamp", 1);
-  }
-}
-
-Bool_t AliROCClusterAnalysisSelector::Process(Long64_t entry)
-{
-  //
-  // Implement your analysis here. Do not forget to call the parent class Process by
-  // if (AliSelectorRL::Process(entry) == kFALSE)
-  //   return kFALSE;
-  //
-
-  if (AliSelectorRL::Process(entry) == kFALSE)
-    return kFALSE;
-
-
-  // reset counters
-  for (Int_t i=0; i<kTPCHists; i++)
-    if (fClusterHistograms[i])
-      fClusterHistograms[i]->StartEvent();
-  
-  //  runLoader->Dump();
-
-  Int_t flag = ProcessEvent(entry, kFALSE);
-  if (flag != 0)
-    ProcessEvent(entry, kTRUE, "");
-
-
-  Int_t time = 0;  
-  if (fESD) 
-    if (fESD->GetTimeStamp()>1160000000) {
-      time = fESD->GetTimeStamp();      
-    }  
-  
-  // finish event
-  for (Int_t i=0; i<kTPCHists; i++)
-    if (fClusterHistograms[i])
-      fClusterHistograms[i]->FinishEvent(time);
-
-  
-  // TODO This should not be needed, the TTree::GetEntry() should take care of this, maybe because it has a reference member, to be analyzed
-  // if the ESDfriend is not deleted we get a major memory leak
-  // here the esdfriend seems to be also deleted, very weird behaviour....
-
-  delete fESD;
-  fESD = 0;    
-
-  return kTRUE;
-}
-
-Int_t AliROCClusterAnalysisSelector::ProcessEvent(Long64_t entry, Bool_t detailedHistogram, const Char_t* label)
-{
-  //
-  // Looping over clusters in event and filling histograms 
-  //
-  // - if detailedHistogram = kTRUE special histograms are saved (in fObjectsToSave)
-  //   
-
-  // save maximum N objects
-  if (detailedHistogram) 
-    if (fObjectsToSave->GetEntries() > fNMaxObjectsToSave) 
-      return 0;
-      
-  // TODO: find a clever way to handle the time      
-  Int_t time = 0;  
-  if (fESD) 
-    if (fESD->GetTimeStamp()>1160000000) {
-      time = fESD->GetTimeStamp();      
-    }  
-
-  // for saving single events
-  AliTPCClusterHistograms* clusterHistograms[kTPCSectors];
-  Bool_t keepEvent[kTPCSectors];
-  for (Int_t i=0; i<kTPCSectors; i++) { 
-    clusterHistograms[i] = 0;  
-    keepEvent[i] = kFALSE;
-
-    if (fClusterHistograms[i]) {
-      TString why;
-      keepEvent[i] = fClusterHistograms[i]->KeepThisEvent(why);
-    }
-  }
-  
-  Bool_t intToReturn = 0;
-
-  // --------------
-
-  AliRunLoader* runLoader = GetRunLoader();
-  runLoader->LoadRecPoints("TPC");
-  
-  if (!runLoader) {
-    AliDebug(AliLog::kError, " Run loader not found");
-    return kFALSE;
-  }
-  
-  TTree* tree = runLoader->GetTreeR("TPC", kFALSE);
-  
-  // load clusters to the memory
-  AliTPCClustersRow* clrow = new AliTPCClustersRow;
-  clrow->SetClass("AliTPCclusterMI");
-  clrow->SetArray(0);
-  clrow->GetArray()->ExpandCreateFast(10000);
-  //
-
-  if (!tree) {
-    AliDebug(AliLog::kError, " TPC cluster tree not found");
-    return kFALSE;
-  }
-
-  TBranch* br = tree->GetBranch("Segment");
-  br->SetAddress(&clrow);
-  //
-
-  Int_t j = Int_t(tree->GetEntries());
-  for (Int_t i=0; i<j; i++) {
-    br->GetEntry(i);
-    //  
-    for (Int_t icl=0; icl<clrow->GetArray()->GetEntriesFast(); icl++){
-      
-      AliTPCclusterMI* cluster = (AliTPCclusterMI*)clrow->GetArray()->At(icl);
-
-      if (!cluster) 
-       continue;
-      
-     Int_t detector = cluster->GetDetector();
-     
-     if (detector < 0 || detector >= kTPCSectors) 
-     {
-       AliDebug(AliLog::kDebug, Form("We found a cluster from invalid sector %d", detector));
-       continue;
-     }
-
-     if (!detailedHistogram) {
-       
-       if (!fClusterHistograms[detector])
-        fClusterHistograms[detector] = new AliTPCClusterHistograms(detector,"",time,time+5*60*60);
-       
-       if (!fClusterHistograms[detector+kTPCSectors])
-         fClusterHistograms[detector+kTPCSectors] = new AliTPCClusterHistograms(detector,"",time,time+5*60*60, kTRUE);
-       
-       fClusterHistograms[detector]->FillCluster(cluster, time);
-       fClusterHistograms[detector+kTPCSectors]->FillCluster(cluster, time);
-                       
-     } // end of if !detailedHistograms
-     else {
-       // if we need the detailed histograms for this event
-       
-       if (keepEvent[detector]) {       
-
-        TString why(fClusterHistograms[detector]->WhyKeepEvent());
-       
-        why.Append(Form("_entry_%d",entry));
-        why.Append(label);
-
-        // if clusterHistograms for this event is not there, construct it
-        if (!clusterHistograms[detector]) {
-          clusterHistograms[detector] = new AliTPCClusterHistograms(detector, why.Data());
-          
-          // adding file and time as comment
-          TString comment = TString(Form("%s",fTree->GetCurrentFile()->GetName()));
-          comment.Append(Form(" entry %d", entry));
-          if (time!=0) {
-            TString timeStr(TTimeStamp(time).AsString());
-            timeStr.Remove(26);
-            
-            comment.Append(Form(" (%s)",timeStr.Data()));
-          }  
-          clusterHistograms[detector]->SetCommentToHistograms(comment.Data());
-          
-        }  
-        else 
-          clusterHistograms[detector]->FillCluster(cluster);
-       } // end of (keep this event)
-     } // 
-    }
-  }
-  
-  if (!detailedHistogram) {
-    for (Int_t i=0; i<kTPCSectors; i++)
-      if (fClusterHistograms[i]) {
-       TString why;
-       if (fClusterHistograms[i]->KeepThisEvent(why))
-         intToReturn = 1;
-      } 
-  }
-  else {
-    for (Int_t i=0; i< kTPCSectors; i++) {
-      if (clusterHistograms[i]) {
-       fObjectsToSave->Add(clusterHistograms[i]);
-      }
-    }    
-  }  
-  
-  delete clrow;
-   
-  return intToReturn;
-}
-
-
-void AliROCClusterAnalysisSelector::SlaveTerminate()
-{
-  //
-  
-  if (fOutput)
-  {
-    for (Int_t i=0; i<kTPCHists; i++)
-      if (fClusterHistograms[i])
-        fOutput->Add(fClusterHistograms[i]);
-  }
-} 
-
-void AliROCClusterAnalysisSelector::Terminate()
-{
-  // 
-  // read the objects from the output list and write them to a file
-  // the filename is modified by the object comment passed in the tree info or input list
-  //
-
-  if (fOutput)
-  {  
-    fOutput->Print();
-        
-    for (Int_t i=0; i<kTPCSectors; i++)
-      fClusterHistograms[i] = dynamic_cast<AliTPCClusterHistograms*> (fOutput->FindObject(AliTPCClusterHistograms::FormDetectorName(i, kFALSE)));
-    for (Int_t i=0; i<kTPCSectors; i++)
-      fClusterHistograms[kTPCSectors+i] = dynamic_cast<AliTPCClusterHistograms*> (fOutput->FindObject(AliTPCClusterHistograms::FormDetectorName(i, kTRUE)));
-  }
-  
-  TNamed* comment = 0;
-  if (fTree && fTree->GetUserInfo())
-    comment = dynamic_cast<TNamed*>(fTree->GetUserInfo()->FindObject("comment"));
-  if (!comment && fInput)
-    comment = dynamic_cast<TNamed*>(fInput->FindObject("comment"));
-
-  if (comment)
-  {
-    AliDebug(AliLog::kInfo, Form("INFO: Found comment in input list: %s", comment->GetTitle()));
-  }
-  else
-    return;
-
-  TFile* file = TFile::Open(Form("rocCluster_%s.root",comment->GetTitle()), "RECREATE");
-
-  for (Int_t i=0; i<kTPCHists; i++)
-     if (fClusterHistograms[i]) {
-       fClusterHistograms[i]->SaveHistograms();
-
-//        TCanvas* c = fClusterHistograms[i]->DrawHistograms();
-//        TString dir;
-//        dir.Form("WWW/%s/%s", comment->GetTitle(), c->GetName());
-//        gSystem->mkdir(dir, kTRUE);
-//        c->SaveAs(Form("%s/plots_%s_%s.eps",dir.Data(),comment->GetTitle(),c->GetName()));
-//        c->SaveAs(Form("%s/plots_%s_%s.gif",dir.Data(),comment->GetTitle(),c->GetName()));
-    
-//        c->Close();
-//        delete c;
-     }
-  
-  gDirectory->mkdir("saved_objects");
-  gDirectory->cd("saved_objects");
-
-  for (Int_t i=0; i<fObjectsToSave->GetSize(); i++) {
-    if (fObjectsToSave->At(i)) {
-      AliTPCClusterHistograms* clusterHistograms = dynamic_cast<AliTPCClusterHistograms*> (fObjectsToSave->At(i));
-      if (clusterHistograms)
-       clusterHistograms->SaveHistograms();
-      else
-       fObjectsToSave->At(i)->Write();
-    }
-  }
-
-  gDirectory->cd("../");
-
-
-  file->Close();
-}
diff --git a/PWG0/TPC/AliROCClusterAnalysisSelector.h b/PWG0/TPC/AliROCClusterAnalysisSelector.h
deleted file mode 100644 (file)
index 3740e6e..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* $Id$ */
-
-#ifndef AliROCClusterAnalysisSelector_H
-#define AliROCClusterAnalysisSelector_H
-
-#include "AliSelectorRL.h"
-
-class AliTPCClusterHistograms;
-
-class TObjArray;
-
-// 
-// TODO explain this
-//
-
-class AliROCClusterAnalysisSelector : public AliSelectorRL {
-  public:
-    enum { kTPCSectors = 72, kTPCHists = kTPCSectors * 2 };
-  
-    AliROCClusterAnalysisSelector();
-    virtual ~AliROCClusterAnalysisSelector();
-
-    virtual void    SlaveBegin(TTree* tree);
-    virtual void    Init(TTree *tree);
-    virtual Bool_t  Process(Long64_t entry);
-    virtual void    SlaveTerminate();
-    virtual void    Terminate();
-
-    Int_t           ProcessEvent(Long64_t entry, Bool_t detailedHistogram=kFALSE, const Char_t* label="");
-
-
- protected:
-
-    AliTPCClusterHistograms* fClusterHistograms[kTPCHists]; // 0..71 histograms created with all clusters, 72..143 without edges
-
- private:
-
-    Int_t      fNMaxObjectsToSave;
-    TObjArray* fObjectsToSave;
-
-
-    AliROCClusterAnalysisSelector(const AliROCClusterAnalysisSelector&);
-    AliROCClusterAnalysisSelector& operator=(const AliROCClusterAnalysisSelector&);
-
-  ClassDef(AliROCClusterAnalysisSelector, 0);
-};
-
-#endif
diff --git a/PWG0/TPC/AliROCESDAnalysisSelector.cxx b/PWG0/TPC/AliROCESDAnalysisSelector.cxx
deleted file mode 100644 (file)
index d3ca891..0000000
+++ /dev/null
@@ -1,427 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/* $Id$ */
-
-// 
-//  This class analyses TPC cosmics data from the ESD and the ESDfriend
-//
-//  Authors: Jan.Fiete.Grosse-Oetringhaus@cern.ch, Claus.Jorgensen@cern.ch
-//
-
-#include "AliROCESDAnalysisSelector.h"
-
-#include <AliLog.h>
-#include <AliESD.h>
-#include <AliESDfriend.h>
-#include <../TPC/AliTPCclusterMI.h>
-#include <../TPC/AliTPCseed.h>
-
-#include <TFile.h>
-#include <TMath.h>
-#include <TTree.h>
-#include <TCanvas.h>
-#include <TSystem.h>
-#include <TObjArray.h>
-#include <TTimeStamp.h>
-
-#include "TPC/AliTPCClusterHistograms.h"
-
-extern TSystem* gSystem;
-
-ClassImp(AliROCESDAnalysisSelector)
-
-AliROCESDAnalysisSelector::AliROCESDAnalysisSelector() :
-  AliSelector(),
-  fESDfriend(0),
-  fObjectsToSave(0),
-  fMinNumberOfRowsIsTrack(0)
-{
-  //
-  // Constructor. Initialization of pointers
-  //
-  fMinNumberOfRowsIsTrack = 5;
-
-  fObjectsToSave = new TObjArray();
-  
-  for (Int_t i=0; i<kTPCHists; i++)
-    fClusterHistograms[i] = 0;
-}
-
-AliROCESDAnalysisSelector::~AliROCESDAnalysisSelector()
-{
-  //
-  // Destructor
-  //
-}
-
-void AliROCESDAnalysisSelector::SlaveBegin(TTree* tree)
-{
-  //
-  
-  AliSelector::SlaveBegin(tree);
-} 
-
-void AliROCESDAnalysisSelector::Init(TTree *tree)
-{
-  // The Init() function is called when the selector needs to initialize
-  // a new tree or chain. Typically here the branch addresses of the tree
-  // will be set. It is normaly not necessary to make changes to the
-  // generated code, but the routine can be extended by the user if needed.
-  // Init() will be called many times when running with PROOF.
-
-  AliSelector::Init(tree);
-  
-  printf("Init called %p\n", (void*) fESDfriend);
-
-  // Set branch address
-  if (tree) 
-  {
-    tree->SetBranchAddress("ESDfriend", &fESDfriend);
-  
-    tree->SetBranchStatus("*", 0);
-    tree->SetBranchStatus("fTracks.*", 1);
-    tree->SetBranchStatus("fTimeStamp", 1);
-    //tree->SetBranchStatus("fTracks.fCalibContainer", 0);
-  }
-
-  if (fESDfriend != 0)
-    AliDebug(AliLog::kInfo, "INFO: Found ESDfriend branch in chain.");
-}
-
-Bool_t AliROCESDAnalysisSelector::Process(Long64_t entry)
-{
-  //
-  // Implement your analysis here. Do not forget to call the parent class Process by
-  // if (AliSelector::Process(entry) == kFALSE)
-  //   return kFALSE;
-  //
-
-  if (AliSelector::Process(entry) == kFALSE)
-    return kFALSE;
-
-  // Check prerequisites
-  if (!fESD)
-  {
-    AliDebug(AliLog::kError, "ESD branch not available");
-    return kFALSE;
-  }
-
-  // Check prerequisites
-  if (!fESDfriend)
-  {
-    AliDebug(AliLog::kError, "ESDfriend branch not available");
-    return kFALSE;
-  }
-
-  if (fESD->GetNumberOfTracks() != fESDfriend->GetNumberOfTracks())
-  {
-    AliDebug(AliLog::kError, Form("Event %lld: Number of tracks differ between ESD (%d) and ESDfriend (%d)! Skipping event!\n", entry, fESD->GetNumberOfTracks(), fESDfriend->GetNumberOfTracks()));
-    return kFALSE;
-  }  
-
-  fESD->SetESDfriend(fESDfriend);
-
-  Int_t flag = ProcessEvent(entry, kFALSE);
-  if (flag == 1)
-    ProcessEvent(entry, kTRUE);
-
-  // TODO This should not be needed, the TTree::GetEntry() should take care of this, maybe because it has a reference member, to be analyzed
-  // if the ESDfriend is not deleted we get a major memory leak
-  // here the esdfriend seems to be also deleted, very weird behaviour....
-
-  delete fESD;
-  fESD = 0;
-  
-  //delete fESDfriend;
-  //fESDfriend = 0;
-
-  return kTRUE;
-}
-
-Int_t AliROCESDAnalysisSelector::ProcessEvent(Long64_t entry, Bool_t detailedHistogram)
-{
-  //
-  // Looping over tracks and clusters in event and filling histograms 
-  //
-  // - if detailedHistogram = kTRUE special histograms are saved (in fObjectsToSave)
-  // - the method returns 
-  //   1 : if a "flash" is detected something special in this event
-  //   
-
-  // save maximum 50 objects
-  if (detailedHistogram) 
-    if (fObjectsToSave->GetEntries() > 50) 
-      return 0;
-      
-  // for saving single events
-  AliTPCClusterHistograms* clusterHistograms[kTPCSectors];
-  for (Int_t i=0; i<kTPCSectors; i++) 
-    clusterHistograms[i] = 0;  
-
-  Bool_t intToReturn = 0;
-
-  Int_t nTracks = fESD->GetNumberOfTracks();
-  
-  Int_t nSkippedSeeds = 0;
-  //Int_t nSkippedTracks = 0;
-
-  // for "flash" detection
-  Int_t nClusters = 0;
-  Float_t clusterQtotSumVsTime[250];  
-  for (Int_t z=0; z<250; z++)
-    clusterQtotSumVsTime[z] = 0;
-  
-  // loop over esd tracks
-  for (Int_t t=0; t<nTracks; t++)
-  {
-    AliESDtrack* esdTrack = dynamic_cast<AliESDtrack*> (fESD->GetTrack(t));
-    if (!esdTrack)
-    {
-      AliDebug(AliLog::kError, Form("ERROR: Could not retrieve track %d.", t));
-      continue;
-    }
-    
-    AliESDfriendTrack* friendtrack = const_cast<AliESDfriendTrack*> (dynamic_cast<const AliESDfriendTrack*> (esdTrack->GetFriendTrack()));
-    if (!friendtrack)
-    {
-      AliDebug(AliLog::kError, Form("ERROR: Could not retrieve friend of track %d.", t));
-      continue;
-    }
-    
-    const AliTPCseed* seed = dynamic_cast<const AliTPCseed*> (friendtrack->GetCalibObject(0));
-    if (!seed)
-    {
-      AliDebug(AliLog::kDebug, Form("ERROR: Could not retrieve seed of track %d.", t));
-      nSkippedSeeds++;
-      continue;
-    }
-    
-    /*if (!AcceptTrack(seed, fMinNumberOfRowsIsTrack))
-    {
-      AliDebug(AliLog::kDebug, Form("INFO: Rejected track %d.", t));
-      nSkippedTracks++;
-      continue;
-    }*/
-    
-    for (Int_t clusterID = 0; clusterID < 160; clusterID++)
-    {
-      AliTPCclusterMI* cluster = seed->GetClusterPointer(clusterID);
-      if (!cluster) 
-        continue;
-      
-      Int_t detector = cluster->GetDetector();
-      
-      if (detector < 0 || detector >= kTPCSectors) 
-      {
-        AliDebug(AliLog::kDebug, Form("We found a cluster from invalid sector %d", detector));
-        continue;
-      }
-
-      if (!detailedHistogram) {
-        // TODO: find a clever way to handle the time      
-       Int_t time = 0;
-       
-       if (fESD->GetTimeStamp()>1160000000)
-         time = fESD->GetTimeStamp();      
-       
-       if (!fClusterHistograms[detector])
-         fClusterHistograms[detector] = new AliTPCClusterHistograms(detector,"",time,time+5*60*60);
-       
-       if (!fClusterHistograms[detector+kTPCSectors])
-         fClusterHistograms[detector+kTPCSectors] = new AliTPCClusterHistograms(detector,"",time,time+5*60*60, kTRUE);
-       
-       fClusterHistograms[detector]->FillCluster(cluster, time);
-       fClusterHistograms[detector+kTPCSectors]->FillCluster(cluster, time);
-       
-       Int_t z = Int_t(cluster->GetZ()); 
-       if (z>=0 && z<250) {
-         nClusters++;
-         clusterQtotSumVsTime[z] += cluster->GetQ();
-       }
-      } // end of if !detailedHistograms
-      else {
-       // if we need the detailed histograms for this event
-       if (!clusterHistograms[detector])
-         clusterHistograms[detector] = new AliTPCClusterHistograms(detector, Form("flash_entry%d", entry));
-       
-       clusterHistograms[detector]->FillCluster(cluster);
-      }
-    }
-    
-    for (Int_t i=0; i<kTPCHists; i++) 
-      if (fClusterHistograms[i]) 
-        fClusterHistograms[i]->FillTrack(seed);
-
-  }
-  
-  // check if there's a very large q deposit ("flash")
-  if (!detailedHistogram) {
-    for (Int_t z=0; z<250; z++) {
-      if (clusterQtotSumVsTime[z] > 150000) {
-       printf(Form("  \n   -> Entry %lld sum of clusters at time %d is %f, ESD timestamp: %s (%d) \n \n", entry, z, clusterQtotSumVsTime[z], TTimeStamp(fESD->GetTimeStamp()).AsString(), fESD->GetTimeStamp()));
-               intToReturn = 1;
-      }
-    }
-  }
-  else {
-    for (Int_t i=0; i< kTPCSectors; i++) {
-      if (clusterHistograms[i]) {
-        fObjectsToSave->Add(clusterHistograms[i]);
-      }
-    }    
-  }
-
-//   if (nSkippedSeeds > 0)
-//     printf("WARNING: The seed was not found for %d out of %d tracks.\n", nSkippedSeeds, nTracks);
-//   if (nSkippedTracks > 0)
-//     printf("INFO: Rejected %d out of %d tracks.\n", nSkippedTracks, nTracks);
-   
-  return intToReturn;
-}
-
-Bool_t AliROCESDAnalysisSelector::AcceptTrack(const AliTPCseed* track, Int_t minRowsIncluded) {
-  //
-  // check if the track should be accepted.
-  //
-  const Int_t   kMinClusters = 5;
-  const Float_t kMinRatio    = 0.75;
-  const Float_t kMax1pt      = 0.5;
-
-  Int_t  nRowsUsedByTracks = 0;
-  Bool_t rowIncluded[96];
-  
-  Float_t totalQtot = 0;
-  Int_t   nClusters = 0;
-
-  for(Int_t r=0; r<96; r++) 
-    rowIncluded[r] = kFALSE;
-  
-  for (Int_t clusterID = 0; clusterID < 160; clusterID++) {
-    AliTPCclusterMI* cluster = track->GetClusterPointer(clusterID);
-    
-    if (!cluster) 
-      continue;
-    
-    Float_t qTot =   cluster->GetQ();    
-    
-    nClusters++;
-    totalQtot += qTot;
-
-    if (!rowIncluded[cluster->GetRow()]) {
-      nRowsUsedByTracks++;
-      rowIncluded[cluster->GetRow()] = kTRUE;
-    }
-  }
-
-  Float_t meanQtot = totalQtot/nClusters;
-
-  if (meanQtot<70)
-    return kFALSE;
-
-  if (nRowsUsedByTracks < minRowsIncluded)
-    return kFALSE;
-  
-  //  printf(Form("    TRACK: n clusters = %d,  n pad rows = %d \n",track->GetNumberOfClusters(), nRowsUsedByTracks));
-  
-  if (track->GetNumberOfClusters()<kMinClusters) return kFALSE;
-  Float_t ratio = track->GetNumberOfClusters()/(track->GetNFoundable()+1.);
-  if (ratio<kMinRatio) return kFALSE;
-  Float_t mpt = track->GetSigned1Pt();
-  if (TMath::Abs(mpt)>kMax1pt) return kFALSE;
-
-  //if (TMath::Abs(track->GetZ())>240.) return kFALSE;
-  //if (TMath::Abs(track->GetZ())<10.) return kFALSE;
-  //if (TMath::Abs(track->GetTgl())>0.03) return kFALSE;
-  
-  return kTRUE;
-}
-
-void AliROCESDAnalysisSelector::SlaveTerminate()
-{
-  //
-  
-  if (fOutput)
-  {
-    for (Int_t i=0; i<kTPCHists; i++)
-      if (fClusterHistograms[i])
-        fOutput->Add(fClusterHistograms[i]);
-  }
-} 
-
-void AliROCESDAnalysisSelector::Terminate()
-{
-  // 
-  // read the objects from the output list and write them to a file
-  // the filename is modified by the object comment passed in the tree info or input list
-  //
-
-  if (fOutput)
-  {  
-    fOutput->Print();
-        
-    for (Int_t i=0; i<kTPCSectors; i++)
-      fClusterHistograms[i] = dynamic_cast<AliTPCClusterHistograms*> (fOutput->FindObject(AliTPCClusterHistograms::FormDetectorName(i, kFALSE)));
-    for (Int_t i=0; i<kTPCSectors; i++)
-      fClusterHistograms[kTPCSectors+i] = dynamic_cast<AliTPCClusterHistograms*> (fOutput->FindObject(AliTPCClusterHistograms::FormDetectorName(i, kTRUE)));
-  }
-  
-  TNamed* comment = 0;
-  if (fTree && fTree->GetUserInfo())
-    comment = dynamic_cast<TNamed*>(fTree->GetUserInfo()->FindObject("comment"));
-  if (!comment && fInput)
-    comment = dynamic_cast<TNamed*>(fInput->FindObject("comment"));
-
-  if (comment)
-  {
-    AliDebug(AliLog::kInfo, Form("INFO: Found comment in input list: %s", comment->GetTitle()));
-  }
-  else
-    return;
-
-  TFile* file = TFile::Open(Form("rocESD_%s.root",comment->GetTitle()), "RECREATE");
-
-  for (Int_t i=0; i<kTPCHists; i++)
-    if (fClusterHistograms[i]) {
-      fClusterHistograms[i]->SaveHistograms();
-     // TCanvas* c = fClusterHistograms[i]->DrawHistograms(comment->GetTitle());
-                       //TString dir;
-                       //dir.Form("WWW/%s", comment->GetTitle(), c->GetName());
-                       //gSystem->mkdir(dir, kTRUE);
-      //c->SaveAs(Form("%s/plots_%s_%s.eps",dir.Data(),comment->GetTitle(),c->GetName()));
-      //c->SaveAs(Form("%s/plots_%s_%s.gif",dir.Data(),comment->GetTitle(),c->GetName()));
-
-      //c->Close();
-      //delete c;
-    }
-
-  gDirectory->mkdir("saved_objects");
-  gDirectory->cd("saved_objects");
-
-  for (Int_t i=0; i<fObjectsToSave->GetSize(); i++) {
-    if (fObjectsToSave->At(i)) {
-      AliTPCClusterHistograms* clusterHistograms = dynamic_cast<AliTPCClusterHistograms*> (fObjectsToSave->At(i));
-      if (clusterHistograms)
-       clusterHistograms->SaveHistograms();
-      else
-       fObjectsToSave->At(i)->Write();
-    }
-  }
-
-  gDirectory->cd("../");
-
-
-  file->Close();
-}
diff --git a/PWG0/TPC/AliROCESDAnalysisSelector.h b/PWG0/TPC/AliROCESDAnalysisSelector.h
deleted file mode 100644 (file)
index e632728..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* $Id$ */
-
-#ifndef AliROCESDAnalysisSelector_H
-#define AliROCESDAnalysisSelector_H
-
-#include "AliSelector.h"
-
-class AliTPCClusterHistograms;
-class AliESD;
-class AliESDfriend;
-class AliTPCseed;
-
-class TObjArray;
-
-// 
-// TODO explain this
-//
-
-class AliROCESDAnalysisSelector : public AliSelector {
-  public:
-    enum { kTPCSectors = 72, kTPCHists = kTPCSectors * 2 };
-  
-    AliROCESDAnalysisSelector();
-    virtual ~AliROCESDAnalysisSelector();
-
-    virtual void    SlaveBegin(TTree* tree);
-    virtual void    Init(TTree *tree);
-    virtual Bool_t  Process(Long64_t entry);
-    virtual void    SlaveTerminate();
-    virtual void    Terminate();
-
-    Int_t           ProcessEvent(Long64_t entry, Bool_t detailedHistogram=kFALSE);
-
-    Bool_t          AcceptTrack(const AliTPCseed* track, Int_t minRowsIncluded=0);
-
- protected:
-    AliESDfriend* fESDfriend;  // ESD friend pointer
-
-    AliTPCClusterHistograms* fClusterHistograms[kTPCHists]; // 0..71 histograms created with all clusters, 72..143 without edges
-
- private:
-
-    TObjArray* fObjectsToSave;
-
-    Int_t fMinNumberOfRowsIsTrack;
-
-    AliROCESDAnalysisSelector(const AliROCESDAnalysisSelector&);
-    AliROCESDAnalysisSelector& operator=(const AliROCESDAnalysisSelector&);
-
-  ClassDef(AliROCESDAnalysisSelector, 0);
-};
-
-#endif
diff --git a/PWG0/TPC/AliROCRawAnalysisSelector.cxx b/PWG0/TPC/AliROCRawAnalysisSelector.cxx
deleted file mode 100644 (file)
index 1154ecc..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/* $Id$ */
-
-
-#include "AliROCRawAnalysisSelector.h"
-
-#include <AliLog.h>
-
-#include <AliRawVEvent.h>
-#include <AliRawReaderRoot.h>
-#include <AliRawEventHeaderBase.h>
-#include <AliTPCRawStream.h>
-#include <AliTPCParamSR.h>
-
-#include <TFile.h>
-#include <TTree.h>
-#include <TCanvas.h>
-#include <TTimeStamp.h>
-#include <TROOT.h>
-
-#include <TPC/AliTPCRawHistograms.h>
-
-
-ClassImp(AliROCRawAnalysisSelector)
-
-AliROCRawAnalysisSelector::AliROCRawAnalysisSelector() :
-  TSelector(),
-  fRawEvent(0),
-  fTree(0),
-  fParam(0)  
-{
-  //
-  // Constructor. Initialization of pointers
-  //
-
-  for (Int_t i=0; i<kTPCSectors; i++)
-    fHistograms[i] = 0;
-
-  fParam = new AliTPCParamSR;
-}
-
-AliROCRawAnalysisSelector::~AliROCRawAnalysisSelector()
-{
-  //
-  // Destructor
-  //
-}
-
-void AliROCRawAnalysisSelector::SlaveBegin(TTree* tree)
-{
-  //
-
-  if (tree != 0)
-    Init(tree);
-} 
-
-void AliROCRawAnalysisSelector::Init(TTree* tree)
-{
-  // The Init() function is called when the selector needs to initialize
-  // a new tree or chain. Typically here the branch addresses of the tree
-  // will be set. It is normaly not necessary to make changes to the
-  // generated code, but the routine can be extended by the user if needed.
-  // Init() will be called many times when running with PROOF.
-
-  fTree = tree;
-
-  // Set branch address
-  if (tree) 
-  {
-    AliDebug(AliLog::kInfo, "INFO: Tree found");
-
-    tree->SetBranchAddress("rawevent", &fRawEvent);
-  }
-}
-
-Bool_t AliROCRawAnalysisSelector::Process(Long64_t entry)
-{
-  //
-  //
-  //
-
-  AliDebug(AliLog::kInfo, Form("Processing event %lld", entry));
-  
-  fTree->GetTree()->GetEntry(entry);
-
-  if (!fRawEvent)
-  {
-    AliDebug(AliLog::kError, "fRawEvent empty");
-    return kFALSE;
-  }
-  
-  AliRawReaderRoot* rawReader = new AliRawReaderRoot(fRawEvent);
-
-  const AliRawEventHeaderBase* eventHeader = dynamic_cast<const AliRawEventHeaderBase*> (rawReader->GetEventHeader());
-  if (eventHeader) 
-  {
-    eventHeader->Print();
-    
-    UInt_t timeStamp = eventHeader->Get("Timestamp");
-    UInt_t eventType = eventHeader->Get("Type");
-    
-    AliDebug(AliLog::kInfo, Form("Time stamp: %s, event type %d", TTimeStamp(timeStamp).AsString(), eventType));
-  }           
-  
-  AliTPCRawStream* tpcRawStream = new AliTPCRawStream(rawReader);
-     
-  const Int_t kNIS = fParam->GetNInnerSector();
-  const Int_t kNOS = fParam->GetNOuterSector();
-  const Int_t kNS = kNIS + kNOS;
-  
-  for (Int_t sector = 0; sector < kNS; sector++) 
-  {
-    AliDebug(AliLog::kInfo, Form("*** Looking at sector %d ***", sector));
-            
-    Int_t nRows = 0;
-    Int_t nDDLs = 0, indexDDL = 0;
-    
-    if (sector < kNIS) 
-    {
-      nRows = fParam->GetNRowLow();
-      nDDLs = 2;
-      indexDDL = sector * 2;
-    }
-    else 
-    {
-      nRows = fParam->GetNRowUp();
-      nDDLs = 4;
-      indexDDL = (sector-kNIS) * 4 + kNIS * 2;
-    }
-    
-    // Loas the raw data for corresponding DDLs
-    rawReader->Reset();
-    rawReader->Select("TPC",indexDDL,indexDDL+nDDLs-1);
-    
-    AliDebug(AliLog::kDebug, Form("Selected DDLs %d ... %d", indexDDL, indexDDL+nDDLs-1));
-    
-    Int_t count = 0;
-    
-    while (tpcRawStream->Next())
-    {
-         if (tpcRawStream->GetSector() != sector)
-      {
-           AliDebug(AliLog::kError, Form("Sector index mismatch ! Expected (%d), but got (%d) !",sector,tpcRawStream->GetSector()));
-           return kFALSE;
-      }
-      
-      if ((count++ % 100000) == 0)
-           AliDebug(AliLog::kDebug, Form("Found %d. digit in sector %d: row %d, pad %d, time %d, signal %d", count, 
-            tpcRawStream->GetSector(), tpcRawStream->GetRow(), tpcRawStream->GetPad(), tpcRawStream->GetTime(), tpcRawStream->GetSignal()));
-
-      if (!fHistograms[sector])
-      {
-        // not sure if this is still needed, should prevent creation of the histogram in the opened root file
-        gROOT->cd();
-        fHistograms[sector] = new AliTPCRawHistograms(sector);
-      }
-      
-      fHistograms[sector]->FillDigit(tpcRawStream);
-    }
-  }
-  
-  delete fRawEvent;
-  fRawEvent = 0;
-   
-  return kTRUE;
-}
-
-void AliROCRawAnalysisSelector::SlaveTerminate()
-{
-  //
-  for (Int_t i=0; i<kTPCSectors; i++)
-   if (fHistograms[i])
-     fOutput->Add(fHistograms[i]);
-} 
-
-void AliROCRawAnalysisSelector::Terminate()
-{
-  AliDebug(AliLog::kInfo, "Terminate....");
-
-  // TODO read from output list for PROOF
-    
-  TFile* file = TFile::Open("rocRaw.root", "RECREATE");
-  
-  for (Int_t i=0; i<kTPCSectors; i++)
-    if (fHistograms[i])
-      fHistograms[i]->SaveHistograms();
-
-  file->Close();
-
-  for (Int_t i=0; i<kTPCSectors; i++)
-    if (fHistograms[i])
-      fHistograms[i]->DrawHistograms();
-} 
diff --git a/PWG0/TPC/AliROCRawAnalysisSelector.h b/PWG0/TPC/AliROCRawAnalysisSelector.h
deleted file mode 100644 (file)
index d40b24a..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/* $Id$ */
-
-#ifndef AliROCRawAnalysisSelector_H
-#define AliROCRawAnalysisSelector_H
-
-#include "TSelector.h"
-
-// 
-// TODO explain this
-//
-
-class AliRawVEvent;
-class TTree;
-class AliTPCParamSR;
-class AliTPCRawHistograms;
-
-class AliROCRawAnalysisSelector : public TSelector {
-  public:
-    enum { kTPCSectors = 72 };
-  
-    AliROCRawAnalysisSelector();
-    virtual ~AliROCRawAnalysisSelector();
-
-    virtual Int_t   Version() const {return 1;}
-    virtual void    SlaveBegin(TTree* tree);
-    virtual void    Init(TTree *tree);
-    virtual Bool_t  Process(Long64_t entry);
-    virtual void    SlaveTerminate();
-    virtual void    Terminate();
-
- protected:
-    AliRawVEvent* fRawEvent;
-    TTree*       fTree;
-
-    AliTPCParamSR* fParam;  // TPC hardware params
-
-    AliTPCRawHistograms* fHistograms[kTPCSectors];
-
- private:
-    AliROCRawAnalysisSelector(const AliROCRawAnalysisSelector&);
-    AliROCRawAnalysisSelector& operator=(const AliROCRawAnalysisSelector&);
-
-  ClassDef(AliROCRawAnalysisSelector, 0);
-};
-
-#endif
diff --git a/PWG0/TPC/AliTPCClusterHistograms.cxx b/PWG0/TPC/AliTPCClusterHistograms.cxx
deleted file mode 100644 (file)
index fafa6a7..0000000
+++ /dev/null
@@ -1,1010 +0,0 @@
-/* $Id$ */
-
-// This class contains a number of histograms for diagnostics of a TPC
-// read out chamber from the reconstructed clusters.
-//
-// TODO:
-//
-//
-//
-
-#include "AliTPCClusterHistograms.h"
-
-#include <TStyle.h>
-#include <TFile.h>
-#include <TCanvas.h>
-#include <TH2F.h>
-#include <TProfile2D.h>
-#include <TObjArray.h>
-#include <TLatex.h>
-#include <TTimeStamp.h>
-#include <TRandom.h>
-
-#include <AliTPCclusterMI.h>
-#include <AliTPCseed.h>
-
-#include <AliLog.h>
-
-// uncomment if working with version after release that has new cluster scheme
-//#define NEWALIROOT
-
-//____________________________________________________________________
-ClassImp(AliTPCClusterHistograms)
-
-//____________________________________________________________________
-AliTPCClusterHistograms::AliTPCClusterHistograms() 
-  : TNamed(),
-  fTimeStart(0),
-  fTimeStop(0),
-  fhQmaxVsRow(0),
-  fhQtotVsRow(0),          
-  fhQtotProfileVsRow(0),   
-  fhQmaxProfileVsRow(0),
-  fhQtotVsDistanceToEdge(0),
-  fhQtotProfileVsDistanceToEdge(0),
-  fhNClustersYVsRow(0),
-  fhNClustersZVsRow(0),
-  fhSigmaYVsRow(0),        
-  fhSigmaZVsRow(0),                            
-  fhQmaxProfileYVsRow(0), 
-  fhQtotProfileYVsRow(0),
-  fhSigmaYProfileYVsRow(0),
-  fhSigmaZProfileYVsRow(0),
-  fhQmaxProfileZVsRow(0), 
-  fhQtotProfileZVsRow(0),
-  fhSigmaYProfileZVsRow(0),
-  fhSigmaZProfileZVsRow(0),
-  fhMeanQtotVsTime(0),  
-  fhQtotVsTime(0),
-  fhMeanNClustersVsTime(0),    
-  fhNClustersVsTime(0),        
-  fhTrackQtotPerCluster(0),
-  fhTrackQtotPerClusterVsPhi(0),
-  fhTrackQtotPerClusterVsTheta(0),
-  fhTrackMeanQtotPerClusterVsPhi(0),
-  fhTrackMeanQtotPerClusterVsTheta(0),
-  fhMeanNTracksVsTime(),
-  fhNEventsVsTime(),
-  fDetector(0),
-  fIsIROC(kFALSE),
-  fEdgeSuppression(kFALSE),
-  fNClustersInEvent(0),
-  fQtotInEvent(0),
-  fMaxQtotInEvent(0),
-  fKeepEvent(0),
-  fWhyKeepEvent(),
-  fCommentToHistograms()
-{
-  // default constructor
-}
-
-//____________________________________________________________________
-AliTPCClusterHistograms::AliTPCClusterHistograms(Int_t detector, const Char_t* comment, Int_t timeStart, Int_t timeStop, Bool_t edgeSuppression)
-  : TNamed(),
-  fTimeStart(0),
-  fTimeStop(0),
-  fhQmaxVsRow(0),
-  fhQtotVsRow(0),          
-  fhQtotProfileVsRow(0),   
-  fhQmaxProfileVsRow(0),
-  fhQtotVsDistanceToEdge(0),
-  fhQtotProfileVsDistanceToEdge(0),
-  fhNClustersYVsRow(0),
-  fhNClustersZVsRow(0),
-  fhSigmaYVsRow(0),        
-  fhSigmaZVsRow(0),                            
-  fhQmaxProfileYVsRow(0), 
-  fhQtotProfileYVsRow(0),
-  fhSigmaYProfileYVsRow(0),
-  fhSigmaZProfileYVsRow(0),
-  fhQmaxProfileZVsRow(0), 
-  fhQtotProfileZVsRow(0),
-  fhSigmaYProfileZVsRow(0),
-  fhSigmaZProfileZVsRow(0),
-  fhMeanQtotVsTime(0),  
-  fhQtotVsTime(0),
-  fhMeanNClustersVsTime(0),    
-  fhNClustersVsTime(0),        
-  fhTrackQtotPerCluster(0),
-  fhTrackQtotPerClusterVsPhi(0),
-  fhTrackQtotPerClusterVsTheta(0),
-  fhTrackMeanQtotPerClusterVsPhi(0),
-  fhTrackMeanQtotPerClusterVsTheta(0),
-  fhMeanNTracksVsTime(),
-  fhNEventsVsTime(),
-  fDetector(0),
-  fIsIROC(kFALSE),
-  fEdgeSuppression(edgeSuppression),
-  fNClustersInEvent(0),
-  fQtotInEvent(0),
-  fMaxQtotInEvent(0),
-  fKeepEvent(0),
-  fWhyKeepEvent(),
-  fCommentToHistograms()
-{
-  // constructor 
-  
-  // make name and title
-  if (detector < 0 || detector >= 72) {
-    AliDebug(AliLog::kError, Form("Detector %d does not exist", detector));
-    return;
-  }
-      
-  TString name(FormDetectorName(detector, edgeSuppression, comment));
-
-  fNClustersInEvent = 0;
-  fQtotInEvent      = 0;
-  fMaxQtotInEvent   = 0;
-
-  fKeepEvent = kFALSE;
-  fWhyKeepEvent = TString("hi");
-
-  fDetector = detector;
-  if (detector < 36)
-    fIsIROC = kTRUE; 
-  
-  SetName(name);
-  SetTitle(Form("%s (detector %d)",name.Data(), detector));
-
-  // rounding down to the closest hour and starting 10 hours before
-  fTimeStart = 3600*UInt_t(timeStart/3600) - 36000;
-  // rounding up to the closest hour
-  fTimeStop  = 3600*UInt_t((3600 + timeStop)/3600);
-  // each time bin covers 5 min
-  Int_t nTimeBins = (fTimeStop-fTimeStart)/300;
-  
-  //  printf(Form(" start time: %d,  stop time: %d \n",fTimeStart, fTimeStop));
-
-  #define BINNING_Z 250, 0, 250
-  
-  Float_t yRange   = 45;
-  Int_t nPadRows   = 96;
-  
-  if (fIsIROC)
-  {
-    yRange   = 25;
-    nPadRows = 63;
-  }
-  
-  // 1 bin for each 0.5 cm
-  Int_t nBinsY = Int_t(4*yRange);
-
-  // do not add this hists to the directory
-  Bool_t oldStatus = TH1::AddDirectoryStatus();
-  TH1::AddDirectory(kFALSE);
-
-  //defining histograms and profile plots
-  fhQmaxVsRow  = new TH2F("QmaxVsPadRow", "Qmax vs. pad row;Pad row;Qmax", nPadRows+2, -1.5, nPadRows+0.5, 500,  0,  500);
-  fhQtotVsRow  = new TH2F("QtotVsPadRow", "Qtot vs. pad row;Pad row;Qtot", nPadRows+2, -1.5, nPadRows+0.5, 400,  0,  4000);
-
-  fhQmaxProfileVsRow = new TProfile("MeanQmaxVsPadRow","Mean Qmax vs. pad row;Pad row;Mean Qmax",nPadRows+2, -1.5, nPadRows+0.5);
-  fhQtotProfileVsRow = new TProfile("MeanQtotVsPadRow","Mean Qtot vs. pad row;Pad row;Mean Qtot",nPadRows+2, -1.5, nPadRows+0.5);
-  
-  fhNClustersYVsRow = new TH2F("NClusters y vs pad row","N clusters y vs pad;Pad row;y",nPadRows+2, -1.5, nPadRows+0.5, nBinsY, -yRange, yRange);
-  fhNClustersZVsRow = new TH2F("NClusters z vs pad row","N clusters z vs pad;Pad row;z",nPadRows+2, -1.5, nPadRows+0.5, BINNING_Z);
-
-  fhSigmaYVsRow = new TH2F("SigmaYVsPadRow", "Sigma Y vs. pad row;Pad row;#sigma_{Y}", nPadRows+2, -1.5, nPadRows+0.5, 100,  0,  0.5);
-  fhSigmaZVsRow = new TH2F("SigmaZVsPadRow", "Sigma Z vs. pad row;Pad row;#sigma_{Z}", nPadRows+2, -1.5, nPadRows+0.5, 100,  0,  0.5);
-  
-  fhQmaxProfileYVsRow = new TProfile2D("MeanQmaxYVsPadRow","Mean Qmax, y vs pad row;Pad row;y",nPadRows+2, -1.5, nPadRows+0.5, nBinsY, -yRange, yRange);
-  fhQtotProfileYVsRow = new TProfile2D("MeanQtotYVsPadRow","Mean Qtot, y vs pad row;Pad row;y",nPadRows+2, -1.5, nPadRows+0.5, nBinsY, -yRange, yRange);
-  fhSigmaYProfileYVsRow = new TProfile2D("MeanSigmaYYVsPadRow","Mean Sigma y, y vs pad row;Pad row;y",nPadRows+2, -1.5, nPadRows+0.5, nBinsY, -yRange, yRange);
-  fhSigmaZProfileYVsRow = new TProfile2D("MeanSigmaZYVsPadRow","Mean Sigma z, y vs pad row;Pad row;y",nPadRows+2, -1.5, nPadRows+0.5, nBinsY, -yRange, yRange);
-
-  fhQmaxProfileZVsRow = new TProfile2D("MeanQmaxZVsPadRow","Mean Qmax, z vs pad row;Pad row;z",nPadRows+2, -1.5, nPadRows+0.5, BINNING_Z);
-  fhQtotProfileZVsRow = new TProfile2D("MeanQtotZVsPadRow","Mean Qtot, z vs pad row;Pad row;z",nPadRows+2, -1.5, nPadRows+0.5, BINNING_Z);
-  fhSigmaYProfileZVsRow = new TProfile2D("MeanSigmaYZVsPadRow","Mean Sigma y, z vs pad row;Pad row;z",nPadRows+2, -1.5, nPadRows+0.5, BINNING_Z);
-  fhSigmaZProfileZVsRow = new TProfile2D("MeanSigmaZZVsPadRow","Mean Sigma z, z vs pad row;Pad row;z",nPadRows+2, -1.5, nPadRows+0.5, BINNING_Z);
-
-
-  TString start(TTimeStamp(fTimeStart).AsString());
-  //  TString stop(TTimeStamp(fTimeStart).AsString());
-  start.Remove(26);
-  
-  fhMeanQtotVsTime = new TProfile("MeanQtotVsTime",Form("Mean Qtot vs. time (start %s , 1 min bins); time; Qtot",start.Data()),5*nTimeBins, fTimeStart, fTimeStop);
-  fhQtotVsTime     = new TH2F("QtotVsTime",Form("Qtot vs. time (start %s , 1 min bins); time; Qtot",start.Data()),5*nTimeBins, fTimeStart, fTimeStop,400,0,2000);
-
-  fhMeanNClustersVsTime = new TProfile("MeanNClustersVsTime",Form("Mean N Cluster vs. time (start %s , 5 min bins); time; NClusters",start.Data()),nTimeBins, fTimeStart, fTimeStop);
-  fhNClustersVsTime = new TH2F("NClustersVsTime",Form("N Clusters vs. time (start %s , 5 min bins); time; NClusters",start.Data()),nTimeBins, fTimeStart, fTimeStop,400,-0.5,3999.5);
-
-  fhQmaxProfileVsRow->SetLineWidth(2);
-  fhQtotProfileVsRow->SetLineWidth(2);
-
-  fhMeanQtotVsTime->SetLineWidth(2);
-
-  // histograms related to tracks
-
-  fhTrackQtotPerCluster = new TH1F("QtotPerCluster","Qtot per cluster; (Sum Qtot)/clusters",200,0,2000);
-  fhTrackQtotPerCluster->SetMarkerStyle(22);
-  fhTrackQtotPerCluster->SetMarkerSize(1);
-
-  fhTrackQtotPerClusterVsPhi = new TH2F("QtotPerClusterVsPhi","QtotPerCluster vs Phi; Phi; (Sum Qtot)/clusters",40,-2,2,200,0,2000);
-  fhTrackQtotPerClusterVsTheta = new TH2F("QtotPerClusterVsTheta","QtotPerCluster vs Theta; Theta; (Sum Qtot)/clusters",40,-2,2,200,0,2000);
-
-  fhTrackMeanQtotPerClusterVsPhi = new TProfile("MeanQtotPerClusterVsPhi", "QtotPerCluster vs Phi; Phi; Mean (Sum Qtot)/clusters",40,-2,2);
-  fhTrackMeanQtotPerClusterVsTheta = new TProfile("MeanQtotPerClusterVsTheta", "QtotPerCluster vs Theta; Theta; Mean (Sum Qtot)/clusters",40,-2,2);
-
-  fhTrackMeanQtotPerClusterVsPhi->SetLineWidth(2);
-  fhTrackMeanQtotPerClusterVsTheta->SetLineWidth(2);
-
-  fhMeanNTracksVsTime = new TProfile("MeanNTracksVsTime",Form("Mean n tracks vs. time (start %s , 5 min bins); time; N tracks",start.Data()),nTimeBins, fTimeStart, fTimeStop);
-
-  fhNEventsVsTime = new TH1F("NEventsVsTime",Form("N events vs. time (start %s , 5 min bins); time; N events",start.Data()),nTimeBins, fTimeStart, fTimeStop);
-
-  TH1::AddDirectory(oldStatus);
-}
-
-//____________________________________________________________________
-AliTPCClusterHistograms::AliTPCClusterHistograms(const AliTPCClusterHistograms& c) : TNamed(c),
-  fTimeStart(0),
-  fTimeStop(0),
-  fhQmaxVsRow(0),
-  fhQtotVsRow(0),          
-  fhQtotProfileVsRow(0),   
-  fhQmaxProfileVsRow(0),
-  fhQtotVsDistanceToEdge(0),
-  fhQtotProfileVsDistanceToEdge(0),
-  fhNClustersYVsRow(0),
-  fhNClustersZVsRow(0),
-  fhSigmaYVsRow(0),        
-  fhSigmaZVsRow(0),                            
-  fhQmaxProfileYVsRow(0), 
-  fhQtotProfileYVsRow(0),
-  fhSigmaYProfileYVsRow(0),
-  fhSigmaZProfileYVsRow(0),
-  fhQmaxProfileZVsRow(0), 
-  fhQtotProfileZVsRow(0),
-  fhSigmaYProfileZVsRow(0),
-  fhSigmaZProfileZVsRow(0),
-  fhMeanQtotVsTime(0),  
-  fhQtotVsTime(0),
-  fhMeanNClustersVsTime(0),    
-  fhNClustersVsTime(0),        
-  fhTrackQtotPerCluster(0),
-  fhTrackQtotPerClusterVsPhi(0),
-  fhTrackQtotPerClusterVsTheta(0),
-  fhTrackMeanQtotPerClusterVsPhi(0),
-  fhTrackMeanQtotPerClusterVsTheta(0),
-  fhMeanNTracksVsTime(),
-  fhNEventsVsTime(),
-  fDetector(0),
-  fIsIROC(kFALSE),
-  fEdgeSuppression(kFALSE),
-  fNClustersInEvent(0),
-  fQtotInEvent(0),
-  fMaxQtotInEvent(0),
-  fKeepEvent(0),
-  fWhyKeepEvent(),
-  fCommentToHistograms()
-{
-  // copy constructor
-  ((AliTPCClusterHistograms &)c).Copy(*this);
-}
-
-//____________________________________________________________________
-AliTPCClusterHistograms::~AliTPCClusterHistograms()
-{
-  //
-  // destructor
-  //
-
-  if (fhQmaxVsRow) {
-    delete fhQmaxVsRow;
-    fhQmaxVsRow = 0;
-  }
-  if (fhQtotVsRow) {
-    delete fhQtotVsRow;
-    fhQtotVsRow = 0; 
-  }
-  if (fhQmaxProfileVsRow) {
-    delete fhQmaxProfileVsRow;
-    fhQmaxProfileVsRow = 0;
-  }
-  if (fhQtotProfileVsRow) {
-    delete fhQtotProfileVsRow;
-    fhQtotProfileVsRow = 0;
-  }
-  if (fhNClustersYVsRow) {
-    delete fhNClustersYVsRow;
-    fhNClustersYVsRow = 0;
-  }
-  if (fhNClustersZVsRow) {
-    delete fhNClustersZVsRow;
-    fhNClustersZVsRow = 0;
-  }
-  if (fhSigmaYVsRow) {
-    delete fhSigmaYVsRow;
-    fhSigmaYVsRow = 0;
-  } 
-  if (fhSigmaZVsRow) {
-    delete fhSigmaZVsRow;
-    fhSigmaZVsRow = 0; 
-  }
-  if (fhQmaxProfileYVsRow) {
-    delete fhQmaxProfileYVsRow;
-    fhQmaxProfileYVsRow = 0;
-  }
-  if (fhQtotProfileYVsRow) {
-    delete fhQtotProfileYVsRow;
-    fhQtotProfileYVsRow = 0;
-  }
-  if (fhSigmaYProfileYVsRow) {
-    delete fhSigmaYProfileYVsRow;
-    fhSigmaYProfileYVsRow = 0;
-  }
-  if (fhSigmaZProfileYVsRow) {
-    delete fhSigmaZProfileYVsRow;
-    fhSigmaZProfileYVsRow = 0;
-  }
-  if (fhQmaxProfileZVsRow) {
-    delete fhQmaxProfileZVsRow;
-    fhQmaxProfileZVsRow = 0;
-  }
-  if (fhQtotProfileZVsRow) {
-    delete fhQtotProfileZVsRow;
-    fhQtotProfileZVsRow = 0;
-  }
-  if (fhSigmaYProfileZVsRow) {
-    delete fhSigmaYProfileZVsRow;
-    fhSigmaYProfileZVsRow = 0;
-  }
-  if (fhSigmaZProfileZVsRow) {
-    delete fhSigmaZProfileZVsRow;
-    fhSigmaZProfileZVsRow = 0;
-  }
-  if (fhMeanQtotVsTime) {
-    delete fhMeanQtotVsTime;
-    fhMeanQtotVsTime = 0;
-  }
-  if (fhQtotVsTime) {
-    delete fhQtotVsTime;
-    fhQtotVsTime = 0;
-  }
-  if (fhMeanNClustersVsTime) {
-    delete fhMeanNClustersVsTime;
-    fhMeanNClustersVsTime = 0;
-  }
-  if (fhNClustersVsTime) {
-    delete fhNClustersVsTime;
-    fhNClustersVsTime = 0;
-  }
-  if (fhTrackQtotPerCluster) {
-    delete fhTrackQtotPerCluster;
-    fhTrackQtotPerCluster = 0;
-  }
-  if (fhTrackQtotPerClusterVsPhi) {
-    delete fhTrackQtotPerClusterVsPhi;
-    fhTrackQtotPerClusterVsPhi = 0;
-  }
-  if (fhTrackQtotPerClusterVsTheta) {
-    delete fhTrackQtotPerClusterVsTheta;
-    fhTrackQtotPerClusterVsTheta = 0;
-  }
-  if (fhTrackMeanQtotPerClusterVsPhi) {
-    delete fhTrackMeanQtotPerClusterVsPhi;
-    fhTrackMeanQtotPerClusterVsPhi = 0;
-  }
-  if (fhTrackMeanQtotPerClusterVsTheta) {
-    delete fhTrackMeanQtotPerClusterVsTheta;
-    fhTrackMeanQtotPerClusterVsTheta = 0;
-  }
-  if (fhMeanNTracksVsTime) {
-    delete fhMeanNTracksVsTime;
-    fhMeanNTracksVsTime = 0;
-  }  
-  if (fhNEventsVsTime) {
-    delete fhNEventsVsTime;
-    fhNEventsVsTime = 0;
-  }  
-}
-
-//____________________________________________________________________
-AliTPCClusterHistograms &AliTPCClusterHistograms::operator=(const AliTPCClusterHistograms &c)
-{
-  // assigment operator
-
-  if (this != &c)
-    ((AliTPCClusterHistograms &) c).Copy(*this);
-
-  return *this;
-}
-
-//____________________________________________________________________
-TString AliTPCClusterHistograms::FormDetectorName(Int_t detector, Bool_t edgeSuppression, const char* comment)
-{
-  //
-  // creates a readable name from the detector number
-  //   
-  
-  Int_t sector = detector%18;
-  TString side;
-  TString inout;
-  
-  if (detector<18 || ( detector>=36 && detector<54))
-    side.Form("A");
-  else 
-    side.Form("C");
-  
-  if (detector<36)
-    inout.Form("IROC");
-  else 
-    inout.Form("OROC");
-
-  TString name;
-  name.Form("sector_%s%d_%s", side.Data(), sector, inout.Data());
-
-  if (edgeSuppression)
-    name += "_noedge";
-  
-  if (comment)
-    name += comment;
-
-  return name; 
-}
-
-//____________________________________________________________________
-Long64_t AliTPCClusterHistograms::Merge(TCollection* list)
-{
-  // Merge a list of AliTPCClusterHistograms objects with this (needed for
-  // PROOF). 
-  // Returns the number of merged objects (including this).
-
-  if (!list)
-    return 0;
-  
-  if (list->IsEmpty())
-    return 1;
-
-  TIterator* iter = list->MakeIterator();
-  TObject* obj;
-
-  // collections of measured and generated histograms
-  TList* collectionQmaxVsRow     = new TList;
-  TList* collectionQtotVsRow    = new TList;
-
-  TList* collectionQmaxProfileVsRow = new TList;
-  TList* collectionQtotProfileVsRow = new TList;
-
-  TList* collectionNClustersYVsRow = new TList;
-  TList* collectionNClustersZVsRow = new TList;
-
-  TList* collectionSigmaYVsRow  = new TList;
-  TList* collectionSigmaZVsRow  = new TList;
-                                       
-  TList* collectionQmaxProfileYVsRow    = new TList;
-  TList* collectionQtotProfileYVsRow    = new TList;
-  TList* collectionSigmaYProfileYVsRow  = new TList;
-  TList* collectionSigmaZProfileYVsRow  = new TList;
-
-  TList* collectionQmaxProfileZVsRow    = new TList;
-  TList* collectionQtotProfileZVsRow    = new TList;
-  TList* collectionSigmaYProfileZVsRow  = new TList;
-  TList* collectionSigmaZProfileZVsRow  = new TList;
-
-  TList* collectionMeanQtotVsTime  = new TList;
-  TList* collectionQtotVsTime      = new TList;
-
-  TList* collectionMeanNClustersVsTime = new TList; 
-  TList* collectionNClustersVsTime     = new TList;
-
-  TList* collectionTrackQtotPerCluster = new TList;
-
-  TList* collectionTrackQtotPerClusterVsPhi = new TList;
-  TList* collectionTrackQtotPerClusterVsTheta = new TList;
-
-  TList* collectionTrackMeanQtotPerClusterVsPhi = new TList;
-  TList* collectionTrackMeanQtotPerClusterVsTheta = new TList;
-
-  TList* collectionMeanNTracksVsTime = new TList;
-  TList* collectionNEventsVsTime = new TList;
-
-  Int_t count = 0;
-  while ((obj = iter->Next())) {
-    
-    AliTPCClusterHistograms* entry = dynamic_cast<AliTPCClusterHistograms*> (obj);
-    if (entry == 0) 
-      continue;
-    
-    collectionQmaxVsRow          ->Add(entry->fhQmaxVsRow         );
-    collectionQtotVsRow          ->Add(entry->fhQtotVsRow         );
-    
-    collectionQmaxProfileVsRow   ->Add(entry->fhQmaxProfileVsRow  );
-    collectionQtotProfileVsRow   ->Add(entry->fhQtotProfileVsRow  );
-    
-    collectionNClustersYVsRow    ->Add(entry->fhNClustersYVsRow);
-    collectionNClustersZVsRow    ->Add(entry->fhNClustersZVsRow);
-    
-    collectionSigmaYVsRow        ->Add(entry->fhSigmaYVsRow       );
-    collectionSigmaZVsRow        ->Add(entry->fhSigmaZVsRow       );
-    
-    collectionQmaxProfileYVsRow  ->Add(entry->fhQmaxProfileYVsRow );
-    collectionQtotProfileYVsRow  ->Add(entry->fhQtotProfileYVsRow );
-    collectionSigmaYProfileYVsRow->Add(entry->fhSigmaYProfileYVsRow);
-    collectionSigmaZProfileYVsRow->Add(entry->fhSigmaZProfileYVsRow);
-    
-    collectionQmaxProfileZVsRow  ->Add(entry->fhQmaxProfileZVsRow );
-    collectionQtotProfileZVsRow  ->Add(entry->fhQtotProfileZVsRow );
-    collectionSigmaYProfileZVsRow->Add(entry->fhSigmaYProfileZVsRow);
-    collectionSigmaZProfileZVsRow->Add(entry->fhSigmaZProfileZVsRow);
-    
-    collectionMeanQtotVsTime     ->Add(entry->fhMeanQtotVsTime);
-    collectionQtotVsTime         ->Add(entry->fhQtotVsTime);
-
-    collectionMeanNClustersVsTime->Add(entry->fhMeanNClustersVsTime);  
-    collectionNClustersVsTime    ->Add(entry->fhNClustersVsTime);
-    
-    collectionTrackQtotPerCluster->Add(entry->fhTrackQtotPerCluster);
-    
-    collectionTrackQtotPerClusterVsPhi->Add(entry->fhTrackQtotPerClusterVsPhi);
-    collectionTrackQtotPerClusterVsTheta->Add(entry->fhTrackQtotPerClusterVsTheta);
-    
-    collectionTrackMeanQtotPerClusterVsPhi->Add(entry->fhTrackMeanQtotPerClusterVsPhi);
-    collectionTrackMeanQtotPerClusterVsTheta->Add(entry->fhTrackMeanQtotPerClusterVsTheta);
-    
-    collectionMeanNTracksVsTime->Add(entry->fhMeanNTracksVsTime);
-    collectionNEventsVsTime->Add(entry->fhNEventsVsTime);
-    
-    count++;
-  }
-  
-  fhQmaxVsRow          ->Merge(collectionQmaxVsRow       );       
-  fhQtotVsRow          ->Merge(collectionQtotVsRow       );       
-  
-  fhQmaxProfileVsRow   ->Merge(collectionQtotProfileVsRow);
-  fhQtotProfileVsRow   ->Merge(collectionQtotProfileVsRow);
-  
-  fhNClustersYVsRow    ->Merge(collectionNClustersYVsRow);
-  fhNClustersZVsRow    ->Merge(collectionNClustersZVsRow);
-  
-  fhSigmaYVsRow        ->Merge(collectionSigmaYVsRow     );       
-  fhSigmaZVsRow        ->Merge(collectionSigmaZVsRow     );       
-  
-  fhQmaxProfileYVsRow  ->Merge(collectionQmaxProfileYVsRow  ); 
-  fhQtotProfileYVsRow  ->Merge(collectionQtotProfileYVsRow  );
-  fhSigmaYProfileYVsRow->Merge(collectionSigmaYProfileYVsRow);
-  fhSigmaZProfileYVsRow->Merge(collectionSigmaZProfileYVsRow);
-  
-  fhQmaxProfileZVsRow  ->Merge(collectionQmaxProfileZVsRow  ); 
-  fhQtotProfileZVsRow  ->Merge(collectionQtotProfileZVsRow  );
-  fhSigmaYProfileZVsRow->Merge(collectionSigmaYProfileZVsRow);
-  fhSigmaZProfileZVsRow->Merge(collectionSigmaZProfileZVsRow);
-  
-  fhMeanQtotVsTime     ->Merge(collectionMeanQtotVsTime);
-  fhQtotVsTime         ->Merge(collectionQtotVsTime);
-
-  fhMeanNClustersVsTime->Merge(collectionMeanNClustersVsTime );
-  fhNClustersVsTime    ->Merge(collectionNClustersVsTime);
-  
-  fhTrackQtotPerCluster->Merge(collectionTrackQtotPerCluster);
-  
-  fhTrackQtotPerClusterVsPhi->Merge(collectionTrackQtotPerClusterVsPhi);
-  fhTrackQtotPerClusterVsTheta->Merge(collectionTrackQtotPerClusterVsTheta);
-  
-  fhTrackMeanQtotPerClusterVsPhi->Merge(collectionTrackMeanQtotPerClusterVsPhi);
-  fhTrackMeanQtotPerClusterVsTheta->Merge(collectionTrackMeanQtotPerClusterVsTheta);
-  
-  fhMeanNTracksVsTime->Merge(collectionMeanNTracksVsTime);
-  fhNEventsVsTime->Merge(collectionNEventsVsTime);
-  
-  delete collectionQmaxVsRow;          
-  delete collectionQtotVsRow;  
-  
-  delete collectionQmaxProfileVsRow;
-  delete collectionQtotProfileVsRow;
-  
-  delete collectionNClustersYVsRow;
-  delete collectionNClustersZVsRow;
-  
-  delete collectionSigmaYVsRow;          
-  delete collectionSigmaZVsRow;          
-  
-  delete collectionQmaxProfileYVsRow;  
-  delete collectionQtotProfileYVsRow;  
-  delete collectionSigmaYProfileYVsRow;
-  delete collectionSigmaZProfileYVsRow;
-  
-  delete collectionQmaxProfileZVsRow;  
-  delete collectionQtotProfileZVsRow;  
-  delete collectionSigmaYProfileZVsRow;
-  delete collectionSigmaZProfileZVsRow;
-  
-  delete collectionMeanQtotVsTime;
-  delete collectionQtotVsTime;
-
-  delete collectionMeanNClustersVsTime; 
-  delete collectionNClustersVsTime;     
-  
-  delete collectionTrackQtotPerCluster;
-  
-  delete collectionTrackQtotPerClusterVsPhi; 
-  delete collectionTrackQtotPerClusterVsTheta;
-  
-  delete collectionTrackMeanQtotPerClusterVsPhi; 
-  delete collectionTrackMeanQtotPerClusterVsTheta;
-  
-  delete collectionMeanNTracksVsTime;
-  delete collectionNEventsVsTime;
-
-  return count+1;
-}
-
-
-//____________________________________________________________________
-void AliTPCClusterHistograms::FillCluster(AliTPCclusterMI* cluster, Int_t time) {
-  //
-  // Fills the different histograms with the information from the cluster.
-  //
-
-  Int_t padRow =   cluster->GetRow(); 
-  Float_t qMax =   cluster->GetMax();
-  Float_t qTot =   cluster->GetQ();
-  Float_t sigmaY = cluster->GetSigmaY2();
-  Float_t sigmaZ = cluster->GetSigmaZ2();
-  Float_t y      = cluster->GetY();
-  Float_t z      = cluster->GetZ();
-
-  // check if this is ok!!!
-  z = TMath::Abs(z);
-
-  if (qMax<=0) {
-    printf(Form("\n WARNING: Hi Marian! How can we have Qmax = %f ??? \n \n", qMax));
-  }
-  if (qTot<=0) {
-    printf(Form("\n WARNING: Hi Marian! How can we have Qtot = %f ??? \n \n ", qTot));
-  }   
-  
-  // check if the cluster is accepted
-  if (fEdgeSuppression)
-    if (IsClusterOnEdge(cluster))
-      return;
-
-  fNClustersInEvent++;
-  fQtotInEvent = fQtotInEvent + qTot;
-  if (qTot > fMaxQtotInEvent)
-    fMaxQtotInEvent = qTot;
-
-  fhQmaxVsRow           ->Fill(padRow, qMax);
-  fhQtotVsRow           ->Fill(padRow, qTot);
-
-  fhQmaxProfileVsRow    ->Fill(padRow, qMax);
-  fhQtotProfileVsRow    ->Fill(padRow, qTot);
-
-  fhNClustersYVsRow     ->Fill(padRow, y, 1);
-  fhNClustersZVsRow     ->Fill(padRow, z, 1);
-                       
-  fhSigmaYVsRow         ->Fill(padRow, sigmaY);
-  fhSigmaZVsRow         ->Fill(padRow, sigmaZ);
-                       
-  fhQmaxProfileYVsRow   ->Fill(padRow, y, qMax);
-  fhQtotProfileYVsRow   ->Fill(padRow, y, qTot); 
-  fhSigmaYProfileYVsRow ->Fill(padRow, y, sigmaY);
-  fhSigmaZProfileYVsRow ->Fill(padRow, y, sigmaZ);
-
-  fhQmaxProfileZVsRow   ->Fill(padRow, z, qMax);
-  fhQtotProfileZVsRow   ->Fill(padRow, z, qTot); 
-  fhSigmaYProfileZVsRow ->Fill(padRow, z, sigmaY);
-  fhSigmaZProfileZVsRow ->Fill(padRow, z, sigmaZ);
-
-  if (time>0 && fTimeStart>0 && fTimeStop>0 && time>fTimeStart) {
-    //Float_t timeFraction = (time - fTimeStart)/(fTimeStop-fTimeStart); 
-
-    fhMeanQtotVsTime->Fill(time,qTot);
-    fhQtotVsTime->Fill(time,qTot);
-  }
-}
-
-//____________________________________________________________________
-void AliTPCClusterHistograms::FillTrack(const AliTPCseed* seed) {
-  //
-  // fill histograms related to tracks
-  //
-
-  Float_t totalQtot = 0;
-  Int_t   nClusters = 0;
-  for (Int_t clusterID = 0; clusterID < 160; clusterID++) {
-    AliTPCclusterMI* cluster = 0;
-#ifdef NEWALIROOT
-    cluster = seed->GetClusterPointer(clusterID);
-#endif
-    if (!cluster)
-      continue;
-    
-    // only use clusters within this detector
-    if (cluster->GetDetector()!=fDetector)
-      continue;
-    
-    // check if the cluster is accepted
-    if (fEdgeSuppression)
-      if (IsClusterOnEdge(cluster))
-       return;
-
-    //    Int_t padRow =   cluster->GetRow(); 
-    //Float_t qMax =   cluster->GetMax();
-    Float_t qTot =   cluster->GetQ();    
-
-    nClusters++;
-    totalQtot += qTot;
-    
-  }
-  if (nClusters==0) 
-    return;
-  
-  Float_t meanQtot = totalQtot/nClusters;
-  
-  // azimuthal angle 
-  Float_t phi    =  TMath::ASin(seed->GetSnp() + seed->GetAlpha());
-  // angle with respect to the central membrane
-  Float_t theta  =  TMath::ATan(seed->GetTgl());
-
-  fhTrackQtotPerCluster->Fill(meanQtot);
-
-  fhTrackMeanQtotPerClusterVsPhi->Fill(phi,   meanQtot);
-  fhTrackMeanQtotPerClusterVsTheta->Fill(theta, meanQtot);
-
-  fhTrackQtotPerClusterVsPhi->Fill(phi, meanQtot);
-  fhTrackQtotPerClusterVsTheta->Fill(theta, meanQtot);
-}
-
-//____________________________________________________________________
-void AliTPCClusterHistograms::FillEvent(Int_t time, Int_t nTracks) {
-  //
-  // fill event
-  //
-
-  fhMeanNTracksVsTime->Fill(time, nTracks);
-
-  //  fhNEventsVsTime->Fill(time);
-}
-
-
-//____________________________________________________________________
-Bool_t AliTPCClusterHistograms::IsClusterOnEdge(AliTPCclusterMI* clusterMI) {
-  //
-  // check if the cluster is on the edge
-  //
-
-  Int_t padRow =   clusterMI->GetRow(); 
-  Float_t y      = clusterMI->GetY();
-  
-  Float_t limit = 0;
-  if (fIsIROC)
-    {
-      limit = 12 + padRow * (20.0 - 12.0) / 63; 
-    }
-  else
-    limit = 16 + padRow * (36.0 - 16.0) / 96;
-  
-  if (TMath::Abs(y) > limit)
-    return kTRUE;
-  
-  return kFALSE;
-}
-
-//____________________________________________________________________
-Float_t AliTPCClusterHistograms::DistanceToEdge(AliTPCclusterMI* clusterMI) {
-  //
-  // get the y-distance to closest edge 
-  //
-  
-  Int_t detector = clusterMI->GetDetector();
-  Int_t padRow   = clusterMI->GetRow(); 
-  Float_t y      = clusterMI->GetY();
-  
-  Float_t yEdge = -9999;
-  Float_t d     = 0;
-  
-  // IROC
-  if (detector < 36) {    
-    yEdge = 14 + padRow * 0.1333;
-    
-  }    
-  else { // OROC
-    if (padRow<64) // small pads
-      yEdge = 22.5 + padRow * 0.1746;
-    else           // large pads
-      yEdge = 34.0 + (padRow-64) * 0.2581;      
-  }
-  if (y<=0) yEdge = -yEdge;
-  
-  d = yEdge - y;
-  
-  return d;
-}
-
-
-//____________________________________________________________________
-Bool_t AliTPCClusterHistograms::KeepThisEvent(TString& why) {
-  //
-  // is this event interesting? 
-  //
-  // the criteria are ...
-  // 
-  
-  if (fKeepEvent) {
-    why = TString(fWhyKeepEvent);
-    return kTRUE;
-  }
-
-  if (fNClustersInEvent>20000) {
-    why.Append("_moreThan20000clusters");
-    fWhyKeepEvent = TString(why);
-    fKeepEvent = kTRUE;
-    return kTRUE;
-  }
-  
-  if (fMaxQtotInEvent>10000) {
-    why.Append("_clusterWithQtot20000plus");
-    fWhyKeepEvent = TString(why);
-    fKeepEvent = kTRUE;
-    return kTRUE;
-  }
-
-  if (gRandom->Uniform()<0.001) {
-    why.Append("_random");
-    fWhyKeepEvent = TString(why);
-    fKeepEvent = kTRUE;
-    return kTRUE;
-  }
-
-  return kFALSE;
-}
-
-//____________________________________________________________________
-void AliTPCClusterHistograms::StartEvent() {
-  //
-  // reset counters 
-  // 
-  fNClustersInEvent  = 0; 
-  fQtotInEvent       = 0; 
-  fMaxQtotInEvent    = 0; 
-  fKeepEvent         = kFALSE; 
-  fWhyKeepEvent      = TString("");
-}
-
-
-//____________________________________________________________________
-void AliTPCClusterHistograms::FinishEvent(Int_t timeStamp) {
-  //
-  // fill histograms related to the event
-  //
-  fhMeanNClustersVsTime->Fill(timeStamp, fNClustersInEvent); 
-  fhNClustersVsTime    ->Fill(timeStamp, fNClustersInEvent); 
-
-  fhNEventsVsTime->Fill(timeStamp);
-}
-
-
-//____________________________________________________________________
-void AliTPCClusterHistograms::SaveHistograms()
-{
-  //
-  // saves the histograms
-  //
-
-  gDirectory->mkdir(fName.Data());
-  gDirectory->cd(fName.Data());
-
-  fhQmaxVsRow           ->Write();
-  fhQtotVsRow           ->Write();
-
-  fhQmaxProfileVsRow    ->Write();
-  fhQtotProfileVsRow    ->Write();
-
-  fhNClustersYVsRow     ->Write();
-  fhNClustersZVsRow     ->Write();
-                       
-  fhSigmaYVsRow         ->Write();
-  fhSigmaZVsRow         ->Write();
-                       
-  fhQmaxProfileYVsRow   ->Write();
-  fhQtotProfileYVsRow   ->Write();
-  fhSigmaYProfileYVsRow ->Write();
-  fhSigmaZProfileYVsRow ->Write();
-
-  fhQmaxProfileZVsRow   ->Write();
-  fhQtotProfileZVsRow   ->Write();
-  fhSigmaYProfileZVsRow ->Write();
-  fhSigmaZProfileZVsRow ->Write();
-
-  TNamed* comment = new TNamed("comment", fCommentToHistograms.Data());
-  comment->Write();
-
-  if (fhMeanQtotVsTime->GetEntries()>0)
-    fhMeanQtotVsTime->Write();
-
-  if (fhQtotVsTime->GetEntries()>0)
-    fhQtotVsTime->Write();
-
-  if (fhMeanNClustersVsTime->GetEntries()>0)
-    fhMeanNClustersVsTime->Write();
-
-  if (fhNClustersVsTime->GetEntries()>0)
-    fhNClustersVsTime->Write();
-
-  if (fhNEventsVsTime->GetEntries()>0)
-    fhNEventsVsTime->Write();
-
-  gDirectory->mkdir("track_hists");
-  gDirectory->cd("track_hists");
-
-  fhTrackQtotPerCluster->Write();
-
-  fhTrackQtotPerClusterVsPhi->Write();
-  fhTrackQtotPerClusterVsTheta->Write();
-
-  fhTrackMeanQtotPerClusterVsPhi->Write();
-  fhTrackMeanQtotPerClusterVsTheta->Write();
-
-  fhMeanNTracksVsTime->Write();
-
-  gDirectory->cd("../");
-
-  gDirectory->cd("../");
-
-}
-
-
-//____________________________________________________________________
-TCanvas* AliTPCClusterHistograms::DrawHistograms(const Char_t* opt) {
-  //
-  // Draws some histograms and save the canvas as eps and gif file.
-  //  
-
-  TCanvas* c = new TCanvas(fName.Data(), fName.Data(), 1200, 800);
-
-  gStyle->SetOptStat(0);
-  gStyle->SetOptFit(0);
-
-  gStyle->SetPadLeftMargin(0.1);
-
-  c->Divide(3, 2);
-
-  c->Draw();
-
-  c->cd(1);
-
-  // this is not really a nice way to do it...
-  c->GetPad(1)->Delete();
-
-  TLatex* tName = new TLatex(0.05,0.9,fName.Data());
-  tName->SetTextSize(0.02);
-  tName->DrawClone();
-
-  TLatex* tEdge;
-  if (fEdgeSuppression)
-    tEdge = new TLatex(0.05,0.85,"(edges cut)");
-  else
-    tEdge = new TLatex(0.05,0.85,"(no edge cut)");
-
-  tEdge->SetTextSize(0.015);
-  tEdge->DrawClone();
-
-  tName = new TLatex(0.05,0.7, Form("Run: %s", opt));
-  tName->SetTextSize(0.02);
-  tName->DrawClone();
-
-  c->cd(2);
-  fhNClustersYVsRow->Draw("colz");
-
-  c->cd(3);
-  fhQtotVsRow->Draw("colz");
-  fhQtotProfileVsRow->SetMarkerStyle(3);
-  fhQtotProfileVsRow->Draw("same");
-
-  c->cd(4);
-  fhQtotProfileYVsRow   ->Draw("colz");
-
-  c->cd(5);
-  fhQtotProfileZVsRow   ->Draw("colz");
-
-  c->cd(6);
-  fhQtotVsTime->Draw("COLZ");
-  fhMeanQtotVsTime->SetMarkerStyle(3);
-  fhMeanQtotVsTime->Draw("SAME");
-
-  return c;
-}
diff --git a/PWG0/TPC/AliTPCClusterHistograms.h b/PWG0/TPC/AliTPCClusterHistograms.h
deleted file mode 100644 (file)
index 3c177e1..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-#ifndef ALITPCClusterHistograms_H
-#define ALITPCClusterHistograms_H
-
-/* $Id$ */
-
-//
-// This class contains a number of histograms for diagnostics of a TPC
-// read out chamber from the reconstructed clusters.
-//
-
-#include <TCollection.h>
-#include <TNamed.h>
-#include <TString.h>
-
-class TH3;
-class TH2F;
-class TH1F;
-class TCanvas;
-class TProfile;
-class TProfile2D;
-class TObjArray;
-
-class AliTPCclusterMI;
-class AliTPCseed;
-
-class AliTPCClusterHistograms : public TNamed
-{
-public:
-
-  AliTPCClusterHistograms();
-  AliTPCClusterHistograms(Int_t detector, const Char_t* comment="", Int_t timeStart=-1, Int_t timeStop=-1, Bool_t edgeSuppression = kFALSE);
-  
-  AliTPCClusterHistograms(const AliTPCClusterHistograms& c);
-  virtual ~AliTPCClusterHistograms();
-  AliTPCClusterHistograms& operator=(const AliTPCClusterHistograms& corrMatrix);
-
-  virtual Long64_t Merge(TCollection* list);
-  
-  virtual void SaveHistograms();
-  void         SetCommentToHistograms(const Char_t* text) {fCommentToHistograms = TString(text);}
-
-  void FillEvent(Int_t time, Int_t nTracks);
-  void FillTrack(const AliTPCseed* seed);
-  void FillCluster(AliTPCclusterMI* clusterMI, Int_t time=-1);
-  
-  void    StartEvent();
-  void    FinishEvent(Int_t timeStamp);
-  
-  Int_t   GetNClusters() {return fNClustersInEvent;}
-  Float_t GetQtotInEvent() {return fQtotInEvent;}
-  Float_t GetMaxQtotInEvent() {return fMaxQtotInEvent;}
-
-  Bool_t  KeepThisEvent(TString& why);
-  const Char_t* WhyKeepEvent() {return fWhyKeepEvent.Data();}
-
-  Bool_t  IsClusterOnEdge(AliTPCclusterMI* clusterMI);
-  Float_t DistanceToEdge(AliTPCclusterMI* clusterMI);
-  TCanvas* DrawHistograms(const Char_t* opt="");
-
-  static TString FormDetectorName(Int_t detector, Bool_t edgeSuppression = kFALSE, const char* comment = 0);
-
-protected:
-
-  Int_t       fTimeStart;               // begin time of run(s)
-  Int_t       fTimeStop;                // end time of runs(s)
-
-  TH2F*       fhQmaxVsRow;              //        QmaxVsRow
-  TH2F*       fhQtotVsRow;              //       QtotVsRow
-                                                                                           
-  TProfile*   fhQtotProfileVsRow;       //       QtotProfileVsRow
-  TProfile*   fhQmaxProfileVsRow;       //       QmaxProfileVsRow
-
-  TH2F*       fhQtotVsDistanceToEdge;        // qtot vs distance to edge
-  TProfile*   fhQtotProfileVsDistanceToEdge; // qtot vs distance to edge
-
-  TH2F*       fhNClustersYVsRow;        //        n clusters y vs row
-  TH2F*       fhNClustersZVsRow;        //        n clusters z vs row
-                                                                                           
-  TH2F*       fhSigmaYVsRow;            //       SigmaYVsRow
-  TH2F*       fhSigmaZVsRow;            //       SigmaZVsRow
-                                                                                           
-  TProfile2D* fhQmaxProfileYVsRow;      //       QmaxProfileYVsRow
-  TProfile2D* fhQtotProfileYVsRow;      //       QtotProfileYVsRow
-  TProfile2D* fhSigmaYProfileYVsRow;    //       SigmaYProfileYVsRow
-  TProfile2D* fhSigmaZProfileYVsRow;    //       SigmaZProfileYVsRow
-                                                                                           
-  TProfile2D* fhQmaxProfileZVsRow;      //       QmaxProfileZVsRow
-  TProfile2D* fhQtotProfileZVsRow;      //       QtotProfileZVsRow
-  TProfile2D* fhSigmaYProfileZVsRow;    //       SigmaYProfileZVsRow
-  TProfile2D* fhSigmaZProfileZVsRow;    //       SigmaZProfileZVsRow
-                                                                                           
-  TProfile*   fhMeanQtotVsTime;         //       mean qtot vs time
-  TH2F*       fhQtotVsTime;             //       qtot vs time
-  TProfile*   fhMeanNClustersVsTime;    //        mean number of clusters vs time
-  TH2F*       fhNClustersVsTime;        //        number of clusters vs time
-                                                                                           
-  TH1F*       fhTrackQtotPerCluster;    //       TrackQtotPerCluster
-                                                                                           
-  TH2F*       fhTrackQtotPerClusterVsPhi; //     TrackQtotPerClusterVsPhi
-  TH2F*       fhTrackQtotPerClusterVsTheta; //   TrackQtotPerClusterVsTheta
-                                                                                           
-  TProfile*   fhTrackMeanQtotPerClusterVsPhi; //  TrackMeanQtotPerClusterVsPhi
-  TProfile*   fhTrackMeanQtotPerClusterVsTheta; //  TrackMeanQtotPerClusterVsTheta
-
-  TProfile*   fhMeanNTracksVsTime;        // mean number of tracks vs time   
-  TH1F*       fhNEventsVsTime;            // number of events vs time
-
-  Int_t       fDetector;                // number of detector
-  Bool_t      fIsIROC;                  // true = IROC, false = OROC
-  Bool_t      fEdgeSuppression;         // if set edges are not taken into account for histograms
-
-  Int_t       fNClustersInEvent;        // number of clusters in event
-  Float_t     fQtotInEvent;             // total qtot in event
-  Float_t     fMaxQtotInEvent;          // max qtot in event
-
-  Bool_t      fKeepEvent;               // keep this event
-  TString     fWhyKeepEvent;            // why
-
-  TString     fCommentToHistograms;     // comments to histograms
-
-  ClassDef(AliTPCClusterHistograms,1)
-};
-
-#endif
-
diff --git a/PWG0/TPC/AliTPCRawHistograms.cxx b/PWG0/TPC/AliTPCRawHistograms.cxx
deleted file mode 100644 (file)
index 02b0a85..0000000
+++ /dev/null
@@ -1,317 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/* $Id$ */
-
-// This class contains a number of histograms for diagnostics of a TPC
-// read out chamber from the raw data
-//
-// TODO:
-//  
-//
-//
-
-
-#include <TCanvas.h>
-#include <TCollection.h>
-#include <TFile.h>
-#include <TH1F.h>
-#include <TH3F.h>
-#include <TLatex.h>
-#include <TNtuple.h>
-#include <TStyle.h>
-
-#include "AliLog.h"
-#include "AliTPCRawHistograms.h"
-#include "AliTPCRawStream.h"
-
-//____________________________________________________________________
-ClassImp(AliTPCRawHistograms)
-
-//____________________________________________________________________
-AliTPCRawHistograms::AliTPCRawHistograms() 
-  : TNamed(),
-    fTimeStart(0),
-    fTimeStop(0),
-    fhDigits(0),
-    fhSignal(0),
-    fDigitTree(0)
-{
-  // default constructor
-}
-
-//____________________________________________________________________
-AliTPCRawHistograms::AliTPCRawHistograms(Int_t detector, const Char_t* /* comment */, Int_t timeStart, Int_t timeStop)
-  : TNamed(),
-    fTimeStart(timeStart),
-    fTimeStop(timeStop),
-    fhDigits(0),
-    fhSignal(new TH1F("fhSignal", "fhSignal", 200, 0, 2000)),
-    fDigitTree(new TNtuple("fDigitTree", "fDigitTree", "row:pad:time:signal"))
-{
-  // constructor 
-  
-  // make name and title
-  if (detector < 0 || detector >= 72) {
-    AliDebug(AliLog::kError, Form("Detector %d does not exist", detector));
-    return;
-  }
-      
-  Int_t sector = detector%18;
-  TString side;
-  TString inout;
-  if (detector<18 || ( detector>=36 && detector<54))
-    side.Form("A");
-  else 
-    side.Form("B");
-  
-  if (detector<36)
-    inout.Form("IROC");
-  else 
-    inout.Form("OROC");
-
-  TString name;
-  name.Form("sector_%s%d_%s", side.Data(), sector, inout.Data());
-  
-  SetName(name);
-  SetTitle(Form("%s (detector %d)",name.Data(), detector));
-
-  Float_t yRange   = 45;
-  Int_t nPadRows   = 96;
-  
-  if (TString(name).Contains("IROC")) {
-    yRange = 25;
-    nPadRows = 63;
-  }
-  
-  // do not add this hists to the directory
-  Bool_t oldStatus = TH1::AddDirectoryStatus();
-  TH1::AddDirectory(kFALSE);
-
-  fhDigits = new TH3F("fhDigits", Form("signal distribution;row;pad;time", name.Data()), nPadRows, -0.5, -0.5 + nPadRows, 150, -0.5, 149.5, 100, 0, 1200);
-
-  TH1::AddDirectory(oldStatus);
-}
-
-//____________________________________________________________________
-AliTPCRawHistograms::AliTPCRawHistograms(const AliTPCRawHistograms& c) : TNamed(c),
-    fTimeStart(0),
-    fTimeStop(0),
-    fhDigits(0),
-    fhSignal(0),
-    fDigitTree(0)
-{
-  // copy constructor
-
-  ((AliTPCRawHistograms &)c).Copy(*this);
-}
-
-//____________________________________________________________________
-AliTPCRawHistograms::~AliTPCRawHistograms()
-{
-  //
-  // destructor
-  //
-
-}
-
-//____________________________________________________________________
-AliTPCRawHistograms &AliTPCRawHistograms::operator=(const AliTPCRawHistograms &c)
-{
-  // assigment operator
-
-  if (this != &c)
-    ((AliTPCRawHistograms &) c).Copy(*this);
-
-  return *this;
-}
-
-
-//____________________________________________________________________
-Long64_t AliTPCRawHistograms::Merge(TCollection* list)
-{
-  // Merge a list of AliTPCRawHistograms objects with this (needed for
-  // PROOF). 
-  // Returns the number of merged objects (including this).
-
-  if (!list)
-    return 0;
-  
-  if (list->IsEmpty())
-    return 1;
-
-  //  TIterator* iter = list->MakeIterator();
-  //  TObject* obj;
-
-   Int_t count = 0;
-
-/*
-  // collections of measured and generated histograms
-  TList* collectionQmaxVsRow     = new TList;
-  TList* collectionQtotVsRow    = new TList;
-  TList* collectionSigmaYVsRow  = new TList;
-  TList* collectionSigmaZVsRow  = new TList;
-                                       
-  TList* collectionQmaxProfileYVsRow    = new TList;
-  TList* collectionQtotProfileYVsRow    = new TList;
-  TList* collectionSigmaYProfileYVsRow  = new TList;
-  TList* collectionSigmaZProfileYVsRow  = new TList;
-
-  TList* collectionQmaxProfileZVsRow    = new TList;
-  TList* collectionQtotProfileZVsRow    = new TList;
-  TList* collectionSigmaYProfileZVsRow  = new TList;
-  TList* collectionSigmaZProfileZVsRow  = new TList;
-
-  TList* collectionQtotVsTime  = new TList;
-  TList* collectionQmaxVsTime  = new TList;
-
-   while ((obj = iter->Next())) {
-    
-     AliTPCRawHistograms* entry = dynamic_cast<AliTPCRawHistograms*> (obj);
-     if (entry == 0) 
-       continue;
-
-     collectionQmaxVsRow          ->Add(entry->fhQmaxVsRow        );
-     collectionQtotVsRow         ->Add(entry->fhQtotVsRow         );
-     collectionSigmaYVsRow       ->Add(entry->fhSigmaYVsRow       );
-     collectionSigmaZVsRow       ->Add(entry->fhSigmaZVsRow       );
-                                                                          
-     collectionQmaxProfileYVsRow  ->Add(entry->fhQmaxProfileYVsRow );
-     collectionQtotProfileYVsRow  ->Add(entry->fhQtotProfileYVsRow );
-     collectionSigmaYProfileYVsRow->Add(entry->fhSigmaYProfileYVsRow);
-     collectionSigmaZProfileYVsRow->Add(entry->fhSigmaZProfileYVsRow);
-
-     collectionQmaxProfileZVsRow  ->Add(entry->fhQmaxProfileZVsRow );
-     collectionQtotProfileZVsRow  ->Add(entry->fhQtotProfileZVsRow );
-     collectionSigmaYProfileZVsRow->Add(entry->fhSigmaYProfileZVsRow);
-     collectionSigmaZProfileZVsRow->Add(entry->fhSigmaZProfileZVsRow);
-
-     collectionQtotVsTime->Add(entry->fhQtotVsTime);
-     collectionQmaxVsTime->Add(entry->fhQmaxVsTime);
-
-
-     count++;
-   }
-
-   fhQmaxVsRow          ->Merge(collectionQmaxVsRow       );      
-   fhQtotVsRow          ->Merge(collectionQtotVsRow      );       
-   fhSigmaYVsRow        ->Merge(collectionSigmaYVsRow    );       
-   fhSigmaZVsRow        ->Merge(collectionSigmaZVsRow    );       
-                                                                    
-   fhQmaxProfileYVsRow  ->Merge(collectionQmaxProfileYVsRow  ); 
-   fhQtotProfileYVsRow  ->Merge(collectionQtotProfileYVsRow  );
-   fhSigmaYProfileYVsRow->Merge(collectionSigmaYProfileYVsRow);
-   fhSigmaZProfileYVsRow->Merge(collectionSigmaZProfileYVsRow);
-
-   fhQmaxProfileZVsRow  ->Merge(collectionQmaxProfileZVsRow  ); 
-   fhQtotProfileZVsRow  ->Merge(collectionQtotProfileZVsRow  );
-   fhSigmaYProfileZVsRow->Merge(collectionSigmaYProfileZVsRow);
-   fhSigmaZProfileZVsRow->Merge(collectionSigmaZProfileZVsRow);
-
-   fhQtotVsTime->Merge(collectionQtotVsTime);
-   fhQmaxVsTime->Merge(collectionQmaxVsTime);
-
-   delete collectionQmaxVsRow;          
-   delete collectionQtotVsRow;  
-   delete collectionSigmaYVsRow;         
-   delete collectionSigmaZVsRow;         
-                                 
-   delete collectionQmaxProfileYVsRow;  
-   delete collectionQtotProfileYVsRow;  
-   delete collectionSigmaYProfileYVsRow;
-   delete collectionSigmaZProfileYVsRow;
-
-   delete collectionQmaxProfileZVsRow;  
-   delete collectionQtotProfileZVsRow;  
-   delete collectionSigmaYProfileZVsRow;
-   delete collectionSigmaZProfileZVsRow;
-
-   delete collectionQtotVsTime;
-   delete collectionQmaxVsTime;*/
-
-  return count+1;
-}
-
-//____________________________________________________________________
-void AliTPCRawHistograms::FillDigit(AliTPCRawStream* rawStream, Int_t /*time*/) 
-{
-  //
-  // Fills the different histograms with the information from a raw digit
-  //
-  
-  Int_t signal = rawStream->GetSignal();
-  Int_t row = rawStream->GetRow();
-  Int_t pad = rawStream->GetPad();
-  Int_t timeBin = rawStream->GetTime();
-
-  if (signal > 120)
-    fhDigits->Fill(row, pad, timeBin, signal);
-    
-  fhSignal->Fill(signal);
-  
-  fDigitTree->Fill(row, pad, timeBin, signal);
-}
-
-//____________________________________________________________________
-void AliTPCRawHistograms::SaveHistograms()
-{
-  //
-  // saves the histograms
-  //
-
-  gDirectory->mkdir(fName.Data());
-  gDirectory->cd(fName.Data());
-
-  fhDigits           ->Write();
-  fhSignal           ->Write();
-  fDigitTree->Write();
-                       
-  gDirectory->cd("../");
-}
-
-//____________________________________________________________________
-TCanvas* AliTPCRawHistograms::DrawHistograms(const Char_t* /*opt*/) {
-  //
-  // Draws some histograms and save the canvas as eps and gif file.
-  //  
-
-  TCanvas* c = new TCanvas(Form("plots_%s",fName.Data()), fName.Data(), 1200, 1000);
-
-  gStyle->SetOptStat(0);
-  gStyle->SetOptFit(0);
-
-  gStyle->SetPadLeftMargin(0.05);
-
-  c->Divide(3,3);
-
-  c->Draw();  
-
-  c->cd(1);
-  
-  // this is not really a nice way to do it...
-  c->GetPad(1)->Delete();
-  
-  TLatex* name = new TLatex(0.1,0.8,fName.Data());
-  name->SetTextSize(0.02);
-  name->DrawClone();
-
-  c->cd(2);
-  fhDigits->Draw();
-
-  c->cd(3);
-  fhSignal->Draw();         
-                       
-  return c;
-}
diff --git a/PWG0/TPC/AliTPCRawHistograms.h b/PWG0/TPC/AliTPCRawHistograms.h
deleted file mode 100644 (file)
index f4208c3..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef AliTPCRawHistograms_H
-#define AliTPCRawHistograms_H
-
-/* $Id$ */
-
-//
-// This class contains a number of histograms for diagnostics of a TPC
-// read out chamber from the raw data
-//
-
-#include <TNamed.h>
-
-class TH3F;
-class TH1F;
-class TCanvas;
-class TTree;
-class TNtuple;
-
-class AliTPCRawStream;
-
-class AliTPCRawHistograms : public TNamed
-{
-public:
-  AliTPCRawHistograms();
-  AliTPCRawHistograms(Int_t detector, const Char_t* comment="", Int_t timeStart=-1, Int_t timeStop=-1);
-  
-  AliTPCRawHistograms(const AliTPCRawHistograms& c);
-  virtual ~AliTPCRawHistograms();
-  AliTPCRawHistograms& operator=(const AliTPCRawHistograms& corrMatrix);
-
-  virtual Long64_t Merge(TCollection* list);
-
-  virtual void SaveHistograms();
-
-  void FillDigit(AliTPCRawStream* rawStream, Int_t time=-1);
-
-  TCanvas* DrawHistograms(const Char_t* opt="");
-
-protected:
-  Int_t       fTimeStart;               // begin time of run(s)
-  Int_t       fTimeStop;                // end time of runs(s)
-
-  TH3F*       fhDigits;                  // cluster of all digits above threshold
-  TH1F*       fhSignal;                  // signal distribution
-  
-  TNtuple*    fDigitTree;                 // row:pad:time:signal
-  
-  ClassDef(AliTPCRawHistograms,1)
-};
-
-#endif
-
diff --git a/PWG0/TPC/runROCClusterAnalysis.C b/PWG0/TPC/runROCClusterAnalysis.C
deleted file mode 100644 (file)
index 0ec2448..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/* $Id$ */
-
-//
-// 
-//
-
-#include "../CreateESDChain.C"
-#include "../PWG0Helper.C"
-
-void runROCClusterAnalysis(Char_t* data, Int_t nRuns=20, Int_t offset=0, Bool_t aDebug = kFALSE, Int_t runNumber=0, Bool_t aProof = kFALSE, 
-    const char* option = "", const char* proofServer = "jgrosseo@lxb6046")
-{
-  if (aProof)
-    connectProof(proofServer);
-
-  TString libraries("libEG;libGeom;libESD;libPWG0base;libPWG0dep");
-  TString packages("PWG0base;PWG0dep");
-
-  if (!prepareQuery(libraries, packages, 2))
-    return;
-  
-  TChain* chain = CreateESDChain(data, nRuns, offset, kTRUE, kTRUE);
-
-  TList inputList;
-
-  //  TNamed* comment = new TNamed("comment",runStr.Data());
-  if (runNumber!=0)
-    inputList.Add(new TNamed("comment",Form("%d",runNumber)));
-
-  TString selectorName = "AliROCClusterAnalysisSelector";
-  AliLog::SetClassDebugLevel(selectorName, AliLog::kInfo);
-
-  if (aDebug != kFALSE)
-  {
-    AliLog::SetClassDebugLevel(selectorName, AliLog::kDebug);
-    selectorName += ".cxx++g";
-  }
-  else
-    selectorName += ".cxx+";
-
-  Int_t result = executeQuery(chain, &inputList, selectorName, option);
-}
diff --git a/PWG0/TPC/runROCESDAnalysis.C b/PWG0/TPC/runROCESDAnalysis.C
deleted file mode 100644 (file)
index 035dd21..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/* $Id$ */
-
-//
-// 
-//
-
-#include "../CreateESDChain.C"
-#include "../PWG0Helper.C"
-
-void runROCESDAnalysis(Char_t* data, Int_t nRuns=20, Int_t offset=0, Bool_t aDebug = kFALSE, Int_t runNumber=0, Bool_t aProof = kFALSE, 
-    const char* option = "", const char* proofServer = "jgrosseo@lxb6046")
-{
-  if (aProof)
-    connectProof(proofServer);
-
-  TString libraries("libEG;libGeom;libESD;libPWG0base;libPWG0dep");
-  TString packages("PWG0base;PWG0dep");
-
-  if (!prepareQuery(libraries, packages, 2))
-    return;
-
-  TChain* chain = CreateESDChain(data, nRuns, offset, kTRUE, kTRUE);
-
-  TList inputList;
-
-  //  TNamed* comment = new TNamed("comment",runStr.Data());
-  if (runNumber!=0)
-    inputList.Add(new TNamed("comment",Form("%d",runNumber)));
-
-  TString selectorName = "AliROCESDAnalysisSelector";
-  AliLog::SetClassDebugLevel(selectorName, AliLog::kInfo);
-
-  if (aDebug != kFALSE)
-  {
-    AliLog::SetClassDebugLevel(selectorName, AliLog::kDebug);
-    selectorName += ".cxx++g";
-  }
-  else
-    selectorName += ".cxx+";
-
-  Int_t result = executeQuery(chain, &inputList, selectorName, option);
-}
diff --git a/PWG0/TPC/runROCRawAnalysis.C b/PWG0/TPC/runROCRawAnalysis.C
deleted file mode 100644 (file)
index a4e9aec..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/* $Id$ */
-
-//
-// 
-//
-
-#include "../CreateESDChain.C"
-#include "../PWG0Helper.C"
-
-void runROCRawAnalysis(Char_t* dataDir, Int_t nRuns=20, Int_t offset=0, Long64_t entries = TChain::kBigNumber, Bool_t aDebug = kFALSE, Bool_t aProof = kFALSE, 
-    const char* option = "", const char* proofServer = "jgrosseo@lxb6046")
-{
-  if (aProof)
-    connectProof(proofServer);
-
-  TString libraries("libEG;libGeom;libPWG0base;libPWG0dep");
-  TString packages;
-
-  if (!prepareQuery(libraries, packages, 2))
-    return;
-
-  TChain* chain = CreateChain("RAW", dataDir, nRuns, offset);
-  
-  cout << "Entries in chain " << chain->GetEntries() << endl;
-
-  TList inputList;
-  
-  TString selectorName = "AliROCRawAnalysisSelector";
-  AliLog::SetClassDebugLevel(selectorName, AliLog::kInfo);
-
-  if (aDebug != kFALSE)
-  {
-    AliLog::SetClassDebugLevel(selectorName, AliLog::kDebug);
-    selectorName += ".cxx+g";
-  }
-  else
-    selectorName += ".cxx+";
-
-  Int_t result = executeQuery(chain, &inputList, selectorName, option, entries);
-}
index feb3ffb..3897d12 100644 (file)
@@ -4,9 +4,7 @@
 
 # this library contains classed that depend on STEER
 
-SRCS = TPC/AliTPCClusterHistograms.cxx \
-       TPC/AliTPCRawHistograms.cxx \
-      dNdPt/AlidNdPtHelper.cxx \
+SRCS = dNdPt/AlidNdPtHelper.cxx \
       dNdPt/AlidNdPtAnalysis.cxx \
       dNdPt/AlidNdPtCorrection.cxx \
       dNdPt/AlidNdPtAcceptanceCuts.cxx \
@@ -20,7 +18,7 @@ HDRS = $(SRCS:.cxx=.h)
 
 DHDR= PWG0depLinkDef.h
 
-EINCLUDE= TPC PWG0/TPC
+EINCLUDE= TPC
 
 ifeq (win32gcc,$(ALICE_TARGET))
 PACKSOFLAGS:= $(SOFLAGS) -L$(ALICE_ROOT)/lib/tgt_$(ALICE_TARGET) -lSTEERBase
index 75fda9a..0bbeb3e 100644 (file)
@@ -7,9 +7,6 @@
 
 SRCS = dNdEta/AlidNdEtaTask.cxx \
        dNdEta/AlidNdEtaCorrectionTask.cxx \
-       TPC/AliROCESDAnalysisSelector.cxx \
-       TPC/AliROCRawAnalysisSelector.cxx \
-       TPC/AliROCClusterAnalysisSelector.cxx \
        highMultiplicity/AliHighMultiplicitySelector.cxx \
        multiplicity/AliMultiplicityTask.cxx \
        esdTrackCuts/AliCutTask.cxx \
@@ -21,7 +18,7 @@ HDRS = $(SRCS:.cxx=.h)
 
 DHDR= PWG0selectorsLinkDef.h
 
-EINCLUDE= TPC RAW ITS PWG0/dNdEta PWG0/TPC PWG0/highMultiplicity PWG0/multiplicity PWG0/esdTrackCuts PWG0/trigger PWG0/dNdPt PWG0/eventStats ANALYSIS
+EINCLUDE= TPC RAW ITS PWG0/dNdEta PWG0/highMultiplicity PWG0/multiplicity PWG0/esdTrackCuts PWG0/trigger PWG0/dNdPt PWG0/eventStats ANALYSIS
 
 ifeq (win32gcc,$(ALICE_TARGET))
 PACKSOFLAGS:= $(SOFLAGS) -L$(ALICE_ROOT)/lib/tgt_$(ALICE_TARGET) -lSTEERBase \