14 #include<TClonesArray.h> 
   19 #include<TApplication.h> 
   22 #include<FairRadMapPoint.h> 
   59         if ((
int)(
last_percent*100) == (
int)(percent*100)) 
return;
 
   64         for (
int i = 0; 
i < len; ++
i) {
 
   65         if (
i < static_cast<int>(len * percent)) {
 
   71         cout << 
"[" << progress << 
"] " << (
static_cast<int>(100 * percent)) << 
"%";
 
   76 int main(
int nargs, 
char** args) {
 
   79         gROOT->Macro(
"$VMCWORKDIR/gconfig/rootlogon.C");
 
   80         TApplication myapp(
"myapp",0,0);
 
   87                         cout << 
" Hint: you may change the standard path from " 
   89                                         << 
" to any other folder by providing the path as an argument! " 
   92                         cout << 
" Error: too many arguments! " << endl;
 
  102         std::cout << 
"MCFile  : " << MCFile.Data() << std::endl;
 
  105         TClonesArray* true_tracks = 
new TClonesArray(
"PndMCTrack");
 
  106         tMC.SetBranchAddress(
"MCTrack", &true_tracks); 
 
  108         TClonesArray* true_points = 
new TClonesArray(
"PndSdsMCPoint");
 
  109         tMC.SetBranchAddress(
"LMDPoint", &true_points); 
 
  111         TClonesArray* radmap_points = 
new TClonesArray(
"FairRadMapPoint");
 
  112         tMC.SetBranchAddress(
"RadMap", & radmap_points); 
 
  114         TClonesArray* radlen_points = 
new TClonesArray(
"FairRadLenPoint");
 
  115         tMC.SetBranchAddress(
"RadLen", & radlen_points); 
 
  118         TCanvas canvas_rad_map_x_y(
"canvas_rad_map_x_y", 
"radiation map x y", 600, 600);
 
  119         TH2D radiation_map_x_y(
"radiation_map_x_y", 
"radiation map x y", 500, 15, 45, 500, -15, 15);
 
  120         radiation_map_x_y.Draw(
"COLZ");
 
  121         radiation_map_x_y.SetXTitle(
"X [cm]");
 
  122         radiation_map_x_y.SetYTitle(
"Y [cm]");
 
  123         radiation_map_x_y.SetZTitle(
"dose");
 
  124         canvas_rad_map_x_y.SetLogz();
 
  126         TCanvas canvas_rad_map_x_z(
"canvas_rad_map_x_z", 
"radiation map x z", 1000, 600);
 
  127         TH2D radiation_map_x_z(
"radiation_map_x_z", 
"radiation map x z", 1000, 1100, 1200, 400, 10, 50);
 
  128         radiation_map_x_z.Draw(
"COLZ");
 
  129         radiation_map_x_z.SetXTitle(
"Z [cm]");
 
  130         radiation_map_x_z.SetYTitle(
"X [cm]");
 
  131         radiation_map_x_z.SetZTitle(
"dose");
 
  132         canvas_rad_map_x_z.SetLogz();
 
  134         TCanvas canvas_rad_map_x_y_plane_0(
"canvas_rad_map_x_y_plane_0", 
"radiation map x y of plane 0", 600, 600);
 
  135         TH2D radiation_map_x_y_plane_0(
"radiation_map_x_y_plane_0", 
"radiation map x y of plane 0", 150, 10, 40, 150, -15, 15);
 
  136         radiation_map_x_y_plane_0.Draw(
"COLZ");
 
  137         radiation_map_x_y_plane_0.SetXTitle(
"X [cm]");
 
  138         radiation_map_x_y_plane_0.SetYTitle(
"Y [cm]");
 
  139         radiation_map_x_y_plane_0.SetZTitle(
"dose");
 
  140         canvas_rad_map_x_y_plane_0.SetLogz();
 
  147         int nEvents = tMC.GetEntries();
 
  148         cout << 
" reading " << nEvents << 
" Events " << endl;
 
  149         for (Int_t iEvent = 0; iEvent < 
nEvents; iEvent++) {
 
  151                 tMC.GetEntry(iEvent);
 
  154                 int nradmappoints = radmap_points->GetEntriesFast();
 
  155                 for (
int iradmappoint = 0; iradmappoint < nradmappoints; iradmappoint++){
 
  156                         FairRadMapPoint* radmap_point = (FairRadMapPoint*) radmap_points->At(iradmappoint);
 
  157                         const TVector3& position = radmap_point->GetPosition();
 
  158                         double dose = radmap_point->GetDose();
 
  160                         int detID = radmap_point->GetDetectorID();
 
  167                                 if (position.Z() > 1105 && position.Z() < 1130)
 
  168                                         radiation_map_x_y_plane_0.Fill(position.X(), position.Y(), dose);
 
  169                                 radiation_map_x_y.Fill(position.X(), position.Y(), dose);
 
  170                                 radiation_map_x_z.Fill(position.Z(), position.X(), dose);
 
  174                 if ((iEvent%1000)==0){
 
  175                         canvas_rad_map_x_y.cd();
 
  176                         radiation_map_x_y.Draw(
"COLZ");
 
  177                         canvas_rad_map_x_y.Update();
 
  178                         canvas_rad_map_x_y_plane_0.cd();
 
  179                         radiation_map_x_y_plane_0.Draw(
"COLZ");
 
  180                         canvas_rad_map_x_y_plane_0.Update();
 
  181                         canvas_rad_map_x_z.cd();
 
  182                         radiation_map_x_z.Draw(
"COLZ");
 
  183                         canvas_rad_map_x_z.Update();
 
  187         canvas_rad_map_x_y.Print(
"dose_x_y.pdf");
 
  188         canvas_rad_map_x_y_plane_0.Print(
"dose_x_y_plane_0.pdf");
 
  189         canvas_rad_map_x_z.Print(
"dose_x_z.pdf");
 
int main(int argc, char **argv)
void DrawProgressBar(int len, double percent)
void Read_transformation_matrices(string filename="", bool aligned=true, int version_number=geometry_version)
static PndLmdDim & Get_instance()