X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FAliPHOSDebug.cxx;h=eeb4c6de49d1453cda4977b57757f521cc9993ee;hb=87f615d8f35622afa5b37e5078a900d34caf82e1;hp=ba2a678079afe9e9fc605746d8c28fa82443b0d5;hpb=21cd0c07a367c6e6836907ecf5222aef9cb05c05;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSDebug.cxx b/PHOS/AliPHOSDebug.cxx index ba2a678079a..eeb4c6de49d 100644 --- a/PHOS/AliPHOSDebug.cxx +++ b/PHOS/AliPHOSDebug.cxx @@ -18,22 +18,14 @@ //_________________________________________________________________________ // Implementation version v1 of PHOS Manager class //--- -// Layout EMC + PPSD has name GPS2: -// Produces cumulated hits -//--- // Layout EMC + CPV has name IHEP: // Produces hits for CPV, cumulated hits //--- -// Layout EMC + CPV + PPSD has name GPS: -// Produces hits for CPV, cumulated hits -//--- //*-- Author: Yves Schutz (SUBATECH) // --- ROOT system --- -#include "TBRIK.h" -#include "TNode.h" #include "TRandom.h" #include "TTree.h" @@ -50,10 +42,9 @@ #include "AliPHOSv1.h" #include "AliPHOSHit.h" #include "AliPHOSDigit.h" -#include "AliPHOSReconstructioner.h" +#include "AliPHOSReconstructor.h" #include "AliRun.h" #include "AliConst.h" -#include "AliMC.h" ClassImp(AliPHOSv1) @@ -73,9 +64,7 @@ AliPHOSv1::AliPHOSv1(const char *name, const char *title): AliPHOSv0(name,title) { // ctor : title is used to identify the layout - // GPS2 = 5 modules (EMC + PPSD) // IHEP = 5 modules (EMC + CPV ) - // MIXT = 4 modules (EMC + CPV ) and 1 module (EMC + PPSD) // // We store hits : // - fHits (the "normal" one), which retains the hits associated with @@ -106,11 +95,10 @@ AliPHOSv0(name,title) } //____________________________________________________________________________ -AliPHOSv1::AliPHOSv1(AliPHOSReconstructioner * Reconstructioner, const char *name, const char *title): +AliPHOSv1::AliPHOSv1(AliPHOSReconstructor * Reconstructioner, const char *name, const char *title): AliPHOSv0(name,title) { // ctor : title is used to identify the layout - // GPS2 = 5 modules (EMC + PPSD) fPinElectronicNoise = 0.010 ; @@ -228,8 +216,13 @@ void AliPHOSv1::Hits2SDigits() for (itrack=0; itrackGetNtrack(); itrack++){ //=========== Get the Hits Tree for the Primary track itrack - gAlice->ResetHits(); - gAlice->TreeH()->GetEvent(itrack); + gAlice->ResetHits(); + if (TreeH() == 0x0) + { + Error("Hits2SDigits","Can not find TreeH in the folder"); + return; + } + TreeH()->GetEvent(itrack); for ( i = 0 ; i < fHits->GetEntries() ; i++ ) { @@ -435,7 +428,7 @@ void AliPHOSv1::MakeBranch(Option_t* opt, char *file) } //_____________________________________________________________________________ -void AliPHOSv1::Reconstruction(AliPHOSReconstructioner * Reconstructioner) +void AliPHOSv1::Reconstruction(AliPHOSReconstructor * Reconstructioner) { // 1. Reinitializes the existing RecPoint, TrackSegment, and RecParticles Lists and // 2. Creates TreeR with a branch for each list @@ -512,87 +505,55 @@ void AliPHOSv1::StepManager(void) Bool_t entered = kFALSE ; Int_t copy ; - Int_t tracknumber = gAlice->CurrentTrack() ; - Int_t primary = gAlice->GetPrimary( gAlice->CurrentTrack() ); + Int_t tracknumber = gAlice->GetCurrentTrackNumber() ; + Int_t primary = gAlice->GetPrimary( gAlice->GetCurrentTrackNumber() ); TString name = GetGeometry()->GetName() ; Int_t trackpid = 0 ; - if( gMC->IsTrackEntering() ){ // create hit with position and momentum of new particle, + if( TVirtualMC::GetMC()->IsTrackEntering() ){ // create hit with position and momentum of new particle, // but may be without energy deposition // Current position of the hit in the local ref. system - gMC -> TrackPosition(pos); + TVirtualMC::GetMC() -> TrackPosition(pos); Float_t xyzm[3], xyzd[3] ; Int_t i; for (i=0; i<3; i++) xyzm[i] = pos[i]; - gMC -> Gmtod (xyzm, xyzd, 1); // transform coordinate from master to daughter system + TVirtualMC::GetMC() -> Gmtod (xyzm, xyzd, 1); // transform coordinate from master to daughter system xyd[0] = xyzd[0]; xyd[1] =-xyzd[1]; xyd[2] =-xyzd[2]; // Current momentum of the hit's track in the local ref. system - gMC -> TrackMomentum(pmom); + TVirtualMC::GetMC() -> TrackMomentum(pmom); Float_t pm[3], pd[3]; for (i=0; i<3; i++) pm[i] = pmom[i]; - gMC -> Gmtod (pm, pd, 2); // transform 3-momentum from master to daughter system + TVirtualMC::GetMC() -> Gmtod (pm, pd, 2); // transform 3-momentum from master to daughter system pmom[0] = pd[0]; pmom[1] =-pd[1]; pmom[2] =-pd[2]; - trackpid = gMC->TrackPid(); + trackpid = TVirtualMC::GetMC()->TrackPid(); entered = kTRUE ; // Mark to create hit even withou energy deposition } - if ( name == "GPS2" || name == "MIXT" ) { // ======> CPV is a GPS' PPSD - - if( gMC->CurrentVolID(copy) == gMC->VolId("PPCE") ) // We are inside a gas cell - { - gMC->TrackPosition(pos) ; - xyze[0] = pos[0] ; - xyze[1] = pos[1] ; - xyze[2] = pos[2] ; - xyze[3] = gMC->Edep() ; - - if ( (xyze[3] != 0) || entered ) { // there is deposited energy or new particle entering PPSD - gMC->CurrentVolOffID(5, relid[0]) ; // get the PHOS Module number - if ( name == "MIXT" && strcmp(gMC->CurrentVolOffName(5),"PHO1") == 0 ){ - relid[0] += GetGeometry()->GetNModules() - GetGeometry()->GetNPPSDModules(); - } - gMC->CurrentVolOffID(3, relid[1]) ; // get the Micromegas Module number - // 1-> GetGeometry()->GetNumberOfModulesPhi() * GetGeometry()->GetNumberOfModulesZ() upper - // > GetGeometry()->GetNumberOfModulesPhi() * GetGeometry()->GetNumberOfModulesZ() lower - gMC->CurrentVolOffID(1, relid[2]) ; // get the row number of the cell - gMC->CurrentVolID(relid[3]) ; // get the column number - - // get the absolute Id number - - GetGeometry()->RelToAbsNumbering(relid, absid) ; - - // add current hit to the hit list - AddHit(fIshunt, primary, tracknumber, absid, xyze, trackpid, pmom, xyd); - - - } // there is deposited energy - } // We are inside the gas of the CPV - } // GPS2 configuration - - if ( name == "IHEP" || name == "MIXT" ) { // ======> CPV is a IHEP's one + if ( name == "IHEP" ) { // ======> CPV is a IHEP's one // Yuri Kharlov, 28 September 2000 - if( gMC->CurrentVolID(copy) == gMC->VolId("PCPQ") && + static Int_t idPCPQ = TVirtualMC::GetMC()->VolId("PCPQ"); + if( TVirtualMC::GetMC()->CurrentVolID(copy) == idPCPQ && entered && - gMC->TrackCharge() != 0) { + TVirtualMC::GetMC()->TrackCharge() != 0) { // Digitize the current CPV hit: // 1. find pad response and Int_t moduleNumber; - gMC->CurrentVolOffID(3,moduleNumber); + TVirtualMC::GetMC()->CurrentVolOffID(3,moduleNumber); moduleNumber--; @@ -656,24 +617,21 @@ void AliPHOSv1::StepManager(void) } // end of IHEP configuration - if(gMC->CurrentVolID(copy) == gMC->VolId("PXTL") ) { // We are inside a PBWO crystal - gMC->TrackPosition(pos) ; + if(TVirtualMC::GetMC()->CurrentVolID(copy) == TVirtualMC::GetMC()->VolId("PXTL") ) { // We are inside a PBWO crystal + TVirtualMC::GetMC()->TrackPosition(pos) ; xyze[0] = pos[0] ; xyze[1] = pos[1] ; xyze[2] = pos[2] ; - xyze[3] = gMC->Edep() ; + xyze[3] = TVirtualMC::GetMC()->Edep() ; if ( (xyze[3] != 0) || entered ) { // Track is inside the crystal and deposits some energy or just entered - gMC->CurrentVolOffID(10, relid[0]) ; // get the PHOS module number ; - - if ( name == "MIXT" && strcmp(gMC->CurrentVolOffName(10),"PHO1") == 0 ) - relid[0] += GetGeometry()->GetNModules() - GetGeometry()->GetNPPSDModules(); + TVirtualMC::GetMC()->CurrentVolOffID(10, relid[0]) ; // get the PHOS module number ; relid[1] = 0 ; // means PBW04 - gMC->CurrentVolOffID(4, relid[2]) ; // get the row number inside the module - gMC->CurrentVolOffID(3, relid[3]) ; // get the cell number inside the module + TVirtualMC::GetMC()->CurrentVolOffID(4, relid[2]) ; // get the row number inside the module + TVirtualMC::GetMC()->CurrentVolOffID(3, relid[3]) ; // get the cell number inside the module // get the absolute Id number GetGeometry()->RelToAbsNumbering(relid, absid) ;