]>
Commit | Line | Data |
---|---|---|
48b962f0 | 1 | |
2 | #include "AliHLTPHOSDigitContainerStruct.h" | |
3 | #include "AliHLTPHOSRecPointContainerStruct.h" | |
4 | #include "AliHLTPHOSClusterizer.h" | |
5 | #include "AliPHOSGetter.h" | |
6 | #include "TH1I.h" | |
7 | #include "TObjArray.h" | |
8 | #include "TFile.h" | |
9 | ||
10 | #define NLOOPS 1 | |
11 | ||
12 | Int_t clusterCompare(); | |
13 | ||
14 | int main() | |
15 | { | |
16 | clusterCompare(); | |
17 | return 0; | |
18 | } | |
19 | ||
20 | Int_t clusterCompare() | |
21 | { | |
22 | ||
23 | AliHLTPHOSDigitContainerStruct *digCon = new AliHLTPHOSDigitContainerStruct(); | |
24 | AliHLTPHOSRecPointContainerStruct *recCon = new AliHLTPHOSRecPointContainerStruct(); | |
25 | AliHLTPHOSClusterizer *clusterizer = new AliHLTPHOSClusterizer(); | |
26 | AliPHOSGetter *getter = AliPHOSGetter::Instance("/home/odjuvsla/Workspace/Simulations/singlePhoton/galice.root"); | |
27 | ||
28 | TObjArray *emcRecPoints = getter->EmcRecPoints(); | |
29 | ||
30 | TH1I *hist = new TH1I("hist", "Difference in number of clusters found", 10, -5, 5); | |
31 | ||
32 | int nClusters = 0; | |
33 | int a = 0; | |
34 | ||
35 | clock_t start = 0; | |
36 | clock_t end = 0; | |
37 | clock_t total = 0; | |
38 | int count = 0; | |
39 | ||
40 | clusterizer->SetOfflineMode(getter); | |
41 | clusterizer->SetRecPointContainer(recCon); | |
42 | ||
43 | while(a < NLOOPS) | |
44 | { | |
45 | for(int k = 0; k < clusterizer->GetNEvents(); k++) | |
46 | { | |
47 | // printf("Getting event..."); | |
48 | clusterizer->GetEvent(k); | |
49 | // getter->Event(k, "R"); | |
50 | // printf("Done!\n"); | |
51 | ||
52 | //printf("Starting HLT clusterizing... "); | |
53 | start = clock(); | |
54 | clusterizer->SetDigitContainer(digCon); | |
55 | nClusters = clusterizer->ClusterizeEvent(); | |
56 | clusterizer->CalculateCenterOfGravity(); | |
57 | end = clock(); | |
58 | //printf("Done!\n"); | |
59 | total += end - start; | |
60 | if(nClusters == 2) | |
61 | { | |
62 | printf("WTF! 2 cluster! --- Event: %d\n", k); | |
63 | printf("Positions:\n"); | |
64 | printf("x = %f -- z = %f\n", recCon->fRecPointArray[0].fX, recCon->fRecPointArray[0].fZ); | |
65 | printf("x = %f -- z = %f\n", recCon->fRecPointArray[1].fX, recCon->fRecPointArray[1].fZ); | |
66 | printf("Energies:\n"); | |
67 | printf("%f\n", recCon->fRecPointArray[0].fAmp); | |
68 | printf("%f\n", recCon->fRecPointArray[1].fAmp); | |
69 | printf("Multiplicities:\n"); | |
70 | printf("%d\n",recCon->fRecPointArray[0].fMultiplicity); | |
71 | printf("%d\n",recCon->fRecPointArray[1].fMultiplicity); | |
72 | printf("Digits:\n"); | |
73 | for(int c = 0; c < recCon->fRecPointArray[0].fMultiplicity; c++) | |
74 | { | |
75 | printf("x = %d -- z = %d -- energy = %f\n", recCon->fRecPointArray[0].fDigitsList[c].fX, recCon->fRecPointArray[0].fDigitsList[c].fZ, recCon->fRecPointArray[0].fDigitsList[c].fEnergy ); | |
76 | } | |
77 | printf("\n"); | |
78 | for(int b = 0; b < recCon->fRecPointArray[1].fMultiplicity; b++) | |
79 | { | |
80 | printf("x = %d -- z = %d -- energy = %f\n", recCon->fRecPointArray[1].fDigitsList[b].fX, recCon->fRecPointArray[1].fDigitsList[b].fZ, recCon->fRecPointArray[1].fDigitsList[b].fEnergy ); | |
81 | } | |
82 | printf("\n"); | |
83 | ||
84 | ||
85 | } | |
86 | else | |
87 | printf("Multiplicity: %d\n\n", recCon->fRecPointArray[0].fMultiplicity); | |
88 | count += nClusters; | |
89 | //hist->Fill(emcRecPoints->GetEntriesFast() - recCon->fNRecPoints); | |
90 | } | |
91 | a++; | |
92 | } | |
93 | ||
94 | ||
95 | TFile *outfile = new TFile("histogram.root","recreate"); | |
96 | // hist->Write(); | |
97 | outfile->Close(); | |
98 | ||
99 | printf("Clusterizing done!\n"); | |
100 | printf("Total number of clusters: %d\n", count); | |
101 | ||
102 | printf("Time pr event (us): %f\n", (float)total/((float)clusterizer->GetNEvents()*(float)a)); | |
103 | ||
104 | return 0; | |
105 | } | |
106 | ||
107 |