7 #include "TClonesArray.h" 
   11 #include "THnSparse.h" 
   14 #include "FairRadMapPoint.h" 
   21 #include <G4PhysicalConstants.hh> 
   22 #include <G4SystemOfUnits.hh> 
   30                  TString inputfile = 
"RadMap_Out_Sim.root",
 
   31                  TString outputfile=
"RadMap_Out.root");
 
   42   TFile *fout = 
new TFile(outputfile,
"RECREATE");
 
   45   TChain mych(
"pndsim");
 
   51   mych.Add(inputfile.Data());
 
   53   Long64_t nentries = (Long64_t)mych.GetEntries();
 
   54   cout << 
"we have " << nentries << 
" events and will process "<< ((nevreq > nentries) ? nentries : nevreq) <<
" of them." << endl;
 
   55   TClonesArray *fRadMapPoint = 
new TClonesArray(
"FairRadMapPoint");
 
   56   mych.SetBranchAddress(
"RadMap", &fRadMapPoint);
 
   58   std::vector<PndRadMapBoxMesh*> BM;
 
   64   BM.at(BM.size()-1)->SetQuantity(
Edep);
 
   65   BM.at(BM.size()-1)->SetOrientation(
XY);
 
   71   BM.at(BM.size()-1)->SetQuantity(
Fluence);
 
   72   BM.at(BM.size()-1)->SetOrientation(
ZY, 14.3, 
Zz);
 
   73   BM.at(BM.size()-1)->SetVerbosityLevel(0);
 
   79   BM.at(BM.size()-1)->SetQuantity(
Fluence);
 
   80   BM.at(BM.size()-1)->SetOrientation(
ZY, 14.3, 
Zz);
 
   81   BM.at(BM.size()-1)->SetFilter(
"(Ch!=0)");
 
   87   BM.at(BM.size()-1)->SetQuantity(
Fluence);
 
   88   BM.at(BM.size()-1)->SetOrientation(
ZY, 14.3, 
Zz);
 
   89   BM.at(BM.size()-1)->SetFilter(
"(Ch!=0) && (Pid!=11) && (Pid!=-11)");
 
   95   BM.at(BM.size()-1)->SetQuantity(
Fluence);
 
   96   BM.at(BM.size()-1)->SetOrientation(
ZY, 14.3, 
Zz);
 
   97   BM.at(BM.size()-1)->SetFilter(
"(Pid==2212)");
 
  103   BM.at(BM.size()-1)->SetQuantity(
Fluence);
 
  104   BM.at(BM.size()-1)->SetOrientation(
ZY, 14.3, 
Zz);
 
  105   BM.at(BM.size()-1)->SetFilter(
"(Pid==2112)");
 
  112   BM.at(BM.size()-1)->SetQuantity(
Fluence);
 
  113   BM.at(BM.size()-1)->SetOrientation(
XY);
 
  119   BM.at(BM.size()-1)->SetQuantity(
Fluence);
 
  120   BM.at(BM.size()-1)->SetOrientation(
XY);
 
  121   BM.at(BM.size()-1)->SetFilter(
"(Ch!=0)");
 
  127   BM.at(BM.size()-1)->SetQuantity(
Fluence);
 
  128   BM.at(BM.size()-1)->SetOrientation(
XY);
 
  129   BM.at(BM.size()-1)->SetFilter(
"(Ch!=0) && (Pid!=11) && (Pid!=-11) ");
 
  135   BM.at(BM.size()-1)->SetQuantity(
Fluence);
 
  136   BM.at(BM.size()-1)->SetOrientation(
XY);
 
  137   BM.at(BM.size()-1)->SetFilter(
"(Pid==2212)");
 
  143   BM.at(BM.size()-1)->SetQuantity(
Fluence);
 
  144   BM.at(BM.size()-1)->SetOrientation(
XY);
 
  145   BM.at(BM.size()-1)->SetFilter(
"(Pid==2112)");
 
  260   for (Long64_t 
i=0; 
i<nentries && 
i<nevreq; 
i++) {
 
  261     cout << 
"event " << 
i << endl;
 
  263     Int_t 
npoints = fRadMapPoint->GetEntries();
 
  265     cout << npoints << endl;
 
  267     for (Int_t ii=0; ii < 
npoints; ii++) {
 
  271       FairRadMapPoint *
p= (FairRadMapPoint *) fRadMapPoint->At(ii);
 
  272       for(
unsigned int iii = 0; iii < BM.size(); iii++){
 
  277   cout << 
"Save " << BM.size() << endl;
 
  278   for(
unsigned int i = 0; 
i < BM.size(); 
i++){
 
  279     BM.at(
i)->Scale(1./nentries);
 
  280     BM.at(
i)->Save(fout);
 
  290 void plot(TH2D* 
h2, 
double scale, 
double rmin, 
double rmax){
 
  294   TPaletteAxis *palette = 
new TPaletteAxis(h2->GetXaxis()->GetBinCenter(h2->GetNbinsX()), 0,
 
  295                                            h2->GetXaxis()->GetBinCenter(h2->GetNbinsX())+10,
 
  296                                            h2->GetYaxis()->GetBinCenter(h2->GetNbinsY()),h2);
 
  297   palette->SetLabelColor(1);
 
  298   palette->SetLabelFont(42);
 
  299   palette->SetLabelOffset(0.005);
 
  300   palette->SetLabelSize(0.035);
 
  301   palette->SetTitleOffset(1);
 
  302   palette->SetTitleSize(0.035);
 
  303   palette->SetFillColor(100);
 
  304   palette->SetFillStyle(1001);
 
  305   h2->GetListOfFunctions()->Add(palette,
"br");
 
  308   cout << h2->GetMinimum(0) << 
' ' << h2->GetMaximum() << endl;
 
  310   if((rmin > 0) || (rmax > 0))
 
  311     h2->GetZaxis()->SetRangeUser(rmin, rmax);
 
  313     h2->GetZaxis()->SetRangeUser(h2->GetMinimum(0), h2->GetMaximum());