X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EMCAL%2FAliEMCALv1.cxx;h=52c48c1dd60a5c9ff93012286a704b3460c2bffb;hb=042cd64e91879c391168e5e6b2144d400598af03;hp=be1a95b19dc5fe3e98e83585d6c4bb28db0628b9;hpb=1963b290d5415854f3712a5255c9d2dd7ec461ef;p=u%2Fmrichter%2FAliRoot.git diff --git a/EMCAL/AliEMCALv1.cxx b/EMCAL/AliEMCALv1.cxx index be1a95b19dc..52c48c1dd60 100644 --- a/EMCAL/AliEMCALv1.cxx +++ b/EMCAL/AliEMCALv1.cxx @@ -30,8 +30,9 @@ // 2. Timing signal is collected and added to hit // --- ROOT system --- -#include "TParticle.h" -#include "TVirtualMC.h" +#include +#include +#include // --- Standard library --- @@ -41,19 +42,30 @@ #include "AliEMCALGeometry.h" #include "AliRun.h" #include "AliMC.h" +#include "AliStack.h" ClassImp(AliEMCALv1) //______________________________________________________________________ -AliEMCALv1::AliEMCALv1():AliEMCALv0(), fCurPrimary(-1), fCurParent(-1), fCurTrack(-1){ - // ctor - +AliEMCALv1::AliEMCALv1() + : AliEMCALv0(), + fCurPrimary(-1), + fCurParent(-1), + fCurTrack(-1), + fTimeCut(30e-09) +{ + // default ctor } //______________________________________________________________________ -AliEMCALv1::AliEMCALv1(const char *name, const char *title): - AliEMCALv0(name,title), fCurPrimary(-1), fCurParent(-1), fCurTrack(-1) { +AliEMCALv1::AliEMCALv1(const char *name, const char *title) + : AliEMCALv0(name,title), + fCurPrimary(-1), + fCurParent(-1), + fCurTrack(-1), + fTimeCut(30e-09) +{ // Standard Creator. fHits= new TClonesArray("AliEMCALHit",1000); @@ -61,7 +73,6 @@ AliEMCALv1::AliEMCALv1(const char *name, const char *title): fNhits = 0; fIshunt = 2; // All hits are associated with particles entering the calorimeter - fTimeCut = 30e-09; } //______________________________________________________________________ @@ -123,6 +134,9 @@ void AliEMCALv1::StepManager(void){ AliEMCALGeometry * geom = GetGeometry() ; + TParticle *part; + Int_t parent; + static Int_t idXPHI = gMC->VolId("XPHI"); if(gMC->CurrentVolID(copy) == idXPHI ) { // We are in a Scintillator Layer Float_t depositedEnergy ; @@ -133,16 +147,20 @@ void AliEMCALv1::StepManager(void){ if (fCurParent==-1 || tracknumber != fCurTrack) { // Check parentage - Int_t parent=tracknumber; + //Int_t parent=tracknumber; + parent=tracknumber; if (fCurParent != -1) { while (parent != fCurParent && parent != -1) { - TParticle *part=gAlice->GetMCApp()->Particle(parent); + //TParticle *part=gAlice->GetMCApp()->Particle(parent); + part=gAlice->GetMCApp()->Particle(parent); parent=part->GetFirstMother(); } } if (fCurParent==-1 || parent==-1) { - Int_t parent=tracknumber; - TParticle *part=gAlice->GetMCApp()->Particle(parent); + //Int_t parent=tracknumber; + //TParticle *part=gAlice->GetMCApp()->Particle(parent); + parent=tracknumber; + part=gAlice->GetMCApp()->Particle(parent); while (parent != -1 && geom->IsInEMCAL(part->Vx(),part->Vy(),part->Vz())) { parent=part->GetFirstMother(); if (parent!=-1) @@ -152,7 +170,8 @@ void AliEMCALv1::StepManager(void){ if (fCurParent==-1) Error("StepManager","Cannot find parent"); else { - TParticle *part=gAlice->GetMCApp()->Particle(fCurParent); + //TParticle *part=gAlice->GetMCApp()->Particle(fCurParent); + part=gAlice->GetMCApp()->Particle(fCurParent); ienergy = part->Energy(); } while (parent != -1) { @@ -189,19 +208,19 @@ void AliEMCALv1::StepManager(void){ // Apply Birk's law (copied from G3BIRK) if (gMC->TrackCharge()!=0) { // Check - Float_t BirkC1_mod = 0; + Float_t birkC1Mod = 0; if (fBirkC0==1){ // Apply correction for higher charge states if (TMath::Abs(gMC->TrackCharge())>=2) - BirkC1_mod=fBirkC1*7.2/12.6; + birkC1Mod=fBirkC1*7.2/12.6; else - BirkC1_mod=fBirkC1; + birkC1Mod=fBirkC1; } Float_t dedxcm; if (gMC->TrackStep()>0) dedxcm=1000.*gMC->Edep()/gMC->TrackStep(); else dedxcm=0; - lightYield=lightYield/(1.+BirkC1_mod*dedxcm+fBirkC2*dedxcm*dedxcm); + lightYield=lightYield/(1.+birkC1Mod*dedxcm+fBirkC2*dedxcm*dedxcm); } // use sampling fraction to get original energy --HG @@ -215,25 +234,28 @@ void AliEMCALv1::StepManager(void){ } } +//___________________________________________________________ void AliEMCALv1::RemapTrackHitIDs(Int_t *map) { // remap track index numbers for primary and parent indices // (Called by AliStack::PurifyKine) if (Hits()==0) return; - TIter hit_it(Hits()); - Int_t i_hit=0; - while (AliEMCALHit *hit=dynamic_cast(hit_it()) ) { + TIter hitIter(Hits()); + Int_t iHit=0; + while (AliEMCALHit *hit=dynamic_cast(hitIter()) ) { if (map[hit->GetIparent()]==-99) - cout << "Remapping, found -99 for parent id " << hit->GetIparent() << ", " << map[hit->GetIparent()] << ", i_hit " << i_hit << endl; + cout << "Remapping, found -99 for parent id " << hit->GetIparent() << ", " << map[hit->GetIparent()] << ", iHit " << iHit << endl; hit->SetIparent(map[hit->GetIparent()]); if (map[hit->GetPrimary()]==-99) - cout << "Remapping, found -99 for primary id " << hit->GetPrimary() << ", " << map[hit->GetPrimary()] << ", i_hit " << i_hit << endl; + cout << "Remapping, found -99 for primary id " << hit->GetPrimary() << ", " << map[hit->GetPrimary()] << ", iHit " << iHit << endl; hit->SetPrimary(map[hit->GetPrimary()]); - i_hit++; + iHit++; } } +//___________________________________________________________ void AliEMCALv1::FinishPrimary() { + // finish primary fCurPrimary=-1; fCurParent=-1; fCurTrack=-1;