Store array values to a .root file

Hello,
I tried to store my array values to a .root file.
But I got following error.

error: member reference base type 'float' is not a structure or union
                   A_val[ixB][iQ2][itmin_t][i_DATA].Write(Form("A_val_xB%03d_iQ2%03d_tmin%03d_iData%03d",ixB,iQ2,itmin_t,i_DATA));
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~

code snippet


int main(){
TFile *AnaFile = new TFile("Store_Ai.root", "RECREATE");

float A_val[nx][nQ2][ntmin_t][n_weight]={{{{0}}}};
TVectorD Extracted_coefficient;
for(int ixB=0; ixB<nx; ixB++){
    for(int iQ2=0; iQ2<nQ2; iQ2++){
          for(int itmin_t=0 ; itmin_t < ntmin_t; itmin_t++){
                for(int i_DATA=0 ; i_DATA < n_weight; i_DATA++){
                        A_val[ixB][iQ2][itmin_t][i_DATA]=  Extracted_coefficient[i_DATA];
                    printf("[%d][%d][%d][%d]=%f\n",ixB,iQ2,itmin_t,i_DATA,A_val[ixB][iQ2][itmin_t][i_DATA]);
                    A_val[ixB][iQ2][itmin_t][i_DATA].Write(Form("A_val_xB%03d_iQ2%03d_tmin%03d_iData%03d",ixB,iQ2,itmin_t,i_DATA));
                  
                                                          }

                                       }
                       }
}
AnaFile->Write();
AnaFile->Close();

}

I can print values, but cannot write them in a .root file.

Thanks

TParameter<float> p(Form("A_val_xB%03d_iQ2%03d_tmin%03d_iData%03d",ixB,iQ2,itmin_t,i_DATA), A_val[ixB][iQ2][itmin_t][i_DATA]); p.Write();

Thank you @Wile_E_Coyote.
Now I’m stuck in how to read these parameters from TFile.
Any help would be appreciated.

sprintf(A_val,"A_val_xB%03d_iQ2%03d_tmin%03d_iData%03d",xBbinning,Q2binning,tmin_tbinning,i_DATA);
 A_val_coeff = (hFile->Get(A_val));

Thanks
Dil

TParameter<float> *p;
hFile->GetObject(A_val, p);
if (p) p->Print("");
if (p) std::cout << p->GetVal() << "\n";
delete p; // when no longer needed

Hello.
Once I stored array values in a .root and read it from .root file ,it causes some memory problem.(I am not sure exact problem)

So what I thought store my array in a txt file and read it from txt file.But I am not sure how exactly do that.

Here is my code.

void matrix_multiplication(){
    
    const int nx=3,nQ2=4,ntmin_t=10,n_weight=6;
    
    ofstream myfile1;
    
    myfile1.open("Ai_val.txt");
    // TFile *hFile1=TFile::Open("Inverse_matrix_Gen_1011.root");
    TFile *hFile1=TFile::Open("Inverse_matrix_change_simu_N0_testing.root");
    hFile1->ls();
    //   TFile *hFile2=TFile::Open("Data_vec.root");
    TFile *hFile2=TFile::Open("Data_vector_IntLumi_N0_3.root");
    hFile2->ls();
    
    TFile *AnaFile = new TFile("Store_Ai_simu.root", "RECREATE");
    char MatrixName_1[64];
    char MatrixName_2[64];
    char MatrixName_3[64];
    char MatrixName_4[64];
    
    TVectorD Data_array_vec;
    TVectorD Data_array_sum;
    TMatrixD MatrixInvGEN;
    TMatrixD MatrixInvSIMU;
    TVectorD Extracted_coefficient;
    TVectorD Model_Matrix;
    TVectorD Model_Matrix_ln;
    
  
   float A_val[nx][nQ2][ntmin_t][n_weight]={{{{0}}}};
    
   
    
    for(int ixB=0; ixB<nx; ixB++){
        for(int iQ2=0; iQ2<nQ2; iQ2++){
            for(int itmin_t=0 ; itmin_t < ntmin_t; itmin_t++){
                sprintf(MatrixName_1,"MatrixInvGEN_xB%03d_iQ2%03d_tmin%03d",ixB,iQ2,itmin_t);
                sprintf(MatrixName_2,"Data_array_vec_xB%03d_iQ2%03d_tmin%03d",ixB,iQ2,itmin_t);
                sprintf(MatrixName_3,"Data_array_sum_xB%03d_iQ2%03d_tmin%03d",ixB,iQ2,itmin_t);
                sprintf(MatrixName_4,"matInv_ACC_xB%03d_iQ2%03d_tmin%03d",ixB,iQ2,itmin_t);
                (MatrixInvGEN).ResizeTo(6, 6);
                MatrixInvGEN = *((TMatrixD*)(hFile1->Get(MatrixName_1)));
                
                (MatrixInvSIMU).ResizeTo(6, 6);
                MatrixInvSIMU = *((TMatrixD*)(hFile1->Get(MatrixName_4)));
                
                
                (Data_array_vec).ResizeTo(6);
                Data_array_vec  = *((TVectorD*)(hFile2->Get(MatrixName_2)));
                
                (Data_array_sum).ResizeTo(6);
                Data_array_sum  = *((TVectorD*)(hFile2->Get(MatrixName_3)));
               
                
                //Here we need to calculate the Equation.11 in the note Ai= M_{ij}^-1 V_{j}^{Data}
               
               (Extracted_coefficient).ResizeTo(6);
                Extracted_coefficient=MatrixInvSIMU*Data_array_vec;
                Data_array_vec.Print();
                MatrixInvSIMU.Print();
                Extracted_coefficient.Print();
                
            
                
               
            for(int i_Simu=0 ; i_Simu < nweight; i_Simu++){
                    A_val[ixB][iQ2][itmin_t][i_SImu]= Extracted_coefficient[i_SImu];
                   
                    printf("[%d][%d][%d][%d]=%f\n",ixB,iQ2,itmin_t,i_Simu,A_val[ixB][iQ2][itmin_t][i_Simu]);
                 //  A_val[ixB][iQ2][itmin_t][i_DATA]->Write(Form("A_val_xB%03d_iQ2%03d_tmin%03d_iData%03d",ixB,iQ2,itmin_t,i_DATA));
                    TParameter<float> p(Form("A_val_xB%03d_iQ2%03d_tmin%03d_iSimu%03d",ixB,iQ2,itmin_t,i_Simu), A_val[ixB][iQ2][itmin_t][i_Simu]); p.Write();
                
                myfile1 <<A_val[ixB][iQ2][itmin_t][i_SImu] << "\n";
                }
                
                
               
            
                
            }
        }
    }
    
    myfile1.close();
    AnaFile->Write();
    AnaFile->Close();
}

I stored in a txt file.(Not sure if it is correct.)
Now I want to know how I read this exact array values read from the txt file.(I know how to read it from the txt file but I am not sure how to pick correct value from an array)