From c048ef6d126a70e0696a86fdadfbb1f26f586352 Mon Sep 17 00:00:00 2001 From: Greg <gchristian@tamu.edu> Date: Fri, 23 Feb 2018 15:43:21 -0600 Subject: [PATCH] Finally fixed problems w/ merging Shuya's and Greg's version of Analysis.cxx and Analysis.h Had to use a manual merge tool (meld) to do this. --- Projects/T40/Analysis.cxx | 84 +++++++++++++++++++++++++++------------ Projects/T40/Analysis.h | 14 ++++++- 2 files changed, 71 insertions(+), 27 deletions(-) diff --git a/Projects/T40/Analysis.cxx b/Projects/T40/Analysis.cxx index cc23fa572..a414d062e 100644 --- a/Projects/T40/Analysis.cxx +++ b/Projects/T40/Analysis.cxx @@ -24,8 +24,6 @@ using namespace std; -#include "TSystem.h" - #include "Analysis.h" #include "NPAnalysisFactory.h" #include "NPDetectorManager.h" @@ -294,7 +292,9 @@ void Analysis::TreatEvent(){ if(XTarget>-1000 && YTarget>-1000){ TVector3 BeamImpact(XTarget,YTarget,0); - TVector3 HitDirection = TH -> GetRandomisedPositionOfInteraction(countTiaraHyball) - BeamImpact ; + //by Shuya 171218 (because of T40 meeting's discussion) + //TVector3 HitDirection = TH -> GetRandomisedPositionOfInteraction(countTiaraHyball) - BeamImpact ; + TVector3 HitDirection = TH -> GetPositionOfInteraction(countTiaraHyball) - BeamImpact ; ThetaLab = HitDirection.Angle( BeamDirection ); ThetaTHSurface = HitDirection.Angle(TVector3(0,0,-1)); // vector Normal on Hyball @@ -303,7 +303,7 @@ void Analysis::TreatEvent(){ //by Shuya 171019 PhiLab = HitDirection.Phi(); PhiLab = PhiLab/(TMath::Pi())*180.0; - + PhiLab_Hyball = PhiLab; // GAC 171020 { TVector3 v; @@ -321,19 +321,16 @@ void Analysis::TreatEvent(){ ///////////////////////////// // Part 2 : Impact Energy Energy = ELab = 0; +//by Shuya 171206 + ELab_Hyball = 0; + Si_E_TH = TH->Strip_E[countTiaraHyball]; Energy = Si_E_TH; // calibration for hyball is in MeV // Correct for energy loss using the thickness of the target and the dead layer - if(Energy > 0){ - ELab = LightSi.EvaluateInitialEnergy( Energy ,0.61*micrometer , ThetaTHSurface); // equivalent to 0.1 um of Aluminum + ELab = LightSi.EvaluateInitialEnergy( Energy ,0.61*micrometer , ThetaTHSurface); // equivalent to 0.1 um of Aluminum //by Shuya 170530 - //if(ThetaNormalTarget < halfpi) ELab = LightCBacking.EvaluateInitialEnergy( ELab ,0.044*micrometer , ThetaNormalTarget); //10 ug/cm2 carbon - if(ELab > 0) { - ELab = LightTarget.EvaluateInitialEnergy( ELab ,TargetThickness/2., ThetaNormalTarget); - } else { - ELab = 0; - } - } + //if(ThetaNormalTarget < halfpi) ELab = LightCBacking.EvaluateInitialEnergy( ELab ,0.044*micrometer , ThetaNormalTarget); //10 ug/cm2 carbon + ELab = LightTarget.EvaluateInitialEnergy( ELab ,TargetThickness/2., ThetaNormalTarget); ///////////////////////////// // Part 3 : Excitation Energy Calculation @@ -342,6 +339,9 @@ void Analysis::TreatEvent(){ ThetaCM = myReaction -> EnergyLabToThetaCM( ELab , ThetaLab)/deg; ThetaLab=ThetaLab/deg; +//by Shuya 171206 + ELab_Hyball = ELab; + ThetaLab_Hyball = ThetaLab; //by Shuya 170703 Ex_Hyball = Ex; @@ -363,7 +363,10 @@ void Analysis::TreatEvent(){ if(XTarget>-1000 && YTarget>-1000){ TVector3 BeamImpact(XTarget,YTarget,0); - TVector3 HitDirection = TB -> GetRandomisedPositionOfInteraction(countTiaraBarrel) - BeamImpact ; + //by Shuya 171218 (because of T40 meeting's discussion) + //TVector3 HitDirection = TB -> GetRandomisedPositionOfInteraction(countTiaraBarrel) - BeamImpact ; + TVector3 HitDirection = TB -> GetPositionOfInteraction(countTiaraBarrel) - BeamImpact ; + //Angle of emission wrt to beam ThetaLab = HitDirection.Angle( BeamDirection ); ThetaNormalTarget = HitDirection.Angle( TVector3(0,0,1) ) ; @@ -376,6 +379,7 @@ void Analysis::TreatEvent(){ //by Shuya 171019 PhiLab = HitDirection.Phi(); PhiLab = PhiLab/(TMath::Pi())*180.0; + PhiLab_Barrel = PhiLab; //GAC 171020 { TVector3 v; @@ -394,6 +398,9 @@ void Analysis::TreatEvent(){ ///////////////////////////// // Part 2 : Impact Energy Energy = ELab = 0; +//by Shuya 171206 + ELab_Barrel = 0; + Si_E_InnerTB = TB->Strip_E[countTiaraBarrel]; Energy = Si_E_InnerTB*keV;// calibration for barrel is in keV @@ -404,15 +411,17 @@ void Analysis::TreatEvent(){ Energy = Si_E_InnerTB*keV + Si_E_OuterTB*keV; } - // Evaluate energy using the thickness, Target and Si dead layer Correction - if(Energy > 0){ - ELab = LightSi.EvaluateInitialEnergy( Energy ,0.3*micrometer, ThetaTBSurface); - if(ELab > 0) { - ELab = LightTarget.EvaluateInitialEnergy( ELab ,TargetThickness/2., ThetaNormalTarget); - } else { - ELab = 0; - } + //by Shuya 171208. If you need E+dE for Barrel. + for(unsigned int countTiaraOuterBarrel = 0 ; countTiaraOuterBarrel < TB->Outer_Strip_E.size() ; countTiaraOuterBarrel++){ + if(TB->Outer_Detector_N[countTiaraOuterBarrel]==TB->Detector_N[countTiaraBarrel] && TB->Outer_Strip_E[countTiaraOuterBarrel]>0){ + Si_E_OuterTB = TB->Outer_Strip_E[countTiaraOuterBarrel]; + Energy = Si_E_InnerTB*keV + Si_E_OuterTB*keV; } + } + + // Evaluate energy using the thickness, Target and Si dead layer Correction + ELab = LightSi.EvaluateInitialEnergy( Energy ,0.3*micrometer, ThetaTBSurface); + ELab = LightTarget.EvaluateInitialEnergy( ELab ,TargetThickness/2., ThetaNormalTarget); ///////////////////////////// // Part 3 : Excitation Energy Calculation @@ -425,6 +434,10 @@ void Analysis::TreatEvent(){ ThetaCM = myReaction -> EnergyLabToThetaCM( ELab , ThetaLab)/deg; ThetaLab=ThetaLab/deg; +//by Shuya 171206 + ELab_Barrel = ELab; + ThetaLab_Barrel = ThetaLab; + ///////////////////////////// // Part 5 : Implementing randomised position impact matrix for both the entire Barrel (all 8 strips) and each strip making up the octagonal Barrel individually TVector3 BarrelRandomImpactPosition = TB -> GetRandomisedPositionOfInteraction(countTiaraBarrel); @@ -685,6 +698,12 @@ void Analysis::ReInitValue(){ //Silicon Ex = -1000 ; ELab = -1000; +//by Shuya 171206 + ELab_Hyball = -1000; + ELab_Barrel = -1000; + ThetaLab_Hyball = -1000; + ThetaLab_Barrel = -1000; + ThetaLab = -1000; ThetaCM = -1000; LightParticleDetected = false ; @@ -693,7 +712,10 @@ void Analysis::ReInitValue(){ Ex_Barrel = -1000 ; //by Shuya 171019 PhiLab = -1000; - ThetaXLab = ThetaYLab = -1000; +//by Shuya 171208 + PhiLab_Hyball = -1000; + PhiLab_Barrel = -1000; + ThetaXLab = ThetaYLab = -1000; //Simu //Original_ELab = -1000; @@ -766,18 +788,27 @@ void Analysis::ReInitValue(){ void Analysis::InitOutputBranch() { //Tiara RootOutput::getInstance()->GetTree()->Branch("Ex",&Ex,"Ex/D"); -//by Shuya 170703 +//by Shuya 170703 RootOutput::getInstance()->GetTree()->Branch("Ex_Hyball",&Ex_Hyball,"Ex_Hyball/D"); RootOutput::getInstance()->GetTree()->Branch("Ex_Barrel",&Ex_Barrel,"Ex_Barrel/D"); RootOutput::getInstance()->GetTree()->Branch("ELab",&ELab,"ELab/D"); +//by Shuya 171206 + RootOutput::getInstance()->GetTree()->Branch("ELab_Hyball",&ELab_Hyball,"ELab_Hyball/D"); + RootOutput::getInstance()->GetTree()->Branch("ELab_Barrel",&ELab_Barrel,"ELab_Barrel/D"); + RootOutput::getInstance()->GetTree()->Branch("ThetaLab",&ThetaLab,"ThetaLab/D"); +//by Shuya 171206 + RootOutput::getInstance()->GetTree()->Branch("ThetaLab_Hyball",&ThetaLab_Hyball,"ThetaLab_Hyball/D"); + RootOutput::getInstance()->GetTree()->Branch("ThetaLab_Barrel",&ThetaLab_Barrel,"ThetaLab_Barrel/D"); + RootOutput::getInstance()->GetTree()->Branch("ThetaCM",&ThetaCM,"ThetaCM/D"); //by Shuya 171019 RootOutput::getInstance()->GetTree()->Branch("PhiLab",&PhiLab,"PhiLab/D"); + RootOutput::getInstance()->GetTree()->Branch("PhiLab_Hyball",&PhiLab_Hyball,"PhiLab_Hyball/D"); + RootOutput::getInstance()->GetTree()->Branch("PhiLab_Barrel",&PhiLab_Barrel,"PhiLab_Barrel/D"); RootOutput::getInstance()->GetTree()->Branch("ThetaXLab",&ThetaXLab,"ThetaXLab/D"); RootOutput::getInstance()->GetTree()->Branch("ThetaYLab",&ThetaYLab,"ThetaYLab/D"); - RootOutput::getInstance()->GetTree()->Branch("TiaraImpactMatrixX",&TiaraIMX,"TiaraImpactMatrixX/D"); RootOutput::getInstance()->GetTree()->Branch("TiaraImpactMatrixY",&TiaraIMY,"TiaraImpactMatrixY/D"); @@ -842,7 +873,8 @@ void Analysis::InitOutputBranch() { RootOutput::getInstance()->GetTree()->Branch("TacSiMicro_dE",&TacSiMicro_dE,"TacSiMicro_dE/D"); RootOutput::getInstance()->GetTree()->Branch("TacSiPlastLeft",&TacSiPlastLeft,"TacSiPlastLeft/D"); - RootOutput::getInstance()->GetTree()->Branch("TacSiPlastRight",&TacSiPlastRight,"TacSiPlastRight/D"); + RootOutput::getInstance()->GetTree()->Branch("TacSiPlastRight",&TacSiPlastRight,"TacSiPlastRight/D"); + // Other RootOutput::getInstance()->GetTree()->Branch("RunNumber", &RunNumber,"RunNumber/I"); diff --git a/Projects/T40/Analysis.h b/Projects/T40/Analysis.h index 8ad7b994a..ff48385d6 100644 --- a/Projects/T40/Analysis.h +++ b/Projects/T40/Analysis.h @@ -1,4 +1,4 @@ -#ifndef Analysis_h +#ifndef Analysis_h #define Analysis_h /***************************************************************************** * Copyright (C) 2009-2014 this file is part of the NPTool Project * @@ -61,7 +61,15 @@ class Analysis: public NPL::VAnalysis{ double Ex_Barrel; double ELab; +//by Shuya 171206 + double ELab_Hyball; + double ELab_Barrel; + double ThetaLab; +//by Shuya 171206 + double ThetaLab_Hyball; + double ThetaLab_Barrel; + double ThetaCM; double TiaraIMX; double TiaraIMY; @@ -71,6 +79,10 @@ class Analysis: public NPL::VAnalysis{ bool LightParticleDetected; //by Shuya 171019 double PhiLab; +//by Shuya 171206 + double PhiLab_Hyball; + double PhiLab_Barrel; + // GAC 171020 double ThetaXLab; double ThetaYLab; -- GitLab