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

#include <PndMvdDigiEventAna.h>

Inheritance diagram for PndMvdDigiEventAna:
PndMvdEventAna

Public Member Functions

 PndMvdDigiEventAna ()
 
 PndMvdDigiEventAna (TString fileName)
 
virtual ~PndMvdDigiEventAna ()
 
virtual void InitBranch ()
 
virtual void InitHistos ()
 
virtual void AnaHitNr (Int_t hitNr)
 
void EndOfEventAction ()
 
void CreateMaxHitsHisto ()
 
void DrawSingleModuleFEHisto (TString path)
 
void DrawAllModulesFEHisto ()
 
virtual void Init (TString fileName)
 
void InitCanvas ()
 
void AnaEvents (Int_t count)
 
void AnaEventNr (Int_t Nr)
 
void NextEvent ()
 
void DrawHistos ()
 
void DrawHisto (TString path, TString opt="")
 
void SetCanvasColumns (Int_t col)
 
void SetDrawOption (TString histoName, TString option)
 
void SetSelection (TString sel)
 
void FillVector ()
 
void DrawVector (Int_t index, TString opt)
 
Int_t GetEventNr () const
 
TString GetSelection () const
 
TH1 * GetHisto (TString histoName)
 
TH1 * GetHisto (Int_t i)
 
virtual void AnaHits ()
 
virtual void BeginOfEventAction ()
 
virtual void ClearHistos ()
 

Protected Member Functions

 ClassDef (PndMvdDigiEventAna, 2)
 
 ClassDef (PndMvdEventAna, 1)
 

Protected Attributes

std::map< TString, std::vector
< Int_t > * > 
fFeHits
 
std::map< TString, std::vector
< PndSdsDigiPixel > > 
fDigiPixelArray
 
Int_t fActiveEvent
 
Int_t fAnaEvents
 
TFile * fFile
 
TTree * fTree
 
TClonesArray * fHitArray
 
TString fClassName
 
TString fBranchName
 
TString fSelection
 
TCanvas * fCan
 
std::map< TString, TH1 * > fHistos
 
std::map< TString, TStringfDrawOption
 
std::vector< TH1 * > fHistoVector
 
Int_t fCancol
 
PndGeoHandlingfGeoH
 

Detailed Description

Author
t.stockmanns

Definition at line 28 of file PndMvdDigiEventAna.h.

Constructor & Destructor Documentation

PndMvdDigiEventAna::PndMvdDigiEventAna ( )
inline

Definition at line 30 of file PndMvdDigiEventAna.h.

30 {};
PndMvdDigiEventAna::PndMvdDigiEventAna ( TString  fileName)

Definition at line 16 of file PndMvdDigiEventAna.cxx.

References PndMvdEventAna::fGeoH, PndMvdEventAna::Init(), PndGeoHandling::Instance(), and PndMvdEventAna::SetCanvasColumns().

16  :PndMvdEventAna(fileName)
17 {
18  Init(fileName);
20 
22 }
void SetCanvasColumns(Int_t col)
PndGeoHandling * fGeoH
static PndGeoHandling * Instance()
virtual void Init(TString fileName)
virtual PndMvdDigiEventAna::~PndMvdDigiEventAna ( )
inlinevirtual

Definition at line 32 of file PndMvdDigiEventAna.h.

32 {};

Member Function Documentation

void PndMvdEventAna::AnaEventNr ( Int_t  Nr)
inherited

Definition at line 28 of file PndMvdEventAna.cxx.

References PndMvdEventAna::AnaHits(), PndMvdEventAna::BeginOfEventAction(), PndMvdEventAna::ClearHistos(), PndMvdEventAna::EndOfEventAction(), PndMvdEventAna::fActiveEvent, PndMvdEventAna::fAnaEvents, PndMvdEventAna::fTree, PndMvdEventAna::InitHistos(), and vecs.

Referenced by PndMvdEventAna::NextEvent().

29 {
30  TVector3 vecs;
32 
33  fAnaEvents = 1;
34  InitHistos();
35  ClearHistos();
36  if (Nr > fTree->GetEntriesFast())
37  return;
38 
39  fActiveEvent = Nr;
40  AnaHits();
42  //InitCanvas();
43  //DrawHistos();
44 }
virtual void ClearHistos()
TVector3 vecs
virtual void BeginOfEventAction()
virtual void InitHistos()=0
virtual void EndOfEventAction()
virtual void AnaHits()
void PndMvdEventAna::AnaEvents ( Int_t  count)
inherited

Definition at line 79 of file PndMvdEventAna.cxx.

References PndMvdEventAna::AnaHits(), count, PndMvdEventAna::fActiveEvent, PndMvdEventAna::fAnaEvents, PndMvdEventAna::fTree, i, and PndMvdEventAna::InitHistos().

80 {
81  fAnaEvents = count;
82  InitHistos();
83  if (count > fTree->GetEntriesFast())
84  count = fTree->GetEntriesFast();
85  for (Int_t i = 0; i < count; i++)
86  {
87  fActiveEvent = i;
88  AnaHits();
89  }
90  //InitCanvas();
91  //DrawHistos();
92 }
Int_t i
Definition: run_full.C:25
virtual void InitHistos()=0
int count
virtual void AnaHits()
void PndMvdDigiEventAna::AnaHitNr ( Int_t  hitNr)
virtual

Reimplemented from PndMvdEventAna.

Definition at line 38 of file PndMvdDigiEventAna.cxx.

References Double_t, PndMvdEventAna::fActiveEvent, fDigiPixelArray, PndMvdEventAna::fDrawOption, fFeHits, PndMvdEventAna::fHistos, PndMvdEventAna::fHitArray, PndMvdEventAna::fTree, PndSdsDigi::GetFE(), PndSdsDigiPixel::GetPixelColumn(), PndSdsDigiPixel::GetPixelRow(), and hit().

39 {
40  fHitArray->Delete();
41  fTree->GetEntry(fActiveEvent);
43  //if (hit->GetDetName().Contains("119_2")){
44  if (fHistos[hit->GetDetName()] == 0){
45  fHistos[hit->GetDetName()] = new TH2I("HitDistribution",hit->GetDetName().Data(), 400,0,400,101,0,100);
46  //fDrawOption[hit->GetDetName()] = "colz";
47  }
48  if (fFeHits[hit->GetDetName()] == 0){
49  fFeHits[hit->GetDetName()] = new std::vector<Int_t>(30,0);
50  fDrawOption[hit->GetDetName()] = "colz";
51  }
52  TH2* tempHisto = (TH2*)(fHistos[hit->GetDetName()]);
53  tempHisto->Fill((Double_t)(hit->GetPixelColumn()+hit->GetFE()*16),(Double_t)(hit->GetPixelRow()));//, (Double_t)(hit->GetCharge()));
54  fFeHits[hit->GetDetName()]->at(hit->GetFE())++;
55  fDigiPixelArray[hit->GetDetName()].push_back(*hit);
56 }
Int_t GetPixelRow() const
Int_t GetPixelColumn() const
Int_t GetFE() const
Definition: PndSdsDigi.h:57
std::map< TString, TH1 * > fHistos
Double_t
TClonesArray * fHitArray
std::map< TString, std::vector< PndSdsDigiPixel > > fDigiPixelArray
std::map< TString, TString > fDrawOption
int hit(Int_t nEvents=0, TString inFile="sim.root", TString parFile="par.root", TString inDigi="digi.root", TString outFile="hit.root", Int_t timeBased=0)
Definition: hit.C:1
std::map< TString, std::vector< Int_t > * > fFeHits
Data class to store the digi output of a pixel module.
void PndMvdEventAna::AnaHits ( )
virtualinherited

Reimplemented in PndMvdAllDataEventAna.

Definition at line 94 of file PndMvdEventAna.cxx.

References PndMvdEventAna::AnaHitNr(), PndMvdEventAna::fHitArray, and i.

Referenced by PndMvdEventAna::AnaEventNr(), and PndMvdEventAna::AnaEvents().

95 {
96  for (Int_t i=0; i<fHitArray->GetEntriesFast(); i++)
97  {
98  AnaHitNr(i);
99  }
100 }
Int_t i
Definition: run_full.C:25
TClonesArray * fHitArray
virtual void AnaHitNr(Int_t i)
virtual void PndMvdEventAna::BeginOfEventAction ( )
inlinevirtualinherited

Reimplemented in PndMvdAllDataEventAna.

Definition at line 60 of file PndMvdEventAna.h.

Referenced by PndMvdEventAna::AnaEventNr().

60 {};
PndMvdDigiEventAna::ClassDef ( PndMvdDigiEventAna  ,
 
)
protected
PndMvdEventAna::ClassDef ( PndMvdEventAna  ,
 
)
protectedinherited
virtual void PndMvdEventAna::ClearHistos ( )
inlinevirtualinherited

Reimplemented in PndMvdAllDataEventAna.

Definition at line 62 of file PndMvdEventAna.h.

Referenced by PndMvdEventAna::AnaEventNr().

62 {};
void PndMvdDigiEventAna::CreateMaxHitsHisto ( )

Definition at line 58 of file PndMvdDigiEventAna.cxx.

References PndMvdEventAna::fAnaEvents, PndMvdEventAna::fGeoH, PndMvdEventAna::fHistoVector, GetEntries(), PndGeoHandling::GetPath(), i, and TString.

59 {
60 
61  TH1I* hPix1 = new TH1I("hPix1","Hitrate per Module",600,0,600);
62  hPix1->SetLineColor(2);
63  hPix1->GetXaxis()->SetTitle("Module ID");
64  hPix1->GetYaxis()->SetTitle("Hits per second");
65  hPix1->SetStats(kFALSE);
66  TH1I* hPix2 = new TH1I("hPix2","Hitrate per Module",600,0,600);
67  hPix2->SetLineColor(3);
68  hPix2->GetXaxis()->SetTitle("Module ID");
69  hPix2->GetYaxis()->SetTitle("Hits per second");
70  hPix2->SetStats(kFALSE);
71  TH1I* hMPix1 = new TH1I("hMPix1","Hitrate per Module",600,0,600);
72  hMPix1->SetLineColor(4);
73  hMPix1->GetXaxis()->SetTitle("Module ID");
74  hMPix1->GetYaxis()->SetTitle("Hits per second");
75  hMPix1->SetStats(kFALSE);
76  TH1I* hMPix2 = new TH1I("hMPix2","Hitrate per Module",600,0,600);
77  hMPix2->SetLineColor(5);
78  hMPix2->GetXaxis()->SetTitle("Module ID");
79  hMPix2->GetYaxis()->SetTitle("Hits per second");
80  hMPix2->SetStats(kFALSE);
81  TH1I* hSDisk1 = new TH1I("hSDisk1","Hitrate per Module",600,0,600);
82  hSDisk1->SetLineColor(6);
83  hSDisk1->GetXaxis()->SetTitle("Module ID");
84  hSDisk1->GetYaxis()->SetTitle("Hits per second");
85  hSDisk1->SetStats(kFALSE);
86  TH1I* hSDisk2 = new TH1I("hSDisk2","Hitrate per Module",600,0,600);
87  hSDisk2->SetLineColor(7);
88  hSDisk2->GetXaxis()->SetTitle("Module ID");
89  hSDisk2->GetYaxis()->SetTitle("Hits per second");
90  hSDisk2->SetStats(kFALSE);
91  TH1I* hRest = new TH1I("hRest","Hitrate per Module",600,0,600);
92  hRest->SetLineColor(1);
93  hRest->GetXaxis()->SetTitle("Module ID");
94  hRest->GetYaxis()->SetTitle("Hits per second");
95  hRest->SetStats(kFALSE);
96  for (UInt_t i = 0; i < fHistoVector.size(); i++){
97  TString hName= fHistoVector[i]->GetTitle();
98  //std::cout << hName << " " << fGeoH->GetPath(hName.Data()) << std::endl;
99  Int_t weight = 10000000 / fAnaEvents;
100  std::cout << weight << std::endl;
101  if (fGeoH->GetPath(hName.Data()).Contains("MiniPixelDisk_1"))
102  hMPix1->Fill(i, fHistoVector[i]->GetEntries()* weight);
103  else if (fGeoH->GetPath(hName.Data()).Contains("MiniPixelDisk_2")){
104  hMPix2->Fill(i, fHistoVector[i]->GetEntries()* weight);
105  }
106  else if (fGeoH->GetPath(hName.Data()).Contains("PixelDisk_1"))
107  hPix1->Fill(i, fHistoVector[i]->GetEntries()* weight);
108  else if (fGeoH->GetPath(hName.Data()).Contains("PixelDisk_2"))
109  hPix2->Fill(i, fHistoVector[i]->GetEntries()* weight);
110  else if (fGeoH->GetPath(hName.Data()).Contains("StripDiskMedium2_1"))
111  hSDisk1->Fill(i, fHistoVector[i]->GetEntries()* weight);
112  else if (fGeoH->GetPath(hName.Data()).Contains("StripDiskMedium2_2"))
113  hSDisk2->Fill(i, fHistoVector[i]->GetEntries()* weight);
114  else hRest->Fill(i, fHistoVector[i]->GetEntries()* weight);
115  }
116 
117  hMPix1->Draw("");
118  hMPix2->Draw("same");
119 
120  hPix1->Draw("same");
121  hPix2->Draw("same");
122 
123  hSDisk1->Draw("same");
124  hSDisk2->Draw("same");
125 
126  hRest->Draw("same");
127 /* TLegend* leg = new TLegend();
128  leg->AddEntry("hMPix1","Mini pixel disk 1","l");
129  leg->AddEntry("hMPix2","Mini pixel disk 2","l");
130  leg->AddEntry("hPix1","Pixel disk 1","l");
131  leg->AddEntry("hPix2","Pixel disk 2","l");
132  leg->AddEntry("hSDisk1","Combined disk 1","l");
133  leg->AddEntry("hSDisk2","Combined disk 2","l");
134  leg->DrawClone("same");*/
135 }
Int_t i
Definition: run_full.C:25
TString GetPath(Int_t shortID)
for a given shortID the path is returned
PndGeoHandling * fGeoH
std::vector< TH1 * > fHistoVector
cout<<"will loop over "<< t-> GetEntries()
Definition: root2ascii.C:17
void PndMvdDigiEventAna::DrawAllModulesFEHisto ( )

Definition at line 147 of file PndMvdDigiEventAna.cxx.

References fFeHits, and i.

148 {
149  TH1I* feHisto = new TH1I("feHisto","Hits in FE", 500, 0,10000);
150  std::map<TString, std::vector<Int_t>* >::const_iterator ki;
151  for (ki = fFeHits.begin(); ki != fFeHits.end(); ++ki){
152  for (UInt_t i = 0; i< ki->second->size(); i++)
153  feHisto->Fill(ki->second->at(i));
154  }
155  feHisto->Draw("");
156 }
Int_t i
Definition: run_full.C:25
std::map< TString, std::vector< Int_t > * > fFeHits
void PndMvdEventAna::DrawHisto ( TString  path,
TString  opt = "" 
)
inherited

Definition at line 74 of file PndMvdEventAna.cxx.

References PndMvdEventAna::fHistos.

75 {
76  fHistos[path]->Draw(opt.Data());
77 }
std::map< TString, TH1 * > fHistos
void PndMvdEventAna::DrawHistos ( )
inherited

Definition at line 63 of file PndMvdEventAna.cxx.

References PndMvdEventAna::fCan, PndMvdEventAna::fHistos, and i.

64 {
65  Int_t i = 0;
66  for (std::map<TString, TH1*>::const_iterator ki = fHistos.begin(); ki != fHistos.end(); ki++){
67  i++;
68  fCan->cd(i);
69  std::cout << ki->second << std::endl;
70  ki->second->Draw();//(fDrawOption[ci->second->GetName()]);
71  }
72 }
Int_t i
Definition: run_full.C:25
TCanvas * fCan
std::map< TString, TH1 * > fHistos
void PndMvdDigiEventAna::DrawSingleModuleFEHisto ( TString  path)

Definition at line 137 of file PndMvdDigiEventAna.cxx.

References fe, fFeHits, and i.

138 {
139  TH1I* feHisto = new TH1I("feHisto",path.Data(),500,0,10000);
140  vector<Int_t>* fe = fFeHits[path.Data()];
141  for (UInt_t i = 0; i < fe->size(); i++){
142  feHisto->Fill(fe->at(i));
143  }
144  feHisto->Draw("");
145 }
Int_t i
Definition: run_full.C:25
std::map< TString, std::vector< Int_t > * > fFeHits
int fe
Definition: anaLmdDigi.C:67
void PndMvdEventAna::DrawVector ( Int_t  index,
TString  opt 
)
inherited

Definition at line 110 of file PndMvdEventAna.cxx.

References PndMvdEventAna::fHistoVector.

111 {
112  fHistoVector[index]->Draw(opt.Data());
113 }
std::vector< TH1 * > fHistoVector
void PndMvdDigiEventAna::EndOfEventAction ( )
virtual

Reimplemented from PndMvdEventAna.

Definition at line 158 of file PndMvdDigiEventAna.cxx.

159 {
160 }
void PndMvdEventAna::FillVector ( )
inherited

Definition at line 102 of file PndMvdEventAna.cxx.

References PndMvdEventAna::fHistos, and PndMvdEventAna::fHistoVector.

103 {
104  fHistoVector.clear();
105  for (std::map<TString, TH1*>::const_iterator ki = fHistos.begin(); ki != fHistos.end(); ki++){
106  fHistoVector.push_back(ki->second);
107  }
108 }
std::map< TString, TH1 * > fHistos
std::vector< TH1 * > fHistoVector
Int_t PndMvdEventAna::GetEventNr ( ) const
inlineinherited

Definition at line 52 of file PndMvdEventAna.h.

References PndMvdEventAna::fActiveEvent.

52 {return fActiveEvent;};
TH1* PndMvdEventAna::GetHisto ( TString  histoName)
inlineinherited

Definition at line 54 of file PndMvdEventAna.h.

References PndMvdEventAna::fHistos.

54 {return fHistos[histoName];};
std::map< TString, TH1 * > fHistos
TH1* PndMvdEventAna::GetHisto ( Int_t  i)
inlineinherited

Definition at line 55 of file PndMvdEventAna.h.

References PndMvdEventAna::fHistoVector, and i.

55 {return fHistoVector[i];};
Int_t i
Definition: run_full.C:25
std::vector< TH1 * > fHistoVector
TString PndMvdEventAna::GetSelection ( ) const
inlineinherited

Definition at line 53 of file PndMvdEventAna.h.

References PndMvdEventAna::fSelection.

53 {return fSelection;};
TString fSelection
void PndMvdEventAna::Init ( TString  fileName)
virtualinherited

Reimplemented in PndMvdAllDataEventAna.

Definition at line 16 of file PndMvdEventAna.cxx.

References PndMvdEventAna::fActiveEvent, PndMvdEventAna::fBranchName, PndMvdEventAna::fClassName, PndMvdEventAna::fFile, PndMvdEventAna::fHitArray, PndMvdEventAna::fTree, PndMvdEventAna::InitBranch(), and PndMvdEventAna::InitHistos().

Referenced by PndMvdDigiEventAna().

17 {
18  InitHistos();
19  InitBranch();
20  fFile = new TFile(fileName.Data());
21  fTree = (TTree*)(fFile->Get("pndsim"));
22  fHitArray=new TClonesArray(fClassName.Data());
23  fTree->SetBranchAddress(fBranchName.Data(),&fHitArray);//Branch names
24  fActiveEvent = 0;
25 }
virtual void InitBranch()=0
TString fBranchName
TClonesArray * fHitArray
virtual void InitHistos()=0
TString fClassName
void PndMvdDigiEventAna::InitBranch ( )
virtual

Implements PndMvdEventAna.

Definition at line 24 of file PndMvdDigiEventAna.cxx.

References PndMvdEventAna::fBranchName, and PndMvdEventAna::fClassName.

25 {
26  fClassName = "PndSdsDigiPixel";
27  fBranchName = "MVDPixelDigis";
28 }
TString fBranchName
TString fClassName
void PndMvdEventAna::InitCanvas ( )
inherited

Definition at line 55 of file PndMvdEventAna.cxx.

References Double_t, PndMvdEventAna::fCan, PndMvdEventAna::fCancol, and PndMvdEventAna::fHistos.

56 {
57  if (fCan != 0) delete(fCan);
58  fCan = new TCanvas("can1","MCHit view in MVD",0,0,1000,1000);
59  std::cout << "InitCanvas fHistos.size() " << fHistos.size() << std::endl;
60  fCan->Divide(fCancol, (Int_t)(((Double_t)(fHistos.size())/fCancol) + 0.5));
61 }
TCanvas * fCan
std::map< TString, TH1 * > fHistos
Double_t
void PndMvdDigiEventAna::InitHistos ( )
virtual

Implements PndMvdEventAna.

Definition at line 30 of file PndMvdDigiEventAna.cxx.

References PndMvdEventAna::fHistos.

31 {
32  for (std::map<TString, TH1*>::const_iterator ki = fHistos.begin(); ki != fHistos.end(); ki++){
33  delete(ki->second);
34  }
35  fHistos.clear();
36 }
std::map< TString, TH1 * > fHistos
void PndMvdEventAna::NextEvent ( )
inherited

Definition at line 46 of file PndMvdEventAna.cxx.

References PndMvdEventAna::AnaEventNr(), PndMvdEventAna::fActiveEvent, PndMvdEventAna::fAnaEvents, and PndMvdEventAna::fTree.

47 {
48  fAnaEvents = 1;
49  if (fActiveEvent + 1 < fTree->GetEntriesFast()){
50  fActiveEvent++;
52  }
53 }
void AnaEventNr(Int_t Nr)
void PndMvdEventAna::SetCanvasColumns ( Int_t  col)
inlineinherited

Definition at line 47 of file PndMvdEventAna.h.

References col, and PndMvdEventAna::fCancol.

Referenced by PndMvdAllDataEventAna::PndMvdAllDataEventAna(), and PndMvdDigiEventAna().

47 {fCancol = col;};
int col
Definition: anaLmdDigi.C:67
void PndMvdEventAna::SetDrawOption ( TString  histoName,
TString  option 
)
inherited

Definition at line 115 of file PndMvdEventAna.cxx.

References PndMvdEventAna::fDrawOption.

116 {
117  fDrawOption[histoName] = option;
118 }
std::map< TString, TString > fDrawOption
void PndMvdEventAna::SetSelection ( TString  sel)
inlineinherited

Definition at line 49 of file PndMvdEventAna.h.

References PndMvdEventAna::fSelection.

49 {fSelection = sel;};
TString fSelection

Member Data Documentation

Int_t PndMvdEventAna::fActiveEvent
protectedinherited
Int_t PndMvdEventAna::fAnaEvents
protectedinherited
TString PndMvdEventAna::fBranchName
protectedinherited

Definition at line 71 of file PndMvdEventAna.h.

Referenced by PndMvdEventAna::Init(), InitBranch(), and PndMvdMCEventAna::InitBranch().

TCanvas* PndMvdEventAna::fCan
protectedinherited

Definition at line 73 of file PndMvdEventAna.h.

Referenced by PndMvdEventAna::DrawHistos(), and PndMvdEventAna::InitCanvas().

Int_t PndMvdEventAna::fCancol
protectedinherited
TString PndMvdEventAna::fClassName
protectedinherited

Definition at line 70 of file PndMvdEventAna.h.

Referenced by PndMvdEventAna::Init(), InitBranch(), and PndMvdMCEventAna::InitBranch().

std::map<TString, std::vector<PndSdsDigiPixel> > PndMvdDigiEventAna::fDigiPixelArray
protected

Definition at line 45 of file PndMvdDigiEventAna.h.

Referenced by AnaHitNr().

std::map<TString, TString> PndMvdEventAna::fDrawOption
protectedinherited
std::map<TString, std::vector<Int_t>* > PndMvdDigiEventAna::fFeHits
protected

Definition at line 44 of file PndMvdDigiEventAna.h.

Referenced by AnaHitNr(), DrawAllModulesFEHisto(), and DrawSingleModuleFEHisto().

TFile* PndMvdEventAna::fFile
protectedinherited

Definition at line 67 of file PndMvdEventAna.h.

Referenced by PndMvdEventAna::Init(), and PndMvdAllDataEventAna::Init().

PndGeoHandling* PndMvdEventAna::fGeoH
protectedinherited
std::map<TString, TH1*> PndMvdEventAna::fHistos
protectedinherited
std::vector<TH1*> PndMvdEventAna::fHistoVector
protectedinherited
TClonesArray* PndMvdEventAna::fHitArray
protectedinherited
TString PndMvdEventAna::fSelection
protectedinherited
TTree* PndMvdEventAna::fTree
protectedinherited

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