FairRoot/PandaRoot
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PndMvdDigiAna Class Reference

#include <PndMvdDigiAna.h>

Inheritance diagram for PndMvdDigiAna:

Public Member Functions

 PndMvdDigiAna ()
 
 PndMvdDigiAna (TString DetName)
 
virtual ~PndMvdDigiAna ()
 
virtual void SetParContainers ()
 
virtual InitStatus Init ()
 
virtual InitStatus ReInit ()
 
virtual void Exec (Option_t *opt)
 

Protected Member Functions

void Register ()
 
void Reset ()
 
void ProduceHits ()
 
void WriteHistograms (const TString &filename)
 
void PrintHistograms (const TString &outpsfile)
 
 ClassDef (PndMvdDigiAna, 2)
 

Protected Attributes

TString fBranchName
 
TClonesArray * fHitArray
 
TClonesArray * fPixelArray
 
TClonesArray * fStripArray
 
TClonesArray * fFePixelArray
 
TH3F * fPixelPos
 
TH3F * fStripPos
 
PndSdsPixelDigiParfDigiPar
 
TString fDetName
 

Detailed Description

Definition at line 25 of file PndMvdDigiAna.h.

Constructor & Destructor Documentation

PndMvdDigiAna::PndMvdDigiAna ( )

Default constructor

Definition at line 21 of file PndMvdDigiAna.cxx.

References fBranchName, fPixelPos, and fStripPos.

21  :
22  FairTask("PndMvd Digi Ana")
23 {
24  fBranchName = "MVDPixelDigis";
25 // fBranchName = "MVDDigiStrip";
26  fPixelPos = new TH3F("pPos","pPos",200,-15,15,200,-15,15,200,-20,20);
27  fStripPos = new TH3F("sPos","sPos",128,0,127,16,0,15,200,0,20);
28 
29 // fHitArray = new TClonesArray("PndSdsDigiPixel");
30 // fPixelArray = new TClonesArray("PndSdsDigiPixel");
31 }
TString fBranchName
Definition: PndMvdDigiAna.h:49
TH3F * fPixelPos
Definition: PndMvdDigiAna.h:57
TH3F * fStripPos
Definition: PndMvdDigiAna.h:58
PndMvdDigiAna::PndMvdDigiAna ( TString  DetName)

Definition at line 34 of file PndMvdDigiAna.cxx.

References fBranchName, fDetName, fPixelPos, and fStripPos.

34  :
35  FairTask("MVD Digi Ana")
36 {
37  fBranchName = "MVDPixelDigis";
38 // fBranchName = "MVDDigiStrip";
39  fDetName = DetName;
40  fPixelPos = new TH3F("pPos","pPos",200,-15,15,200,-15,15,200,-20,20);
41  fStripPos = new TH3F("sPos","sPos",128,0,127,16,0,15,200,0,20);
42 
43 }
TString fBranchName
Definition: PndMvdDigiAna.h:49
TH3F * fPixelPos
Definition: PndMvdDigiAna.h:57
TH3F * fStripPos
Definition: PndMvdDigiAna.h:58
TString fDetName
Definition: PndMvdDigiAna.h:68
PndMvdDigiAna::~PndMvdDigiAna ( )
virtual

Destructor

Definition at line 48 of file PndMvdDigiAna.cxx.

49 {
50 }

Member Function Documentation

PndMvdDigiAna::ClassDef ( PndMvdDigiAna  ,
 
)
protected
void PndMvdDigiAna::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 102 of file PndMvdDigiAna.cxx.

References fHitArray, fPixelArray, fStripPos, PndSdsDigiStrip::GetChannel(), PndSdsDigi::GetCharge(), PndSdsDigi::GetFE(), PndStringSeparator::GetStringVector(), hit, and PrintHistograms().

103 {
104  // Reset output array
105  std::cout << "Within Exec! " << fHitArray << " " << fPixelArray << std::endl;
106  if ( ! fHitArray )
107  Fatal("Exec", "No HitArray");
108 
109  // Loop over PndMvdMCPoints
110  Int_t
111  nPoints = fHitArray->GetEntriesFast();
112 
113  PndSdsDigiStrip* hit = 0;
114 
115  for (Int_t iPoint = 0; iPoint < nPoints; iPoint++)
116  {
117 // hit = (PndSdsDigiPixel*) fHitArray->At(iPoint);
118  hit = (PndSdsDigiStrip*) fHitArray->At(iPoint);
119 
120  if ( !hit){
121  std::cout<< "No Hit!" << std::endl;
122  continue;
123  }
124 
125  // std::cout << "****Hit Point: " << std::endl;
126  // hit->Print("");
127 
128  std::string det = hit->GetDetName().Data();
129 
130  PndStringSeparator sAna(det,"/");
131  std::vector<std::string> sVector = sAna.GetStringVector();
132  if (sVector[sVector.size()-1].find("Strip") != string::npos){
133  fStripPos->Fill(hit->GetChannel(), hit->GetFE(), hit->GetCharge());
134  std::cout << "Strip Found" << std::endl;
135 // std::cout<<"col "<<hit->GetPixelColumn()<<"\trow "
136 // <<hit->GetPixelRow()<<" charge "<<hit->GetCharge()<<std::endl;
137  }
138  else
139  {
140  /*
141  fPixelPos->Fill(hit->GetPixelColumn(), hit->GetPixelRow(), hit->GetCharge());
142  std::cout << "Pixel Found" << std::endl;
143  std::cout<<"col "<<hit->GetPixelColumn()<<"\trow "
144  <<hit->GetPixelRow()<<" charge "<<hit->GetCharge()<<std::endl;
145  */
146  }
147  } // Loop over HitPoints
148 
149  // Event summary
150  std::cout << "-I- PndMvdDigiAna: " << nPoints << " PndMvdHits" << std::endl;
151  PrintHistograms("PndMvdDigiAna.ps");
152 
153 }
TClonesArray * fHitArray
Definition: PndMvdDigiAna.h:52
Class for digitised strip hits.
Double_t GetCharge() const
Definition: PndSdsDigi.h:60
Int_t GetFE() const
Definition: PndSdsDigi.h:57
TH3F * fStripPos
Definition: PndMvdDigiAna.h:58
PndSdsMCPoint * hit
Definition: anasim.C:70
Int_t GetChannel() const
TClonesArray * fPixelArray
Definition: PndMvdDigiAna.h:53
void PrintHistograms(const TString &outpsfile)
InitStatus PndMvdDigiAna::Init ( )
virtual

Definition at line 70 of file PndMvdDigiAna.cxx.

References fBranchName, fHitArray, fPixelPos, and fStripPos.

71 {
72 
73  FairRootManager* ioman = FairRootManager::Instance();
74 
75  if ( ! ioman )
76  {
77  std::cout << "-E- PndMvdDigiAna::Init: "
78  << "RootManager not instantiated!" << std::endl;
79  return kFATAL;
80  }
81  std::cout << "within init" << std::endl;
82 
83  // Get input array
84  fHitArray = (TClonesArray*) ioman->GetObject(fBranchName);
85 
86  if ( ! fHitArray )
87  {
88  std::cout << "-W- PndMvdDigiAna::Init: "
89  << "No MVDHit array!" << std::endl;
90  return kERROR;
91  }
92 
93  // register output histograms
94  ioman->Register("MVDHist1", "MVD", fStripPos, kTRUE);
95  ioman->Register("MVDHist2", "MVD", fPixelPos, kTRUE);
96 
97  std::cout << "-I- PndMvdDigiAna: Intialisation successfull" << std::endl;
98  return kSUCCESS;
99 }
TClonesArray * fHitArray
Definition: PndMvdDigiAna.h:52
TString fBranchName
Definition: PndMvdDigiAna.h:49
TH3F * fPixelPos
Definition: PndMvdDigiAna.h:57
TH3F * fStripPos
Definition: PndMvdDigiAna.h:58
void PndMvdDigiAna::PrintHistograms ( const TString outpsfile)
protected

Definition at line 175 of file PndMvdDigiAna.cxx.

References a, b, can1, fPixelPos, and fStripPos.

Referenced by Exec().

176 {
177  TCanvas* can1 = new TCanvas("can1","MVD digitization analysis",0,0,600,800);
178  Int_t a = 2, b = 4, zaehl = 1;
179  can1->Divide(a,b);
180  can1->Print(outpsfile+"[");//opens the ps file, no writing
181 
182  if(zaehl>(a*b)) // new page
183  {zaehl=1;can1->Print(outpsfile);can1->Clear("D");}
184  can1->cd(zaehl);
185  fStripPos->DrawCopy();
186  delete fStripPos;
187  fStripPos=NULL;
188 
189  if(zaehl>(a*b)) // new page
190  {zaehl=1;can1->Print(outpsfile);can1->Clear("D");}
191  can1->cd(zaehl);
192  fPixelPos->DrawCopy();
193  delete fPixelPos;
194  fPixelPos=NULL;
195 
196  // finish plotting
197  can1->Print(outpsfile);//writes in file
198  can1->Print(outpsfile+"]");//closes the file
199  delete can1;
200 }
TTree * b
TH3F * fPixelPos
Definition: PndMvdDigiAna.h:57
Int_t a
Definition: anaLmdDigi.C:126
TH3F * fStripPos
Definition: PndMvdDigiAna.h:58
TCanvas * can1
void PndMvdDigiAna::ProduceHits ( )
protected
void PndMvdDigiAna::Register ( )
protected
InitStatus PndMvdDigiAna::ReInit ( )
virtual

Definition at line 63 of file PndMvdDigiAna.cxx.

References SetParContainers().

64 {
66  return kSUCCESS;
67 }
virtual void SetParContainers()
void PndMvdDigiAna::Reset ( )
protected
void PndMvdDigiAna::SetParContainers ( )
virtual

Virtual method Init

Definition at line 54 of file PndMvdDigiAna.cxx.

References fDigiPar, and rtdb.

Referenced by ReInit().

55 {
56  // Get Base Container
57  FairRun* ana = FairRun::Instance();
58  FairRuntimeDb* rtdb=ana->GetRuntimeDb();
59  fDigiPar = (PndSdsPixelDigiPar*)(rtdb->getContainer("MVDPixelDigiPar"));
60 
61 }
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
PndSdsPixelDigiPar * fDigiPar
Definition: PndMvdDigiAna.h:60
Digitization Parameter Class for SDS-Pixel part.
void PndMvdDigiAna::WriteHistograms ( const TString filename)
protected

Definition at line 157 of file PndMvdDigiAna.cxx.

References file, fPixelPos, and fStripPos.

158 {
159  TFile* file = new TFile(filename,"UPDATE");
160  file->mkdir("PndMvdDigiAna");
161  file->cd("PndMvdDigiAna");
162 
163  fStripPos->Write();
164  delete fStripPos;
165  fStripPos=NULL;
166 
167  fPixelPos->Write();
168  delete fPixelPos;
169  fPixelPos=NULL;
170 
171  file->Close();
172  delete file;
173 }
TFile * file
TH3F * fPixelPos
Definition: PndMvdDigiAna.h:57
TH3F * fStripPos
Definition: PndMvdDigiAna.h:58
const string filename

Member Data Documentation

TString PndMvdDigiAna::fBranchName
protected

Definition at line 49 of file PndMvdDigiAna.h.

Referenced by Init(), and PndMvdDigiAna().

TString PndMvdDigiAna::fDetName
protected

Definition at line 68 of file PndMvdDigiAna.h.

Referenced by PndMvdDigiAna().

PndSdsPixelDigiPar* PndMvdDigiAna::fDigiPar
protected

Definition at line 60 of file PndMvdDigiAna.h.

Referenced by SetParContainers().

TClonesArray* PndMvdDigiAna::fFePixelArray
protected

Definition at line 55 of file PndMvdDigiAna.h.

TClonesArray* PndMvdDigiAna::fHitArray
protected

Input array

Definition at line 52 of file PndMvdDigiAna.h.

Referenced by Exec(), and Init().

TClonesArray* PndMvdDigiAna::fPixelArray
protected

Definition at line 53 of file PndMvdDigiAna.h.

Referenced by Exec().

TH3F* PndMvdDigiAna::fPixelPos
protected

Definition at line 57 of file PndMvdDigiAna.h.

Referenced by Init(), PndMvdDigiAna(), PrintHistograms(), and WriteHistograms().

TClonesArray* PndMvdDigiAna::fStripArray
protected

Definition at line 54 of file PndMvdDigiAna.h.

TH3F* PndMvdDigiAna::fStripPos
protected

Definition at line 58 of file PndMvdDigiAna.h.

Referenced by Exec(), Init(), PndMvdDigiAna(), PrintHistograms(), and WriteHistograms().


The documentation for this class was generated from the following files: