hpstr
The Heavy Photon Search Toolkit for Reconstruction (hpstr) provides an interface to physics data from the HPS experiment saved in the LCIO format and converts it into an ROOT based format.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
RawSvtHitHistos.cxx
Go to the documentation of this file.
1#include "RawSvtHitHistos.h"
2#include <math.h>
3#include <string>
4#include "TCanvas.h"
5
6RawSvtHitHistos::RawSvtHitHistos(const std::string& inputName, ModuleMapper* mmapper) {
7 m_name = inputName;
8 mmapper_ = mmapper;
9}
10
13
15 //Define vector of hybrid names using ModuleMapper
16 //Use this list to define multiple copies of histograms, one for each hybrid, from json file
17 std::vector<std::string> hybridNames;
19 std::string makeMultiplesTag = "SvtHybrids";
20 //std::cout<<"hello1"<<std::endl;
21 HistoManager::DefineHistos(hybridNames, makeMultiplesTag );
22 //std::cout<<"hello2"<<std::endl;
23}
24
25void RawSvtHitHistos::FillHistograms(RawSvtHit* rawSvtHit,float weight,int i,unsigned int i2,Float_t TimeDiff,Float_t AmpDiff) {
26 std::vector<std::string> hybridStrings={};
27 std::string histokey;
28 //std::cout<<Event_number<<std::endl;
29 //if(Event_number>=10000){return;}
30 //if(Event_number==11) std::cout<<nhits<<i<<std::endl;
31 if(Event_number%10000 == 0){std::cout << "Event: " << Event_number << std::endl;Event_number++;}
32 // << " Number of RawSvtHits: " << nhits <<"\t"<<i<< std::endl;
33 if(i2==0){
34 Event_number++;}
35 auto mod = std::to_string(rawSvtHit->getModule());
36 auto lay = std::to_string(rawSvtHit->getLayer());
37 swTag= mmapper_->getStringFromSw("ly"+lay+"_m"+mod);
38 std::string helper = mmapper_->getHwFromSw("ly"+lay+"_m"+mod);
39 char char_array[helper.length()+1];
40 std::strcpy(char_array,helper.c_str());
41 int feb = (int)char_array[1]-48;
42 int hyb = (int)char_array[3]-48;
43
44 histokey = swTag + "_SvtHybrids_getFitN_h";
45 //std::cout<<"hello3"<<std::endl;
46 Fill1DHisto(histokey, rawSvtHit->getFitN(),weight);
47 histokey = swTag +"_SvtHybrids_T0_h";
48 //std::cout<<histokey<<std::endl;
49 //std::cout<<rawSvtHit->getT0(i)<<std::endl;
50 //std::cout<<rawSvtHit->getAmp(i)<<std::endl;
51 //std::cout<<rawSvtHit->getT0err(i)<<std::endl;
52 //std::cout<<rawSvtHit->getAmpErr(i)<<std::endl;
53 //if(i==0){
54 Fill1DHisto(histokey, rawSvtHit->getT0(i),weight);
55 //}//else{
56 // Fill1DHisto(histokey, rawSvtHit->getT0(i)-27.0,weight);
57 //}
58 //std::cout<<"hello6"<<std::endl;
59 histokey = swTag + "_SvtHybrids_Am_h";
60 Fill1DHisto(histokey, rawSvtHit->getAmp(i),weight);
61 histokey = swTag + "_SvtHybrids_Chi_Sqr_h";
62 Fill1DHisto(histokey, rawSvtHit->getChiSq(i),weight);
63 //std::cout<<rawSvtHit->getStrip()<<std::endl;
64 histokey = swTag + "_SvtHybrids_ADCcount_hh";
65 int * adcs=rawSvtHit->getADCs();
66 int maxx = 0;
67 for(unsigned int K=0; K<6; K++){
68 if(maxx<adcs[K]){maxx=adcs[K];}
69 //Fill2DHisto(histokey,24.0*K-(rawSvtHit->getT0(i)),((Float_t)(adcs[K]))/(rawSvtHit->getAmp(i)),weight);
70 }
71
72 for(unsigned int K=1; K<6; K++){
73 if(feb<=1){
74 Fill2DHisto(histokey,24.0*K-(rawSvtHit->getT0(i)),((Float_t)(adcs[K])-Float_t(baseErr1_[feb][hyb][(int)(rawSvtHit->getStrip())][K]))/(rawSvtHit->getAmp(i)),weight);
75 }else{
76 Fill2DHisto(histokey,24.0*K-(rawSvtHit->getT0(i)),((Float_t)(adcs[K])-Float_t(baseErr2_[feb-2][hyb][(int)(rawSvtHit->getStrip())][K]))/(rawSvtHit->getAmp(i)),weight);
77 }
78 //((Float_t)maxx),weight);
79 }
80
81 //NOW THE CODE FOR THE TGRAPH SHITE
82 //
83
84
85
86
87 histokey = swTag + "_SvtHybrids_ADCcountdeshift_hh";
88 for(unsigned int K=1; K<6; K++){
89 if(feb<=1){
90 if(std::abs(rawSvtHit->getT0(i)+60)<25){
91 Fill2DHisto(histokey,K,((Float_t)(adcs[K])-Float_t(baseErr1_[feb][hyb][(int)(rawSvtHit->getStrip())][K])));//(rawSvtHit->getAmp(i)),weight);
92 }else{
93 Fill2DHisto(histokey,K,((Float_t)(adcs[K])-Float_t(baseErr1_[feb][hyb][(int)(rawSvtHit->getStrip())][K])));//(rawSvtHit->getAmp(i)),weight);
94 }
95 }else{
96 if(std::abs(rawSvtHit->getT0(i)+60)<25){
97 Fill2DHisto(histokey,K,((Float_t)(adcs[K])-Float_t(baseErr2_[feb-2][hyb][(int)(rawSvtHit->getStrip())][K])));//(rawSvtHit->getAmp(i)),weight);
98 }else{
99 Fill2DHisto(histokey,K,((Float_t)(adcs[K])-Float_t(baseErr2_[feb-2][hyb][(int)(rawSvtHit->getStrip())][K])));//(rawSvtHit->getAmp(i)),weight);
100 }
101 }
102 //((Float_t)maxx),weight);
103 }
104 //adcs_=rawSvtHit->getADCs(i);
105 //Fill1DHisto(histokey, -(rawSvthit->getT0(i)),weight);
106
107 //std::cout<<"hello7"<<std::endl;
108 histokey = swTag + "_SvtHybrids_T0Err_hh";
109 Fill2DHisto(histokey, rawSvtHit->getT0(i), rawSvtHit->getT0err(i),weight);
110 histokey = swTag + "_SvtHybrids_AmErr_hh";
111 //std::cout<<"hello8"<<std::endl;
112 Fill2DHisto(histokey, rawSvtHit->getAmp(i), rawSvtHit->getAmpErr(i),weight);
113 histokey = swTag + "_SvtHybrids_AmT0_hh";
114 //std::cout<<"hello9"<<std::endl;
115 Fill2DHisto(histokey, rawSvtHit->getT0(i), rawSvtHit->getAmp(i),weight);
116 histokey = swTag + "_SvtHybrids_AmErrT0Err_hh";
117 //std::cout<<"hello10"<<std::endl;
118 Fill2DHisto(histokey, rawSvtHit->getT0err(i), rawSvtHit->getAmpErr(i),weight);
119
120 histokey = swTag + "_SvtHybrids_AmT0Err_hh";
121 //std::cout<<"hello10"<<std::endl;
122 Fill2DHisto(histokey, rawSvtHit->getT0err(i), rawSvtHit->getAmp(i),weight);
123
124 histokey = swTag + "_SvtHybrids_AmErrT0_hh";
125 //std::cout<<"hello10"<<std::endl;
126 Fill2DHisto(histokey, rawSvtHit->getT0(i), rawSvtHit->getAmpErr(i),weight);
127
128 if(i==1){
129 histokey = swTag + "_SvtHybrids_PT1PT2_hh";
130 Fill2DHisto(histokey, rawSvtHit->getT0(1),rawSvtHit->getT0(0));
131 }else{
132 histokey = swTag + "_SvtHybrids_PT1PT2_hh";
133 Fill2DHisto(histokey, rawSvtHit->getT0(0),rawSvtHit->getT0(1));
134 }
135
136 if(TimeDiff==-42069){return;}
137 else{
138 histokey = swTag + "_SvtHybrids_TD_h";
139 Fill1DHisto(histokey, TimeDiff,weight);
140 histokey = swTag + "_SvtHybrids_T0TD_hh";
141 Fill2DHisto(histokey, rawSvtHit->getT0(i),TimeDiff,weight);
142 histokey = swTag + "_SvtHybrids_AmErrTD_hh";
143 Fill2DHisto(histokey, rawSvtHit->getAmpErr(i),TimeDiff,weight);
144 histokey = swTag + "_SvtHybrids_AmpTD_hh";
145 Fill2DHisto(histokey, rawSvtHit->getAmp(i),TimeDiff,weight);
146 histokey = swTag + "_SvtHybrids_Amp12_hh";
147 Fill2DHisto(histokey, rawSvtHit->getAmp(0),rawSvtHit->getAmp(1),weight);
148 histokey = swTag + "_SvtHybrids_ADTD_hh";
149 Fill2DHisto(histokey, AmpDiff,TimeDiff,weight);
150 }
151 //}
152 //std::cout<<"hello11"<<std::endl;
153 //}catch(std::exception& e){
154 //std::cout<<e.what()<<std::endl;
155 //continue;
156 //}
157 // }
158 //std::string regname = AnaHelpers::getFileName(regionSelections_[i_reg],false);
159 //reg_selectors_[regname] = std::make_shared<BaseSelector>(regname, regionSelections_[i_reg]);
160 // }
161 //}
162 return;
163}
164
165
void Fill2DHisto(const std::string &histoName, float valuex, float valuey, float weight=1.)
description
virtual void DefineHistos()
Definition of histograms from json config.
void Fill1DHisto(const std::string &histoName, float value, float weight=1.)
description
std::string m_name
description
std::string getHwFromSw(const std::string &key)
Get the Hw From Sw.
std::string getStringFromSw(const std::string &key)
Get the String From Sw.
void getStrings(std::vector< std::string > &strings)
Get list of string modules.
void DefineHistos()
Definition of histograms from json config.
float baseErr2_[8][4][640][12]
std::vector< std::string > hybridNames
std::string swTag
float baseErr1_[2][4][512][12]
void FillHistograms(RawSvtHit *rawSvtHit, float weight=1., int Ireg=0, unsigned int nhit=0, Float_t TimeDiff=-42069.0, Float_t AmpDiff=-42069.0)
RawSvtHitHistos(const std::string &inputName, ModuleMapper *mmapper_)
ModuleMapper * mmapper_
int getFitN()
Definition RawSvtHit.h:65
double getChiSq(int fitI)
Definition RawSvtHit.h:107
int getStrip()
int getLayer()
Definition RawSvtHit.cxx:88
double getAmp(int fitI)
Definition RawSvtHit.h:101
double getAmpErr(int fitI)
Definition RawSvtHit.h:104
double getT0(int fitI)
Definition RawSvtHit.h:95
double getT0err(int fitI)
Definition RawSvtHit.h:98
int * getADCs()
Definition RawSvtHit.cxx:76
int getModule()
Definition RawSvtHit.cxx:92