BRAT 2.4.5
Class index
Full class index
brahmlib
BRAHMS
ROOT page
//////////////////////////////////////////////////////////////////////////
//                                                                      //
//  BrTpcRdoModule                                                      //
//  ==============                                                      //
//                                                                      //
//       July 2001, Eun-Joo                                             //
//                                                                      //
//  Summary for TPC information                                         //
//                                                                      //
//////////////////////////////////////////////////////////////////////////
#include <BrIostream.h>
#ifndef BRAT_BrTpcRdoModule
#include "BrTpcRdoModule.h"
#endif              
 
//____________________________________________________________________

ClassImp(BrTpcRdoModule)
//____________________________________________________________________

 BrTpcRdoModule::BrTpcRdoModule():BrModule()  
{
  SetState(kSetup);
  fCluster = 0;     
}

//____________________________________________________________________

 BrTpcRdoModule::BrTpcRdoModule(const Char_t *name, const Char_t *title)
  : BrModule(name, title)    
{
  SetState(kSetup);

}

//____________________________________________________________________

 BrTpcRdoModule::~BrTpcRdoModule()
{

}

//____________________________________________________________________

 void BrTpcRdoModule::DefineHistograms()
{
  // Book histograms (called from BrModule::Book) 

  // Create new subdirectory for histograms
  TDirectory* savdir = gDirectory;   // remember current directory
  Char_t dirName[32];    
  sprintf(dirName,"Rdo_%s",GetName());     
  TDirectory* dir = savdir->mkdir(dirName);
  if (!dir) {
    Warning("DefineHistograms","Could not create histogram subdirectory");
    return;
  }
  dir->cd();

  // Make histograms here
  Char_t Histname[48];
  Char_t HistTitle[48];
  
  sprintf(Histname,"hNclusters_%s",GetName());
  sprintf(HistTitle,"Number of Clusters %s",GetName());
  hNclusters = new TH1F(Histname, HistTitle,800, 0.5,799.5);

  sprintf(Histname,"hCStatus_%s",GetName());
  sprintf(HistTitle,"Cluster Status %s",GetName());
  hCStatus= new TH1F(Histname, HistTitle,8,-0.5,8.5);

  sprintf(Histname,"hNseqs_%s",GetName());
  sprintf(HistTitle,"Number of Seqs/Cluster %s",GetName());
  hNseqs= new TH1F(Histname, HistTitle, 30,0.,30.);

  sprintf(Histname,"hNallHits_%s",GetName());
  sprintf(HistTitle,"Number of total hits %s",GetName());
  hNallHits= new TH1F(Histname, HistTitle,800, 0.5,799.5); 

  sprintf(Histname,"hNtrack_%s",GetName());
  sprintf(HistTitle,"Number of track %s",GetName());
  hNtrack= new TH1F(Histname, HistTitle, 30,0.,30.);

  sprintf(Histname,"hNhits_%s",GetName());
  sprintf(HistTitle,"Number of hits per track %s",GetName());
  hNhits= new TH1F(Histname, HistTitle,15, -0.5,15.); 
 
  // Restore directory
  gDirectory = savdir;
}


//____________________________________________________________________

 void BrTpcRdoModule::Init()
{

  SetState(kInit); 

  BrParameterDbManager* gParamDb = BrParameterDbManager::Instance();
  fParams = (BrDetectorParamsTPC*)
    gParamDb->GetDetectorParameters("BrDetectorParamsTPC", GetName());
}

//____________________________________________________________________
 void BrTpcRdoModule::Event(BrEventNode* inNode, BrEventNode* outNode)
{
  // modules to create BrTpcRdo object from reconstructed data
         
  SetState(kEvent); 
  Reset();  

  int NsingleHit = 0;
  int NsingleHitDec = 0;
  int NmultHitDec = 0;

  //output object
  BrTpcRdo* rdoTpc = new BrTpcRdo(Form("%s", GetName()),Form("TpcRdo %s",GetName())); 
  outNode->AddObject(rdoTpc); 
  
  BrDataTable* fClusterTable =
    inNode->GetDataTable(Form("%s %s", BRTABLENAMES kTPCCluster, GetName()));

  if(fClusterTable){
    Int_t nclusters =fClusterTable->GetEntries();

    if(DebugLevel() > 4 )     
      cout<<"nclusters == "<<fClusterTable->GetEntries()<<endl; 
    
    rdoTpc->SetNclusters(nclusters);                                           
    if(HistOn())
      hNclusters->Fill(nclusters);

    for ( Int_t i=0; i<nclusters; i++ ){
      
      BrTpcCluster *fCluster = (BrTpcCluster*)fClusterTable->At(i);  
      Int_t CStatus = fCluster->GetStatus();
      Int_t Nseqs = fCluster->GetNseqs();

      if(DebugLevel() > 4 )  
	cout<<"Nseqs == "<<Nseqs<<"Cluster Ststus== "<<CStatus<<endl;

      rdoTpc->SetCStatus(CStatus);
      rdoTpc->SetNseqs(Nseqs);

      if(CStatus == 1) NsingleHit++;
      if(CStatus == 4) NsingleHitDec++;
      if(CStatus == 5) NmultHitDec++;
      
      if(HistOn()){
	hCStatus->Fill(CStatus);
	hNseqs->Fill(Nseqs);
      }
    }
    
    if(DebugLevel() > 4 )    
      cout<<"NsingleHit== "<<NsingleHit<<"NsingleHitDec== "<<NsingleHitDec
	  <<"NmultHitDec== "<<NmultHitDec<<endl;
    
    rdoTpc->SetNsingleHit(NsingleHit);
    rdoTpc->SetNsingleHitDec(NsingleHitDec);
    rdoTpc->SetNmultHitDec(NmultHitDec);
  }
  
  BrDataTable* fHitTable =
    inNode->GetDataTable(Form("%s %s", BRTABLENAMES kTpcHit, GetName()));
  
  if(fHitTable){
    
    int NallHits = fHitTable->GetEntries();
    rdoTpc->SetNallHits(NallHits);
    
    if(DebugLevel() > 4 )  
      cout<<NallHits<<endl;
    
    if(HistOn())
      hNallHits->Fill(NallHits);
  }
  
  BrDataTable* fTrackTable =
    inNode->GetDataTable(Form("%s %s", BRTABLENAMES kTpcTrack, GetName()));

  if(fTrackTable){
    
    const Int_t Ntrack = fTrackTable->GetEntries();
    rdoTpc->SetNtrack(Ntrack);
    
    if(HistOn())
      hNtrack->Fill(Ntrack);
    
    if(DebugLevel() > 4 )  
      cout << "Number of Tpc tracks = " << Ntrack << endl;
    
  }
  
  if(DebugLevel() > 0 ) 
    outNode->ListObjects();
}

//____________________________________

This page automatically generated by script docBrat by Christian Holm

Copyright ; 2002 BRAHMS Collaboration <brahmlib@rcf.rhic.bnl.gov>
Last Update on by

Validate HTML
Validate CSS