Crash in a little code

Hello Rooters,

Could you please help me to find why I am getting a crash in this little code?

#include "Normalized_factor.hpp"
#include <TFile.h>
#include <TH1.h>
#include <TH1F.h>
#include <TCanvas.h>
#include <TLegend.h>
#include <TLatex.h>
#include <TMath.h>
void Normalized_factor(){

    TFile  *f1 = TFile::Open( "CD_particle_3fold1_simu_exclusive_0.29.root");
   
    TH1F * h_missing_pim_3fold; f1->GetObject("h_missing_pim_3fold", h_missing_pim_3fold);
    h_missing_pim_3fold->Draw();
    TFile  *f2 = TFile::Open( "CD_particle_testing2_simu_exclusive_0.29.root");
    TH1F * h_missing_pim_4fold; f2->GetObject("h_missing_pim_4fold", h_missing_pim_4fold);
    h_missing_pim_4fold->SetLineColor(2);
    h_missing_pim_4fold->Draw("sames");
    
    
    
}

Here is the crash

 .x Normalized_factor.cpp
[/Users/Dilini/root-6-12-04-02/lib/libCling.so] cling_runtime_internal_throwIfInvalidPointer (no debug info)
[<unknown binary>] (no debug info)
[<unknown binary>] (no debug info)
[/Users/Dilini/root-6-12-04-02/lib/libCling.so] cling::IncrementalExecutor::executeWrapper(llvm::StringRef, cling::Value*) (no debug info)
[/Users/Dilini/root-6-12-04-02/lib/libCling.so] cling::Interpreter::RunFunction(clang::FunctionDecl const*, cling::Value*) (no debug info)
[/Users/Dilini/root-6-12-04-02/lib/libCling.so] cling::Interpreter::EvaluateInternal(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cling::CompilationOptions, cling::Value*, cling::Transaction**, unsigned long) (no debug info)
[/Users/Dilini/root-6-12-04-02/lib/libCling.so] cling::MetaSema::actOnxCommand(llvm::StringRef, llvm::StringRef, cling::Value*) (no debug info)
[/Users/Dilini/root-6-12-04-02/lib/libCling.so] cling::MetaParser::isXCommand(cling::MetaSema::ActionResult&, cling::Value*) (no debug info)
[/Users/Dilini/root-6-12-04-02/lib/libCling.so] cling::MetaParser::isCommand(cling::MetaSema::ActionResult&, cling::Value*) (no debug info)
[/Users/Dilini/root-6-12-04-02/lib/libCling.so] cling::MetaProcessor::process(llvm::StringRef, cling::Interpreter::CompilationResult&, cling::Value*, bool) (no debug info)
[/Users/Dilini/root-6-12-04-02/lib/libCling.so] HandleInterpreterException(cling::MetaProcessor*, char const*, cling::Interpreter::CompilationResult&, cling::Value*) /Users/Dilini/Documents/codetest/GEMC_Simulation/montecarloPiplusminus/root/core/metacling/src/TCling.cxx:2087
[/Users/Dilini/root-6-12-04-02/lib/libCling.so] TCling::ProcessLine(char const*, TInterpreter::EErrorCode*) /Users/Dilini/Documents/codetest/GEMC_Simulation/montecarloPiplusminus/root/core/metacling/src/TCling.cxx:2220
[/Users/Dilini/root-6-12-04-02/lib/libCling.so] TCling::ProcessLineSynch(char const*, TInterpreter::EErrorCode*) /Users/Dilini/Documents/codetest/GEMC_Simulation/montecarloPiplusminus/root/core/metacling/src/TCling.cxx:3069
[/Users/Dilini/root-6-12-04-02/lib/libCore.so] TApplication::ExecuteFile(char const*, int*, bool) /Users/Dilini/Documents/codetest/GEMC_Simulation/montecarloPiplusminus/root/core/base/src/TApplication.cxx:1191
[/Users/Dilini/root-6-12-04-02/lib/libRint.so] TRint::ProcessLineNr(char const*, char const*, int*) /Users/Dilini/Documents/codetest/GEMC_Simulation/montecarloPiplusminus/root/core/rint/src/TRint.cxx:756
[/Users/Dilini/root-6-12-04-02/lib/libRint.so] TRint::HandleTermInput() /Users/Dilini/Documents/codetest/GEMC_Simulation/montecarloPiplusminus/root/core/rint/src/TRint.cxx:603
[/Users/Dilini/root-6-12-04-02/lib/libCore.so] TUnixSystem::CheckDescriptors() /Users/Dilini/Documents/codetest/GEMC_Simulation/montecarloPiplusminus/root/core/unix/src/TUnixSystem.cxx:1323
[/Users/Dilini/root-6-12-04-02/lib/libCore.so] TMacOSXSystem::DispatchOneEvent(bool) /Users/Dilini/Documents/codetest/GEMC_Simulation/montecarloPiplusminus/root/core/macosx/src/TMacOSXSystem.mm:378
[/Users/Dilini/root-6-12-04-02/lib/libCore.so] TSystem::InnerLoop() /Users/Dilini/Documents/codetest/GEMC_Simulation/montecarloPiplusminus/root/core/base/src/TSystem.cxx:412
[/Users/Dilini/root-6-12-04-02/lib/libCore.so] TSystem::Run() /Users/Dilini/Documents/codetest/GEMC_Simulation/montecarloPiplusminus/root/core/base/src/TSystem.cxx:362
[/Users/Dilini/root-6-12-04-02/lib/libCore.so] TApplication::Run(bool) /Users/Dilini/Documents/codetest/GEMC_Simulation/montecarloPiplusminus/root/core/base/src/TApplication.cxx:1208
[/Users/Dilini/root-6-12-04-02/lib/libRint.so] TRint::Run(bool) /Users/Dilini/Documents/codetest/GEMC_Simulation/montecarloPiplusminus/root/core/rint/src/TRint.cxx:458
[/Users/Dilini/root-6-12-04-02/bin/root.exe] main /Users/Dilini/Documents/codetest/GEMC_Simulation/montecarloPiplusminus/root/main/src/rmain.cxx:32
[/usr/lib/system/libdyld.dylib] start (no debug info)
[<unknown binary>] (no debug info)
Error in <HandleInterpreterException>: Trying to dereference null pointer or trying to call routine taking non-null arguments.
Execution of your code was aborted.
In file included from input_line_10:1:
/Users/Dilini/Documents/CD_efficiency/Normalized_factor.cpp:14:5: warning: null passed to a callee that requires a non-null argument [-Wnonnull]
    h_missing_pim_3fold->Draw();
    ^~~~~~~~~~~~~~~~~~~
root [1] 


Thanks
Dil

Check: f1->ls();

A safer version version of your macro would be:

void Normalized_factor(){

    TFile  *f1 = TFile::Open( "CD_particle_3fold1_simu_exclusive_0.29.root");
   
    TH1F * h_missing_pim_3fold; f1->GetObject("h_missing_pim_3fold", h_missing_pim_3fold);
    h_missing_pim_3fold->Draw();
    TFile  *f2 = TFile::Open( "CD_particle_testing2_simu_exclusive_0.29.root");
    TH1F * h_missing_pim_4fold; 
    f2->GetObject("h_missing_pim_4fold", h_missing_pim_4fold);
    if (h_missing_pim_4fold) {
       h_missing_pim_4fold->SetLineColor(2);
       h_missing_pim_4fold->Draw("sames");   
   }
}

if that version does not crash it means the histogram h_missing_pim_4fold is not in the file f2.

Name of my 2nd .root file is wrong.
Thank you both.