16 static std::vector<int>
eCut;
17 static std::vector<std::string>
sNames;
44 sNames.push_back(
"hLifetime100");
45 sNames.push_back(
"hLifetime200");
46 sNames.push_back(
"hLifetime300");
47 sNames.push_back(
"hLifetime400");
48 sNames.push_back(
"hLifetime500");
49 sNames.push_back(
"hLifetime600");
50 sNames.push_back(
"hLifetime700");
51 sNames.push_back(
"hLifetime800");
52 sNames.push_back(
"hLifetime900");
53 sNames.push_back(
"hLifetime1000");
54 sNames.push_back(
"hLifetime1100");
55 sNames.push_back(
"hLifetime1200");
56 sNames.push_back(
"hLifetime1300");
57 sNames.push_back(
"hLifetime1400");
58 sNames.push_back(
"hLifetime1500");
59 sTitles.push_back(
"Lifetime (100 ADC cut)");
60 sTitles.push_back(
"Lifetime (200 ADC cut)");
61 sTitles.push_back(
"Lifetime (300 ADC cut)");
62 sTitles.push_back(
"Lifetime (400 ADC cut)");
63 sTitles.push_back(
"Lifetime (500 ADC cut)");
64 sTitles.push_back(
"Lifetime (600 ADC cut)");
65 sTitles.push_back(
"Lifetime (700 ADC cut)");
66 sTitles.push_back(
"Lifetime (800 ADC cut)");
67 sTitles.push_back(
"Lifetime (900 ADC cut)");
68 sTitles.push_back(
"Lifetime (1000 ADC cut)");
69 sTitles.push_back(
"Lifetime (1100 ADC cut)");
70 sTitles.push_back(
"Lifetime (1200 ADC cut)");
71 sTitles.push_back(
"Lifetime (1300 ADC cut)");
72 sTitles.push_back(
"Lifetime (1400 ADC cut)");
73 sTitles.push_back(
"Lifetime (1500 ADC cut)");
77 if (
nECut != sNames.size() ||
nECut != sTitles.size())
78 std::cout <<
"Error! Coder forgot a line or two in initialization of Lifetime module in rootana!" << std::endl;
80 for (
unsigned int iECut = 0; iECut <
nECut; ++iECut)
81 hLifetime.push_back(
new TH1I(sNames[iECut].c_str(), sTitles[iECut].c_str(), 1000, 0., 2000.));
104 if (sil == NULL && sir == NULL)
return 0;
107 AnalysedPulseList::iterator cMusc;
108 AnalysedPulseList::iterator cSiR, cSiL;
109 cMusc = musc->begin();
118 for (; cMusc < musc->end(); ++cMusc) {
119 tMusc = (*cMusc)->GetTime();
121 if ((cMusc+1) != musc->end() && (*(cMusc + 1))->GetTime() - tMusc <
tPileUp) {
126 for (iECut = 0; iECut <
nECut; ++iECut)
127 bFound[iECut] =
false;
130 while (cSiR != sir->end() && (*cSiR)->GetTime() -tMusc <
tCut[0])
133 while (cSiL != sil->end() && (*cSiL)->GetTime() < tMusc)
137 while (cSiR != sir->end() && (*cSiR)->GetTime() - tMusc <
tCut[1]) {
138 for (iECut = 0; iECut <
nECut; ++iECut)
139 if (!(bFound[iECut]))
140 if ((*cSiR)->GetAmplitude() > eCut[iECut]) {
141 hLifetime[iECut]->Fill((*cSiR)->GetTime() - tMusc);
142 bFound[iECut] =
true;
147 while (cSiL != sil->end() && (*cSiL)->GetTime() - tMusc <
tCut[1]) {
148 for (iECut = 0; iECut <
nECut; ++iECut)
149 if (!(bFound[iECut]))
150 if ((*cSiL)->GetAmplitude() > eCut[iECut]) {
151 hLifetime[iECut]->Fill((*cSiL)->GetTime() - tMusc);
152 bFound[iECut] =
true;