17 #include "FairRootManager.h"
19 #include "TClonesArray.h"
20 #include "TLorentzVector.h"
29 FairTask(
"EMC Header Filler"),fHitArray(0), fDigiArray(0), fCluArray(0), fHdrArray(0)
43 cout <<
" INITIALIZATION *********************" << endl;
46 FairRootManager* ioman = FairRootManager::Instance();
48 cout <<
"-E- PndEmcHdrFiller::Init: "
49 <<
"RootManager not instantiated!" << endl;
54 fHitArray =
dynamic_cast<TClonesArray *
>(ioman->GetObject(
"EmcHit"));
56 cout <<
"-W- PndEmcHdrFiller::Init: "
57 <<
"No PndEmcHit array!" << endl;
60 fDigiArray =
dynamic_cast<TClonesArray *
> (ioman->GetObject(
"EmcDigi"));
62 cout <<
"-W- PndEmcHdrFiller::Init: "
63 <<
"No PndEmcDigi array!" << endl;
65 fCluArray =
dynamic_cast<TClonesArray *
> (ioman->GetObject(
"EmcCluster"));
67 cout <<
"-W- PndEmcHdrFiller::Init: "
68 <<
"No PndEmcCluster array!" << endl;
72 fHdrArray =
new TClonesArray(
"PndEmcHeader");
74 ioman->Register(
"EmcHeader",
"Emc",
fHdrArray,kTRUE);
76 cout <<
"-I- PndEmcHdrFiller: Intialization successfull" << endl;
89 Double32_t fHitEnergy = 0.;
90 Double32_t fCluEnergy = 0.;
100 for (Int_t iHit=0; iHit< (
fHitArray->GetEntriesFast()) ; iHit++)
114 TLorentzVector sum_clu(0., 0., 0., 0.), single_clu(0., 0., 0., 0.);
115 TVector3 mom_clu(0., 0., 0.);
118 for (Int_t iClu=0; iClu< (
fCluArray->GetEntriesFast()) ; iClu++)
121 fCluEnergy += cluster->
energy();
123 mom_clu.SetMagThetaPhi(cluster->
energy(), cluster->
theta(), cluster->
phi());
124 single_clu.SetVectM(mom_clu, 0.);
125 sum_clu = sum_clu + single_clu;
131 AddHit(fHitEnergy, nHitMult, nDigiMult, fCluEnergy, nCluMult, sum_clu.Vect());
140 Int_t size = clref.GetEntriesFast();
142 return new(clref[size])
PndEmcHeader(ene_hit, mult_hit, mult_digi, ene_clu, mult_clu, p_clu);
virtual InitStatus Init()
virtual Double_t GetEnergy() const
a cluster (group of neighboring crystals) of hit emc crystals
represents the deposited energy of one emc crystal from simulation
virtual Double_t energy() const
Task to create Emc header.
virtual void Exec(Option_t *opt)
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