FairRoot/PandaRoot
Public Member Functions | Private Member Functions | Private Attributes | List of all members
PndMvdRadDamIonizingTask Class Reference

#include <PndMvdRadDamIonizingTask.h>

Inheritance diagram for PndMvdRadDamIonizingTask:

Public Member Functions

 PndMvdRadDamIonizingTask ()
 
 ~PndMvdRadDamIonizingTask ()
 
 PndMvdRadDamIonizingTask (const PndMvdRadDamIonizingTask &)=delete
 
PndMvdRadDamIonizingTaskoperator= (const PndMvdRadDamIonizingTask &)=delete
 
virtual void SetParContainers ()
 
virtual InitStatus Init ()
 
virtual InitStatus ReInit ()
 
virtual void Exec (Option_t *opt)
 
virtual void FinishEvent ()
 
virtual void FinishTask ()
 
void SetPersistance (Bool_t p=kTRUE)
 
Bool_t GetPersistance ()
 

Private Member Functions

 ClassDef (PndMvdRadDamIonizingTask, 1)
 

Private Attributes

Bool_t fPersistance
 
TClonesArray * fMCHits
 
TClonesArray * fRadDamHits
 
PndGeoHandlingfGeoH
 
std::map< std::string,
TProfile2D * > 
fMapDetHistos
 
TH1D * fRadDamHisto
 

Detailed Description

Definition at line 20 of file PndMvdRadDamIonizingTask.h.

Constructor & Destructor Documentation

PndMvdRadDamIonizingTask::PndMvdRadDamIonizingTask ( )

Definition at line 19 of file PndMvdRadDamIonizingTask.cxx.

19  :
20  fPersistance(kTRUE),
21  fMCHits(NULL),
22  fRadDamHits(NULL),
24  fMapDetHistos(),
25  fRadDamHisto(NULL)
26 {
27 }
std::map< std::string, TProfile2D * > fMapDetHistos
static PndGeoHandling * Instance()
PndMvdRadDamIonizingTask::~PndMvdRadDamIonizingTask ( )

Definition at line 29 of file PndMvdRadDamIonizingTask.cxx.

References fMapDetHistos, and fRadDamHisto.

30 {
31  for (std::map<std::string, TProfile2D*>::iterator it = fMapDetHistos.begin(); it != fMapDetHistos.end(); it++)
32  delete(it->second);
33  fMapDetHistos.clear();
34  delete (fRadDamHisto);
35 }
std::map< std::string, TProfile2D * > fMapDetHistos
PndMvdRadDamIonizingTask::PndMvdRadDamIonizingTask ( const PndMvdRadDamIonizingTask )
delete

Member Function Documentation

PndMvdRadDamIonizingTask::ClassDef ( PndMvdRadDamIonizingTask  ,
 
)
private
void PndMvdRadDamIonizingTask::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 79 of file PndMvdRadDamIonizingTask.cxx.

References detname, Double_t, fGeoH, fMapDetHistos, fMCHits, fRadDamHisto, PndGeoHandling::GetPath(), PndSdsMCPoint::GetPosition(), PndSdsMCPoint::GetPositionOut(), PndGeoHandling::GetSensorDimensionsShortId(), PndSdsMCPoint::GetSensorID(), i, PndGeoHandling::MasterToLocalShortId(), mom, and TString.

80 {
81  // Reset output array
82 
83  PndSdsMCPoint* mcPoint;
84 
85 
86  for (int i = 0; i < fMCHits->GetEntriesFast(); i++){
87  mcPoint = (PndSdsMCPoint*)fMCHits->At(i);
88  TVector3 length = mcPoint->GetPosition();
89  length -= mcPoint->GetPositionOut();
90  TVector3 mom;
91  mcPoint->Momentum(mom);
92  Double_t energyLoss = mcPoint->GetEnergyLoss();
93  Double_t dEdx;
94  if (length.Mag() > 0)
95  dEdx = energyLoss / length.Mag();
96  else
97  dEdx = 0;
98  Double_t gray = dEdx * 1E9 * 1.6E-19 * 1/0.01 * 1/2.4 * 1000; // dEdx [GeV/cm] * conversion to electrons * conversion to Joule * sensitive Area mm2 * density silicon * conversion 1/g to 1/kg= Joule / kg
99 
100  TString detname = fGeoH->GetPath(mcPoint->GetSensorID());
101 
102  if (fMapDetHistos[detname.Data()] == 0){
103  PndStringSeparator svec(detname.Data(),"/");
104  TVector3 sensDim = fGeoH->GetSensorDimensionsShortId(mcPoint->GetSensorID());
105  std::string histoName = "";
106  histoName += svec.Replace("/","o");
107  fMapDetHistos[detname.Data()] = new TProfile2D(histoName.c_str(),
108  detname.Data(),
109  (Int_t)(2*sensDim.X()*10),-sensDim.X(),sensDim.X(), // point resolution mm^2
110  (Int_t)(2*sensDim.Y()*10),-sensDim.Y(),sensDim.Y());
111  }
112  //std::cout << "Damage: " << gray << " gray" << std::endl;
113  TVector3 localHit = fGeoH->MasterToLocalShortId(mcPoint->GetPosition(), mcPoint->GetSensorID());
114  ((TProfile2D*)(fMapDetHistos[detname.Data()]))->Fill(localHit.X(), localHit.Y(), gray);
115  fRadDamHisto->Fill(gray);
116 
117 // fRadDamHits = FairRootManager::Instance()->GetTClonesArray("MVDRadDamHit");
118 // PndMvdRadDamHit* tempHit = new ((*fRadDamHits)[fRadDamHits->GetEntries()]) PndMvdRadDamHit(mcPoint->GetTrackID(), i, mcPoint->GetSensorID(), 0, 0, mcPoint->GetPosition(), mom, dEdx);
119  // std::cout << "TempHit: " << *tempHit << std::endl;
120  }
121 }
Int_t i
Definition: run_full.C:25
TString detname
Definition: anasim.C:61
TVector3 GetPositionOut() const
Definition: PndSdsMCPoint.h:91
Double_t mom
Definition: plot_dirc.C:14
Int_t GetSensorID() const
Definition: PndSdsMCPoint.h:89
TString GetPath(Int_t shortID)
for a given shortID the path is returned
TVector3 GetSensorDimensionsShortId(Int_t shortId)
std::map< std::string, TProfile2D * > fMapDetHistos
Double_t
TVector3 MasterToLocalShortId(const TVector3 &master, const Int_t &shortId)
TVector3 GetPosition() const
Definition: PndSdsMCPoint.h:90
void PndMvdRadDamIonizingTask::FinishEvent ( )
virtual

Definition at line 123 of file PndMvdRadDamIonizingTask.cxx.

124 {
125  //fRadDamHits->Delete();
126 }
void PndMvdRadDamIonizingTask::FinishTask ( )
virtual

Definition at line 128 of file PndMvdRadDamIonizingTask.cxx.

References fMapDetHistos, and fRadDamHisto.

129 {
130  for (std::map<std::string, TProfile2D*>::iterator it = fMapDetHistos.begin(); it != fMapDetHistos.end(); it++)
131  it->second->Write();
132  fRadDamHisto->Write();
133 
134  //fRadDamHisto->Draw();
135 }
std::map< std::string, TProfile2D * > fMapDetHistos
Bool_t PndMvdRadDamIonizingTask::GetPersistance ( )
inline

Definition at line 38 of file PndMvdRadDamIonizingTask.h.

References fPersistance.

InitStatus PndMvdRadDamIonizingTask::Init ( )
virtual

Definition at line 48 of file PndMvdRadDamIonizingTask.cxx.

References fMCHits, and fRadDamHisto.

49 {
50  FairRootManager* ioman = FairRootManager::Instance();
51 
52  if (!ioman)
53  {
54  std::cout << "-E- PndMvdRadDamIonizingTask::Init: "
55  << "RootManager not instantiated!" << std::endl;
56  return kFATAL;
57  }
58 
59  fMCHits = (TClonesArray*) ioman->GetObject("MVDPoint");
60  if (!fMCHits)
61  {
62  std::cout << "-W- PndMvdRadDamIonizingTask::Init: " << "No MVDPoint array!"
63  << std::endl;
64  return kERROR;
65  }
66 
67  // Create and register output array
68 // fRadDamHits = ioman->Register("MVDRadDamHit", "PndMvdRadDamHit", "MVD", kTRUE);
69 
70 
71  fRadDamHisto = new TH1D("radDamH","absorbed dose", 10000000,1E-12,1E-4);
72 
73  std::cout << "-I- PndMvdRadDamIonizingTask: Initialization successful" << std::endl;
74 
75  return kSUCCESS;
76 }
PndMvdRadDamIonizingTask& PndMvdRadDamIonizingTask::operator= ( const PndMvdRadDamIonizingTask )
delete
InitStatus PndMvdRadDamIonizingTask::ReInit ( )
virtual

Definition at line 42 of file PndMvdRadDamIonizingTask.cxx.

References SetParContainers().

43 {
45  return kSUCCESS;
46 }
void PndMvdRadDamIonizingTask::SetParContainers ( )
virtual

Definition at line 38 of file PndMvdRadDamIonizingTask.cxx.

Referenced by ReInit().

39 {
40 }
void PndMvdRadDamIonizingTask::SetPersistance ( Bool_t  p = kTRUE)
inline

Definition at line 37 of file PndMvdRadDamIonizingTask.h.

References fPersistance, and p.

37 {fPersistance=p;};
Double_t p
Definition: anasim.C:58

Member Data Documentation

PndGeoHandling* PndMvdRadDamIonizingTask::fGeoH
private

Definition at line 45 of file PndMvdRadDamIonizingTask.h.

Referenced by Exec().

std::map<std::string, TProfile2D*> PndMvdRadDamIonizingTask::fMapDetHistos
private

Definition at line 47 of file PndMvdRadDamIonizingTask.h.

Referenced by Exec(), FinishTask(), and ~PndMvdRadDamIonizingTask().

TClonesArray* PndMvdRadDamIonizingTask::fMCHits
private

Definition at line 42 of file PndMvdRadDamIonizingTask.h.

Referenced by Exec(), and Init().

Bool_t PndMvdRadDamIonizingTask::fPersistance
private

Definition at line 38 of file PndMvdRadDamIonizingTask.h.

Referenced by GetPersistance(), and SetPersistance().

TH1D* PndMvdRadDamIonizingTask::fRadDamHisto
private

Definition at line 48 of file PndMvdRadDamIonizingTask.h.

Referenced by Exec(), FinishTask(), Init(), and ~PndMvdRadDamIonizingTask().

TClonesArray* PndMvdRadDamIonizingTask::fRadDamHits
private

Definition at line 43 of file PndMvdRadDamIonizingTask.h.


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