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 
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)
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