X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EMCAL%2FAliEMCALv1.cxx;h=52c48c1dd60a5c9ff93012286a704b3460c2bffb;hb=b1bcc356f080a3e5bea81f897768c51fe00b6196;hp=739cd6e5af4adcdc8b66245b7f5f5b26d6732573;hpb=9b3585065e4203ebcaa72786c94120a911657b45;p=u%2Fmrichter%2FAliRoot.git diff --git a/EMCAL/AliEMCALv1.cxx b/EMCAL/AliEMCALv1.cxx index 739cd6e5af4..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,27 +42,37 @@ #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); - gAlice->GetMCApp()->AddHitList(fHits); + // gAlice->GetMCApp()->AddHitList(fHits); // 20-dec-04 - advice of Andreas fNhits = 0; fIshunt = 2; // All hits are associated with particles entering the calorimeter - fTimeCut = 30e-09; } //______________________________________________________________________ @@ -104,7 +115,7 @@ void AliEMCALv1::AddHit(Int_t shunt, Int_t primary, Int_t tracknumber, Int_t ipa new((*fHits)[fNhits]) AliEMCALHit(*newHit); fNhits++; } // end if - + delete newHit; } //______________________________________________________________________ @@ -123,7 +134,11 @@ void AliEMCALv1::StepManager(void){ AliEMCALGeometry * geom = GetGeometry() ; - if(gMC->CurrentVolID(copy) == gMC->VolId("XPHI") ) { // We are in a Scintillator Layer + 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 ; if( ((depositedEnergy = gMC->Edep()) > 0.) && (gMC->TrackTime() < fTimeCut)){// Track is inside a scintillator and deposits some energy @@ -132,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) @@ -151,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) { @@ -188,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 @@ -214,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;