+ TH1F* hESDnClustersPerTrack = new TH1F("hESDnClustersPerTrack", "number of associated clusters per track;n_{clusters}", 20, 0., 20.);
+ Add2ESDsList(hESDnClustersPerTrack, kESDnClustersPerTrack, !expert, image);
+
+ TH1F* hESDnClustersPerCh = new TH1F("hESDnClustersPerCh", "averaged number of clusters per chamber per track;chamber ID;<n_{clusters}>", nCh, -0.5, nCh-0.5);
+ hESDnClustersPerCh->SetFillColor(kRed);
+ Add2ESDsList(hESDnClustersPerCh, kESDnClustersPerCh, !expert, image);
+
+ TH1F* hESDnClustersPerDE = new TH1F("hESDnClustersPerDE", "averaged number of clusters per DE per track;DetElem ID;<n_{clusters}>", nDE+1, -0.5, nDE+0.5);
+ hESDnClustersPerDE->SetFillColor(kRed);
+ Add2ESDsList(hESDnClustersPerDE, kESDnClustersPerDE, !expert, image);
+
+ for (Int_t i = 0; i < nCh; i++) {
+ TH1F* hESDClusterChargeInCh = new TH1F(Form("hESDClusterChargeInCh%d",i+1), Form("cluster charge distribution in chamber %d;charge (fC)",i+1), 100, 0., 1000.);
+ Add2ESDsList(hESDClusterChargeInCh, kESDClusterChargeInCh+i, expert, !image);
+ }
+
+ TH1F* hESDClusterChargePerChMean = new TH1F("hESDClusterChargePerChMean", "cluster mean charge per chamber;chamber ID;<charge> (fC)", nCh, -0.5, nCh-0.5);
+ hESDClusterChargePerChMean->SetOption("P");
+ hESDClusterChargePerChMean->SetMarkerStyle(kFullDotMedium);
+ hESDClusterChargePerChMean->SetMarkerColor(kRed);
+ Add2ESDsList(hESDClusterChargePerChMean, kESDClusterChargePerChMean, !expert, image);
+
+ TH1F* hESDClusterChargePerChSigma = new TH1F("hESDClusterChargePerChSigma", "cluster charge dispersion per chamber;chamber ID;#sigma_{charge} (fC)", nCh, -0.5, nCh-0.5);
+ hESDClusterChargePerChSigma->SetOption("P");
+ hESDClusterChargePerChSigma->SetMarkerStyle(kFullDotMedium);
+ hESDClusterChargePerChSigma->SetMarkerColor(kRed);
+ Add2ESDsList(hESDClusterChargePerChSigma, kESDClusterChargePerChSigma, !expert, image);
+
+ TH1F* hESDClusterChargePerDE = new TH1F("hESDClusterChargePerDE", "cluster mean charge per DE;DetElem ID;<charge> (fC)", nDE+1, -0.5, nDE+0.5);
+ hESDClusterChargePerDE->SetOption("P");
+ hESDClusterChargePerDE->SetMarkerStyle(kFullDotMedium);
+ hESDClusterChargePerDE->SetMarkerColor(kRed);
+ Add2ESDsList(hESDClusterChargePerDE, kESDClusterChargePerDE, !expert, image);
+
+ for (Int_t i = 0; i < nCh; i++) {
+ TH1F* hESDClusterSizeInCh = new TH1F(Form("hESDClusterSizeInCh%d",i+1), Form("cluster size distribution in chamber %d;size (n_{pads})",i+1), 200, 0., 200.);
+ Add2ESDsList(hESDClusterSizeInCh, kESDClusterSizeInCh+i, expert, !image);
+ }
+
+ TH1F* hESDClusterSizePerChMean = new TH1F("hESDClusterSizePerChMean", "cluster mean size per chamber;chamber ID;<size> (n_{pads})", nCh, -0.5, nCh-0.5);
+ hESDClusterSizePerChMean->SetOption("P");
+ hESDClusterSizePerChMean->SetMarkerStyle(kFullDotMedium);
+ hESDClusterSizePerChMean->SetMarkerColor(kRed);
+ Add2ESDsList(hESDClusterSizePerChMean, kESDClusterSizePerChMean, !expert, image);
+
+ TH1F* hESDClusterSizePerChSigma = new TH1F("hESDClusterSizePerChSigma", "cluster size dispersion per chamber;chamber ID;#sigma_{size} (n_{pads})", nCh, -0.5, nCh-0.5);
+ hESDClusterSizePerChSigma->SetOption("P");
+ hESDClusterSizePerChSigma->SetMarkerStyle(kFullDotMedium);
+ hESDClusterSizePerChSigma->SetMarkerColor(kRed);
+ Add2ESDsList(hESDClusterSizePerChSigma, kESDClusterSizePerChSigma, !expert, image);
+
+ TH1F* hESDClusterSizePerDE = new TH1F("hESDClusterSizePerDE", "cluster mean size per DE;DetElem ID;<size> (n_{pads})", nDE+1, -0.5, nDE+0.5);
+ hESDClusterSizePerDE->SetOption("P");
+ hESDClusterSizePerDE->SetMarkerStyle(kFullDotMedium);
+ hESDClusterSizePerDE->SetMarkerColor(kRed);
+ Add2ESDsList(hESDClusterSizePerDE, kESDClusterSizePerDE, !expert, image);
+
+ // cluster - track info
+ for (Int_t i = 0; i < nCh; i++) {
+ TH1F* hESDResidualXInCh = new TH1F(Form("hESDResidualXInCh%d",i+1), Form("cluster-track residual-X distribution in chamber %d;#Delta_{X} (cm)",i+1), 1000, -5., 5.);
+ Add2ESDsList(hESDResidualXInCh, kESDResidualXInCh+i, expert, !image);
+
+ TH1F* hESDResidualYInCh = new TH1F(Form("hESDResidualYInCh%d",i+1), Form("cluster-track residual-Y distribution in chamber %d;#Delta_{Y} (cm)",i+1), 1000, -1., 1.);
+ Add2ESDsList(hESDResidualYInCh, kESDResidualYInCh+i, expert, !image);
+
+ TH1F* hESDLocalChi2XInCh = new TH1F(Form("hESDLocalChi2XInCh%d",i+1), Form("local chi2-X distribution in chamber %d;local #chi^{2}_{X}",i+1), 1000, 0., 25);
+ Add2ESDsList(hESDLocalChi2XInCh, kESDLocalChi2XInCh+i, expert, !image);
+
+ TH1F* hESDLocalChi2YInCh = new TH1F(Form("hESDLocalChi2YInCh%d",i+1), Form("local chi2-Y distribution in chamber %d;local #chi^{2}_{Y}",i+1), 1000, 0., 25);
+ Add2ESDsList(hESDLocalChi2YInCh, kESDLocalChi2YInCh+i, expert, !image);
+
+ TH1F* hESDLocalChi2InCh = new TH1F(Form("hESDLocalChi2InCh%d",i+1), Form("local chi2 (~0.5*(#chi^{2}_{X}+#chi^{2}_{Y})) distribution in chamber %d;local #chi^{2}",i+1), 1000, 0., 25);
+ Add2ESDsList(hESDLocalChi2InCh, kESDLocalChi2InCh+i, expert, !image);
+ }
+
+ TH1F* hESDResidualXPerChMean = new TH1F("hESDResidualXPerChMean", "cluster-track residual-X per Ch: mean;chamber ID;<#Delta_{X}> (cm)", nCh, -0.5, nCh-0.5);
+ hESDResidualXPerChMean->SetOption("P");
+ hESDResidualXPerChMean->SetMarkerStyle(kFullDotMedium);
+ hESDResidualXPerChMean->SetMarkerColor(kRed);
+ Add2ESDsList(hESDResidualXPerChMean, kESDResidualXPerChMean, !expert, image);
+
+ TH1F* hESDResidualYPerChMean = new TH1F("hESDResidualYPerChMean", "cluster-track residual-Y per Ch: mean;chamber ID;<#Delta_{Y}> (cm)", nCh, -0.5, nCh-0.5);
+ hESDResidualYPerChMean->SetOption("P");
+ hESDResidualYPerChMean->SetMarkerStyle(kFullDotMedium);
+ hESDResidualYPerChMean->SetMarkerColor(kRed);
+ Add2ESDsList(hESDResidualYPerChMean, kESDResidualYPerChMean, !expert, image);
+
+ TH1F* hESDResidualXPerChSigma = new TH1F("hESDResidualXPerChSigma", "cluster-track residual-X per Ch: sigma;chamber ID;#sigma_{X} (cm)", nCh, -0.5, nCh-0.5);
+ hESDResidualXPerChSigma->SetOption("P");
+ hESDResidualXPerChSigma->SetMarkerStyle(kFullDotMedium);
+ hESDResidualXPerChSigma->SetMarkerColor(kRed);
+ Add2ESDsList(hESDResidualXPerChSigma, kESDResidualXPerChSigma, !expert, image);
+
+ TH1F* hESDResidualYPerChSigma = new TH1F("hESDResidualYPerChSigma", "cluster-track residual-Y per Ch: sigma;chamber ID;#sigma_{Y} (cm)", nCh, -0.5, nCh-0.5);
+ hESDResidualYPerChSigma->SetOption("P");
+ hESDResidualYPerChSigma->SetMarkerStyle(kFullDotMedium);
+ hESDResidualYPerChSigma->SetMarkerColor(kRed);
+ Add2ESDsList(hESDResidualYPerChSigma, kESDResidualYPerChSigma, !expert, image);
+
+ TH1F* hESDLocalChi2XPerChMean = new TH1F("hESDLocalChi2XPerCh", "local chi2-X per Ch: mean;chamber ID;<local #chi^{2}_{X}>", nCh, -0.5, nCh-0.5);
+ hESDLocalChi2XPerChMean->SetOption("P");
+ hESDLocalChi2XPerChMean->SetMarkerStyle(kFullDotMedium);
+ hESDLocalChi2XPerChMean->SetMarkerColor(kRed);
+ Add2ESDsList(hESDLocalChi2XPerChMean, kESDLocalChi2XPerChMean, !expert, image);
+
+ TH1F* hESDLocalChi2YPerChMean = new TH1F("hESDLocalChi2YPerCh", "local chi2-Y per Ch: mean;chamber ID;<local #chi^{2}_{Y}>", nCh, -0.5, nCh-0.5);
+ hESDLocalChi2YPerChMean->SetOption("P");
+ hESDLocalChi2YPerChMean->SetMarkerStyle(kFullDotMedium);
+ hESDLocalChi2YPerChMean->SetMarkerColor(kRed);
+ Add2ESDsList(hESDLocalChi2YPerChMean, kESDLocalChi2YPerChMean, !expert, image);
+
+ TH1F* hESDLocalChi2PerChMean = new TH1F("hESDLocalChi2PerCh", "local chi2 (~0.5*(#chi^{2}_{X}+#chi^{2}_{Y})) per Ch: mean;chamber ID;<local #chi^{2}>", nCh, -0.5, nCh-0.5);
+ hESDLocalChi2PerChMean->SetOption("P");
+ hESDLocalChi2PerChMean->SetMarkerStyle(kFullDotMedium);
+ hESDLocalChi2PerChMean->SetMarkerColor(kRed);
+ Add2ESDsList(hESDLocalChi2PerChMean, kESDLocalChi2PerChMean, !expert, image);
+
+ TH1F* hESDResidualXPerDEMean = new TH1F("hESDResidualXPerDEMean", "cluster-track residual-X per DE: mean;DetElem ID;<#Delta_{X}> (cm)", nDE+1, -0.5, nDE+0.5);
+ hESDResidualXPerDEMean->SetOption("P");
+ hESDResidualXPerDEMean->SetMarkerStyle(kFullDotMedium);
+ hESDResidualXPerDEMean->SetMarkerColor(kRed);
+ Add2ESDsList(hESDResidualXPerDEMean, kESDResidualXPerDEMean, !expert, image);
+
+ TH1F* hESDResidualYPerDEMean = new TH1F("hESDResidualYPerDEMean", "cluster-track residual-Y per DE: mean;DetElem ID;<#Delta_{Y}> (cm)", nDE+1, -0.5, nDE+0.5);
+ hESDResidualYPerDEMean->SetOption("P");
+ hESDResidualYPerDEMean->SetMarkerStyle(kFullDotMedium);
+ hESDResidualYPerDEMean->SetMarkerColor(kRed);
+ Add2ESDsList(hESDResidualYPerDEMean, kESDResidualYPerDEMean, !expert, image);
+
+ TH1F* hESDResidualXPerDESigma = new TH1F("hESDResidualXPerDESigma", "cluster-track residual-X per DE: sigma;DetElem ID;#sigma_{X} (cm)", nDE+1, -0.5, nDE+0.5);
+ hESDResidualXPerDESigma->SetOption("P");
+ hESDResidualXPerDESigma->SetMarkerStyle(kFullDotMedium);
+ hESDResidualXPerDESigma->SetMarkerColor(kRed);
+ Add2ESDsList(hESDResidualXPerDESigma, kESDResidualXPerDESigma, !expert, image);
+
+ TH1F* hESDResidualYPerDESigma = new TH1F("hESDResidualYPerDESigma", "cluster-track residual-Y per DE: sigma;DetElem ID;#sigma_{Y} (cm)", nDE+1, -0.5, nDE+0.5);
+ hESDResidualYPerDESigma->SetOption("P");
+ hESDResidualYPerDESigma->SetMarkerStyle(kFullDotMedium);
+ hESDResidualYPerDESigma->SetMarkerColor(kRed);
+ Add2ESDsList(hESDResidualYPerDESigma, kESDResidualYPerDESigma, !expert, image);
+
+ TH1F* hESDLocalChi2XPerDEMean = new TH1F("hESDLocalChi2XPerDE", "local chi2-X per DE: mean;DetElem ID;<local #chi^{2}_{X}>", nDE+1, -0.5, nDE+0.5);
+ hESDLocalChi2XPerDEMean->SetOption("P");
+ hESDLocalChi2XPerDEMean->SetMarkerStyle(kFullDotMedium);
+ hESDLocalChi2XPerDEMean->SetMarkerColor(kRed);
+ Add2ESDsList(hESDLocalChi2XPerDEMean, kESDLocalChi2XPerDEMean, !expert, image);
+
+ TH1F* hESDLocalChi2YPerDEMean = new TH1F("hESDLocalChi2YPerDE", "local chi2-Y per DE: mean;DetElem ID;<local #chi^{2}_{Y}>", nDE+1, -0.5, nDE+0.5);
+ hESDLocalChi2YPerDEMean->SetOption("P");
+ hESDLocalChi2YPerDEMean->SetMarkerStyle(kFullDotMedium);
+ hESDLocalChi2YPerDEMean->SetMarkerColor(kRed);
+ Add2ESDsList(hESDLocalChi2YPerDEMean, kESDLocalChi2YPerDEMean, !expert, image);
+
+ TH1F* hESDLocalChi2PerDEMean = new TH1F("hESDLocalChi2PerDE", "local chi2 (~0.5*(#chi^{2}_{X}+#chi^{2}_{Y})) per DE: mean;DetElem ID;<local #chi^{2}>", nDE+1, -0.5, nDE+0.5);
+ hESDLocalChi2PerDEMean->SetOption("P");
+ hESDLocalChi2PerDEMean->SetMarkerStyle(kFullDotMedium);
+ hESDLocalChi2PerDEMean->SetMarkerColor(kRed);
+ Add2ESDsList(hESDLocalChi2PerDEMean, kESDLocalChi2PerDEMean, !expert, image);
+
+ // intermediate histograms
+ TH1F* hESDnTotClustersPerCh = new TH1F("hESDnTotClustersPerCh", "total number of associated clusters per chamber;chamber ID;#Sigma(n_{clusters})", nCh, -0.5, nCh-0.5);
+ Add2ESDsList(hESDnTotClustersPerCh, kESDnTotClustersPerCh, expert, !image);
+ TH1F* hESDnTotClustersPerDE = new TH1F("hESDnTotClustersPerDE", "total number of associated clusters per DE;DetElem ID;#Sigma(n_{clusters})", nDE+1, -0.5, nDE+0.5);
+ Add2ESDsList(hESDnTotClustersPerDE, kESDnTotClustersPerDE, expert, !image);
+ TH1F* hESDnTotFullClustersPerDE = new TH1F("hESDnTotFullClustersPerDE", "total number of associated clusters containing pad info per DE;DetElem ID;#Sigma(n_{full clusters})", nDE+1, -0.5, nDE+0.5);
+ Add2ESDsList(hESDnTotFullClustersPerDE, kESDnTotFullClustersPerDE, expert, !image);
+ TH1F* hESDSumClusterChargePerDE = new TH1F("hESDSumClusterChargePerDE", "sum of cluster charge per DE;DetElem ID;#Sigma(charge) (fC)", nDE+1, -0.5, nDE+0.5);
+ Add2ESDsList(hESDSumClusterChargePerDE, kESDSumClusterChargePerDE, expert, !image);
+ TH1F* hESDSumClusterSizePerDE = new TH1F("hESDSumClusterSizePerDE", "sum of cluster size per DE;DetElem ID;#Sigma(size) (n_{pads})", nDE+1, -0.5, nDE+0.5);
+ Add2ESDsList(hESDSumClusterSizePerDE, kESDSumClusterSizePerDE, expert, !image);
+ TH1F* hESDSumResidualXPerDE = new TH1F("hESDSumResidualXPerDE", "sum of cluster-track residual-X per DE;DetElem ID;#Sigma(#Delta_{X}) (cm)", nDE+1, -0.5, nDE+0.5);
+ Add2ESDsList(hESDSumResidualXPerDE, kESDSumResidualXPerDE, expert, !image);
+ TH1F* hESDSumResidualYPerDE = new TH1F("hESDSumResidualYPerDE", "sum of cluster-track residual-Y per DE;DetElem ID;#Sigma(#Delta_{Y}) (cm)", nDE+1, -0.5, nDE+0.5);
+ Add2ESDsList(hESDSumResidualYPerDE, kESDSumResidualYPerDE, expert, !image);
+ TH1F* hESDSumResidualX2PerDE = new TH1F("hESDSumResidualX2PerDE", "sum of cluster-track residual-X**2 per DE;DetElem ID;#Sigma(#Delta_{X}^{2}) (cm^{2})", nDE+1, -0.5, nDE+0.5);
+ Add2ESDsList(hESDSumResidualX2PerDE, kESDSumResidualX2PerDE, expert, !image);
+ TH1F* hESDSumResidualY2PerDE = new TH1F("hESDSumResidualY2PerDE", "sum of cluster-track residual-Y**2 per DE;DetElem ID;#Sigma(#Delta_{Y}^{2}) (cm^{2})", nDE+1, -0.5, nDE+0.5);
+ Add2ESDsList(hESDSumResidualY2PerDE, kESDSumResidualY2PerDE, expert, !image);
+ TH1F* hESDSumLocalChi2XPerDE = new TH1F("hESDSumLocalChi2XPerDE", "sum of local chi2-X per DE;DetElem ID;#Sigma(local #chi^{2}_{X})", nDE+1, -0.5, nDE+0.5);
+ Add2ESDsList(hESDSumLocalChi2XPerDE, kESDSumLocalChi2XPerDE, expert, !image);
+ TH1F* hESDSumLocalChi2YPerDE = new TH1F("hESDSumLocalChi2YPerDE", "sum of local chi2-Y per DE;DetElem ID;#Sigma(local #chi^{2}_{Y})", nDE+1, -0.5, nDE+0.5);
+ Add2ESDsList(hESDSumLocalChi2YPerDE, kESDSumLocalChi2YPerDE, expert, !image);
+ TH1F* hESDSumLocalChi2PerDE = new TH1F("hESDSumLocalChi2PerDE", "sum of local chi2 (~0.5*(#chi^{2}_{X}+#chi^{2}_{Y})) per DE;DetElem ID;#Sigma(local #chi^{2})", nDE+1, -0.5, nDE+0.5);
+ Add2ESDsList(hESDSumLocalChi2PerDE, kESDSumLocalChi2PerDE, expert, !image);