20 #include "FairRootManager.h" 
   21 #include "FairRunAna.h" 
   22 #include "FairRuntimeDb.h" 
   24 #include "TClonesArray.h" 
   36   fHitArray(0), fDigiArray(0), fThreshold(0), fDigiPosMethod(
""), fEmcDigiRescaleFactor(0), fEmcDigiPositionDepthPWO(0), fEmcDigiPositionDepthShashlyk(0), fUseDigiEffectiveSmearing(0), fDetectedPhotonsPerMeV(0), fNPhotoElectronsPerMeVAPDBarrel(0), fNPhotoElectronsPerMeVAPDBWD(0), fNPhotoElectronsPerMeVVPT(0), fSensitiveAreaAPD(0), fSensitiveAreaVPT(0), fQuantumEfficiencyAPD(0), fQuantumEfficiencyVPT(0), fExcessNoiseFactorAPD(0), fExcessNoiseFactorVPT(0), fIncoherent_elec_noise_width_GeV_APD(0), fIncoherent_elec_noise_width_GeV_VPT(0), fMapVersion(0), fGeoPar(new 
PndEmcGeoPar()), fDigiPar(new 
PndEmcDigiPar()), fRecoPar(new 
PndEmcRecoPar())
 
   63         FairRootManager* ioman = FairRootManager::Instance();
 
   66                 cout << 
"-E- PndEmcMakeDigi::Init: " 
   67                 << 
"RootManager not instantiated!" << endl;
 
   72         fHitArray =
dynamic_cast<TClonesArray *
> (ioman->GetObject(
"EmcHit"));
 
   74                 cout << 
"-W- PndEmcMakeDigi::Init: " 
   75                 << 
"No EmcHit array!" << endl;
 
   97                 cout << 
"-W- PndEmcMakeDigi::Init: " 
   98                 << 
"Unknown digi position method!" << endl;
 
  128         cout << 
"-I- PndEmcMakeDigi: Intialization successfull" << endl;
 
  144         if ( ! 
fDigiArray ) Fatal(
"Exec", 
"No Digi Array");
 
  154         for (Int_t iHit=0; iHit<
nHits; iHit++) {
 
  156                 int detId=theHit->GetDetectorID();
 
  159                         Int_t trackId=theHit->GetRefIndex();
 
  191                                                 sigma_E=
sqrt(pow(0.056/energy,2)+pow(0.024/
sqrt(energy),2)+0.013);
 
  194                                                 std::cout<<
"PndEmcMakeDigi::Exec - Unknown module number in EMC digitization"<<std::endl;
 
  198                                 energy= gRandom->Gaus(energy,sigma_E*energy);
 
  211                         AddDigi(trackId,detId, energy, time,iHit); 
 
  230   Int_t size = clref.GetEntriesFast();
 
  232   newDigi->SetTimeStamp(FairRootManager::Instance()->GetEventTime() + time*1.e9);
 
  239   FairRun* 
run = FairRun::Instance();
 
  240   if ( ! run ) Fatal(
"SetParContainers", 
"No analysis run");
 
  242   FairRuntimeDb* db = run->GetRuntimeDb();
 
  243   if ( ! db ) Fatal(
"SetParContainers", 
"No runtime database");
 
PndEmcRecoPar * fRecoPar
Reconstruction parameter container. 
Double_t GetQuantumEfficiencyVPT()
Short_t GetCrystal() const 
Double_t GetEmcDigiPositionDepthShashlyk()
static void selectDigiPositionMethod(PositionMethod, double positionDepthPWO=0., double positionDepthShahslyk=0., double rescaleFactor=1.)
Double_t GetIncoherent_elec_noise_width_GeV_VPT()
represents the reconstructed hit of one emc crystal 
Double_t fSensitiveAreaAPD
const std::string & GetDigiPosMethod() const 
Double_t fEmcDigiPositionDepthShashlyk
virtual InitStatus Init()
Init Task. 
Double_t GetQuantumEfficiencyAPD()
friend F32vec4 sqrt(const F32vec4 &a)
Double_t val[nBoxes][nFEBox]
Double_t GetIncoherent_elec_noise_width_GeV_APD()
virtual ~PndEmcMakeDigi()
Double_t fExcessNoiseFactorVPT
Int_t GetUseDigiEffectiveSmearing()
void SetPersistency(Bool_t val=kTRUE)
Double_t fNPhotoElectronsPerMeVAPDBWD
Double_t fQuantumEfficiencyAPD
Double_t fEmcDigiRescaleFactor
PndEmcDigiPar * fDigiPar
Digitisation parameter container. 
virtual void Exec(Option_t *opt)
Runs the task. 
Double_t GetEnergyDigiThreshold()
PndEmcMakeDigi(Bool_t storedigis=kTRUE)
TClonesArray * fDigiArray
Double_t fIncoherent_elec_noise_width_GeV_APD
Double_t GetSensitiveAreaAPD()
std::string fDigiPosMethod
PndEmcGeoPar * fGeoPar
Geometry parameter container. 
void SetDigiPosMethod(const std::string &digiPosMethod)
virtual Double_t GetEnergy() const 
parameter set of Emc digitisation 
Double_t fIncoherent_elec_noise_width_GeV_VPT
Double_t fDetectedPhotonsPerMeV
void SetStorageOfData(Bool_t val)
Method to specify whether digis are stored or not. 
Double_t fSensitiveAreaVPT
Double_t GetDetectedPhotonsPerMeV()
Double_t fNPhotoElectronsPerMeVAPDBarrel
Double_t fQuantumEfficiencyVPT
virtual Double_t GetTime() const 
represents the deposited energy of one emc crystal from simulation 
Double_t GetExcessNoiseFactorVPT()
virtual void SetParContainers()
Double_t GetExcessNoiseFactorAPD()
Double_t fEmcDigiPositionDepthPWO
Int_t fUseDigiEffectiveSmearing
static PndEmcStructure * Instance()
Double_t fExcessNoiseFactorAPD
Short_t GetModule() const 
Double_t fNPhotoElectronsPerMeVVPT
Double_t GetSensitiveAreaVPT()
Task to create PndEmcDigi from PndEmcHit. 
Parameter set for Emc Reco. 
PndEmcDigi * AddDigi(Int_t trackID, Int_t detID, Float_t energy, Float_t time, Int_t hitIndex)
Adds a PndEmcDigi to to fDigiArray and returns it. 
Double_t GetEmcDigiPositionDepthPWO()