1212/// \file CheckClusterSizeVsEta.C
1313/// \brief A post-processing macro to draw average cluster size vs eta
1414
15+ #if !defined(__CLING__ ) || defined(__ROOTCLING__ )
1516#include <TCanvas.h>
1617#include <TFile.h>
1718#include <TH1F.h>
2122#include <TTree.h>
2223#include <TROOT.h>
2324#include <TStyle.h>
25+ #include <TLegend.h>
26+ #include <TProfile.h>
27+ #endif
28+
29+ using namespace std ;
2430
2531// ### required input file: CheckClusters.root, which is the output of CheckClusters.C macro
26- void CheckClusterSizeVsEta (const std ::string & strFileInput = "CheckClusters.root" )
32+ void CheckClusterSizeVsEta (const std ::string & strFileInput = "CheckClusters.root" )
2733{
2834 gStyle -> SetOptStat (0 );
2935
30- TFile * fileInput = new TFile (strFileInput .c_str ());
31- TTree * tree = (TTree * )fileInput -> Get ("ntc" );
36+ TFile * fileInput = new TFile (strFileInput .c_str ());
37+ TTree * tree = (TTree * )fileInput -> Get ("ntc" );
3238 std ::cout << "Opened tree: " << tree -> GetName () << ", entries = " << tree -> GetEntries () << std ::endl ;
3339
3440 // set branch addresses
@@ -71,26 +77,24 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root
7177 tree -> SetBranchAddress ("pt" , & pt );
7278
7379 // Some QA histograms
74- TH1F * hPt = new TH1F ("hPt" , "p_{T};p_{T};Entries" , 100 , 0. , 10. );
75- TH1F * hClusSize = new TH1F ("hClusSize" , "Cluster size;clusSize;Entries" , 20 , 0. , 20. );
76- TH1F * hLayer = new TH1F ("hLayer" , "Layer;layer;Entries" , 20 , -0.5 , 19.5 );
77- TH1F * hDxGlob = new TH1F ("hDxGlob" , "clusGlobX - hitGlobX;#DeltaX [global];Entries" , 200 , -1. , 1. );
78- TH1F * hDzGlob = new TH1F ("hDzGlob" , "clusGlobZ - hitGlobZ;#DeltaZ [global];Entries" , 200 , -1. , 1. );
79- TH2F * hHitXY = new TH2F ("hHitXY" , "Hit global XY;hitGlobX;hitGlobY" , 200 , -20. , 20. , 200 , -20. , 20. );
80- TH2F * hClusVsHitX = new TH2F ("hClusVsHitX" , "clusGlobX vs hitGlobX;hitGlobX;clusGlobX" , 200 , -20. , 20. , 200 , -20. , 20. );
80+ TH1F * hPt = new TH1F ("hPt" , "p_{T};p_{T};Entries" , 100 , 0. , 10. );
81+ TH1F * hClusSize = new TH1F ("hClusSize" , "Cluster size;clusSize;Entries" , 20 , 0. , 20. );
82+ TH1F * hLayer = new TH1F ("hLayer" , "Layer;layer;Entries" , 20 , -0.5 , 19.5 );
83+ TH1F * hDxGlob = new TH1F ("hDxGlob" , "clusGlobX - hitGlobX;#DeltaX [global];Entries" , 200 , -1. , 1. );
84+ TH1F * hDzGlob = new TH1F ("hDzGlob" , "clusGlobZ - hitGlobZ;#DeltaZ [global];Entries" , 200 , -1. , 1. );
85+ TH2F * hHitXY = new TH2F ("hHitXY" , "Hit global XY;hitGlobX;hitGlobY" , 200 , -20. , 20. , 200 , -20. , 20. );
86+ TH2F * hClusVsHitX = new TH2F ("hClusVsHitX" , "clusGlobX vs hitGlobX;hitGlobX;clusGlobX" , 200 , -20. , 20. , 200 , -20. , 20. );
8187
8288 // histograms for cluster size vs eta for each barrel layer:
8389 const int nLayers = 11 ;
84- TH2F * hClustSizePerLayerVsEta [nLayers ];
85- for (int i = 0 ; i < nLayers ; i ++ )
86- {
90+ TH2F * hClustSizePerLayerVsEta [nLayers ];
91+ for (int i = 0 ; i < nLayers ; i ++ ) {
8792 hClustSizePerLayerVsEta [i ] = new TH2F (Form ("hClustSizePerLayerVsEta_Lay%d" , i ), Form ("Cluster size vs eta for layer %d;#eta;Cluster size" , i ), 200 , -5 , 5 , 101 , -0.5 , 100.5 );
8893 }
8994
9095 // Loop over entries
9196 const Long64_t nEntries = tree -> GetEntries ();
92- for (Long64_t i = 0 ; i < nEntries ; ++ i )
93- {
97+ for (Long64_t i = 0 ; i < nEntries ; ++ i ) {
9498 tree -> GetEntry (i );
9599
96100 // Fill QA histograms
@@ -117,14 +121,13 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root
117121 hClustSizePerLayerVsEta [(int )layer ]-> Fill (clustEta , clusSize );
118122
119123 // progress print
120- if ((i + 1 ) % 200000 == 0 )
121- {
124+ if ((i + 1 ) % 200000 == 0 ) {
122125 std ::cout << "Processed " << (i + 1 ) << " / " << nEntries << " entries" << std ::endl ;
123126 }
124127 }
125128
126129 // Save histograms to file
127- TFile * fout = TFile ::Open ("clusterSizes_vs_eta.root" , "RECREATE" );
130+ TFile * fout = TFile ::Open ("clusterSizes_vs_eta.root" , "RECREATE" );
128131 hPt -> Write ();
129132 hClusSize -> Write ();
130133 hLayer -> Write ();
@@ -134,7 +137,7 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root
134137 hClusVsHitX -> Write ();
135138
136139 // draw some QA histograms
137- TCanvas * c1 = new TCanvas ("canv_clusters_QA" , "Clusters QA" , 1200 , 800 );
140+ TCanvas * c1 = new TCanvas ("canv_clusters_QA" , "Clusters QA" , 1200 , 800 );
138141 c1 -> Divide (2 , 2 );
139142 c1 -> cd (1 );
140143 hPt -> Draw ();
@@ -149,10 +152,9 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root
149152 kRed , kBlue + 1 , kMagenta + 1 ,
150153 kCyan + 1 , kGray + 2 , kRed , kBlue , kMagenta + 1 , kCyan , kAzure + 1 , kOrange - 9 , kRed + 2 , kBlue + 2 , kMagenta + 2 };
151154
152- TCanvas * canv_clsSize_vs_eta [nLayers ];
153- TProfile * profPerLayerVsEta [nLayers ];
154- for (int i = 0 ; i < nLayers ; i ++ )
155- {
155+ TCanvas * canv_clsSize_vs_eta [nLayers ];
156+ TProfile * profPerLayerVsEta [nLayers ];
157+ for (int i = 0 ; i < nLayers ; i ++ ) {
156158 canv_clsSize_vs_eta [i ] = new TCanvas (Form ("canv_clsSize_vs_eta_Lay%d" , i ), Form ("Cluster size vs eta for layer %d" , i ), 800 , 600 );
157159 hClustSizePerLayerVsEta [i ]-> Draw ("COLZ" );
158160 gPad -> SetLogz ();
@@ -168,10 +170,9 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root
168170 }
169171
170172 // ### canvas with profiles for 3 VD layers
171- TCanvas * canv_av_clsSize_vs_eta_VD_layers = new TCanvas ("canv_clsSize_vs_eta_VD_layers" , "Cluster size vs eta for VD layers" , 800 , 600 );
172- TLegend * legLayersVD = new TLegend (0.3 , 0.72 , 0.65 , 0.89 );
173- for (int i = 0 ; i < 3 ; i ++ )
174- {
173+ TCanvas * canv_av_clsSize_vs_eta_VD_layers = new TCanvas ("canv_clsSize_vs_eta_VD_layers" , "Cluster size vs eta for VD layers" , 800 , 600 );
174+ TLegend * legLayersVD = new TLegend (0.3 , 0.72 , 0.65 , 0.89 );
175+ for (int i = 0 ; i < 3 ; i ++ ) {
175176 profPerLayerVsEta [i ]-> GetYaxis ()-> SetRangeUser (0. , 60. );
176177 profPerLayerVsEta [i ]-> DrawCopy (i == 0 ? "P" : "P same" );
177178 legLayersVD -> AddEntry (profPerLayerVsEta [i ], Form ("VD layer %d" , i ), "P" );
@@ -182,10 +183,9 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root
182183 canv_av_clsSize_vs_eta_VD_layers -> Write ();
183184
184185 // ### canvas with profiles for MLOT layers
185- TCanvas * canv_av_clsSize_vs_eta_MLOT_layers = new TCanvas ("canv_clsSize_vs_eta_MLOT_layers" , "Cluster size vs eta for MLOT layers" , 800 , 600 );
186- TLegend * legLayersMLOT = new TLegend (0.3 , 0.52 , 0.65 , 0.89 );
187- for (int i = 3 ; i < nLayers ; i ++ )
188- {
186+ TCanvas * canv_av_clsSize_vs_eta_MLOT_layers = new TCanvas ("canv_clsSize_vs_eta_MLOT_layers" , "Cluster size vs eta for MLOT layers" , 800 , 600 );
187+ TLegend * legLayersMLOT = new TLegend (0.3 , 0.52 , 0.65 , 0.89 );
188+ for (int i = 3 ; i < nLayers ; i ++ ) {
189189 profPerLayerVsEta [i ]-> GetYaxis ()-> SetRangeUser (0. , 12.5 );
190190 profPerLayerVsEta [i ]-> GetXaxis ()-> SetRangeUser (-3.5 , 3.5 );
191191 profPerLayerVsEta [i ]-> DrawCopy (i == 3 ? "P" : "P same" );
0 commit comments