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

Task to create Emc header. More...

#include <PndEmcHdrFiller.h>

Inheritance diagram for PndEmcHdrFiller:

Public Member Functions

 PndEmcHdrFiller ()
 
 ~PndEmcHdrFiller ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *opt)
 
PndEmcHeaderAddHit (Double32_t ene_hit, Int_t mult_hit, Int_t mult_digi, Double32_t ene_clu, Int_t mult_clu, TVector3 p_clu)
 

Private Member Functions

 PndEmcHdrFiller (const PndEmcHdrFiller &L)
 
PndEmcHdrFilleroperator= (const PndEmcHdrFiller &)
 
 ClassDef (PndEmcHdrFiller, 1)
 

Private Attributes

TClonesArray * fHitArray
 
TClonesArray * fDigiArray
 
TClonesArray * fCluArray
 
TClonesArray * fHdrArray
 

Detailed Description

Task to create Emc header.

Definition at line 22 of file PndEmcHdrFiller.h.

Constructor & Destructor Documentation

PndEmcHdrFiller::PndEmcHdrFiller ( )

Default constructor

Definition at line 28 of file PndEmcHdrFiller.cxx.

28  :
29  FairTask("EMC Header Filler"),fHitArray(0), fDigiArray(0), fCluArray(0), fHdrArray(0)
30  {
31 }
TClonesArray * fHdrArray
TClonesArray * fCluArray
TClonesArray * fHitArray
TClonesArray * fDigiArray
PndEmcHdrFiller::~PndEmcHdrFiller ( )

Destructor

Definition at line 35 of file PndEmcHdrFiller.cxx.

35 { }
PndEmcHdrFiller::PndEmcHdrFiller ( const PndEmcHdrFiller L)
private

Member Function Documentation

PndEmcHeader * PndEmcHdrFiller::AddHit ( Double32_t  ene_hit,
Int_t  mult_hit,
Int_t  mult_digi,
Double32_t  ene_clu,
Int_t  mult_clu,
TVector3  p_clu 
)

Definition at line 137 of file PndEmcHdrFiller.cxx.

References fHdrArray, and PndEmcHeader::Print().

Referenced by Exec().

137  {
138  // It fills the PndEmcHeader category
139  TClonesArray& clref = *fHdrArray;
140  Int_t size = clref.GetEntriesFast();
141  PndEmcHeader(ene_hit, mult_hit, mult_digi, ene_clu, mult_clu, p_clu).Print();
142  return new(clref[size]) PndEmcHeader(ene_hit, mult_hit, mult_digi, ene_clu, mult_clu, p_clu);
143 }
virtual void Print(const Option_t *opt="") const
TClonesArray * fHdrArray
PndEmcHdrFiller::ClassDef ( PndEmcHdrFiller  ,
 
)
private
void PndEmcHdrFiller::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 86 of file PndEmcHdrFiller.cxx.

References AddHit(), PndEmcCluster::energy(), fCluArray, fDigiArray, fHdrArray, fHitArray, PndEmcHit::GetEnergy(), hit(), PndEmcCluster::phi(), and PndEmcCluster::theta().

86  {
87 
88  // Initial reset of parameters
89  Double32_t fHitEnergy = 0.;
90  Double32_t fCluEnergy = 0.;
91  Int_t nHitMult = 0;
92  Int_t nDigiMult = 0;
93  Int_t nCluMult = 0;
94 
95  PndEmcHit *hit;
96  fHdrArray->Clear();
97 
98  if ( fHitArray ) // Loop over PndEmcHit points
99  {
100  for (Int_t iHit=0; iHit< (fHitArray->GetEntriesFast()) ; iHit++)
101  {
102  hit = (PndEmcHit*) fHitArray->At(iHit);
103  fHitEnergy += hit->GetEnergy();
104  nHitMult++;
105  }
106  } // end of PndEmcHit loop
107 
108  if ( fDigiArray ) // Loop over PndEmcDigi points
109  {
110  nDigiMult = fDigiArray->GetEntriesFast();
111  } // end of PndEmcDigi loop
112 
113  PndEmcCluster *cluster;
114  TLorentzVector sum_clu(0., 0., 0., 0.), single_clu(0., 0., 0., 0.);
115  TVector3 mom_clu(0., 0., 0.);
116  if ( fCluArray ) // Loop over PndEmcCluster points
117  {
118  for (Int_t iClu=0; iClu< (fCluArray->GetEntriesFast()) ; iClu++)
119  {
120  cluster = (PndEmcCluster*) fCluArray->At(iClu);
121  fCluEnergy += cluster->energy();
122  nCluMult++;
123  mom_clu.SetMagThetaPhi(cluster->energy(), cluster->theta(), cluster->phi());
124  single_clu.SetVectM(mom_clu, 0.);
125  sum_clu = sum_clu + single_clu;
126  }
127  } // end of PndEmcCluster loop
128 
129  // Register EmcHeader
130 
131  AddHit(fHitEnergy, nHitMult, nDigiMult, fCluEnergy, nCluMult, sum_clu.Vect());
132 
133 }
TClonesArray * fHdrArray
TClonesArray * fCluArray
virtual Double_t GetEnergy() const
Definition: PndEmcHit.h:54
a cluster (group of neighboring crystals) of hit emc crystals
Definition: PndEmcCluster.h:29
represents the deposited energy of one emc crystal from simulation
Definition: PndEmcHit.h:26
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
virtual Double_t energy() const
TClonesArray * fHitArray
Double_t theta() const
Double_t phi() const
PndEmcHeader * AddHit(Double32_t ene_hit, Int_t mult_hit, Int_t mult_digi, Double32_t ene_clu, Int_t mult_clu, TVector3 p_clu)
TClonesArray * fDigiArray
InitStatus PndEmcHdrFiller::Init ( )
virtual

Virtual method Init

Definition at line 41 of file PndEmcHdrFiller.cxx.

References fCluArray, fDigiArray, fHdrArray, and fHitArray.

41  {
42 
43  cout << " INITIALIZATION *********************" << endl;
44 
45  // Get RootManager
46  FairRootManager* ioman = FairRootManager::Instance();
47  if ( ! ioman ) {
48  cout << "-E- PndEmcHdrFiller::Init: "
49  << "RootManager not instantiated!" << endl;
50  return kFATAL;
51  }
52 
53  // Get input array
54  fHitArray = dynamic_cast<TClonesArray *>(ioman->GetObject("EmcHit"));
55  if ( ! fHitArray ) {
56  cout << "-W- PndEmcHdrFiller::Init: "
57  << "No PndEmcHit array!" << endl;
58  }
59 
60  fDigiArray = dynamic_cast<TClonesArray *> (ioman->GetObject("EmcDigi"));
61  if ( ! fDigiArray ) {
62  cout << "-W- PndEmcHdrFiller::Init: "
63  << "No PndEmcDigi array!" << endl;
64  }
65  fCluArray = dynamic_cast<TClonesArray *> (ioman->GetObject("EmcCluster"));
66  if ( ! fCluArray ) {
67  cout << "-W- PndEmcHdrFiller::Init: "
68  << "No PndEmcCluster array!" << endl;
69  }
70 
71  // Create and register output array
72  fHdrArray = new TClonesArray("PndEmcHeader");
73 
74  ioman->Register("EmcHeader","Emc",fHdrArray,kTRUE);
75 
76  cout << "-I- PndEmcHdrFiller: Intialization successfull" << endl;
77 
78  return kSUCCESS;
79 
80 }
TClonesArray * fHdrArray
TClonesArray * fCluArray
TClonesArray * fHitArray
TClonesArray * fDigiArray
PndEmcHdrFiller& PndEmcHdrFiller::operator= ( const PndEmcHdrFiller )
inlineprivate

Definition at line 60 of file PndEmcHdrFiller.h.

60 {return *this;};

Member Data Documentation

TClonesArray* PndEmcHdrFiller::fCluArray
private

Input array of EmcCluster

Definition at line 54 of file PndEmcHdrFiller.h.

Referenced by Exec(), and Init().

TClonesArray* PndEmcHdrFiller::fDigiArray
private

Input array of EmcDigi

Definition at line 51 of file PndEmcHdrFiller.h.

Referenced by Exec(), and Init().

TClonesArray* PndEmcHdrFiller::fHdrArray
private

Output array of PndEmcHeader

Definition at line 57 of file PndEmcHdrFiller.h.

Referenced by AddHit(), Exec(), and Init().

TClonesArray* PndEmcHdrFiller::fHitArray
private

Input array of EmcHit

Definition at line 48 of file PndEmcHdrFiller.h.

Referenced by Exec(), and Init().


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