|
////////////////////////////////////////////////////////////////////////// // // // 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>
|